@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=Noto+Sans+KR:wght@400;500;600;700;800&display=swap";.login-bird{z-index:1;flex:1 0 110px;min-height:110px;margin-top:8px;position:relative}.login-bird>svg{width:100%;height:100%;max-height:340px;margin:auto;position:absolute;inset:0;overflow:visible}.login-bird-drift{transform-origin:220px 170px;animation:9s ease-in-out infinite login-bird-glide}.login-bird-near-wing,.login-bird-far-wing{transform-origin:226px 177px;animation:2.8s ease-in-out infinite login-bird-wingbeat}.login-bird-far-wing{animation-delay:-.14s}.login-bird-packet{opacity:0;animation:16s ease-in-out infinite login-bird-send}.login-bird-reception{transform-origin:350px 95px;opacity:0;animation:16s ease-out infinite login-bird-receive}.login-bird-receiver-light{animation:16s ease-in-out infinite login-bird-light}.login-bird-received{opacity:0;animation:16s ease-in-out infinite login-bird-confirm}@keyframes login-bird-glide{0%,to{transform:translate(-14px,4px)rotate(-3deg)}50%{transform:translate(14px,-9px)rotate(2deg)}}@keyframes login-bird-wingbeat{0%,to{transform:rotate(8deg)scaleY(.85)}45%{transform:rotate(-13deg)scaleY(1.06)}}.login-field-scene{animation:16s ease-in-out infinite login-field-scene}.login-server-scene{opacity:0;animation:16s ease-in-out infinite login-server-scene}.login-server-arrival{opacity:0;animation:16s ease-in-out infinite login-server-arrival}.login-server-led{animation:16s ease-in-out infinite login-server-led}.login-server-records path{stroke-dasharray:1;stroke-dashoffset:1px;animation:16s ease-in-out infinite login-server-record}.login-server-records .record-two{animation-name:login-server-record-two}.login-server-records .record-three{animation-name:login-server-record-three}.login-server-chart{stroke-dasharray:1;stroke-dashoffset:1px;animation:16s ease-in-out infinite login-server-chart}.login-server-processing{opacity:0;transform-origin:176px 170px;animation:16s ease-in-out infinite login-server-processing}.login-server-complete{opacity:0;animation:16s ease-in-out infinite login-server-complete}@keyframes login-field-scene{0%,36%,to{opacity:1;transform:translate(0)}41%,94%{opacity:0;transform:translate(-12px)}95%{opacity:0;transform:translate(12px)}}@keyframes login-server-scene{0%,40%,to{opacity:0;transform:translate(12px)}45%,90%{opacity:1;transform:translate(0)}95%{opacity:0;transform:translate(-12px)}}@keyframes login-bird-send{0%,3%{opacity:0;transform:translate(0)}6%,18%{opacity:.85}22%,to{opacity:0;transform:translate(172px,-47px)}}@keyframes login-bird-receive{0%,19%{opacity:0;transform:scale(.6)}22%{opacity:.8}32%,to{opacity:0;transform:scale(2.2)}}@keyframes login-bird-light{0%,19%,35%,to{opacity:.3}22%,30%{opacity:1}}@keyframes login-bird-confirm{0%,21%,38%,to{opacity:0}25%,33%{opacity:.9}}@keyframes login-server-arrival{0%,44%{opacity:0;transform:translate(-12px)}47%,51%{opacity:1}55%,to{opacity:0;transform:translate(57px)}}@keyframes login-server-led{0%,46%,97%,to{opacity:.25}52%,91%{opacity:1}}@keyframes login-server-record{0%,53%,to{stroke-dashoffset:1px}58%,96%{stroke-dashoffset:0}}@keyframes login-server-record-two{0%,57%,to{stroke-dashoffset:1px}62%,96%{stroke-dashoffset:0}}@keyframes login-server-record-three{0%,61%,to{stroke-dashoffset:1px}66%,96%{stroke-dashoffset:0}}@keyframes login-server-processing{0%,66%{opacity:0;transform:rotate(0)}69%,77%{opacity:.9}80%,to{opacity:0;transform:rotate(360deg)}}@keyframes login-server-chart{0%,77%,to{stroke-dashoffset:1px}86%,96%{stroke-dashoffset:0}}@keyframes login-server-complete{0%,85%,98%,to{opacity:0}88%,94%{opacity:1}}@media (prefers-reduced-motion:reduce){.login-bird *{animation:none}.login-field-scene{opacity:1}.login-server-scene{display:none}.login-bird-packet{opacity:.45;transform:translate(80px,-22px)}.login-bird-received{opacity:.7}}@media (max-width:860px){.login-bird{display:none}}.reception-chart{border:1px solid var(--line);background:var(--surface);border-radius:12px;margin:24px 0;padding:24px}.reception-chart header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.reception-chart h2{margin:0 0 8px;font-size:20px}.reception-chart p,.reception-chart header>span,.reception-chart footer{color:var(--ink-muted);font-size:12px}.reception-scroll{max-height:440px;overflow:auto}.reception-grid{border-spacing:5px;table-layout:fixed;width:100%;min-width:760px}.reception-grid th{padding:8px 0;font-size:11px;font-weight:500}.reception-grid th:first-child{text-align:left;width:100px}.reception-grid button{cursor:pointer;border:1px solid #0000;border-radius:5px;width:100%;height:34px;font-size:11px}.reception-grid button[aria-pressed=true]{outline:2px solid var(--ink);outline-offset:2px}.heat-level-0{background:var(--surface-muted);color:var(--ink-muted)}.heat-level-1{color:#234438;background:#dceae1}.heat-level-2{color:#183e2d;background:#a4c8b3}.heat-level-3{color:#fff;background:#548c70}.heat-level-4{color:#fff;background:#214f3a}.reception-chart footer{flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:18px;display:flex}.reception-note{margin:14px 0 0;line-height:1.6}.delay-bars{gap:8px;display:grid}.delay-bars button{color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;grid-template-columns:100px minmax(0,1fr) 65px;align-items:center;gap:12px;padding:8px;font-size:12px;display:grid}.delay-bars button[aria-pressed=true]{border-color:var(--canopy);background:var(--surface-muted)}.delay-track{background:var(--surface-muted);border-radius:4px;height:22px;overflow:hidden}.delay-track i{background:#548c70;border-radius:4px;height:100%;display:block}.delay-bars strong{text-align:right}.delay-records{flex-wrap:wrap;gap:8px;padding-top:16px;font-size:12px;display:flex}.delay-records>strong{flex-basis:100%}@media (max-width:600px){.reception-chart{padding:16px}.delay-bars button{grid-template-columns:82px minmax(0,1fr) 44px;gap:6px}}.reception-animal-name{color:var(--ink-muted);overflow-wrap:anywhere;margin-top:5px;font-size:11px;line-height:1.4;display:block}.device-request-log-page{color:var(--ink);width:min(100% - 48px,1380px);margin:0 auto;padding:36px 0 64px}.device-request-log-heading{justify-content:space-between;align-items:end;gap:24px;margin-bottom:28px;display:flex}.device-request-log-heading h1{letter-spacing:-.04em;margin:4px 0 12px;font-size:30px}.device-request-log-heading p:last-child{max-width:820px;color:var(--ink-muted);margin:0;font-size:14px;line-height:1.8}.device-request-log-page .small-button{flex-shrink:0;justify-content:center;align-items:center;gap:8px;min-height:42px;display:inline-flex}.device-request-log-filters{align-items:end;gap:12px;margin-bottom:24px;display:flex}.device-request-log-filters label{gap:8px;font-size:12px;font-weight:700;display:grid}.device-request-log-filters input{border:1px solid var(--line);background:var(--surface);width:210px;min-height:42px;color:var(--ink);font:inherit;border-radius:8px;padding:8px 12px}.device-request-log-error{color:var(--error)}.request-ledger{border:1px solid var(--line);background:var(--surface);border-radius:12px;overflow:hidden}.request-ledger-caption{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:18px 22px;display:flex}.request-ledger-caption strong{font-size:14px}.request-ledger-caption span{color:var(--ink-muted);font-size:12px}.request-ledger-scroll{overflow:auto}.request-ledger-table{table-layout:fixed;border-collapse:collapse;text-align:left;width:100%;min-width:880px;font-size:13px}.request-col-time{width:148px}.request-col-sensor,.request-col-status,.request-col-duration{width:100px}.request-col-detail{width:84px}.request-ledger-table th{background:var(--surface-muted);color:var(--ink-muted);white-space:nowrap;padding:13px 18px;font-size:11px;font-weight:700}.request-ledger-table th small{margin-left:5px;font-size:9px}.request-ledger-table td{border-top:1px solid var(--line);vertical-align:middle;padding:17px 18px}.request-ledger-table tbody tr:nth-child(2n){background:color-mix(in srgb,var(--surface-muted)26%,var(--surface))}.request-ledger-table tbody tr:hover,.request-ledger-table tr.is-expanded{background:color-mix(in srgb,var(--canopy)6%,var(--surface))}.request-time{font-variant-numeric:tabular-nums;white-space:nowrap;gap:5px;display:grid}.request-time span{color:var(--ink-muted);font-size:11px}.request-time strong{font:500 14px IBM Plex Mono,monospace}.request-sensor{white-space:nowrap;font:500 13px IBM Plex Mono,monospace}.request-endpoint{align-items:baseline;gap:12px;min-width:0;display:flex}.request-method{border:1px solid var(--line);min-width:42px;color:var(--canopy);border-radius:4px;flex-shrink:0;justify-content:center;padding:4px 5px;font:500 10px IBM Plex Mono,monospace;display:inline-flex}.request-endpoint code{overflow-wrap:anywhere;min-width:0;color:var(--ink);flex:1;font:400 12px/1.7 IBM Plex Mono,monospace}.request-status{border-radius:5px;align-items:center;gap:6px;padding:5px 9px;font:500 12px IBM Plex Mono,monospace;display:inline-flex}.request-status:before{content:"";background:currentColor;border-radius:50%;width:5px;height:5px}.request-status.is-ok{color:var(--canopy);background:color-mix(in srgb,var(--canopy)10%,var(--surface))}.request-status.is-warning{color:var(--warning);background:color-mix(in srgb,var(--warning)10%,var(--surface))}.request-status.is-error{color:var(--error);background:color-mix(in srgb,var(--error)10%,var(--surface))}.request-ledger-table .request-numeric{text-align:right}.request-duration{font-variant-numeric:tabular-nums;white-space:nowrap;font:400 12px IBM Plex Mono,monospace}.request-duration small{color:var(--ink-muted);font-size:10px}.request-expand{min-height:34px;color:var(--canopy);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:4px;align-items:center;gap:3px;padding:4px;font-size:12px;display:flex}.request-expand:hover{background:var(--surface-muted)}.device-request-log-page :is(button,input):focus-visible,.request-ledger-scroll:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.request-body-row td{padding:0}.device-request-log-detail{background:var(--surface-muted);padding:22px}.device-request-log-detail>section+section{border-top:1px solid var(--line);margin-top:24px;padding-top:24px}.device-request-log-detail p{color:var(--ink-muted);margin:12px 0 0;font-size:12px}.device-request-log-detail dl{grid-template-columns:max-content 1fr;gap:10px 24px;margin:18px 0;font-size:13px;display:grid}.device-request-log-detail dt{color:var(--ink-muted)}.device-request-log-detail dd{overflow-wrap:anywhere;margin:0}.request-detail-heading{align-items:center;gap:20px;font-size:12px;display:flex}.request-detail-heading span{color:var(--ink-muted)}.device-request-log-detail pre{border:1px solid var(--line);background:var(--surface);max-height:360px;color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:7px;margin:14px 0 0;padding:16px;font:12px/1.8 IBM Plex Mono,monospace;overflow:auto}.device-request-log-pager{color:var(--ink-muted);justify-content:center;align-items:center;gap:16px;margin-top:24px;font-size:12px;display:flex}.device-request-log-pager button{border:1px solid var(--line);background:var(--surface);min-height:38px;color:var(--ink);font:inherit;cursor:pointer;border-radius:7px;padding:0 14px}.device-request-log-page button:disabled{opacity:.45;cursor:default}@media (max-width:700px){.device-request-log-detail dl{grid-template-columns:1fr;gap:6px}.device-request-log-detail dd{margin-bottom:8px}.request-ledger-scroll{container-type:inline-size}.device-request-log-detail{box-sizing:border-box;width:100cqw;padding:16px;position:sticky;left:0}.device-request-log-page{width:calc(100% - 28px);padding-top:24px}.device-request-log-heading{align-items:start;gap:12px}.device-request-log-heading h1{font-size:25px}.device-request-log-filters{flex-wrap:wrap}.device-request-log-filters label{flex:1;min-width:110px}.device-request-log-filters input{width:100%}.request-ledger-caption{flex-direction:column;align-items:start;padding:16px}.request-detail-heading{flex-direction:column;align-items:start;gap:8px}}.battery-spark{width:100px;height:30px;color:var(--canopy);margin-top:6px;display:block}.admin-users-page .device-admin-heading .primary-button{flex-shrink:0;align-items:center;gap:8px;display:inline-flex}.admin-users-demo{color:var(--ink-muted);font-size:13px}.admin-users-page .secondary-button,.admin-user-dialog .secondary-button{border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;border-radius:7px;padding:10px 14px;font-size:13px}.admin-users-page .secondary-button:hover,.admin-user-dialog .secondary-button:hover{background:var(--surface-muted);border-color:var(--canopy)}.admin-users-page .secondary-button:disabled{opacity:.45;cursor:not-allowed}.admin-users-page .danger-button,.admin-user-dialog .danger-button{border:1px solid color-mix(in srgb,var(--error)45%,var(--line));background:var(--surface);color:var(--error);font:inherit;cursor:pointer;border-radius:7px;padding:10px 14px;font-size:13px}.admin-users-page .danger-button:hover,.admin-user-dialog .danger-button:hover{background:color-mix(in srgb,var(--error)7%,var(--surface))}.admin-users-roster{border:1px solid var(--line);background:var(--surface);border-radius:13px;overflow:hidden}.admin-users-roster>header{justify-content:space-between;align-items:center;gap:16px;padding:24px 26px 0;display:flex}.admin-users-roster h2{letter-spacing:-.04em;align-items:center;gap:10px;margin:0;font-size:23px;display:flex}.admin-users-roster button{justify-content:center;align-items:center;gap:6px;min-height:44px;display:inline-flex}.admin-users-tools{grid-template-columns:minmax(200px,1fr) 180px;gap:16px;padding:24px 26px;display:grid}.admin-users-tools label,.admin-user-dialog label{gap:8px;font-size:13px;font-weight:600;display:grid}.admin-users-tools label>div{border:1px solid var(--line);color:var(--ink-muted);border-radius:7px;align-items:center;gap:8px;padding-left:12px;display:flex}.admin-users-tools input{background:0 0;border:0}.admin-users-tools input,.admin-users-tools select,.admin-user-dialog input{box-sizing:border-box;width:100%;min-width:0;min-height:44px;color:var(--ink);font:inherit;border-radius:7px;padding:10px 12px}.admin-users-tools select,.admin-user-dialog input{border:1px solid var(--line);background:var(--surface)}.admin-users-tools :focus-visible,.admin-user-dialog :focus-visible{outline:2px solid var(--focus);outline-offset:2px}.admin-users-table-wrap{overflow:auto}.admin-users-roster table{border-collapse:collapse;white-space:nowrap;width:100%}.admin-users-roster thead{background:var(--surface-muted)}.admin-users-roster th,.admin-users-roster td{text-align:left;border-bottom:1px solid var(--line);padding:16px 18px;font-size:13px}.admin-users-roster th:first-child{padding-left:26px}.admin-users-roster thead th{color:var(--ink-muted);font-size:12px;font-weight:500}.admin-users-roster tbody th strong{font-size:15px;font-weight:600}.admin-users-roster tbody th small{color:var(--ink-muted);margin-top:4px;font:12px IBM Plex Mono,monospace;display:block}.admin-user-status{border-radius:5px;padding:5px 9px;font-size:12px;font-weight:600;display:inline-block}.admin-user-status.is-active{background:color-mix(in srgb,var(--canopy)12%,var(--surface));color:var(--canopy)}.admin-user-status.is-inactive{background:color-mix(in srgb,var(--warning)12%,var(--surface));color:var(--warning)}.admin-user-actions{gap:8px;display:flex}.admin-user-protected{color:var(--ink-muted);align-items:center;gap:6px;font-size:12px;display:flex}.admin-users-empty{color:var(--ink-muted);padding:40px 26px}.admin-users-pagination{color:var(--ink-muted);justify-content:space-between;align-items:center;gap:14px;padding:18px 26px;font-size:12px;display:flex}.admin-users-pagination>div{gap:8px;display:flex}.admin-user-dialog{color:var(--ink);background:var(--surface);border:1px solid var(--line);box-sizing:border-box;border-radius:14px;width:min(480px,100vw - 32px);max-height:calc(100dvh - 40px);padding:26px;box-shadow:0 20px 80px #0003}.admin-user-dialog::backdrop{background:#13231bc0}.admin-user-dialog header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:22px;display:flex}.admin-user-dialog h2{letter-spacing:-.035em;margin:0;font-size:23px}.admin-user-dialog header button{place-items:center;min-width:44px;min-height:44px;padding:0;display:grid}.admin-user-dialog label{margin-top:18px}.admin-user-hint{color:var(--ink-muted);margin:7px 0;font-size:12px;line-height:1.5}.admin-user-impact{background:var(--surface-muted);border-left:3px solid var(--canopy);color:var(--ink-muted);border-radius:4px;margin:20px 0;padding:14px;font-size:13px;line-height:1.7}.admin-user-form-error{color:var(--error);font-size:13px}.admin-user-dialog footer{justify-content:flex-end;gap:8px;margin-top:24px;display:flex}.admin-user-dialog button{min-height:44px}.admin-user-dialog button:disabled{opacity:.5;cursor:wait}@media (max-width:700px){.admin-users-page .device-admin-heading{flex-direction:column;align-items:start;gap:16px}.admin-users-tools{grid-template-columns:1fr;padding:18px}.admin-users-roster>header{padding:18px 18px 0}.admin-users-roster h2{font-size:19px}.admin-users-pagination{flex-wrap:wrap;padding:16px 18px}.admin-user-dialog{padding:20px}}.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;top:0;left:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:0 0}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{-webkit-transform-origin:0 0;width:1600px;height:1600px}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{width:auto;padding:0;max-width:none!important;max-height:none!important}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:#33b5e566}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{box-sizing:border-box;z-index:800;width:0;height:0}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{z-index:800;pointer-events:visiblePainted;pointer-events:auto;position:relative}.leaflet-top,.leaflet-bottom{z-index:1000;pointer-events:none;position:absolute}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{outline-offset:1px;background:#ddd}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{background:#ffffff80;border:2px dotted #38f}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:.75rem;line-height:1.5}.leaflet-bar{border-radius:4px;box-shadow:0 1px 5px #000000a6}.leaflet-bar a{text-align:center;color:#000;background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;text-decoration:none;display:block}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom:none;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.leaflet-bar a.leaflet-disabled{cursor:default;color:#bbb;background-color:#f4f4f4}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{text-indent:1px;font:700 18px Lucida Console,Monaco,monospace}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{background:#fff;border-radius:5px;box-shadow:0 1px 5px #0006}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{color:#333;background:#fff;padding:6px 10px 6px 6px}.leaflet-control-layers-scrollbar{padding-right:5px;overflow:hidden scroll}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{font-size:1.08333em;display:block}.leaflet-control-layers-separator{border-top:1px solid #ddd;height:0;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{color:#333;padding:0 5px;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{width:1em;height:.6669em;vertical-align:baseline!important;display:inline!important}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{white-space:nowrap;box-sizing:border-box;text-shadow:1px 1px #fff;background:#fffc;border:2px solid #777;border-top:none;padding:2px 5px 1px;line-height:1.1}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{background-clip:padding-box;border:2px solid #0003}.leaflet-popup{text-align:center;margin-bottom:20px;position:absolute}.leaflet-popup-content-wrapper{text-align:left;border-radius:12px;padding:1px}.leaflet-popup-content{min-height:1px;margin:13px 24px 13px 20px;font-size:1.08333em;line-height:1.3}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{pointer-events:none;width:40px;height:20px;margin-top:-1px;margin-left:-20px;position:absolute;left:50%;overflow:hidden}.leaflet-popup-tip{pointer-events:auto;width:17px;height:17px;margin:-10px auto 0;padding:1px;transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{color:#333;background:#fff;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{text-align:center;color:#757575;background:0 0;border:none;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;text-decoration:none;position:absolute;top:0;right:0}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";width:24px;filter:progid:DXImageTransform.Microsoft.Matrix(M11=.707107,M12=.707107,M21=-.707107,M22=.707107);margin:0 auto}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{color:#222;white-space:nowrap;-webkit-user-select:none;user-select:none;pointer-events:none;background-color:#fff;border:1px solid #fff;border-radius:3px;padding:6px;position:absolute;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{pointer-events:none;content:"";background:0 0;border:6px solid #0000;position:absolute}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{margin-left:-6px;left:50%}.leaflet-tooltip-top:before{border-top-color:#fff;margin-bottom:-12px;bottom:0}.leaflet-tooltip-bottom:before{border-bottom-color:#fff;margin-top:-12px;margin-left:-6px;top:0}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{margin-top:-6px;top:50%}.leaflet-tooltip-left:before{border-left-color:#fff;margin-right:-12px;right:0}.leaflet-tooltip-right:before{border-right-color:#fff;margin-left:-12px;left:0}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#17201c;font-synthesis:none;--canvas:#f8f6f2;--surface:#fffefa;--surface-muted:#efeee8;--ink:#17201c;--ink-muted:#66706a;--line:#d9dcd6;--canopy:#3a5b4c;--canopy-deep:#1d382e;--mist:#a8dadc;--error:#a43f37;--warning:#b36a2e;--info:#35747a;--focus:#167276;--sidebar-bg:#1b3229;--sidebar-ink:#f3f1e9;--sidebar-muted:#9eafa5;--scrollbar-track:var(--surface-muted);--scrollbar-thumb:color-mix(in srgb,var(--canopy)58%,var(--surface));--scrollbar-hover:var(--canopy);background:#f8f6f2;font-family:Noto Sans KR,sans-serif}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb)var(--scrollbar-track)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--scrollbar-track);border-radius:10px}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border:2px solid var(--scrollbar-track);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-hover)}::-webkit-scrollbar-corner{background:var(--scrollbar-track)}.device-admin-wrap{width:min(1320px,100% - 48px);margin:0 auto;padding:52px 0 80px}.device-admin-heading{justify-content:space-between;align-items:end;gap:28px;padding-bottom:22px;display:flex}.device-admin-heading .eyebrow{color:var(--canopy);align-items:center;gap:7px;display:flex}.device-admin-heading h1{letter-spacing:-.055em;margin:8px 0 0;font-size:clamp(42px,5.5vw,70px);line-height:1}.device-admin-heading p:last-child{max-width:690px;color:var(--ink-muted);margin:16px 0 0;font-size:15px;line-height:1.6}.device-admin-tabs{border-bottom:1px solid var(--line);gap:24px;display:flex}.device-admin-tabs a{min-height:50px;color:var(--ink-muted);border-bottom:3px solid #0000;align-items:center;padding:0 4px;font-size:15px;font-weight:700;text-decoration:none;display:inline-flex}.device-admin-tabs a:hover{color:var(--ink)}.device-admin-tabs a[aria-current=page]{border-bottom-color:var(--canopy);color:var(--ink)}.device-admin-tabs a:focus-visible{outline:2px solid var(--focus);outline-offset:-4px;border-radius:4px}.device-admin-registration-action{justify-items:end;gap:7px;margin-top:20px;display:grid}.device-admin-registration-action .primary-button{align-items:center;gap:7px;display:inline-flex}.device-admin-registration-action .primary-button:disabled{opacity:.48;cursor:not-allowed}.device-admin-registration-action span{color:var(--ink-muted);font-size:12px}.device-admin-registration{border:1px solid var(--line);background:var(--surface);border-radius:13px;margin-top:16px;padding:26px}.device-admin-registration-heading{justify-content:space-between;align-items:start;gap:20px;margin-bottom:22px;display:flex}.device-admin-registration-heading .eyebrow{color:var(--canopy);margin:0 0 6px}.device-admin-registration-heading h2{letter-spacing:-.04em;margin:0;font-size:26px}.device-admin-registration-heading p:last-child{color:var(--ink-muted);margin:8px 0 0;font-size:13px}.device-admin-registration-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.device-admin-registration-fields label{gap:7px;min-width:0;font-size:13px;font-weight:700;display:grid}.device-admin-registration-fields input,.device-admin-registration-fields select,.device-admin-key-copy input{border:1px solid var(--line);background:var(--surface);width:100%;min-width:0;min-height:44px;color:var(--ink);font:inherit;border-radius:7px;padding:10px 12px}.device-admin-registration-fields input:disabled,.device-admin-registration-fields select:disabled{background:var(--surface-muted);color:var(--ink-muted)}.device-admin-registration-fields :is(input,select):focus-visible,.device-admin-key-copy input:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.device-admin-registration-hint{color:var(--ink-muted);margin:11px 0 0;font-size:12px;line-height:1.5}.device-admin-registration-controls{flex-wrap:wrap;justify-content:end;gap:9px;margin-top:20px;display:flex}.device-admin-key-receipt{border:1px solid color-mix(in srgb,var(--canopy)35%,var(--line));background:color-mix(in srgb,var(--canopy)5%,var(--surface));border-radius:9px;padding:20px}.device-admin-key-receipt>strong{color:var(--canopy);font-size:17px}.device-admin-key-receipt p{color:var(--ink-muted);margin:8px 0 14px;font-size:13px;line-height:1.5}.device-admin-key-receipt label{margin-bottom:7px;font-size:13px;font-weight:700;display:block}.device-admin-key-copy{grid-template-columns:minmax(0,1fr) auto;gap:9px;display:grid}.device-admin-key-copy input{font-family:IBM Plex Mono,monospace;font-size:15px}.device-admin-key-copy button{align-items:center;gap:7px;display:inline-flex}.device-admin-key-receipt .device-admin-key-warning{border-left:3px solid var(--warning);color:var(--ink);margin-bottom:0;padding-left:12px}.device-admin-summary{border:1px solid var(--line);background:var(--surface);border-radius:13px;grid-template-columns:repeat(4,minmax(0,1fr));margin:32px 0 24px;display:grid;overflow:hidden}.device-admin-summary>div{border-right:1px solid var(--line);gap:9px;padding:20px 24px;display:grid}.device-admin-summary>div:last-child{border-right:0}.device-admin-summary>div:first-child{background:var(--canopy-deep);color:#fff}.device-admin-summary span{color:var(--ink-muted);font-size:12px;font-weight:700}.device-admin-summary>div:first-child span{color:var(--mist)}.device-admin-summary strong{font:500 31px IBM Plex Mono,monospace}.device-admin-layout{grid-template-columns:minmax(260px,.9fr) minmax(330px,1.1fr);align-items:start;gap:16px;display:grid}.device-admin-list-panel,.device-admin-detail{border:1px solid var(--line);background:var(--surface);border-radius:13px;min-width:0;min-height:520px;padding:26px}.device-admin-panel-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:22px;display:flex}.device-admin-panel-head .eyebrow{color:var(--canopy);margin:0 0 6px}.device-admin-panel-head h2{letter-spacing:-.045em;margin:0;font-size:26px}.device-admin-filters{grid-template-columns:minmax(0,1fr) 140px;gap:9px;margin-bottom:15px;display:grid}.device-admin-filters input,.device-admin-filters select,.device-admin-assignment select{border:1px solid var(--line);background:var(--surface);width:100%;min-height:42px;color:var(--ink);font:inherit;border-radius:7px;padding:9px 12px}.device-admin-list{gap:7px;max-height:610px;display:grid;overflow:auto}.device-admin-list>button{border:1px solid var(--line);width:100%;min-width:0;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border-radius:9px;justify-content:space-between;gap:12px;padding:16px;display:flex}.device-admin-list>button:hover,.device-admin-list>button.is-selected{border-color:var(--canopy);background:color-mix(in srgb,var(--canopy)7%,var(--surface))}.device-admin-id,.device-admin-meta{gap:6px;min-width:0;display:grid}.device-admin-id{grid-template-columns:18px auto;align-items:center}.device-admin-id small{grid-column:2}.device-admin-id strong{overflow-wrap:anywhere;font:500 16px IBM Plex Mono,monospace}.device-admin-list small,.device-admin-facts dt{color:var(--ink-muted);font-size:12px}.device-admin-meta{justify-items:end}.device-admin-meta em{color:var(--warning);font-size:11px;font-style:normal;font-weight:700}.device-admin-meta em.is-ready{color:var(--canopy)}.device-admin-status{background:var(--surface-muted);color:var(--canopy);border-radius:5px;padding:6px 9px;font-size:11px;font-weight:700}.device-admin-facts{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.device-admin-facts>div{border-bottom:1px solid var(--line);min-width:0;padding:16px 8px 16px 0}.device-admin-facts dt{margin-bottom:8px}.device-admin-facts dd{overflow-wrap:anywhere;margin:0;font-size:14px;font-weight:700}.device-admin-key-action{border:1px solid var(--line);background:color-mix(in srgb,var(--warning)5%,var(--surface));border-radius:9px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;margin-top:26px;padding:20px;display:grid}.device-admin-key-action h3{margin:0;font-size:17px}.device-admin-key-action p{color:var(--ink-muted);margin:7px 0 0;font-size:12px;line-height:1.5}.device-admin-key-action.is-warning{background:color-mix(in srgb,var(--error)5%,var(--surface))}.device-admin-key-action>.small-button,.device-admin-key-actions{white-space:nowrap;flex:none}.device-admin-key-actions{align-items:center;gap:8px;display:flex}.device-admin-key-actions .small-button,.device-admin-key-actions .danger-button{border-radius:8px;justify-content:center;align-items:center;min-height:42px;padding:0 14px;font-size:12px;font-weight:700;transition:background-color .14s,border-color .14s,color .14s;display:inline-flex}.device-admin-key-actions .danger-button{border:1px solid color-mix(in srgb,var(--error)48%,var(--line));background:var(--surface);color:var(--error)}.device-admin-key-actions .danger-button:hover{border-color:var(--error);background:color-mix(in srgb,var(--error)8%,var(--surface))}.device-admin-key-actions :is(.small-button,.danger-button):focus-visible{outline:2px solid var(--focus);outline-offset:2px}.device-admin-detail>.device-admin-key-receipt{margin-top:14px}.device-admin-assignment{border:1px solid var(--line);background:color-mix(in srgb,var(--canopy)4%,var(--surface));border-radius:9px;margin-top:26px;padding:20px}.device-admin-assignment h3{margin:0;font-size:17px}.device-admin-assignment p,.device-admin-assignment small{color:var(--ink-muted);font-size:12px;line-height:1.5}.device-admin-assignment-controls{grid-template-columns:minmax(0,1fr) auto;gap:9px;margin:15px 0 8px;display:grid}.device-admin-links{flex-wrap:wrap;gap:16px;margin-top:20px;font-size:12px;font-weight:700;display:flex}.device-admin-links a{color:var(--canopy)}.sensor-report-slot{grid-template-rows:0fr;transition:grid-template-rows .22s cubic-bezier(.4,0,1,1);display:grid}.sensor-report-slot.is-open{grid-template-rows:1fr;transition-duration:.32s;transition-timing-function:cubic-bezier(.22,1,.36,1)}.sensor-report-slot-inner{opacity:0;min-height:0;transition:opacity .16s,transform .22s;overflow:hidden;transform:translateY(-6px)}.sensor-report-slot.is-open .sensor-report-slot-inner{opacity:1;transform:none}.sensor-report-panel{border:1px solid var(--line);background:var(--surface);border-radius:0 0 12px 12px;margin:0 0 12px;padding:24px}.sensor-report-panel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:start;gap:16px;padding-bottom:18px;display:flex}.sensor-report-panel-head .eyebrow{color:var(--canopy);margin:0 0 6px}.sensor-report-panel-head h2{margin:0;font-size:24px}.sensor-report-heading{justify-content:space-between;align-items:start;gap:12px;margin:18px 0 16px;display:flex}.sensor-report-heading .eyebrow{color:var(--canopy);margin:0 0 6px}.sensor-report-heading small{color:var(--ink-muted);font-size:12px;line-height:1.5;display:block}.sensor-report-tabs{border:1px solid var(--line);background:color-mix(in srgb,var(--canopy)4%,var(--surface));border-radius:8px;gap:6px;padding:4px;display:flex}.sensor-report-tabs button{min-height:40px;color:var(--ink-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:5px;flex:1;font-size:13px;font-weight:700}.sensor-report-tabs button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 4px #0001}.sensor-report-tabs button:disabled{cursor:wait;opacity:.65}.sensor-report-tabs button:focus-visible,.sensor-report-more:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.sensor-report-list{gap:0;margin:14px 0 0;padding:0;list-style:none;display:grid}.sensor-report-list li{border-bottom:1px solid var(--line);gap:5px;padding:14px 2px;display:grid}.sensor-report-primary{justify-content:space-between;align-items:center;gap:8px;font-size:14px;display:flex}.sensor-report-primary span{color:var(--canopy);font-size:12px;font-weight:700}.sensor-report-primary span.is-alert,.sensor-report-error{color:var(--error)}.sensor-report-list time,.sensor-report-list small{color:var(--ink-muted);font-size:12px}.sensor-report-list .sensor-report-error{color:var(--error);overflow-wrap:anywhere}.sensor-report-more{margin:16px auto 0;display:block}.sensor-report-empty{color:var(--ink-muted);text-align:center;padding:28px 6px;font-size:13px}.device-admin-empty{color:var(--ink-muted);text-align:center;padding:34px 6px;font-size:13px}.device-admin-types{border:1px solid var(--line);background:var(--surface);border-radius:13px;margin-top:24px;padding:26px}.device-admin-types-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:start;gap:20px;padding-bottom:18px;display:flex}.device-admin-types-heading h2{letter-spacing:-.045em;margin:3px 0 8px;font-size:26px}.device-admin-types-heading p:last-child{color:var(--ink-muted);margin:0;font-size:13px;line-height:1.5}.device-admin-types-heading .small-button{flex:none;align-items:center;gap:6px;display:inline-flex}.device-admin-type-list{display:grid}.device-admin-type-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(52px,max-content) minmax(0,1fr) 80px auto;align-items:center;gap:15px;padding:15px 0;display:grid}.device-admin-type-row:last-child{border-bottom:0;padding-bottom:0}.device-admin-type-code{background:var(--canopy-deep);color:#fff;border-radius:7px;place-items:center;min-width:42px;height:42px;padding:0 8px;font:500 16px IBM Plex Mono,monospace;display:grid}.device-admin-type-copy{gap:4px;min-width:0;display:grid}.device-admin-type-copy strong{font-size:15px}.device-admin-type-copy span{color:var(--ink-muted);overflow-wrap:anywhere;font-size:12px}.device-admin-type-active,.device-admin-type-inactive{font-size:12px;font-weight:700}.device-admin-type-active{color:var(--canopy)}.device-admin-type-inactive{color:var(--ink-muted)}.device-admin-type-actions{gap:7px;display:flex}.device-admin-type-form{border:1px solid var(--line);background:var(--surface-muted);border-radius:9px;margin-top:20px;padding:20px}.device-admin-type-form h3{margin:0 0 16px;font-size:17px}.device-admin-type-fields{grid-template-columns:90px minmax(150px,1fr) minmax(180px,1.6fr);gap:12px;display:grid}.device-admin-type-fields label{gap:6px;font-size:12px;font-weight:700;display:grid}.device-admin-type-fields input{border:1px solid var(--line);background:var(--surface);width:100%;min-height:42px;color:var(--ink);font:inherit;border-radius:7px;padding:9px 12px}.device-admin-type-fields input:disabled{color:var(--ink-muted);background:var(--surface-muted)}.device-admin-type-toggle{align-items:center;gap:8px;margin-top:16px;font-size:13px;display:inline-flex}.device-admin-type-toggle input{width:17px;height:17px;accent-color:var(--canopy)}.device-admin-type-hint{color:var(--ink-muted);margin:12px 0 0;font-size:12px}.device-admin-type-form-actions{justify-content:end;gap:8px;margin-top:18px;display:flex}@media (max-width:1100px){.device-admin-layout{grid-template-columns:1fr}.device-admin-list{max-height:280px}.device-admin-list-panel,.device-admin-detail{min-height:0}}@media (max-width:620px){.device-admin-wrap{width:min(100% - 28px,1320px);padding-top:28px}.device-admin-heading{display:grid}.device-admin-tabs{gap:16px}.device-admin-tabs a{white-space:nowrap;flex:1;justify-content:center}.device-admin-registration-action{justify-items:start}.device-admin-summary{grid-template-columns:repeat(2,1fr)}.device-admin-summary>div:nth-child(2){border-right:0}.device-admin-summary>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.device-admin-list-panel,.device-admin-detail,.device-admin-types{min-height:0;padding:18px}.device-admin-filters,.device-admin-facts{grid-template-columns:1fr}.device-admin-key-action{grid-template-columns:1fr;align-items:stretch}.device-admin-key-actions{justify-content:stretch}.device-admin-key-actions button{flex:1}.device-admin-assignment-controls{grid-template-columns:1fr}.device-admin-types-heading{flex-wrap:wrap}.device-admin-type-row{grid-template-columns:minmax(42px,max-content) minmax(0,1fr) auto;gap:10px}.device-admin-type-actions{grid-column:2/-1}.device-admin-type-fields{grid-template-columns:1fr}.device-admin-registration{padding:18px}.device-admin-registration-fields,.device-admin-key-copy{grid-template-columns:1fr}.device-admin-key-copy button{justify-content:center;min-height:44px}}.sensor-management-page{min-height:100%}.sensor-management-main{width:min(1320px,100% - 48px);margin:0 auto;padding:52px 0 80px}.sensor-management-heading{border-bottom:1px solid var(--ink);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:28px;padding-bottom:34px;display:grid}.sensor-management-heading .eyebrow,.sensor-inventory-panel .eyebrow{color:var(--canopy)}.sensor-management-heading h1{letter-spacing:-.055em;margin:8px 0 0;font-size:clamp(42px,5.5vw,70px);line-height:1}.sensor-management-heading>div>p:last-child{color:var(--ink-muted);margin:16px 0 0;font-size:15px}.sensor-management-heading .primary-button,.sensor-inventory-action button,.sensor-registration-notice{align-items:center;gap:7px;display:inline-flex}.sensor-registration-notice{border-left:3px solid var(--canopy);background:color-mix(in srgb,var(--mist)14%,var(--surface));color:var(--ink-muted);margin:16px 0 0;padding:12px 14px;font-size:13px}.sensor-inventory-summary{border:1px solid var(--line);border-radius:14px;grid-template-columns:220px minmax(0,1fr);margin-top:34px;display:grid;overflow:hidden}.sensor-registry-seal{background:var(--canopy-deep);color:#fff;grid-template-columns:1fr auto;align-content:space-between;min-height:164px;padding:20px;display:grid}.sensor-registry-seal>span{color:var(--mist);letter-spacing:.12em;grid-column:1/-1;font-family:IBM Plex Mono,monospace;font-size:10px}.sensor-registry-seal>strong{letter-spacing:-.08em;grid-column:1/-1;font-family:IBM Plex Mono,monospace;font-size:54px;font-weight:500}.sensor-inventory-summary dl{grid-template-columns:repeat(4,minmax(0,1fr));margin:0;display:grid}.sensor-inventory-summary dl>div{border-left:1px solid var(--line);flex-direction:column;justify-content:space-between;gap:12px;min-width:0;padding:20px;display:flex}.sensor-inventory-summary dt{color:var(--ink-muted);font-size:12px;font-weight:700}.sensor-inventory-summary dd{margin:0;font-family:IBM Plex Mono,monospace;font-size:clamp(28px,3vw,40px)}.sensor-inventory-panel{border:1px solid var(--line);background:var(--surface);border-radius:14px;margin-top:34px;padding:32px;container:sensor-inventory/inline-size}.sensor-inventory-tools{border-bottom:1px solid var(--line);grid-template-columns:minmax(260px,1fr) 190px auto;align-items:end;gap:10px;margin-top:24px;padding-bottom:22px;display:grid}.sensor-inventory-tools label{min-width:0;color:var(--ink-muted);flex-direction:column;gap:7px;font-size:12px;font-weight:700;display:flex}.sensor-inventory-tools input,.sensor-inventory-tools select{border:1px solid var(--line);background:var(--canvas);width:100%;min-width:0;height:42px;color:var(--ink);border-radius:8px;outline:none;padding:0 12px}.sensor-inventory-tools>span{border:1px solid var(--line);min-width:74px;height:42px;color:var(--ink-muted);border-radius:8px;place-items:center;font-family:IBM Plex Mono,monospace;font-size:11px;display:grid}.sensor-inventory-head,.sensor-inventory-row{grid-template-columns:minmax(130px,1fr) 100px minmax(160px,1.4fr) 64px minmax(150px,.8fr) 88px 280px;align-items:center;gap:12px;display:grid}.sensor-inventory-head{border-bottom:1px solid var(--line);min-height:38px;color:var(--ink-muted);letter-spacing:.08em;padding:0 12px;font-family:IBM Plex Mono,monospace;font-size:9px}.sensor-inventory-row{border-bottom:1px solid var(--line);min-height:88px;padding:14px 12px}.sensor-inventory-row.is-report-open{border-bottom-color:#0000}.sensor-inventory-row:last-child{border-bottom:0}.sensor-inventory-identity{grid-template-columns:9px minmax(0,1fr);gap:4px 9px;min-width:0;display:grid}.sensor-inventory-dot{background:var(--ink-muted);border-radius:50%;grid-row:1;align-self:center;width:8px;height:8px}.sensor-inventory-dot.mode-run{background:#2eb67d}.sensor-inventory-dot.mode-stop{background:#b04641}.sensor-inventory-dot.mode-find{background:var(--warning)}.sensor-inventory-identity strong{text-overflow:ellipsis;min-width:0;font-family:IBM Plex Mono,monospace;font-size:14px;overflow:hidden}.sensor-inventory-identity small{color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;grid-column:2;font-family:IBM Plex Mono,monospace;font-size:10px;overflow:hidden}.sensor-inventory-state{border:1px solid var(--line);color:var(--ink-muted);white-space:nowrap;border-radius:999px;justify-self:start;padding:5px 7px;font-size:10px;font-weight:700}.sensor-inventory-state.is-assigned{border-color:color-mix(in srgb,#2eb67d 38%,var(--line));color:color-mix(in srgb,#2eb67d 74%,var(--ink))}.sensor-inventory-state.is-unassigned{border-color:color-mix(in srgb,var(--warning)42%,var(--line));color:var(--warning)}.sensor-inventory-assignment{flex-direction:column;gap:4px;min-width:0;display:flex}.sensor-inventory-assignment>small,.sensor-inventory-value>small{color:var(--ink-muted);letter-spacing:.06em;font-family:IBM Plex Mono,monospace;font-size:9px;display:none}.sensor-inventory-assignment strong,.sensor-inventory-assignment span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sensor-inventory-assignment strong{font-size:12px}.sensor-inventory-assignment span{color:var(--ink-muted);font-size:11px}.sensor-inventory-value{flex-direction:column;gap:4px;min-width:0;font-size:11px;display:flex}.sensor-inventory-value strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sensor-inventory-sync{gap:5px;line-height:1.5}.sensor-inventory-sync .sensor-inventory-revision{overflow-wrap:anywhere;white-space:normal;font-family:IBM Plex Mono,monospace;overflow:visible}.sensor-inventory-sync-label{overflow-wrap:anywhere;word-break:keep-all;font-weight:600}.sensor-inventory-value.mode-run{color:color-mix(in srgb,#2eb67d 74%,var(--ink))}.sensor-inventory-value.mode-stop,.sensor-inventory-value.is-syncing{color:var(--warning)}.sensor-inventory-row time{color:var(--ink-muted);font-family:IBM Plex Mono,monospace;font-size:10px}.sensor-inventory-action{flex-wrap:nowrap;justify-content:flex-end;gap:6px;min-width:0;display:flex;overflow-x:auto}.sensor-inventory-action>span{color:var(--ink-muted);font-size:10px}.sensor-inventory-action button{white-space:nowrap;flex-shrink:0;justify-content:center}.sensor-inventory-empty{min-height:350px}.sensor-registration-dialog>p:nth-of-type(2){color:var(--ink-muted);margin:-14px 0 20px;font-size:13px;line-height:1.65}.sensor-registration-error{color:var(--error);margin:12px 0 0;font-size:12px}.sensor-management-tabs{border:1px solid var(--line);background:var(--surface-muted);border-radius:10px;gap:4px;width:fit-content;margin-top:22px;padding:4px;display:flex}.sensor-management-tabs button{min-height:38px;color:var(--ink-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:7px;padding:0 14px;font-size:13px;font-weight:700;display:inline-flex}.sensor-management-tabs button[aria-current=page]{background:var(--surface);color:var(--canopy);box-shadow:0 1px 5px #00000014}.sensor-registration-dialog{max-height:calc(100vh - 40px);overflow-y:auto}.sensor-registration-dialog .dialog-description{color:var(--ink-muted);margin:-14px 0 20px;font-size:13px;line-height:1.65}.sensor-registration-dialog .dialog-actions{justify-content:flex-end;margin-top:24px}.sensor-registration-dialog .dialog-actions>button{justify-content:center;align-items:center;min-height:44px;padding:0 16px;font-size:12px;display:inline-flex}.sensor-configuration-fields{grid-template-columns:1fr 1fr;gap:0 12px;display:grid}.upload-schedule,.sensor-settings-panel .upload-schedule{border:1px solid var(--line);background:color-mix(in srgb,var(--canopy)4%,var(--surface));border-radius:9px;min-width:0;margin:16px 0 0;padding:16px}.upload-schedule legend,.sensor-settings-panel .upload-schedule legend{color:var(--ink);padding:0 5px;font-size:13px;font-weight:700}.upload-schedule>p,.upload-schedule>small{color:var(--ink-muted);margin:0 0 12px;font-size:12px;line-height:1.5;display:block}.upload-schedule>small{margin:8px 0 14px}.upload-schedule .upload-schedule-warning{color:var(--error);margin:0}.upload-schedule-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.upload-schedule label{min-width:0;color:var(--ink-muted);flex-direction:column;gap:7px;font-size:12px;font-weight:700;display:flex}.upload-schedule input,.upload-schedule select{border:1px solid var(--line);background:var(--canvas);width:100%;height:44px;color:var(--ink);font:inherit;border-radius:8px;padding:0 10px}.upload-schedule-times{gap:9px;display:grid}.upload-schedule-times>div{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;display:grid}.upload-schedule-times>button{justify-self:start}.sensor-configuration-options{border:0;min-width:0;margin:22px 0 0;padding:0}.sensor-configuration-options legend{color:var(--ink-muted);font-size:12px;font-weight:700}.sensor-configuration-options>div{grid-template-columns:1fr 1fr;gap:8px;display:grid}.sensor-registration-dialog .sensor-configuration-options label{border:1px solid var(--line);min-height:42px;color:var(--ink);cursor:pointer;border-radius:8px;flex-direction:row;align-items:center;gap:9px;margin-top:8px;padding:0 11px;font-size:13px}.sensor-registration-dialog .sensor-configuration-options input{width:16px;height:16px;accent-color:var(--canopy);margin:0;padding:0}.sensor-preset-lock-note{border-left:3px solid var(--info);background:color-mix(in srgb,var(--info)8%,var(--surface));color:var(--ink-muted);align-items:center;gap:7px;margin:14px 0 0;padding:10px 12px;font-size:12px;line-height:1.5;display:flex}.sensor-registration-dialog :disabled{cursor:not-allowed;opacity:.62}.sensor-registration-dialog .sensor-configuration-options label:has(input:disabled){cursor:not-allowed}.sensor-preset-panel{border:1px solid var(--line);background:var(--surface);border-radius:14px;margin-top:34px;padding:32px}.sensor-preset-panel .eyebrow{color:var(--canopy)}.sensor-preset-intro{color:var(--ink-muted);margin:16px 0 0;font-size:13px}.sensor-preset-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:24px;display:grid}.sensor-preset-card{border:1px solid var(--line);background:var(--canvas);border-radius:12px;min-width:0;padding:22px}.sensor-preset-card header,.sensor-preset-card footer{justify-content:space-between;align-items:center;gap:16px;display:flex}.sensor-preset-card header small{color:var(--canopy);letter-spacing:.1em;font-family:IBM Plex Mono,monospace;font-size:9px}.sensor-preset-card h3{margin:5px 0 0;font-size:21px}.sensor-preset-card header>strong{color:var(--ink-muted);white-space:nowrap;font-size:12px}.sensor-preset-card dl{border-block:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));margin:20px 0 0;display:grid}.sensor-preset-card dl>div{border-left:1px solid var(--line);padding:14px 10px}.sensor-preset-card dl>div:first-child{border-left:0}.sensor-preset-card dt{color:var(--ink-muted);font-size:10px}.sensor-preset-card dd{margin:5px 0 0;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:500}.sensor-preset-config{flex-wrap:wrap;align-content:flex-start;align-items:flex-start;gap:6px;min-height:56px;padding:14px 0;display:flex}.sensor-preset-config span{border:1px solid color-mix(in srgb,var(--canopy)40%,var(--line));color:var(--canopy);border-radius:999px;padding:5px 7px;font-size:10px;font-weight:700}.sensor-preset-card footer{border-top:1px solid var(--line);padding-top:14px}.sensor-preset-card footer time{color:var(--ink-muted);font-family:IBM Plex Mono,monospace;font-size:10px}.sensor-preset-card footer>div{gap:6px;display:flex}.sensor-preset-card button{align-items:center;gap:5px;display:inline-flex}.danger-button{color:var(--error)}.user-management-summary dl{grid-template-columns:repeat(3,minmax(0,1fr))}.user-registry-seal{background:linear-gradient(145deg,transparent 62%,#a8dadc33 62%),var(--canopy-deep)}.user-management-panel .eyebrow{color:var(--canopy)}.user-management-head,.user-management-row{grid-template-columns:minmax(150px,1fr) minmax(160px,1.15fr) minmax(240px,1.8fr) 80px 220px;align-items:center;gap:16px;display:grid}.user-management-head{border-bottom:1px solid var(--line);min-height:38px;color:var(--ink-muted);letter-spacing:.08em;padding:0 12px;font-family:IBM Plex Mono,monospace;font-size:9px}.user-management-row{border-bottom:1px solid var(--line);min-height:104px;padding:16px 12px}.user-management-row:last-child{border-bottom:0}.user-management-identity{grid-template-columns:38px minmax(0,1fr);gap:2px 10px;min-width:0;display:grid}.user-management-identity>span{background:var(--canopy-deep);width:38px;height:38px;color:var(--mist);border-radius:50%;grid-row:1/3;place-items:center;font-family:IBM Plex Mono,monospace;font-size:11px;display:grid}.user-management-identity strong{text-overflow:ellipsis;align-self:end;font-family:IBM Plex Mono,monospace;font-size:13px;overflow:hidden}.user-management-identity small{color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.user-management-row>p{color:var(--ink-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:12px;line-height:1.55;display:-webkit-box;overflow:hidden}.user-project-access{min-width:0}.user-project-access>small{color:var(--ink-muted);letter-spacing:.06em;font-family:IBM Plex Mono,monospace;font-size:9px;display:none}.user-project-access>div{flex-wrap:wrap;gap:5px;display:flex}.user-project-access span{border:1px solid color-mix(in srgb,var(--canopy)38%,var(--line));max-width:100%;color:var(--canopy);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;padding:5px 7px;font-size:10px;font-weight:700;overflow:hidden}.user-project-access>strong{color:var(--warning);font-size:11px}.user-management-row>time{color:var(--ink-muted);font-family:IBM Plex Mono,monospace;font-size:10px}.user-management-actions{justify-content:flex-end;gap:5px;display:flex}.user-management-actions button{white-space:nowrap;justify-content:center;align-items:center;gap:5px;display:inline-flex}.user-management-actions .danger-button{width:36px;padding-inline:0}.user-account-dialog .dialog-actions{justify-content:flex-end;margin-top:24px}.user-field-hint{color:var(--ink-muted);align-self:flex-end;margin-top:-24px;font-size:10px;font-weight:400}.user-dialog-description{color:var(--ink-muted);margin:-14px 0 20px;font-size:13px;line-height:1.6}.user-account-dialog .user-project-select-all{margin-top:0}.user-project-select-list{gap:8px;max-height:320px;margin-top:12px;display:grid;overflow-y:auto}.user-account-dialog .user-project-select-list label{border:1px solid var(--line);cursor:pointer;border-radius:9px;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:12px;min-height:72px;margin:0;padding:12px;display:grid}.user-account-dialog .user-project-select-list label.is-selected{border-color:var(--canopy);background:color-mix(in srgb,var(--canopy)7%,var(--surface))}.user-account-dialog .user-project-select-list input{width:16px;height:16px;accent-color:var(--canopy);margin:0;padding:0}.user-project-select-list label>span{flex-direction:column;gap:3px;min-width:0;display:flex}.user-project-select-list strong,.user-project-select-list small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.user-project-select-list strong{color:var(--ink);font-size:13px}.user-project-select-list small{color:var(--ink-muted);font-size:11px;font-weight:400}@container sensor-inventory (width<=1180px){.sensor-inventory-head{display:none}.sensor-inventory-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"identity action""state state""assignment assignment""mode sync""updated updated";gap:13px 18px;padding:20px 8px}.sensor-inventory-identity{grid-area:identity}.sensor-inventory-state{grid-area:state}.sensor-inventory-assignment{grid-area:assignment}.sensor-inventory-value:nth-of-type(2){grid-area:mode}.sensor-inventory-value:nth-of-type(3){grid-area:sync}.sensor-inventory-row time{grid-area:updated}.sensor-inventory-action{grid-area:action}.sensor-inventory-assignment>small,.sensor-inventory-value>small{display:block}}@media (max-width:900px){.sensor-inventory-summary{grid-template-columns:180px minmax(0,1fr)}.sensor-inventory-summary dl{grid-template-columns:1fr 1fr}.sensor-inventory-summary dl>div:nth-child(n+3){border-top:1px solid var(--line)}.sensor-preset-list{grid-template-columns:1fr}.user-management-head{display:none}.user-management-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"identity actions""memo memo""projects projects""updated updated";gap:14px 18px;padding:20px 8px}.user-management-identity{grid-area:identity}.user-management-row>p{grid-area:memo}.user-project-access{grid-area:projects}.user-project-access>small{margin-bottom:7px;display:block}.user-management-row>time{grid-area:updated}.user-management-actions{grid-area:actions}}@media (max-width:560px){.sensor-management-main{width:calc(100% - 24px);padding:28px 0 56px}.sensor-management-heading{flex-direction:column;align-items:flex-start;gap:24px;display:flex}.sensor-management-heading h1{font-size:42px}.sensor-management-heading .primary-button{justify-content:center;width:100%}.sensor-management-tabs{width:100%}.sensor-management-tabs button{flex:1;justify-content:center}.sensor-inventory-summary{grid-template-columns:1fr}.sensor-registry-seal{min-height:140px}.sensor-inventory-summary dl>div{border-left:0;min-height:104px}.sensor-inventory-summary dl>div:nth-child(2n){border-left:1px solid var(--line)}.sensor-inventory-panel{margin-inline:-12px;padding:26px 18px}.sensor-inventory-tools{grid-template-columns:1fr}.sensor-inventory-tools>span{justify-self:stretch}.sensor-inventory-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"identity identity""state updated""assignment assignment""mode sync""action action"}.sensor-inventory-row time{justify-self:end}.sensor-inventory-action{justify-content:stretch}.sensor-inventory-action button{flex:1;width:auto}.sensor-report-panel{padding:18px}.sensor-preset-panel{margin-inline:-12px;padding:26px 18px}.sensor-preset-card{padding:18px}.sensor-preset-card footer{flex-direction:column;align-items:flex-start}.sensor-preset-card footer>div{width:100%}.sensor-preset-card footer button{flex:1;justify-content:center;width:auto}.sensor-configuration-fields,.upload-schedule-grid,.sensor-configuration-options>div{grid-template-columns:1fr}.user-management-summary dl{grid-template-columns:1fr 1fr}.user-management-summary dl>div:last-child{border-top:1px solid var(--line);border-left:0;grid-column:1/-1}.user-management-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"identity identity""memo memo""projects projects""updated updated""actions actions"}.user-management-actions{grid-template-columns:1fr 1fr 40px;display:grid}.user-management-actions button,.user-management-actions .danger-button{width:100%}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--canvas:#121412;--surface:#1a1e1b;--surface-muted:#242a26;--ink:#f0f1ec;--ink-muted:#a9b2ab;--line:#364039;--canopy:#86aa98;--canopy-deep:#213b31;--mist:#a8dadc;--error:#ffaaa2;--warning:#e4a36c;--info:#8bcbd0;--focus:#a8dadc;--sidebar-bg:#0d120f;--sidebar-ink:#f0f1ec;--sidebar-muted:#94a198}*{box-sizing:border-box}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}html,body,#root{min-width:320px;min-height:100%;margin:0}#root{zoom:1.25}@media (max-width:500px){#root{min-width:0}}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled,input:disabled{cursor:not-allowed}.login-page{background:radial-gradient(circle at 89% 8%,color-mix(in srgb,var(--mist)22%,transparent),transparent 28%),var(--canvas);min-height:100dvh;color:var(--ink);padding:24px}#root:has(.login-page){zoom:1}.login-shell{border:1px solid var(--line);background:var(--surface);border-radius:32px;grid-template-columns:minmax(380px,.92fr) minmax(460px,1.08fr);width:min(1180px,100%);min-height:calc(100dvh - 48px);margin:0 auto;display:grid;overflow:hidden;box-shadow:0 32px 90px #17201c1a}.observation-panel{color:#f4f2e9;background:linear-gradient(145deg,#ffffff0a,#0000 42%),#203c31;flex-direction:column;min-height:0;padding:clamp(24px,4dvh,44px) clamp(24px,3vw,48px);display:flex;position:relative;overflow:clip}.observation-panel:after{content:"";border:1px solid #a8dadc38;border-radius:50%;width:430px;height:430px;position:absolute;bottom:-160px;right:-120px;box-shadow:0 0 0 56px #a8dadc0d,0 0 0 112px #a8dadc08}.brand-lockup,.mobile-brand{letter-spacing:-.02em;align-items:center;gap:12px;font-weight:700;display:flex}.brand-mark{flex:0 0 38px;width:38px;height:38px;display:block}.observation-copy{z-index:1;margin-top:clamp(24px,6dvh,72px);position:relative}.eyebrow{letter-spacing:.15em;margin:0 0 16px;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:500}.observation-copy .eyebrow{color:var(--mist)}.observation-copy h1{letter-spacing:-.055em;max-width:520px;margin:0;font-size:clamp(32px,3.6vw,56px);line-height:1.14}.panel-description{color:#f4f2e9b8;max-width:390px;margin:24px 0 0;font-size:15px;line-height:1.8}.flight-trace{z-index:1;flex-shrink:0;width:calc(100% + 24px);height:clamp(80px,14dvh,150px);margin:auto -12px 0;position:relative;overflow:visible}.trace-grid{fill:none;stroke:#ffffff14;stroke-width:1px}.trace-line{fill:none;stroke:var(--mist);stroke-dasharray:9 7;stroke-linecap:round;stroke-width:2px;animation:1.2s ease-out both reveal-trace}.trace-points circle{fill:#203c31;stroke:#f4f2e9;stroke-width:2px}.trace-points .trace-current{fill:var(--mist);stroke:var(--mist)}.trace-labels{fill:#f4f2e97a;font-family:IBM Plex Mono,monospace;font-size:11px}.panel-meta{z-index:1;color:#f4f2e985;letter-spacing:.08em;border-top:1px solid #ffffff24;justify-content:space-between;padding-top:18px;font-family:IBM Plex Mono,monospace;font-size:9px;display:flex;position:relative}.form-panel{background:var(--surface);flex-direction:column;align-items:center;min-height:0;padding:56px clamp(28px,5vw,80px) 24px;display:flex;position:relative}.login-form{width:min(420px,100%);margin-block:auto}.mobile-brand{display:none}.form-heading{margin-bottom:38px}.form-heading .eyebrow{color:var(--canopy)}.form-heading h2{letter-spacing:-.05em;margin:0;font-size:clamp(30px,3vw,42px);line-height:1.2}.form-heading>p:last-child{color:var(--ink-muted);margin:12px 0 0;font-size:14px}.account-type{border:1px solid var(--line);background:var(--surface-muted);border-radius:16px;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 28px;padding:5px;display:grid}.account-type legend{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.account-type label{min-width:0;color:var(--ink-muted);border:1px solid #0000;border-radius:11px;flex-direction:column;padding:13px 14px;transition:background-color .16s,border-color .16s,color .16s;display:flex}.account-type label.is-selected{border-color:color-mix(in srgb,var(--canopy)24%,var(--line));background:var(--surface);color:var(--ink);box-shadow:0 5px 14px #17201c12}.account-type input{opacity:0;position:absolute}.account-type label:has(input:focus-visible){outline:3px solid color-mix(in srgb,var(--focus)34%,transparent);outline-offset:2px}.account-type span{font-size:14px;font-weight:700}.account-type small{margin-top:3px;font-size:10px}.field-group{flex-direction:column;margin-top:20px;display:flex}.field-group>label{margin-bottom:8px;font-size:13px;font-weight:700}.field-group input{border:1px solid var(--line);background:var(--surface);width:100%;height:54px;color:var(--ink);border-radius:12px;outline:none;padding:0 16px;transition:border-color .16s,box-shadow .16s}.field-group input:focus{border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus)18%,transparent)}.field-group input[aria-invalid=true]{border-color:var(--error)}.password-field{position:relative}.password-field input{padding-right:72px}.password-field button{color:var(--ink-muted);background:0 0;border:0;border-radius:8px;padding:8px 10px;font-size:12px;font-weight:700;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.password-field button:hover{background:var(--surface-muted);color:var(--ink)}.field-error{color:var(--error);margin-top:7px;font-size:12px}.status-message{border:1px solid color-mix(in srgb,var(--error)36%,transparent);background:color-mix(in srgb,var(--error)8%,transparent);color:var(--error);border-radius:12px;align-items:flex-start;gap:10px;margin-top:20px;padding:13px 14px;font-size:12px;line-height:1.55;display:flex}.status-message span{border:1px solid;border-radius:50%;flex:0 0 20px;place-items:center;width:20px;height:20px;font-family:IBM Plex Mono,monospace;display:grid}.status-message p{margin:0}.submit-button{border:1px solid var(--canopy-deep);background:var(--canopy-deep);color:#fff;border-radius:12px;justify-content:space-between;align-items:center;width:100%;height:56px;margin-top:28px;padding:0 20px;font-size:14px;font-weight:700;transition:background-color .16s,border-color .16s;display:flex}.submit-button:hover:not(:disabled){background:#2d5343;border-color:#2d5343}.submit-button:focus-visible,.theme-toggle:focus-visible,.password-field button:focus-visible,.arrival-page button:focus-visible,.app-page button:focus-visible,.app-page input:focus-visible,.app-page select:focus-visible,.app-page textarea:focus-visible{outline:3px solid color-mix(in srgb,var(--focus)38%,transparent);outline-offset:3px}.submit-button:disabled{opacity:.66}.spinner{border:2px solid #ffffff5c;border-top-color:#fff;border-radius:50%;width:17px;height:17px;animation:.7s linear infinite spin}.mockup-note{color:var(--ink-muted);letter-spacing:.04em;text-align:center;align-self:center;margin:28px 0 0;font-family:IBM Plex Mono,monospace;font-size:9px}.prepass-button{border:1px dashed color-mix(in srgb,var(--canopy)48%,var(--line));background:color-mix(in srgb,var(--canopy)6%,var(--surface));width:100%;color:var(--ink);text-align:left;border-radius:12px;grid-template-columns:1fr auto;gap:3px 16px;padding:12px 14px;display:grid}.prepass-button span,.prepass-button small{color:var(--ink-muted);letter-spacing:.08em;font-family:IBM Plex Mono,monospace;font-size:9px}.prepass-button strong{color:var(--canopy);grid-area:1/2/3;align-self:center;font-family:IBM Plex Mono,monospace;font-size:12px}.optional-label{color:var(--canopy);margin-left:6px;font-weight:500}.theme-toggle{z-index:3;border:1px solid var(--line);background:color-mix(in srgb,var(--surface)88%,transparent);height:34px;color:var(--ink-muted);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:999px;align-items:center;gap:8px;padding:0 11px;font-family:IBM Plex Mono,monospace;font-size:10px;display:flex;position:fixed;top:38px;right:38px}.arrival-page{background:var(--canvas);min-height:100vh;color:var(--ink);place-items:center;padding:24px;display:grid}.arrival-page section{border:1px solid var(--line);background:var(--surface);border-radius:24px;width:min(620px,100%);padding:48px}.arrival-page h1{letter-spacing:-.05em;margin:0;font-size:clamp(28px,5vw,48px)}.arrival-page p:not(.eyebrow){color:var(--ink-muted);margin:18px 0 28px}.arrival-page button{border:1px solid var(--line);background:var(--surface-muted);color:var(--ink);border-radius:10px;padding:12px 16px;font-weight:700}.app-page{background:var(--canvas);min-height:100vh;color:var(--ink)}.app-shell{background:var(--canvas);min-height:100vh}.app-shell-content{min-width:0;min-height:100vh;margin-left:236px;padding-top:68px}.top-app-bar{z-index:50;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface)95%,transparent);height:68px;color:var(--ink);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);grid-template-columns:236px minmax(0,1fr) auto;align-items:center;display:grid;position:fixed;top:0;left:0;right:0}.appbar-brand-area{border-right:1px solid var(--line);align-items:center;gap:10px;height:100%;padding:0 18px;display:flex}.mobile-menu-button{display:none}.appbar-brand{color:var(--ink);align-items:center;gap:10px;font-size:14px;font-weight:800;text-decoration:none;display:flex}.appbar-context{flex-direction:column;gap:3px;min-width:0;padding:0 24px;display:flex}.appbar-context span{color:var(--canopy);letter-spacing:.1em;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:500}.appbar-context strong{text-overflow:ellipsis;white-space:nowrap;font-size:17px;overflow:hidden}.appbar-context-meta{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.appbar-context-meta>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.appbar-timezone{color:var(--ink-muted);white-space:nowrap;flex-shrink:0;font-size:11px;line-height:14px}.appbar-timezone-mobile{display:none}.appbar-actions>.appbar-timezone{margin-right:12px}.appbar-actions{align-items:center;gap:7px;padding-right:20px;display:flex}.appbar-user{flex-direction:column;align-items:flex-end;gap:2px;margin-right:6px;display:flex}.appbar-user strong{font-size:12px}.appbar-user small{color:var(--ink-muted);font-size:9px}.appbar-actions button{border:1px solid var(--line);background:var(--surface);min-height:34px;color:var(--ink-muted);border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 11px;font-size:10px;font-weight:700;display:inline-flex}.app-sidebar{z-index:30;background:var(--sidebar-bg);width:236px;color:var(--sidebar-ink);flex-direction:column;padding:22px 18px 18px;display:flex;position:fixed;top:68px;bottom:0;left:0;overflow-y:auto}.sidebar-head{justify-content:space-between;align-items:center;display:flex}.sidebar-head>span{color:var(--sidebar-muted);letter-spacing:.12em;font-family:IBM Plex Mono,monospace;font-size:9px}.sidebar-close{display:none}.sidebar-nav{flex-direction:column;gap:4px;margin-top:22px;display:flex}.sidebar-nav-group{gap:4px;display:grid}.sidebar-nav-group+.sidebar-nav-group{border-top:1px solid #f3f1e91f;margin-top:15px;padding-top:16px}.sidebar-nav-heading{color:var(--sidebar-muted);letter-spacing:.04em;align-items:center;gap:7px;margin:0 11px 6px;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:600;display:flex}.sidebar-nav-group.is-admin{background:#a8dadc0d;border:1px solid #a8dadc47;border-radius:12px;padding:16px 6px 8px}.sidebar-nav-group.is-admin .sidebar-nav-heading,.sidebar-nav-group.is-admin .sidebar-nav-mark{color:var(--mist)}.sidebar-nav a,.sidebar-nav button{-moz-column-gap:8px;width:100%;min-height:46px;color:var(--sidebar-muted);text-align:left;background:0 0;border:0;border-radius:8px;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:2px 8px;padding:8px 11px;font-size:13px;font-weight:700;text-decoration:none;display:grid;position:relative}.sidebar-nav a:hover{color:var(--sidebar-ink);background:#ffffff0f}.sidebar-nav a.is-active,.sidebar-nav button.is-active{color:var(--sidebar-ink);background:#a8dadc1f}.sidebar-nav a.is-section-active{color:var(--sidebar-ink)}.sidebar-subnav{border-left:1px solid #a8dadc3d;gap:2px;margin:0 0 4px 21px;padding-left:10px;display:grid}.sidebar-subnav a{min-height:44px;font-size:12px;font-weight:600}.sidebar-subnav .sidebar-nav-mark{border:0}.sidebar-subnav a.is-active:before{left:-11px}.sidebar-nav a.is-active:before,.sidebar-nav button.is-active:before{background:var(--mist);content:"";border-radius:2px;width:2px;position:absolute;top:9px;bottom:9px;left:0}.sidebar-nav button:disabled{cursor:default;opacity:.48}.sidebar-nav button.is-active:disabled{opacity:1}.sidebar-nav-mark{border:1px solid;border-radius:6px;place-items:center;width:22px;height:22px;font-family:IBM Plex Mono,monospace;font-size:10px;display:grid}.sidebar-nav-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}:is(.sidebar-nav a:has(>small) .sidebar-nav-mark,.sidebar-nav button:has(>small) .sidebar-nav-mark){grid-row:1/3}.sidebar-nav small{min-width:0;max-width:100%;color:var(--sidebar-muted);text-overflow:ellipsis;white-space:nowrap;grid-area:2/2;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:400;overflow:hidden}.sidebar-footer{border-top:1px solid #f3f1e91f;margin-top:auto;padding-top:16px}.sidebar-company{color:var(--sidebar-ink);flex-direction:column;align-items:flex-start;gap:7px;text-decoration:none;display:flex}.sidebar-company img{opacity:.82;width:150px;height:auto;transition:opacity .16s}.sidebar-company:hover img{opacity:1}.sidebar-company span{align-items:center;gap:4px;font-size:10px;font-weight:700;display:inline-flex}.sidebar-company small{color:var(--sidebar-muted);font-family:IBM Plex Mono,monospace;font-size:8px;line-height:1.45}.sidebar-mobile-actions{display:none}.appbar-brand:focus-visible,.appbar-actions button:focus-visible,.sidebar-company:focus-visible,.sidebar-mobile-actions button:focus-visible,.sidebar-nav a:focus-visible,.sidebar-close:focus-visible,.mobile-menu-button:focus-visible{outline:3px solid color-mix(in srgb,var(--mist)52%,transparent);outline-offset:2px}.sidebar-overlay{display:none}.app-shell .eyebrow,.app-shell .small-button,.app-shell .project-actions button,.app-shell .primary-button{font-size:12px}.app-shell .section-heading>p,.app-shell .section-heading>span,.app-shell .project-heading p:last-child{font-size:13px}.app-shell .status-label,.app-shell .map-legend,.app-shell .coordinate{font-size:10px}.app-shell .sensor-head{font-size:9px}.app-shell .sensor-status-row strong{font-size:13px}.app-shell .sensor-status-row small,.app-shell .attention-list small,.app-shell .ledger-head{font-size:10px}.app-shell .search-field,.app-shell .project-row time{font-size:11px}.app-shell .project-summary small{font-size:13px}.app-shell .metric small,.app-shell .location-meta,.app-shell .sensor-map-popup dt,.app-shell .sensor-map-popup footer{font-size:10px}.app-shell .sensor-map-popup dd,.app-shell .sensor-map-popup header small{font-size:11px}.project-actions,.dialog-actions{align-items:center;gap:8px;display:flex}.overview-main{width:min(1320px,100% - 48px);margin:0 auto;padding:48px 0 96px}.overview-heading{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:28px;padding-bottom:36px;display:grid}.back-button{border:0;border-bottom:1px solid var(--line);color:var(--ink-muted);background:0 0;grid-column:1/-1;justify-self:start;padding:0 0 5px;font-size:12px;font-weight:700}.overview-title .eyebrow,.section-heading .eyebrow{color:var(--canopy)}.overview-title h1{letter-spacing:-.065em;overflow-wrap:anywhere;text-wrap:balance;max-width:760px;margin:0;font-size:clamp(42px,5.5vw,72px);line-height:1.05}.overview-title>p:last-child{color:var(--ink-muted);margin:15px 0 0;font-size:13px}.update-control{align-items:flex-end;gap:14px;display:flex}.update-control>span{color:var(--ink-muted);text-align:right;font-family:IBM Plex Mono,monospace;font-size:9px;line-height:1.5}.update-control strong{color:var(--ink);font-weight:500}.observation-line,.attention-panel,.location-panel,.sensor-status{border-top:1px solid var(--ink)}.observation-line{background:var(--canopy-deep);color:#f5f3eb;padding:30px 32px 26px;overflow:hidden}.observation-line .section-heading .eyebrow{color:var(--mist)}.section-heading{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.section-heading h2{letter-spacing:-.04em;margin:0;font-size:clamp(22px,3vw,30px)}.section-heading>p,.section-heading>span{color:var(--ink-muted);margin:3px 0 0;font-size:11px}.observation-line .section-heading>p{color:#f5f3eb94}.signal-distribution{gap:5px;margin-top:24px;display:grid}.signal-distribution>button{color:#f5f3eb;cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:5px;grid-template-columns:92px minmax(120px,1fr) 28px 64px;align-items:center;gap:12px;min-height:38px;padding:7px 9px;display:grid}.signal-distribution>button:hover,.signal-distribution>button.is-selected{background:#a8dadc14;border-color:#a8dadc52}.signal-distribution>button:focus-visible,.signal-range-list button:focus-visible{outline:2px solid var(--mist);outline-offset:2px}.signal-distribution>button.is-alert{color:#f4a985}.signal-distribution>button>span:first-child{font-weight:700}.signal-distribution>button strong,.signal-distribution>button small{font-family:IBM Plex Mono,monospace}.signal-distribution>button small{color:currentColor;white-space:nowrap;font-size:8px}.signal-distribution-track{background:#f5f3eb1a;height:8px;overflow:hidden}.signal-distribution-track i{background:var(--mist);height:100%;display:block}.signal-distribution .is-alert .signal-distribution-track i{background:#f4a985}.signal-status-summary{color:#f5f3eb94;border-bottom:1px solid #f5f3eb1f;flex-wrap:wrap;gap:8px 18px;padding:14px 9px;font-size:9px;display:flex}.signal-status-summary strong{color:#f5f3eb;margin-left:4px;font-family:IBM Plex Mono,monospace}.signal-range-detail{border:1px solid #f5f3eb29;border-radius:7px;margin-top:12px;padding:12px 14px}.signal-range-detail>div:first-child{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.signal-range-detail h3,.signal-range-detail p{margin:0}.signal-range-detail h3{color:#f4a985;font-size:12px}.signal-range-detail>div:first-child>span,.signal-range-detail>p{color:#f5f3eb7a;font-size:9px}.signal-range-detail>p{text-align:center;padding:18px 0 6px}.signal-range-list{margin-top:8px;display:grid}.signal-range-list button{color:#f5f3ebb3;cursor:pointer;text-align:left;background:0 0;border:0;border-top:1px solid #f5f3eb1a;grid-template-columns:80px minmax(130px,1fr) auto 88px;align-items:center;gap:10px;min-height:35px;padding:8px 4px;font-size:9px;display:grid}.signal-range-list button:hover,.signal-range-list button.is-selected{background:#a8dadc12}.signal-range-list button strong,.signal-range-list button time{color:#f5f3eb;font-family:IBM Plex Mono,monospace}.signal-range-list button time{text-align:right}.selected-signal{color:#f5f3eba3;border-top:1px solid #f5f3eb1f;flex-wrap:wrap;align-items:center;gap:9px;padding-top:18px;font-size:10px;display:flex}.selected-signal strong{color:#f5f3eb;font-family:IBM Plex Mono,monospace}.overview-grid{grid-template-columns:5fr 7fr;display:grid}.attention-panel,.location-panel{background:var(--surface);min-height:420px;padding:30px 32px}.attention-panel{border-right:1px solid var(--line)}.attention-count{font-family:IBM Plex Mono,monospace;font-size:40px;font-weight:400;line-height:1}.attention-list{border-top:1px solid var(--line);margin-top:25px}.attention-row{border:0;border-bottom:1px solid var(--line);width:100%;color:var(--ink);text-align:left;background:0 0;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:10px;padding:17px 0;display:grid}.attention-selection{min-height:44px;color:inherit;font:inherit;text-align:left;background:0 0;border:0;flex-direction:column;gap:4px;min-width:0;padding:0;display:flex}.attention-list small{color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.attention-selection small{white-space:normal}.attention-actions .small-button{text-decoration:none}.attention-actions{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.attention-panel .overview-pagination{padding-top:16px}.status-symbol{font-size:9px}.status-label{white-space:nowrap;border:1px solid;border-radius:999px;width:fit-content;padding:5px 7px;font-size:9px;font-weight:700;display:inline-flex}.status-stale,.status-low-battery,.status-stopped{color:var(--error)}.status-sync,.status-unlinked{color:var(--info)}.status-normal{color:var(--canopy)}.location-meta{color:var(--ink-muted);text-align:right;flex-direction:column;align-items:flex-end;gap:6px;font-size:9px;display:flex}.map-legend{color:var(--ink-muted);align-items:center;gap:12px;margin-top:4px;font-family:IBM Plex Mono,monospace;font-size:8px;display:flex}.map-legend span{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.map-legend i{border-radius:50%;width:8px;height:8px}.legend-run,.marker-run{background:#25b96f}.legend-stop,.marker-stop{background:#ef5350}.legend-stale,.marker-stale{background:#9c4dcc}.coordinate{color:var(--ink);font-family:IBM Plex Mono,monospace;line-height:1.5}.position-field{z-index:0;border:1px solid var(--line);background:linear-gradient(145deg,color-mix(in srgb,var(--mist)14%,transparent),transparent 46%),var(--surface-muted);isolation:isolate;min-height:525px;margin-top:22px;position:relative;overflow:hidden}.position-field .leaflet-container{height:520px;font-family:Noto Sans KR,sans-serif}.position-field .leaflet-control-attribution{font-size:8px}.position-field .leaflet-interactive:focus{outline:3px solid var(--focus);outline-offset:2px}.sensor-direction-marker{background:0 0;border:0}.direction-shape{clip-path:polygon(50% 0,100% 100%,50% 78%,0 100%);filter:drop-shadow(0 2px 3px #0000005c);transform-origin:50%;width:22px;height:24px;transition:filter .14s;display:block}.position-field .sensor-marker-label{border:1px solid var(--line);background:color-mix(in srgb,var(--surface)94%,transparent);max-width:130px;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;border-radius:5px;padding:3px 7px;font-family:Noto Sans KR,sans-serif;font-size:9px;font-weight:700;line-height:1.25;overflow:hidden;box-shadow:0 2px 8px #17201c29}.position-field .sensor-marker-label:before{border-top-color:var(--line)}.direction-shape.no-heading{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.sensor-direction-marker:focus .direction-shape,.direction-shape.is-selected{filter:drop-shadow(0 0 2px var(--surface))drop-shadow(0 0 6px var(--focus))}.position-field .leaflet-popup-content-wrapper,.position-field .leaflet-popup-tip{background:var(--surface);color:var(--ink)}.position-field .leaflet-popup-content-wrapper{border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 20px 48px #17201c38}.position-field .leaflet-popup-content{margin:0;width:auto!important}.position-field .leaflet-popup-close-button{color:var(--ink-muted);font-size:20px;top:12px;right:12px}.sensor-map-popup{min-width:290px}.sensor-map-popup header{border-bottom:1px solid var(--line);grid-template-columns:10px 1fr auto;align-items:center;gap:10px;padding:20px 34px 16px 18px;display:grid}.map-popup-status{border-radius:50%;width:9px;height:9px}.sensor-map-popup header>span:nth-child(2){flex-direction:column;gap:3px;display:flex}.sensor-map-popup header strong{font-family:IBM Plex Mono,monospace;font-size:13px}.sensor-map-popup header small{color:var(--ink-muted);font-size:10px}.sensor-map-popup dl{grid-template-columns:1fr 1fr;margin:0;padding:8px 18px 14px;display:grid}.sensor-map-popup dl>div{border-bottom:1px solid var(--line);min-width:0;padding:12px 6px}.sensor-map-popup dl>.popup-wide{grid-column:1/-1}.sensor-map-popup dt{color:var(--ink-muted);margin-bottom:5px;font-size:9px}.sensor-map-popup dd{margin:0;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:500;line-height:1.45}.heading-value{align-items:center;gap:6px;display:flex}.heading-value span{color:var(--info);font-size:15px;line-height:1;display:inline-block}.sensor-map-popup footer{color:var(--ink-muted);text-align:center;padding:0 24px 18px;font-size:9px}:root[data-theme=dark] .position-field .leaflet-tile{filter:brightness(.7)contrast(1.15)saturate(.7)}.panel-empty{min-height:280px;color:var(--ink-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.panel-empty strong{color:var(--ink)}.panel-empty span{font-size:11px}.panel-empty button{margin-top:12px}.sensor-status{padding-top:30px}.sensor-status>.section-heading{padding:0 16px 24px}.sensor-head,.sensor-status-row{grid-template-columns:minmax(260px,1fr) 130px 110px 160px 150px;align-items:center;display:grid}.sensor-head{border-bottom:1px solid var(--line);min-height:34px;color:var(--ink-muted);letter-spacing:.08em;padding:0 16px;font-family:IBM Plex Mono,monospace;font-size:8px}.sensor-status-row{border-bottom:1px solid var(--line);min-height:92px;padding:0 16px}.sensor-status-identity,.sensor-status-row>span:not(.status-label){flex-direction:column;gap:5px;min-width:0;display:flex}.sensor-status-identity{padding:18px 0}.sensor-status-identity button{width:fit-content;max-width:100%;color:var(--ink);text-align:left;background:0 0;border:0;padding:0;font-family:inherit}.sensor-status-identity button:first-child{font-family:IBM Plex Mono,monospace;font-size:12px}.sensor-status-identity button:nth-child(2){color:var(--canopy);text-underline-offset:3px;text-overflow:ellipsis;white-space:nowrap;font-size:10px;text-decoration:underline;overflow:hidden}.sensor-status-row strong{font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:500}.sensor-status-row small{color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.sensor-status>.overview-pagination{padding:16px}.overview-error{border-top:1px solid var(--ink);border-bottom:1px solid var(--line);text-align:center;padding:clamp(70px,12vw,150px) 24px}.overview-error>span{color:var(--error);letter-spacing:.12em;font-family:IBM Plex Mono,monospace;font-size:9px}.overview-error h2{margin:14px 0 0;font-size:clamp(24px,4vw,38px)}.overview-error p{color:var(--ink-muted);margin:12px 0 26px;font-size:13px}.overview-error>div{justify-content:center;gap:8px;display:flex}.overview-loading{background:var(--line);gap:1px;display:grid}.overview-skeleton{background-color:var(--surface);height:260px}.small-button,.project-actions button{border:1px solid var(--line);background:var(--surface);color:var(--ink-muted);border-radius:8px;padding:8px 11px;font-size:11px;font-weight:700}.project-main{width:min(1280px,100% - 48px);margin:0 auto;padding:clamp(52px,8vw,100px) 0 80px}.project-heading{border-bottom:1px solid var(--ink);justify-content:space-between;align-items:flex-end;padding-bottom:36px;display:flex}.project-heading .eyebrow{color:var(--canopy)}.project-heading h1{letter-spacing:-.065em;margin:0;font-size:clamp(40px,6vw,74px);line-height:1}.project-heading p:last-child{color:var(--ink-muted);margin:18px 0 0}.project-count{align-items:flex-end;gap:13px;font-family:IBM Plex Mono,monospace;display:flex}.project-count strong{font-size:54px;font-weight:400;line-height:.86}.project-count span{color:var(--ink-muted);font-size:9px;line-height:1.4}.project-toolbar{justify-content:space-between;align-items:flex-end;gap:20px;padding:28px 0;display:flex}.search-field{width:min(440px,100%);color:var(--ink-muted);flex-direction:column;gap:7px;font-size:10px;font-weight:700;display:flex}.search-field input{border:1px solid var(--line);background:var(--surface);height:44px;color:var(--ink);border-radius:8px;outline:none;padding:0 13px}.primary-button{border:1px solid var(--canopy-deep);background:var(--canopy-deep);color:#fff;border-radius:8px;padding:12px 16px;font-size:12px;font-weight:700}.ledger-head,.project-row{grid-template-columns:minmax(300px,1fr) 90px 100px 190px 210px;align-items:center;display:grid}.ledger-head{border-bottom:1px solid var(--line);min-height:34px;color:var(--ink-muted);letter-spacing:.08em;padding:0 16px;font-family:IBM Plex Mono,monospace;font-size:9px}.project-row{border-bottom:1px solid var(--line);min-height:112px;transition:background-color .14s}.project-row:hover{background:color-mix(in srgb,var(--canopy)4%,var(--surface))}.project-open{height:100%;color:var(--ink);text-align:left;background:0 0;border:0;grid-template-columns:48px 1fr;align-items:center;gap:10px;padding:18px 16px;display:grid}.project-index{color:var(--canopy);font-family:IBM Plex Mono,monospace;font-size:11px}.project-summary{flex-direction:column;gap:8px;min-width:0;display:flex}.project-summary strong{letter-spacing:-.025em;text-overflow:ellipsis;white-space:nowrap;font-size:17px;overflow:hidden}.project-summary small{color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.metric{flex-direction:column;display:flex}.metric strong{font-family:IBM Plex Mono,monospace;font-size:17px;font-weight:500}.metric small{color:var(--ink-muted);font-family:IBM Plex Mono,monospace;font-size:8px;display:none}.project-row time{color:var(--ink-muted);font-family:IBM Plex Mono,monospace;font-size:10px}.project-last-signal{color:var(--ink-muted);flex-direction:column;gap:5px;font-size:12px;display:flex}.project-last-signal time{white-space:nowrap}.project-last-signal small{color:var(--ink-muted);font-size:10px}.project-actions{justify-content:flex-end;padding-right:16px}.empty-state{border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;padding:86px 24px}.empty-state>span{color:var(--canopy);letter-spacing:.1em;font-family:IBM Plex Mono,monospace;font-size:9px}.empty-state h2{margin:12px 0 0}.empty-state p{color:var(--ink-muted);margin:10px 0 24px;font-size:13px}.skeleton-row{background:linear-gradient(100deg,transparent 20%,color-mix(in srgb,var(--line)42%,transparent)50%,transparent 80%);background-size:220% 100%;animation:1.3s linear infinite skeleton}.dialog-backdrop{z-index:60;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0a100d94;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.project-dialog{border:1px solid var(--line);background:var(--surface);border-radius:18px;width:min(520px,100%);padding:34px;box-shadow:0 32px 90px #00000038}.project-dialog h2{margin:0 0 28px;font-size:28px}.project-dialog label{flex-direction:column;gap:8px;margin-top:18px;font-size:12px;font-weight:700;display:flex}.project-dialog input,.project-dialog select,.project-dialog textarea{border:1px solid var(--line);resize:vertical;background:var(--canvas);color:var(--ink);border-radius:8px;outline:none;padding:12px}.project-detail-main{width:min(1280px,100% - 48px);margin:0 auto;padding:48px 0 96px}.project-detail-heading{border-bottom:1px solid var(--ink);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:28px;padding-bottom:36px;display:grid}.project-detail-heading .back-button{grid-column:1/-1}.project-detail-heading .eyebrow,.project-info-panel .eyebrow,.project-sensor-panel .eyebrow{color:var(--canopy)}.project-detail-heading h1{letter-spacing:-.065em;overflow-wrap:anywhere;text-wrap:balance;max-width:820px;margin:0;font-size:clamp(42px,5.5vw,72px);line-height:1.04}.project-detail-heading>div>p:last-child{color:var(--ink-muted);margin:15px 0 0;font-size:13px}.project-detail-loading{background:var(--line);grid-template-columns:5fr 7fr;gap:1px;min-height:520px;margin-top:28px;display:grid}.project-facts{border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr 2fr;display:grid}.project-facts>div{border-right:1px solid var(--line);flex-direction:column;justify-content:space-between;gap:20px;min-height:116px;padding:24px;display:flex}.project-facts>div:last-child{border-right:0}.project-facts span{color:var(--ink-muted);letter-spacing:.08em;font-family:IBM Plex Mono,monospace;font-size:9px}.project-facts strong{font-family:IBM Plex Mono,monospace;font-size:32px;font-weight:400;line-height:1}.project-facts>div:last-child strong{font-size:15px}.project-control-grid{border-bottom:1px solid var(--line);grid-template-columns:5fr 7fr;display:grid}.project-info-panel,.project-sensor-panel{background:var(--surface);min-width:0;padding:32px}.project-sensor-heading{align-items:center}.project-sensor-heading>div{min-width:0}.project-sensor-heading>.small-button{white-space:nowrap;flex-shrink:0}.project-info-panel{border-right:1px solid var(--line)}.project-info-panel form{gap:18px;margin-top:28px;display:grid}.project-info-panel form>label{color:var(--ink-muted);flex-direction:column;gap:8px;font-size:12px;font-weight:700;display:flex}.project-info-panel input,.project-info-panel textarea{border:1px solid var(--line);background:var(--canvas);width:100%;color:var(--ink);font:inherit;border-radius:8px;outline:none;padding:12px}.project-info-panel textarea{resize:vertical}.project-info-actions{align-items:center;gap:8px;margin-top:4px;display:flex}.project-info-actions .danger-button{border:1px solid color-mix(in srgb,var(--error)42%,var(--line));color:var(--error);background:0 0;border-radius:8px;padding:11px 15px;font-size:12px;font-weight:700}.project-save-note{color:var(--canopy);margin:0;font-size:11px}.sensor-list-tools{grid-template-columns:minmax(180px,1fr) 150px auto;align-items:end;gap:10px;margin-top:24px;display:grid}.sensor-list-tools label{color:var(--ink-muted);flex-direction:column;gap:6px;font-size:10px;font-weight:700;display:flex}.sensor-list-tools input,.sensor-list-tools select{border:1px solid var(--line);background:var(--canvas);width:100%;height:42px;color:var(--ink);font:inherit;border-radius:8px;outline:none;padding:0 11px}.sensor-result-count{border:1px solid var(--line);min-width:62px;height:42px;color:var(--ink-muted);border-radius:8px;place-items:center;font-family:IBM Plex Mono,monospace;font-size:10px;display:grid}.managed-sensor-list{border-top:1px solid var(--line);margin-top:14px}.managed-sensor-list article{border-bottom:1px solid var(--line);grid-template-columns:10px minmax(120px,1.1fr) minmax(150px,.9fr) auto auto;align-items:center;gap:14px;min-height:76px;display:grid}.managed-sensor-list article>span:not(.managed-sensor-mode){flex-direction:column;gap:4px;min-width:0;display:flex}.managed-sensor-mode{background:var(--error);border-radius:50%;width:8px;height:8px}.managed-sensor-mode.mode-1{background:#25b96f}.managed-sensor-list strong{text-overflow:ellipsis;white-space:nowrap;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:600;overflow:hidden}.managed-sensor-list small{color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.managed-sensor-list article>.managed-sensor-telemetry{grid-template-columns:48px auto;align-items:center;gap:10px;display:grid}.managed-sensor-telemetry>strong{font-size:10px}.managed-sensor-telemetry>strong.is-running{color:var(--canopy)}.managed-sensor-telemetry>strong.is-stopped{color:var(--error)}.managed-sensor-telemetry>strong.is-finding{color:var(--warning)}.managed-sensor-telemetry>small{grid-template-columns:auto auto;align-items:baseline;gap:5px;display:inline-grid;overflow:visible}.managed-sensor-telemetry>small>span{letter-spacing:.06em;font-family:IBM Plex Mono,monospace;font-size:7px}.managed-sensor-telemetry>small>b{color:var(--ink);font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:500}.managed-sensor-list .sync-pending,.managed-sensor-list .sync-complete{font-size:10px;font-weight:700}.managed-sensor-list .sync-pending{color:var(--info)}.managed-sensor-list .sync-complete{color:var(--canopy)}.managed-sensor-list button{border:1px solid var(--line);color:var(--error);background:0 0;border-radius:7px;padding:7px 9px;font-size:10px;font-weight:700}.managed-sensor-list .managed-sensor-link{width:fit-content;color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb,var(--canopy)40%,transparent);text-decoration-color:color-mix(in srgb,var(--canopy)40%,transparent);text-underline-offset:4px;border:0;border-radius:0;padding:0;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:600}.managed-sensor-list .managed-sensor-link:hover{color:var(--canopy)}.compact-empty{min-height:350px}.sensor-search-empty{min-height:260px}.sensor-pagination{min-height:58px;color:var(--ink-muted);justify-content:space-between;align-items:center;gap:16px;font-family:IBM Plex Mono,monospace;font-size:10px;display:flex}.sensor-pagination>div{align-items:center;gap:10px;display:flex}.sensor-pagination button{border:1px solid var(--line);background:var(--surface);min-height:32px;color:var(--ink-muted);border-radius:7px;padding:0 9px;font-size:10px;font-weight:700}.sensor-pagination button:disabled{opacity:.38}.sensor-pagination strong{color:var(--ink)}.sensor-connect-dialog form{gap:18px;display:grid}.sensor-connect-dialog{width:min(640px,100%)}.sensor-connect-description{color:var(--ink-muted);margin:-14px 0 22px;font-size:12px}.sensor-connect-dialog .sensor-select-all,.sensor-connect-list label{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.sensor-select-all{border:1px solid var(--line);background:color-mix(in srgb,var(--canopy)5%,var(--surface));min-height:46px;color:var(--ink);border-radius:9px;padding:0 13px;font-size:11px}.sensor-select-all strong{color:var(--canopy);font-family:IBM Plex Mono,monospace;font-size:10px}.sensor-select-all input,.sensor-connect-list input{width:17px;height:17px;accent-color:var(--canopy);margin:0}.sensor-connect-list{border-top:1px solid var(--line);max-height:340px;overflow-y:auto}.sensor-connect-list label{border-bottom:1px solid var(--line);min-height:68px;color:var(--ink);cursor:pointer;padding:10px 13px}.sensor-connect-list label.is-selected{background:color-mix(in srgb,var(--canopy)7%,var(--surface))}.sensor-connect-list label>span:nth-child(2){flex-direction:column;gap:4px;min-width:0;display:flex}.sensor-connect-list label>span:last-child{color:var(--ink-muted);font-family:IBM Plex Mono,monospace;font-size:10px}.sensor-connect-list strong{font-family:IBM Plex Mono,monospace;font-size:12px}.sensor-connect-list small{color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.sensor-connect-dialog .primary-button:disabled{opacity:.45}.dialog-actions{justify-content:flex-end;margin-top:28px}@keyframes skeleton{to{background-position:-220% 0}}@keyframes reveal-trace{0%{stroke-dashoffset:180px;opacity:0}to{stroke-dashoffset:0;opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@media (min-width:861px) and (max-width:1280px){.project-control-grid{grid-template-columns:1fr}.project-info-panel{border-right:0;border-bottom:1px solid var(--line)}}@media (max-width:860px){.login-page{background:var(--surface);padding:0}.login-shell{min-height:100dvh;box-shadow:none;border:0;border-radius:0;display:block}.observation-panel{display:none}.form-panel{flex-direction:column;align-items:stretch;min-height:100dvh;padding:34px 24px 22px;display:flex}.mobile-brand{margin-bottom:clamp(24px,5dvh,48px);display:flex}.login-form{margin:0 auto}.mockup-note{margin-top:auto;padding-top:44px}.theme-toggle{top:36px;right:24px}.app-shell-content{margin-left:0;padding-top:64px}.top-app-bar{grid-template-columns:auto minmax(0,1fr);height:64px}.appbar-brand-area{border-right:0;padding:0 12px}.mobile-menu-button{border:1px solid var(--line);background:var(--surface);width:36px;height:36px;color:var(--ink);border-radius:8px;flex:0 0 36px;place-items:center;font-size:17px;display:grid}.appbar-brand{font-size:13px}.appbar-brand .brand-mark{flex:0 0 32px;width:32px;height:32px}.appbar-context{padding:0 14px 0 4px}.appbar-context span{font-size:10px}.appbar-context strong{font-size:14px}.appbar-timezone-mobile{display:inline}.appbar-actions{display:none}.sidebar-mobile-actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:14px;display:grid}.sidebar-mobile-actions button{min-height:38px;color:var(--sidebar-ink);cursor:pointer;background:#f3f1e912;border:1px solid #f3f1e933;border-radius:8px;justify-content:center;align-items:center;gap:6px;font-family:inherit;font-size:11px;font-weight:700;display:inline-flex}.app-sidebar{z-index:40;visibility:hidden;width:min(304px,86vw);padding:20px 18px 18px;transition:transform .18s,visibility .18s;top:64px;transform:translate(-104%);box-shadow:18px 0 52px #0000003d}.app-sidebar.is-open{visibility:visible;transform:translate(0)}.sidebar-close{width:34px;height:34px;color:var(--sidebar-ink);background:0 0;border:1px solid #f3f1e92e;border-radius:8px;place-items:center;font-size:20px;display:grid}.sidebar-overlay{z-index:35;cursor:default;background:#070c098c;border:0;display:block;position:fixed;inset:0}.project-main{width:min(100% - 32px,680px);padding-top:56px}.project-heading{flex-direction:column;align-items:flex-start;gap:32px}.project-count{align-self:flex-end}.ledger-head{display:none}.project-row{grid-template-columns:1fr auto auto;gap:16px;padding:18px 0}.project-open{grid-column:1/-1;min-width:0;padding:0}.metric{padding-left:58px}.metric+.metric{padding-left:0}.metric small{display:block}.project-row time{justify-self:end}.project-last-signal{justify-self:end;align-items:flex-end}.project-actions{grid-column:1/-1;justify-content:flex-end;padding:0}.project-detail-main{width:min(100% - 32px,680px);padding-top:36px}.project-detail-heading{flex-direction:column;align-items:flex-start;display:flex}.project-detail-heading h1{font-size:clamp(38px,9vw,56px)}.project-detail-loading,.project-control-grid{display:block}.project-detail-loading .skeleton-row{min-height:260px}.project-info-panel{border-right:0;border-bottom:1px solid var(--line)}.overview-main{width:min(100% - 32px,680px);padding-top:36px}.overview-heading{grid-template-columns:minmax(0,1fr) auto;align-items:start}.overview-heading .back-button{grid-column:1/-1}.overview-title h1{font-size:clamp(38px,9vw,56px)}.update-control{flex-direction:column;align-items:flex-end}.observation-line,.attention-panel,.location-panel{padding:26px 20px}.section-heading>p{display:none}.timeline{margin-inline:2px}.overview-grid{display:block}.attention-panel{border-right:0;min-height:0}.location-panel{min-height:0}.position-field,.position-field .leaflet-container{height:440px;min-height:440px}.sensor-head{display:none}.sensor-status-row{grid-template-columns:1fr auto auto;gap:14px;padding:18px 12px}.sensor-status-identity{grid-column:1/-1;padding:0}.sensor-status-row>span:nth-last-child(2),.sensor-status-row>span:last-child{align-items:flex-end}}@media (max-width:440px){.form-panel{padding-inline:20px}.mobile-brand{font-size:14px}.brand-mark{width:34px;height:34px}.form-heading{margin-bottom:28px}.account-type label{padding-inline:11px}.appbar-brand>span:last-child{display:none}.appbar-brand-area{gap:6px;padding-right:6px}.small-button{padding-inline:8px}.project-main{width:calc(100% - 28px);padding-top:44px}.project-heading h1{font-size:43px}.project-toolbar{flex-direction:column;align-items:stretch}.primary-button{min-height:44px}.project-row{grid-template-columns:auto auto 1fr}.metric{padding-left:0}.project-dialog{padding:26px 20px}.project-detail-main{width:calc(100% - 24px);padding-top:28px}.project-detail-heading{gap:24px}.project-detail-heading h1{font-size:42px}.project-facts{grid-template-columns:1fr 1fr}.project-facts>div{min-height:104px;padding:18px}.project-facts>div:nth-child(2){border-right:0}.project-facts>div:last-child{border-top:1px solid var(--line);grid-column:1/-1}.project-control-grid{margin-inline:-12px}.project-info-panel,.project-sensor-panel{padding:26px 18px}.managed-sensor-list article{grid-template-columns:10px minmax(0,1fr) auto;gap:8px 12px;padding:14px 0}.managed-sensor-list article>span:nth-child(3),.managed-sensor-list article>span:nth-child(4){grid-column:2}.managed-sensor-list article>button{grid-area:1/3/span 3}.sensor-list-tools{grid-template-columns:minmax(0,1fr) auto}.sensor-list-tools label:first-child{grid-column:1/-1}.sensor-pagination{flex-direction:column;align-items:flex-start;padding:14px 0}.overview-main{width:calc(100% - 24px);padding-top:28px}.overview-heading{flex-direction:column;align-items:stretch;gap:24px;display:flex}.overview-heading .back-button{align-self:flex-start}.update-control{flex-direction:row;justify-content:space-between;align-items:center}.update-control>span{text-align:left}.observation-line{margin-inline:-12px}.observation-line .section-heading{display:block}.signal-distribution>button{grid-template-columns:92px minmax(64px,1fr) 22px;gap:8px;padding-inline:6px}.signal-distribution>button small{display:none}.signal-range-detail{padding-inline:10px}.signal-range-list button{grid-template-columns:minmax(0,1fr) auto;gap:4px 10px}.signal-range-list button strong,.signal-range-list button>span:first-of-type{grid-column:1}.signal-range-list button time,.signal-range-list button>span:nth-of-type(2){grid-column:2}.selected-signal{gap:8px 12px}.attention-panel,.location-panel{margin-inline:-12px}.location-panel .section-heading{flex-direction:column;align-items:flex-start}.location-meta{text-align:left;align-items:flex-start}.map-legend{flex-wrap:wrap;gap:8px}.position-field,.position-field .leaflet-container{height:360px;min-height:360px}.sensor-status{margin-inline:-12px}.sensor-status>.section-heading{padding-inline:12px}.sensor-status-row{grid-template-columns:1fr 1fr}.sensor-status-row>.status-label{grid-column:1/-1}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.sensor-detail-page{width:min(1380px,100% - 48px);margin:0 auto;padding:48px 0 96px}.sensor-detail-heading{border-bottom:1px solid var(--ink);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:28px;padding-bottom:34px;display:grid}.sensor-detail-heading .back-button{margin-bottom:32px}.sensor-detail-heading .eyebrow,.sensor-route-panel .eyebrow,.sensor-settings-panel .eyebrow,.sensor-animal-panel .eyebrow,.sensor-measurement-panel .eyebrow{color:var(--canopy)}.sensor-detail-heading h1{letter-spacing:-.06em;margin:0;font-size:clamp(42px,5vw,70px);line-height:1}.sensor-detail-heading>div>p:last-child{color:var(--ink-muted);margin:14px 0 0;font-size:14px}.sensor-detail-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.sensor-mode-badge{box-sizing:border-box;color:#fff;letter-spacing:.08em;background:#a63832;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:9px;min-width:94px;min-height:40px;padding:0 16px;font-family:IBM Plex Mono,monospace;font-size:13px;font-weight:700;display:inline-flex}.sensor-mode-badge:before{content:"";background:currentColor;border-radius:2px;flex-shrink:0;width:7px;height:7px}.sensor-mode-badge.mode-1{background:#226548}.sensor-mode-badge.mode-1:before{border-radius:50%}.sensor-mode-badge.mode-2{background:#265e87}.sensor-mode-badge.mode-review{background:var(--surface-muted);color:var(--warning);border-color:var(--line)}.sensor-mode-badge.mode-history{background:var(--surface-muted);color:var(--ink-muted);border-color:var(--line)}.sensor-history-trigger{border:1px solid var(--line);background:var(--surface);min-height:38px;color:var(--ink);white-space:nowrap;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:7px 11px;font-size:12px;font-weight:600;display:inline-flex}.sensor-history-trigger:hover{border-color:var(--canopy);background:var(--surface-muted)}.sensor-history-trigger>svg{color:var(--ink-muted);flex-shrink:0}.sensor-history-trigger .history-badge{padding:2px 5px;font-size:10px}.sensor-history-trigger:focus-visible,.sensor-history-close:focus-visible{outline:2px solid var(--canopy);outline-offset:3px}.sensor-history-dialog.history-panel{border:1px solid var(--line);background:var(--surface);width:min(900px,100vw - 48px);max-width:none;max-height:calc(100dvh - 64px);color:var(--ink);text-align:left;border-radius:14px;margin:auto;padding:0;overflow:hidden}.sensor-history-dialog[open]{flex-direction:column;display:flex}.sensor-history-dialog::backdrop{background:#0c17127a}.sensor-history-dialog-heading{border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:20px;padding:24px;display:flex}.sensor-history-dialog-heading h2{letter-spacing:-.02em;margin:0;font-size:20px;line-height:1.4}.sensor-history-dialog-heading p{color:var(--ink-muted);margin:6px 0 0;font-size:12px;line-height:1.6}.sensor-history-dialog .sensor-history-close{border:1px solid var(--line);background:var(--surface);width:40px;height:40px;color:var(--ink-muted);cursor:pointer;border-radius:8px;flex-shrink:0;place-items:center;padding:0;display:grid}.sensor-history-close:hover{color:var(--ink);background:var(--surface-muted)}.sensor-history-dialog-body{overscroll-behavior:contain;min-height:0;overflow:auto}.sensor-history-dialog .tracker-lifecycle-content{padding:24px}@media (max-width:600px){.sensor-detail-heading .sensor-detail-actions{grid-template-columns:minmax(0,1fr) auto;gap:6px 8px;display:grid}.sensor-history-trigger{justify-content:flex-start;min-height:36px;padding:7px 8px;font-size:11px}.sensor-history-trigger .history-badge{display:none}.sensor-detail-actions>.sensor-mode-badge{grid-area:1/2/span 3;align-self:center;min-width:76px;min-height:42px;padding:0 10px}.sensor-history-dialog.history-panel{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.sensor-history-dialog-heading{gap:12px;padding:18px 16px}.sensor-history-dialog-heading h2{font-size:18px}.sensor-history-dialog .tracker-lifecycle-content{padding:16px}}.sensor-summary-grid{border-bottom:1px solid var(--line);grid-template-columns:repeat(4,1fr);display:grid}.sensor-summary-grid article{border-right:1px solid var(--line);flex-direction:column;justify-content:space-between;gap:8px;min-width:0;min-height:128px;padding:24px;display:flex}.sensor-summary-grid article:last-child{border-right:0}.sensor-summary-grid article>span{color:var(--ink-muted);letter-spacing:.08em;text-transform:uppercase;font-family:IBM Plex Mono,monospace;font-size:11px}.sensor-summary-grid article>strong{letter-spacing:-.035em;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(19px,2vw,28px);font-weight:500;overflow:hidden}.sensor-summary-grid article>small{color:var(--ink-muted);font-size:13px}.sensor-summary-grid article.is-pending{background:color-mix(in srgb,#d97745 8%,var(--surface))}.sensor-summary-grid article.is-pending>strong{color:#c76534}.sensor-summary-grid article.is-complete{background:color-mix(in srgb,var(--canopy)7%,var(--surface))}.sensor-summary-grid article.is-complete>strong{color:var(--canopy)}.sensor-detail-grid,.sensor-detail-lower-grid{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,7fr) minmax(360px,5fr);display:grid}.sensor-route-panel,.sensor-settings-panel,.sensor-animal-panel,.sensor-measurement-panel{min-width:0;padding:32px}.sensor-route-panel,.sensor-animal-panel{border-right:1px solid var(--line)}.sensor-route-map{z-index:0;border:1px solid var(--line);background:var(--surface-muted);isolation:isolate;border-radius:12px;height:340px;margin-top:24px;position:relative;overflow:hidden}.sensor-route-map .leaflet-container{width:100%;height:100%}.sensor-route-heading-actions{align-items:center;gap:12px;display:flex}.sensor-detail-direction-icon{background:0 0;border:0}.sensor-detail-direction-icon>span{clip-path:polygon(50% 0,92% 92%,50% 72%,8% 92%);transform-origin:50%;background:#9c4dcc;border:3px solid #fff;width:24px;height:24px;display:block;box-shadow:0 4px 14px #1410174d}.sensor-route-empty{min-height:340px;margin-top:24px}.sensor-settings-panel form{grid-template-columns:minmax(0,1fr);gap:24px;margin-top:26px;display:grid}.sensor-settings-edit-fields{gap:24px;display:grid}.configuration-current-detail,.configuration-history dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;margin:16px 0 0;display:grid}.configuration-current-detail div,.configuration-history dl div{min-width:0}.configuration-current-detail dt,.configuration-history dt{color:var(--ink-muted);font-size:12px}.configuration-current-detail dd,.configuration-history dd{overflow-wrap:anywhere;margin:3px 0 0;font-size:13px}.configuration-current-detail dd small{color:var(--ink-muted);margin-top:3px;font-size:11px;line-height:1.4;display:block}.sensor-settings-editor,.configuration-current,.configuration-history{border-top:1px solid var(--line);margin-top:20px}.sensor-settings-editor summary,.configuration-current summary,.configuration-history summary{color:var(--ink);cursor:pointer;padding:16px 0;font-size:14px;font-weight:700}.sensor-settings-editor summary:focus-visible,.configuration-current summary:focus-visible,.configuration-history summary:focus-visible{outline:2px solid var(--canopy);outline-offset:2px}.configuration-current-detail{margin-top:0}.configuration-history{margin-top:24px}.configuration-history-heading{justify-content:flex-end;align-items:center;gap:12px;display:flex}.configuration-history ol{gap:10px;max-height:420px;margin:16px 0 0;padding:0 6px 0 0;list-style:none;display:grid;overflow-y:auto}.configuration-history li{border:1px solid var(--line);border-radius:8px;padding:14px}.configuration-history li>strong,.configuration-history li>span{display:block}.configuration-history li>span{color:var(--ink-muted);margin-top:4px;font-size:13px}.sensor-setting-fields{grid-template-columns:1fr 1fr;gap:16px;display:grid}.sensor-setting-fields label{color:var(--ink-muted);flex-direction:column;gap:7px;font-size:13px;font-weight:700;display:flex}.sensor-setting-fields select,.sensor-setting-fields input{border:1px solid var(--line);background:var(--canvas);width:100%;height:44px;color:var(--ink);font:inherit;border-radius:8px;outline:none;padding:0 11px}.sensor-settings-panel fieldset{border:0;min-width:0;margin:0;padding:0}.sensor-settings-panel legend{color:var(--ink-muted);margin-bottom:10px;font-size:13px;font-weight:700}.sensor-preset-assignment{border:1px solid color-mix(in srgb,var(--canopy)28%,var(--line));border-left:4px solid var(--canopy);background:color-mix(in srgb,var(--canopy)6%,var(--surface));border-radius:9px;grid-template-columns:minmax(0,1fr);gap:8px;padding:14px 16px;display:grid}.sensor-preset-assignment label{color:var(--ink-muted);flex-direction:column;gap:7px;font-size:13px;font-weight:700;display:flex}.sensor-preset-assignment select{border:1px solid var(--line);background:var(--canvas);width:100%;height:44px;color:var(--ink);font:inherit;border-radius:8px;outline:none;padding:0 11px}.sensor-preset-assignment p{color:var(--ink-muted);margin:0 0 6px;font-size:12px;line-height:1.55}.sensor-config-options{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.sensor-config-options label{border:1px solid var(--line);min-height:42px;color:var(--ink);cursor:pointer;border-radius:8px;align-items:center;gap:9px;padding:0 11px;font-size:13px;display:flex}.sensor-config-options input{width:16px;height:16px;accent-color:var(--canopy);margin:0}.sensor-setting-notice{border-left:3px solid var(--info);background:color-mix(in srgb,var(--info)8%,var(--surface));color:var(--ink-muted);margin:0;padding:11px 12px;font-size:13px;line-height:1.55}.sensor-settings-panel .primary-button{justify-self:end}.sensor-settings-heading-actions{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.sensor-settings-heading-actions>span{color:var(--ink-muted);font-size:12px}.sensor-settings-sync-actions{gap:8px;display:flex}.sensor-detail-lower-grid{grid-template-columns:minmax(300px,4fr) minmax(0,8fr)}.connected-animal-card{border:1px solid var(--line);border-radius:10px;min-height:116px;margin-top:24px;padding:18px}.connected-animal-card header{grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:16px;display:grid}.connected-animal-card header>span{background:var(--canopy-deep);width:54px;height:54px;color:var(--mist);border-radius:50%;place-items:center;font-family:IBM Plex Mono,monospace;font-size:12px;display:grid}.connected-animal-thumbnail{border:1px solid var(--line);-o-object-fit:cover;object-fit:cover;border-radius:12px;width:64px;height:64px;display:block}.connected-animal-card header>div{flex-direction:column;gap:5px;min-width:0;display:flex}.connected-animal-card dl{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;margin:18px 0 0;display:grid}.connected-animal-card dl>div{border-bottom:1px solid var(--line);min-width:0;padding:13px 8px 10px 0}.connected-animal-card dt{color:var(--ink-muted);letter-spacing:.06em;font-family:IBM Plex Mono,monospace;font-size:11px}.connected-animal-card dd{margin:5px 0 0;font-size:14px;font-weight:700}.connected-animal-card>p{color:var(--ink-muted);margin:14px 0 0;font-size:13px;line-height:1.55}.connected-animal-card strong{text-overflow:ellipsis;white-space:nowrap;font-size:18px;overflow:hidden}.connected-animal-card small{color:var(--ink-muted);font-size:13px}.connected-animal-card button{border:1px solid var(--line);color:var(--ink-muted);background:0 0;border-radius:7px;padding:8px 10px;font-size:12px}.sensor-animal-empty,.sensor-measurement-empty{min-height:164px;margin-top:24px}.tracker-lifecycle-panel{border-bottom:1px solid var(--line);min-width:0}.project-assignment-panel>p,.project-assignment-list p{color:var(--ink-muted);font-size:13px;line-height:1.7}.project-assignment-list{margin:20px 0;padding:0;list-style:none}.project-assignment-panel a{color:var(--canopy);margin:8px 12px 8px 0;font-size:13px;display:inline-block}.tracker-lifecycle-panel summary{cursor:pointer;color:var(--ink);padding:18px 24px;font-size:14px;font-weight:700}.tracker-lifecycle-content{padding:0 24px 24px}.tracker-lifecycle-content p{color:var(--ink-muted);font-size:13px;line-height:1.6}.tracker-lifecycle-empty{border:1px dashed var(--line);text-align:center;border-radius:8px;padding:20px}.tracker-lifecycle-group h3,.tracker-lifecycle-panel .sensor-animal-connect-form h3{grid-column:1/-1;margin:20px 0 12px;font-size:15px}.tracker-lifecycle-row{border-top:1px solid var(--line);padding:16px 0;font-size:14px}.tracker-lifecycle-panel button{border:1px solid var(--line);background:var(--surface);min-height:40px;color:var(--ink);font:inherit;cursor:pointer;border-radius:8px;padding:9px 14px;font-size:12px}.tracker-lifecycle-panel button:disabled{opacity:.5;cursor:wait}.tracker-lifecycle-panel :is(button,summary,input,select,textarea):focus-visible{outline:2px solid var(--canopy);outline-offset:3px}.tracker-lifecycle-panel select{border:1px solid var(--line);background:var(--surface);width:100%;min-width:0;color:var(--ink);font:inherit;border-radius:8px;padding:11px 12px}.tracker-lifecycle-connect{border:1px solid var(--line);border-radius:8px;margin-top:20px;padding:0 16px 16px}.tracker-lifecycle-connect:not([open]){padding-bottom:0}.tracker-lifecycle-connect summary{padding:16px 0}@media (max-width:620px){.tracker-lifecycle-panel .sensor-animal-connect-form{grid-template-columns:minmax(0,1fr)}.tracker-lifecycle-panel input{box-sizing:border-box;width:100%;min-width:0}}.history-panel{border:1px solid var(--line);background:var(--surface);border-radius:12px;margin:14px 0;scroll-margin-top:96px}.history-panel>.history-summary{justify-content:space-between;align-items:center;gap:20px;padding:20px 24px;list-style:none;display:flex}.history-summary::-webkit-details-marker{display:none}.history-create>summary::-webkit-details-marker{display:none}.history-summary-copy{gap:5px;min-width:0;display:grid}.history-summary-copy strong{color:var(--ink);font-size:15px;font-weight:700}.history-summary-copy small{color:var(--ink-muted);font-size:12px;font-weight:400;line-height:1.5}.history-summary-meta{flex-shrink:0;align-items:center;gap:16px;display:flex}.history-chevron{color:var(--ink-muted);flex-shrink:0}.history-panel[open]>summary .history-chevron{transform:rotate(180deg)}.history-panel[open]>summary{border-bottom:1px solid var(--line)}.history-panel .tracker-lifecycle-content{padding:20px 24px 24px}.history-toolbar{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:16px;display:flex}.history-toolbar p{max-width:68ch;margin:0}.history-panel .history-refresh{min-height:32px;color:var(--ink-muted);white-space:nowrap;background:0 0;border-color:#0000;align-items:center;gap:6px;padding:5px 8px;display:inline-flex}.history-panel .history-refresh:hover{color:var(--ink);background:var(--surface-muted)}.history-badge{background:var(--surface-muted);color:var(--ink-muted);white-space:nowrap;border-radius:5px;align-items:center;padding:4px 9px;font-size:11px;font-weight:600;line-height:1.5;display:inline-flex}.history-badge.is-current{background:color-mix(in srgb,var(--canopy)10%,var(--surface));color:var(--canopy)}.history-badge.is-review{background:color-mix(in srgb,var(--warning)10%,var(--surface));color:var(--warning)}.history-panel .project-assignment-list{margin:16px 0 20px}.history-panel .tracker-lifecycle-row{padding:22px 0}.history-row-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.history-panel .history-row-heading h3{overflow-wrap:anywhere;margin:0;font-size:15px;line-height:1.5}.history-row-heading small{color:var(--ink-muted);margin-top:5px;font-size:12px;line-height:1.5;display:block}.history-dates{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px;margin:18px 0;display:grid}.history-dates.has-three{grid-template-columns:repeat(3,minmax(0,1fr))}.history-dates dt{color:var(--ink-muted);margin-bottom:5px;font-size:11px}.history-dates dd{color:var(--ink);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0;font-size:13px;line-height:1.6}.history-row-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.history-panel .history-row-actions a{color:var(--canopy);text-underline-offset:3px;align-items:center;gap:3px;margin:0 auto 0 0;font-size:12px;display:inline-flex}.history-panel .history-row-actions button{min-height:34px;padding:6px 10px}.history-panel .tracker-lifecycle-group>h3{color:var(--ink-muted);margin:24px 0 0;font-size:12px;font-weight:600}.history-empty{text-align:center;padding:28px 12px}.history-empty strong{color:var(--ink);font-size:14px}.history-empty p{margin:8px 0 0}.history-panel .history-create{border:1px solid var(--line);border-radius:8px;margin:16px 0 0;padding:0}.history-create>summary{color:var(--canopy);align-items:center;gap:8px;padding:14px 16px;font-size:13px;list-style:none;display:flex}.history-create[open]>summary{border-bottom:1px solid var(--line)}.history-create[open]>summary svg{transform:rotate(45deg)}.history-panel .history-create>form{margin:0;padding:20px}.history-panel .history-edit-form{background:var(--surface-muted);border-radius:8px;margin-top:18px;padding:20px;scroll-margin-top:96px}.history-panel .history-edit-form h3{margin:0 0 4px}.history-panel .history-edit-form [role=alert]{color:var(--error)}.history-panel .sensor-animal-connect-form{gap:18px}.history-panel .sensor-animal-connect-form label{min-width:0}.history-panel .sensor-animal-connect-form input{box-sizing:border-box;width:100%;min-width:0;min-height:44px}.history-panel .sensor-animal-connect-form select{min-height:44px}.history-panel .sensor-animal-connect-form textarea{min-height:72px}.history-panel .sensor-animal-connect-form label small{font-weight:400;line-height:1.5}.history-form-actions{flex-wrap:wrap;grid-column:1/-1;justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.history-panel button.history-primary{background:var(--canopy);color:var(--surface);border-color:var(--canopy);padding:10px 18px}.history-panel button:not(:disabled):hover{border-color:var(--ink-muted)}.history-choice{border-bottom:1px solid var(--line);grid-column:1/-1;gap:4px;padding-bottom:12px;display:flex}.history-panel .history-choice button{color:var(--ink-muted);background:0 0;border-color:#0000}.history-panel .history-choice button[aria-pressed=true]{background:var(--surface-muted);border-color:var(--line);color:var(--ink);font-weight:700}@media (max-width:620px){.history-panel>.history-summary{gap:12px;padding:16px}.history-summary-meta{gap:8px}.history-summary-meta .history-badge{white-space:normal;text-align:center;max-width:86px}.history-panel .tracker-lifecycle-content{padding:16px}.history-toolbar{flex-direction:column;gap:8px}.history-toolbar .history-refresh{align-self:flex-end}.history-row-heading{flex-wrap:wrap;gap:8px}.history-dates,.history-dates.has-three{grid-template-columns:minmax(0,1fr);gap:12px}.history-dates>div{grid-template-columns:100px minmax(0,1fr);gap:8px;display:grid}.history-dates dt{margin:0;line-height:1.8}.history-panel .history-row-actions a{flex-basis:100%;margin-bottom:6px}.history-panel .history-create>form,.history-panel .history-edit-form{padding:16px}.history-panel .history-row-actions button{min-height:40px}.history-panel .history-form-actions button{min-height:44px}}.sensor-animal-connect-form{grid-template-columns:1fr 1fr;gap:14px;margin-top:24px;display:grid}.sensor-animal-connect-form>p,.sensor-animal-connect-memo,.sensor-animal-connect-form .animal-image-editor,.sensor-animal-connect-form .primary-button{grid-column:1/-1}.sensor-animal-connect-form>p{color:var(--ink-muted);margin:0 0 4px;font-size:13px;line-height:1.55}.sensor-animal-connect-form label{color:var(--ink-muted);flex-direction:column;gap:7px;font-size:12px;font-weight:700;display:flex}.sensor-animal-connect-form input,.sensor-animal-connect-form textarea{border:1px solid var(--line);resize:vertical;background:var(--surface);color:var(--ink);font:inherit;border-radius:8px;outline:none;padding:11px 12px}.sensor-animal-connect-form .primary-button{justify-self:end}.sensor-measurement-table-wrap{margin-top:14px;overflow-x:auto}.measurement-range-form{grid-template-columns:minmax(130px,1fr) minmax(130px,1fr) auto auto;align-items:end;gap:9px;margin-top:24px;display:grid}.measurement-range-form label,.measurement-list-tools label{min-width:0;color:var(--ink-muted);flex-direction:column;gap:6px;font-size:12px;font-weight:700;display:flex}.measurement-range-form input,.measurement-list-tools input,.measurement-list-tools select{border:1px solid var(--line);background:var(--canvas);width:100%;min-width:0;height:38px;color:var(--ink);font:inherit;border-radius:7px;outline:none;padding:0 9px}.measurement-range-form .small-button{min-height:38px;padding-inline:10px}.measurement-range-error{color:var(--error);margin:10px 0 0;font-size:13px}.measurement-range-presets{flex-wrap:wrap;align-items:center;gap:7px;margin-top:10px;display:flex}.measurement-range-presets>span{color:var(--ink-muted);margin-right:2px;font-size:12px;font-weight:700}.measurement-range-presets button{border:1px solid var(--line);background:var(--surface);min-height:32px;color:var(--ink-muted);border-radius:999px;padding:0 10px;font-size:12px;font-weight:700}.measurement-list-tools{grid-template-columns:minmax(180px,1fr) auto;align-items:end;gap:9px;margin-top:16px;display:grid}.measurement-list-tools>span{border:1px solid var(--line);min-width:62px;height:38px;color:var(--ink-muted);border-radius:7px;place-items:center;font-family:IBM Plex Mono,monospace;font-size:11px;display:grid}.measurement-chart{border:1px solid var(--line);background:color-mix(in srgb,var(--surface-muted)72%,transparent);border-radius:10px;margin-top:18px;padding:18px 12px 10px}.measurement-chart>div:first-child{justify-content:space-between;align-items:baseline;gap:16px;padding:0 8px 10px;display:flex}.measurement-chart strong{font-size:15px}.measurement-chart span{color:var(--ink-muted);font-size:12px}.measurement-chart-legend{gap:18px;padding:2px 8px 0;display:flex}.measurement-chart-legend span:before{vertical-align:middle;content:"";background:currentColor;border-radius:2px;width:18px;height:3px;margin-right:6px;display:inline-block}.measurement-chart-legend .is-battery{color:#2f7d5b}.measurement-chart-legend .is-temperature{color:#d97745}.measurement-trend-plot svg{width:100%;height:auto;min-height:220px;display:block}.measurement-trend-plot svg text{fill:var(--ink-muted);font-family:IBM Plex Mono,monospace;font-size:10px}.measurement-trend{--chart-battery:#2f7d5b;--chart-temperature:#b45e32;background:var(--surface);border-color:color-mix(in srgb,var(--line)75%,transparent);color:var(--ink);padding:20px 16px 12px}:root[data-theme=dark] .measurement-trend{--chart-battery:#74bd9c;--chart-temperature:#e69c72}.measurement-trend-legend{flex-wrap:wrap;gap:12px 20px;padding:0;display:flex}.measurement-trend-legend>span{align-items:center;gap:8px;font-weight:600;display:inline-flex}.measurement-trend-legend small{color:var(--ink-muted);font-size:11px;font-weight:400}.measurement-trend-legend>span:before{content:"";border-top:2px solid;width:18px}.measurement-trend-legend .is-battery{color:var(--chart-battery)}.measurement-trend-legend .is-temperature{color:var(--chart-temperature)}.measurement-trend-legend .is-temperature:before{border-top-style:dashed}.measurement-trend-plot{min-width:0;height:240px}.measurement-trend-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:4px 8px 14px;display:flex;position:relative}.measurement-trend-controls{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.measurement-chart.measurement-trend>.measurement-trend-heading{flex-wrap:wrap;gap:4px 16px;padding-bottom:16px}.measurement-trend-meta{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.measurement-trend-meta>small{font-size:11px;font-weight:400}.measurement-gap-control{color:var(--ink-muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.measurement-gap-control select{border:1px solid var(--line);background:var(--surface);max-width:100%;min-height:34px;color:var(--ink);font:inherit;border-radius:6px;padding:6px 10px}.measurement-trend :is(select,input,summary):focus-visible{outline:2px solid var(--canopy);outline-offset:3px}.measurement-display-options{position:relative}.measurement-display-options>summary{min-height:34px;color:var(--ink-muted);cursor:pointer;white-space:nowrap;border-radius:4px;align-items:center;gap:6px;padding:0 4px;font-size:12px;list-style:none;display:flex}.measurement-display-options>summary svg{flex:none;width:14px;height:14px;min-height:0}.measurement-display-options>summary::-webkit-details-marker{display:none}.measurement-display-options>summary:hover,.measurement-display-options[open]>summary{color:var(--ink)}.measurement-display-options-panel{z-index:8;border:1px solid var(--line);background:var(--surface);border-radius:10px;gap:16px;width:260px;max-width:calc(100vw - 48px);padding:18px;display:grid;position:absolute;top:calc(100% + 8px);right:0}.measurement-display-options-panel .measurement-gap-control{flex-direction:column;align-items:stretch}.measurement-display-options-panel small{color:var(--ink-muted);font-size:11px;line-height:1.6}.measurement-trend [role=application]:focus-visible{outline:2px solid var(--canopy);outline-offset:2px;border-radius:4px}.measurement-trend-plot svg{height:100%;min-height:0}@media (max-width:620px){.measurement-trend{padding:16px 4px 4px}.measurement-trend-plot{height:220px}.measurement-trend-toolbar{align-items:flex-start;gap:16px}.measurement-display-options{position:static}.measurement-display-options-panel{box-sizing:border-box;width:260px;max-width:calc(100vw - 80px);top:100%;right:8px}}.chart-grid-line{stroke:var(--line);stroke-width:1px}.chart-line{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.5px}.chart-line.is-battery{stroke:#2f7d5b}.chart-line.is-temperature{stroke:#d97745}.sensor-measurement-table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:12px}.sensor-measurement-table th,.sensor-measurement-table td{border-bottom:1px solid var(--line);text-align:left;padding:14px 12px}.sensor-measurement-table th{color:var(--ink-muted);letter-spacing:.06em;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600}.measurement-detail-button{border:1px solid var(--line);background:var(--surface);color:var(--canopy);border-radius:6px;padding:6px 9px;font-size:11px;font-weight:700}.measurement-detail-backdrop{overflow-y:auto}.measurement-detail-dialog{border:1px solid var(--line);background:var(--surface);border-radius:18px;width:min(920px,100%);max-height:calc(100vh - 40px);padding:32px;overflow-y:auto;box-shadow:0 32px 90px #00000047}.measurement-detail-dialog>header{border-bottom:1px solid var(--ink);justify-content:space-between;align-items:flex-start;gap:24px;padding-bottom:22px;display:flex}.measurement-detail-dialog h2{letter-spacing:-.04em;margin:0;font-size:30px}.measurement-detail-dialog header span{color:var(--ink-muted);margin-top:7px;font-family:IBM Plex Mono,monospace;font-size:13px;display:block}.measurement-detail-dialog header>button{border:1px solid var(--line);width:38px;height:38px;color:var(--ink);background:0 0;border-radius:50%;font-size:22px}.measurement-detail-groups{grid-template-columns:1fr 1fr;gap:20px;margin-top:22px;display:grid}.measurement-detail-groups>section{border:1px solid var(--line);border-radius:10px;min-width:0;padding:18px}.measurement-detail-groups h3{color:var(--canopy);margin:0 0 12px;font-size:15px}.measurement-detail-groups dl{margin:0}.measurement-detail-groups dl>div{border-bottom:1px solid var(--line);grid-template-columns:1fr 1.4fr;gap:12px;padding:9px 0;display:grid}.measurement-detail-groups dl>div:last-child{border-bottom:0}.measurement-detail-groups dt{color:var(--ink-muted);font-size:12px}.measurement-detail-groups dd{text-align:right;word-break:break-word;margin:0;font-family:IBM Plex Mono,monospace;font-size:13px}.sensor-measurement-table td:first-child,.sensor-measurement-table td:nth-child(n+3){font-family:IBM Plex Mono,monospace}@media (max-width:1100px){.sensor-detail-page{width:min(100% - 32px,760px);padding-top:36px}.sensor-summary-grid{grid-template-columns:1fr 1fr}.sensor-summary-grid article:nth-child(2){border-right:0}.sensor-summary-grid article:nth-child(n+3){border-top:1px solid var(--line)}.sensor-detail-grid,.sensor-detail-lower-grid{grid-template-columns:1fr}.sensor-route-panel,.sensor-animal-panel{border-right:0;border-bottom:1px solid var(--line)}}@media (max-width:560px){.sensor-detail-page{width:calc(100% - 24px);padding-top:28px}.sensor-detail-heading{flex-direction:column;align-items:flex-start;gap:24px;display:flex}.sensor-detail-heading h1{font-size:42px}.sensor-detail-actions{justify-content:space-between;width:100%}.sensor-summary-grid{grid-template-columns:1fr}.sensor-summary-grid article,.sensor-summary-grid article:nth-child(2){border-top:1px solid var(--line);border-right:0;min-height:106px}.sensor-summary-grid article:first-child{border-top:0}.sensor-route-panel,.sensor-settings-panel,.sensor-animal-panel,.sensor-measurement-panel{margin-inline:-12px;padding:26px 18px}.sensor-route-map,.sensor-route-empty{height:300px;min-height:300px}.sensor-setting-fields,.upload-schedule-grid,.sensor-config-options{grid-template-columns:1fr}.sensor-preset-assignment{grid-template-columns:1fr;align-items:stretch;gap:8px}.sensor-settings-heading-actions{align-items:flex-start}.configuration-current-detail,.configuration-history dl{grid-template-columns:1fr}.configuration-history-heading{flex-direction:column;align-items:flex-start}.connected-animal-card{padding:15px}.connected-animal-card header{grid-template-columns:52px minmax(0,1fr)}.connected-animal-card header>span{width:48px;height:48px}.connected-animal-thumbnail{width:52px;height:52px}.connected-animal-card button{grid-column:2;justify-self:start}.measurement-range-form,.measurement-list-tools{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.measurement-range-form label,.measurement-list-tools label:first-child{grid-column:1/-1}.measurement-chart>div:first-child{flex-direction:column;align-items:flex-start;gap:4px}.measurement-detail-dialog{padding:24px 18px}.measurement-detail-groups{grid-template-columns:1fr}}.sensor-map-page{width:calc(100% - 32px);margin:0 auto;padding:28px 0 36px}.sensor-map-loading{color:var(--ink-muted);margin:0;padding:48px}.sensor-map-heading{border-bottom:1px solid var(--ink);justify-content:space-between;align-items:flex-end;gap:24px;padding-bottom:22px;display:flex}.sensor-map-heading .back-button{margin-bottom:18px}.sensor-map-heading .eyebrow{color:var(--canopy)}.sensor-map-heading h1{letter-spacing:-.055em;margin:0;font-size:clamp(34px,4vw,58px);line-height:1}.sensor-map-heading>div>p:last-child{color:var(--ink-muted);margin:10px 0 0;font-size:14px}.sensor-map-range-state{color:var(--ink-muted);font-family:IBM Plex Mono,monospace;font-size:12px}.sensor-map-range{grid-template-columns:minmax(330px,1fr) minmax(190px,auto) minmax(190px,auto) auto;align-items:end;gap:12px;padding:16px 0;display:grid}.sensor-map-range label{color:var(--ink-muted);flex-direction:column;gap:5px;font-size:12px;font-weight:700;display:flex}.sensor-map-range input,.sensor-map-playback select{border:1px solid var(--line);background:var(--surface);height:42px;color:var(--ink);border-radius:8px;outline:none;padding:0 10px}.sensor-map-presets{flex-wrap:wrap;gap:6px;display:flex}.sensor-map-presets button,.sensor-map-playback button{border:1px solid var(--line);background:var(--surface);min-height:38px;color:var(--ink);border-radius:8px;padding:0 11px;font-size:12px;font-weight:700}.sensor-map-range .primary-button{min-height:42px}.sensor-map-range-error{color:var(--error);grid-column:2/-1;font-size:12px}.sensor-map-workspace{border:1px solid var(--line);background:var(--surface-muted);border-radius:16px;min-height:640px;position:relative;overflow:hidden;box-shadow:0 20px 60px #17201c1f}.sensor-map-canvas{z-index:0;height:clamp(640px,100vh - 260px,820px);position:relative}.sensor-map-canvas>div,.sensor-map-canvas .maplibregl-map{width:100%;height:100%}.sensor-map-console{z-index:5;color:#f3f1e9;background:#141d19;border:1px solid #ffffff2e;border-radius:14px;flex-direction:column;gap:0;width:min(330px,100% - 32px);max-height:calc(100% - 32px);padding:20px;display:flex;position:absolute;top:16px;right:16px;overflow-y:auto;box-shadow:0 18px 50px #00000040}.sensor-map-accordion{border-top:1px solid #ffffff24;padding:15px 0}.sensor-map-accordion:first-child{border-top:0;padding-top:0}.sensor-map-accordion:last-child{padding-bottom:0}.sensor-map-accordion>summary{cursor:pointer;grid-template-columns:minmax(0,1fr) auto 18px;align-items:center;gap:8px;min-height:30px;font-size:13px;font-weight:700;list-style:none;display:grid}.sensor-map-accordion>summary::-webkit-details-marker{display:none}.sensor-map-accordion>summary:after{color:var(--mist);content:"+";text-align:right;font-family:IBM Plex Mono,monospace;font-size:18px;font-weight:400}.sensor-map-accordion[open]>summary:after{content:"−"}.sensor-map-accordion>summary small{color:#aebdb5;font-family:IBM Plex Mono,monospace;font-size:9px;font-weight:400}.sensor-map-accordion>summary:focus-visible{outline:2px solid var(--mist);outline-offset:3px;border-radius:4px}.sensor-map-accordion-body{gap:16px;padding-top:14px;display:grid}.sensor-map-console header{flex-direction:column;gap:5px;display:flex}.sensor-map-console .eyebrow{color:var(--mist);margin:0}.sensor-map-console header strong{font-family:IBM Plex Mono,monospace;font-size:18px}.sensor-map-console header span{color:#aebdb5;font-size:12px}.sensor-map-playback{gap:10px;display:grid}.sensor-map-playback>div:first-child{grid-template-columns:1fr 1fr;gap:6px;display:grid}.sensor-map-playback select{grid-column:1/-1}.sensor-map-playback button,.sensor-map-playback select{color:#f3f1e9;background:#ffffff14;border-color:#ffffff29}.sensor-map-playback select option{color:#17201c;background:#fff}.sensor-map-playback input[type=range]{accent-color:#a8dadc;width:100%}.sensor-map-timeline-labels{color:#aebdb5;justify-content:space-between;font-family:IBM Plex Mono,monospace;font-size:9px;display:flex}.sensor-map-console fieldset{border:0;gap:5px;margin:0;padding:0;display:grid}.sensor-map-console legend.sr-only{padding:0}.sensor-map-console fieldset label{justify-content:space-between;align-items:center;gap:12px;min-height:36px;font-size:13px;font-weight:600;display:flex}.sensor-map-console fieldset input{accent-color:#a8dadc;width:18px;height:18px}.sensor-map-heat-controls{background:#ffffff0d;border:1px solid #ffffff1f;border-radius:9px;gap:14px;margin:2px 0 8px;padding:12px;display:grid}.sensor-heat-note{color:#b5cac4;margin:0;font-size:11px;line-height:1.6}.sensor-heat-legend{align-items:center;gap:8px;font-size:11px;display:flex}.sensor-heat-legend i{background:linear-gradient(90deg,#439ead,#68c8bd,#f4db77,#ed984b,#d34c43);border-radius:8px;flex:1;height:8px}.sensor-map-console fieldset .sensor-map-heat-controls label{gap:7px;min-height:0;display:grid}.sensor-map-heat-controls label>span{color:#c5d0ca;justify-content:space-between;align-items:center;font-family:IBM Plex Mono,monospace;font-size:10px;display:flex}.sensor-map-heat-controls output{color:#f3f1e9}.sensor-map-console fieldset .sensor-map-heat-controls input[type=range]{accent-color:#a8dadc;width:100%;height:auto}.sensor-map-area{color:#aebdb5;justify-content:space-between;margin:0;font-size:12px;display:flex}.sensor-map-area strong{color:#f3f1e9;font-family:IBM Plex Mono,monospace}.sensor-map-current{width:28px;height:28px;position:relative}.sensor-map-current>span{color:#fff;white-space:nowrap;z-index:2;background:#362249;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:700;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%)}.sensor-map-current button{z-index:1;background:#9c4dcc;border:2px solid #fff;border-radius:50%;place-items:center;width:28px;height:28px;padding:0;display:grid;position:absolute;inset:0;box-shadow:0 5px 16px #14101757}.sensor-map-current i{clip-path:polygon(50% 0,88% 90%,50% 72%,12% 90%);background:#fff;width:14px;height:14px;display:block}.sensor-map-empty{border:1px solid var(--line);background:var(--surface-muted);border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:640px;display:flex}.sensor-map-empty strong{font-size:22px}.sensor-map-empty span{color:var(--ink-muted)}@media (max-width:1180px){.sensor-map-range{grid-template-columns:1fr 1fr auto}.sensor-map-presets{grid-column:1/-1}}@media (max-width:760px){.sensor-map-page{width:calc(100% - 20px);padding-top:20px}.sensor-map-heading{flex-direction:column;align-items:flex-start}.sensor-map-range{grid-template-columns:1fr 1fr}.sensor-map-range .primary-button{grid-column:1/-1}.sensor-map-workspace{overflow:visible}.sensor-map-canvas{height:520px}.sensor-map-console{border-radius:0;width:100%;max-height:none;position:static}}@media (max-width:500px){.sensor-route-heading-actions{flex-direction:column;align-items:flex-end}.sensor-map-range{grid-template-columns:1fr}.sensor-map-presets,.sensor-map-range .primary-button{grid-column:auto}}.managed-animal-link{color:var(--ink-muted);text-align:left;text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb,var(--ink-muted)38%,transparent);text-decoration-color:color-mix(in srgb,var(--ink-muted)38%,transparent);text-underline-offset:3px;background:0 0;border:0;margin-top:4px;padding:0;font-size:12px;display:block}.managed-animal-link:hover{color:var(--canopy)}.animal-detail-page{width:min(1380px,100% - 48px);margin:0 auto;padding:48px 0 96px}.animal-detail-heading{border-bottom:1px solid var(--ink);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:28px;padding-bottom:34px;display:grid}.animal-detail-heading .back-button{margin-bottom:32px}.animal-detail-heading .eyebrow,.animal-profile-panel .eyebrow,.animal-tracking-panel .eyebrow,.animal-observation-panel .eyebrow{color:var(--canopy)}.animal-detail-heading h1{letter-spacing:-.06em;margin:0;font-size:clamp(42px,5vw,70px);line-height:1}.animal-detail-heading>div>p:last-child{color:var(--ink-muted);margin:14px 0 0;font-size:15px}.animal-detail-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.animal-detail-actions .primary-button{min-height:38px}.animal-track-badge{min-height:38px;color:var(--canopy);letter-spacing:.05em;border:1px solid;border-radius:999px;place-items:center;padding:0 14px;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:700;display:grid}.animal-track-badge.is-ended{color:var(--ink-muted)}.animal-summary-grid{border-bottom:1px solid var(--line);grid-template-columns:repeat(4,1fr);display:grid}.animal-summary-grid article{border-right:1px solid var(--line);flex-direction:column;justify-content:space-between;gap:8px;min-width:0;min-height:128px;padding:24px;display:flex}.animal-summary-grid article:last-child{border-right:0}.animal-summary-grid article>span{color:var(--ink-muted);letter-spacing:.08em;font-family:IBM Plex Mono,monospace;font-size:11px}.animal-summary-grid article>strong{letter-spacing:-.035em;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(20px,2vw,29px);font-weight:500;overflow:hidden}.animal-summary-grid article>small{color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.animal-detail-grid{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,7fr) minmax(360px,5fr);display:grid}.animal-profile-panel,.animal-tracking-panel,.animal-observation-panel{min-width:0;padding:32px}.animal-profile-panel{border-right:1px solid var(--line)}.animal-profile-heading-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.animal-profile-heading-actions button{justify-content:center;align-items:center;gap:6px;display:inline-flex}.animal-profile-heading-actions>span{color:var(--ink-muted);margin-right:4px;font-size:12px}.animal-profile-saved{border-left:3px solid var(--canopy);background:color-mix(in srgb,var(--canopy)7%,transparent);color:var(--ink-muted);margin:22px 0 0;padding:10px 12px;font-size:13px}.animal-edit-form{gap:26px;margin-top:28px;display:grid}.animal-edit-form fieldset{border:0;min-width:0;margin:0;padding:0}.animal-edit-form legend{border-bottom:1px solid var(--line);width:100%;margin-bottom:14px;padding-bottom:10px;font-size:14px;font-weight:700}.animal-edit-form fieldset>div{grid-template-columns:1fr 1fr;gap:14px;display:grid}.animal-edit-form label{color:var(--ink-muted);flex-direction:column;gap:7px;font-size:12px;font-weight:700;display:flex}.animal-edit-form input,.animal-edit-form textarea{border:1px solid var(--line);resize:vertical;background:var(--surface);min-width:0;color:var(--ink);font:inherit;border-radius:8px;outline:none;padding:11px 12px}.animal-image-gallery{border-top:1px solid var(--line);margin-top:28px;padding-top:24px}.animal-image-gallery>div:first-child,.animal-image-editor-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.animal-image-gallery h3{margin:0;font-size:15px}.animal-image-editor{border:0;min-width:0;margin:0;padding:0}.animal-image-editor>legend{border-bottom:1px solid var(--line);width:100%;margin-bottom:14px;padding-bottom:10px;font-size:14px;font-weight:700}.animal-image-gallery>div:first-child>span,.animal-image-editor-head>span{color:var(--ink-muted);font-family:IBM Plex Mono,monospace;font-size:11px}.animal-image-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.animal-image-grid figure{min-width:0;margin:0;position:relative}.animal-image-grid img{aspect-ratio:1;border:1px solid var(--line);-o-object-fit:cover;object-fit:cover;border-radius:10px;width:100%;display:block}.animal-image-grid figcaption{color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:6px;font-size:10px;overflow:hidden}.animal-image-cover-badge{color:#fff;letter-spacing:.04em;background:#133a30e0;border-radius:999px;padding:4px 7px;font-size:10px;font-weight:700;position:absolute;top:7px;left:7px}.animal-image-grid figure>button{color:#fff;background:#141c18c2;border:1px solid #ffffff73;border-radius:8px;place-items:center;width:30px;height:30px;padding:0;display:grid;position:absolute;top:6px;right:6px}.animal-image-empty{border:1px dashed var(--line);min-height:92px;color:var(--ink-muted);border-radius:10px;justify-content:center;align-items:center;gap:9px;margin-top:14px;font-size:12px;display:flex}.animal-edit-form .animal-image-editor-head{display:flex}.animal-image-editor-head label{border:1px solid var(--line);color:var(--ink);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:9px 11px;display:inline-flex}.animal-image-editor-head label.is-disabled{cursor:default;opacity:.45}.animal-image-editor-head label:focus-within,.animal-image-grid figure>button:focus-visible{outline:3px solid color-mix(in srgb,var(--mist)52%,transparent);outline-offset:2px}.animal-image-editor-head input{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.animal-image-error{color:var(--error);margin:10px 0 0;font-size:12px}.animal-profile-body{grid-template-columns:190px minmax(0,1fr);gap:28px;margin-top:28px;display:grid}.animal-field-tag{background:linear-gradient(135deg,transparent 74%,#a8dadc3d 74%),var(--canopy-deep);color:#f3f1e9;border-radius:14px;flex-direction:column;min-height:242px;padding:20px;display:flex;position:relative;overflow:hidden}.animal-representative-card{color:#fff;isolation:isolate;border-radius:14px;flex-direction:column;justify-content:space-between;min-height:242px;margin:0;padding:16px;display:flex;position:relative;overflow:hidden}.animal-representative-card:after{z-index:-1;content:"";background:linear-gradient(#0816126b,#0000 45%,#081612b8);position:absolute;inset:0}.animal-representative-card img{z-index:-2;-o-object-fit:cover;object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.animal-representative-card>span{letter-spacing:.08em;background:#0e251f7a;border:1px solid #ffffff7a;border-radius:999px;align-self:flex-start;padding:5px 8px;font-size:10px;font-weight:700}.animal-representative-card figcaption{text-shadow:0 1px 5px #00000061;font-size:17px;font-weight:800;line-height:1.35}.animal-field-tag:after{content:"";border:1px solid #ffffff59;border-radius:50%;width:34px;height:34px;position:absolute;bottom:16px;right:16px}.animal-field-tag>span{color:var(--mist);letter-spacing:.14em;font-family:IBM Plex Mono,monospace;font-size:10px}.animal-field-tag>strong{letter-spacing:-.08em;margin:auto 0;font-family:IBM Plex Mono,monospace;font-size:58px;font-weight:500}.animal-field-tag>em{max-width:110px;font-size:12px;font-style:normal;font-weight:700;line-height:1.45}.animal-core-facts dl,.animal-release-block dl,.animal-biometric-block dl,.animal-sensor-card dl{gap:0;margin:0;display:grid}.animal-core-facts dl{grid-template-columns:repeat(2,minmax(0,1fr))}.animal-core-facts dl>div,.animal-release-block dl>div,.animal-biometric-block dl>div,.animal-sensor-card dl>div{border-bottom:1px solid var(--line);min-width:0;padding:12px 0}.animal-core-facts dl>div:nth-child(odd){padding-right:16px}.animal-core-facts dl>div:nth-child(2n){border-left:1px solid var(--line);padding-left:16px}.animal-core-facts dt,.animal-release-block dt,.animal-biometric-block dt,.animal-sensor-card dt{color:var(--ink-muted);font-size:12px;font-weight:700}.animal-core-facts dd,.animal-release-block dd,.animal-biometric-block dd,.animal-sensor-card dd{word-break:break-word;margin:6px 0 0;font-size:14px;font-weight:600}.animal-field-note{border-left:3px solid var(--mist);background:color-mix(in srgb,var(--mist)10%,transparent);margin-top:18px;padding:16px}.animal-field-note span{color:var(--ink-muted);font-size:12px;font-weight:700}.animal-field-note p{margin:7px 0 0;font-size:14px;line-height:1.65}.animal-release-block,.animal-biometric-block{border-top:1px solid var(--line);margin-top:28px;padding-top:24px}.animal-release-block h3,.animal-biometric-block h3,.animal-location-panel h3{margin:0 0 14px;font-size:15px}.animal-release-block dl{grid-template-columns:repeat(3,minmax(0,1fr))}.animal-release-block dl>div{padding-right:18px}.animal-biometric-block dl{grid-template-columns:repeat(5,minmax(0,1fr))}.animal-biometric-block dl>div{padding-right:12px}.animal-biometric-block dd{font-family:IBM Plex Mono,monospace;font-size:13px}.animal-tracking-panel{background:color-mix(in srgb,var(--surface-muted)48%,transparent)}.animal-tracking-panel .section-heading>span.is-running{color:var(--canopy)}.animal-tracking-panel .section-heading>span.is-stopped{color:var(--error)}.animal-sensor-card{border:1px solid var(--line);background:var(--surface);border-radius:12px;margin-top:28px;padding:22px}.animal-sensor-card>strong{font-family:IBM Plex Mono,monospace;font-size:24px}.animal-sensor-card dl{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:12px}.animal-sensor-card dl>div:nth-child(odd){padding-right:14px}.animal-sensor-card dl>div:nth-child(2n){border-left:1px solid var(--line);padding-left:14px}.animal-sensor-actions{flex-wrap:wrap;gap:7px;margin-top:18px;display:flex}.animal-tracking-stop{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;padding-top:18px;display:flex}.animal-tracking-stop span{color:var(--ink-muted);font-size:11px}.animal-tracking-stop .danger-button{border-color:color-mix(in srgb,var(--error)50%,var(--line));min-height:40px;color:var(--error);flex:none;margin-left:auto}.animal-tracking-stop .danger-button:hover{background:color-mix(in srgb,var(--error)8%,var(--surface))}.animal-location-panel{margin-top:32px}.animal-location-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;display:flex}.animal-location-heading h3{margin-bottom:12px}.animal-location-heading>span{color:var(--ink-muted);font-size:12px}.animal-location-map{z-index:0;border:1px solid var(--line);background:var(--surface-muted);isolation:isolate;border-radius:12px;height:260px;position:relative;overflow:hidden}.animal-location-map .leaflet-container{width:100%;height:100%}.animal-location-map .leaflet-interactive:focus{outline:3px solid var(--focus);outline-offset:2px}:root[data-theme=dark] .animal-location-map .leaflet-tile{filter:brightness(.7)contrast(1.15)saturate(.7)}.animal-location-pin{border:2px solid var(--canopy);background:var(--surface);box-shadow:0 0 0 2px var(--surface),0 2px 8px #0000003d;color:var(--canopy);border-radius:50%;place-items:center;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:700;display:grid}.animal-location-pin.is-latest{background:var(--canopy);color:var(--surface)}.animal-location-pin.is-release{border-color:var(--ink-muted);color:var(--ink);border-radius:999px;font-family:Noto Sans KR,sans-serif;font-size:10px}.animal-location-pin:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.animal-location-list{margin:12px 0 0;padding:0;list-style:none;display:grid}.animal-location-list li{border-bottom:1px solid var(--line);-moz-column-gap:10px;grid-template-columns:28px minmax(0,1fr);align-items:center;column-gap:10px;padding:9px 0;display:grid}.animal-location-list li>span{border:2px solid var(--canopy);width:24px;height:24px;color:var(--canopy);border-radius:50%;grid-row:1/3;place-items:center;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:700;display:grid}.animal-location-list li>span.is-latest{background:var(--canopy);color:var(--surface)}.animal-location-list time{font-size:12px;font-weight:700}.animal-location-list small{color:var(--ink-muted);font-family:IBM Plex Mono,monospace;font-size:11px}.animal-location-no-receipt,.animal-location-release-note{color:var(--ink-muted);margin:12px 0 0;font-size:11px}.animal-location-release-note{align-items:center;gap:8px;display:flex}.animal-location-release-note span{border:1px solid var(--ink-muted);color:var(--ink);border-radius:999px;padding:3px 7px;font-size:10px;font-weight:700}.animal-location-footer{flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:14px;display:flex}.animal-location-footer .small-button{min-height:44px;margin-left:auto}.animal-location-empty{border:1px dashed var(--line);background:var(--surface);min-height:180px;color:var(--ink-muted);border-radius:12px;place-items:center;font-size:13px;display:grid}.animal-observation-panel{padding-top:36px}.animal-observation-panel .sensor-measurement-table-wrap{margin-top:24px}.animal-observation-source{color:var(--ink-muted);margin:8px 0 20px;font-size:13px}.animal-observation-empty{min-height:230px;margin-top:24px}@media (max-width:1100px){.animal-detail-page{width:min(100% - 32px,780px);padding-top:36px}.animal-summary-grid{grid-template-columns:1fr 1fr}.animal-summary-grid article:nth-child(2){border-right:0}.animal-summary-grid article:nth-child(n+3){border-top:1px solid var(--line)}.animal-detail-grid{grid-template-columns:1fr}.animal-profile-panel{border-right:0;border-bottom:1px solid var(--line)}}@media (max-width:640px){.animal-detail-page{width:calc(100% - 24px);padding-top:28px}.animal-detail-heading{flex-direction:column;align-items:flex-start;gap:24px;display:flex}.animal-detail-heading h1{font-size:42px}.animal-detail-actions{flex-direction:column;align-items:stretch;width:100%}.animal-summary-grid{grid-template-columns:1fr}.animal-summary-grid article,.animal-summary-grid article:nth-child(2){border-top:1px solid var(--line);border-right:0;min-height:108px}.animal-summary-grid article:first-child{border-top:0}.animal-profile-panel,.animal-tracking-panel,.animal-observation-panel{margin-inline:-12px;padding:26px 18px}.animal-profile-body{grid-template-columns:1fr}.animal-field-tag,.animal-representative-card{min-height:210px}.animal-core-facts dl,.animal-release-block dl,.animal-biometric-block dl,.animal-sensor-card dl{grid-template-columns:1fr}.animal-core-facts dl>div:nth-child(odd),.animal-core-facts dl>div:nth-child(2n),.animal-release-block dl>div,.animal-biometric-block dl>div,.animal-sensor-card dl>div:nth-child(odd),.animal-sensor-card dl>div:nth-child(2n){border-left:0;padding-left:0;padding-right:0}.animal-profile-heading-actions{flex-direction:column;align-items:flex-end}.animal-profile-heading-actions>span{margin-right:0}.animal-edit-form fieldset>div,.sensor-animal-connect-form{grid-template-columns:1fr}.animal-image-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sensor-animal-connect-form>p,.sensor-animal-connect-memo,.sensor-animal-connect-form .primary-button{grid-column:auto}}.data-export-main{width:min(1180px,100% - 48px);margin:0 auto;padding:52px 0 88px}.data-export-heading{border-bottom:1px solid var(--ink);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:26px;padding-bottom:34px;display:grid}.data-export-heading .back-button{grid-column:1/-1}.data-export-heading .eyebrow,.data-export-task .eyebrow{color:var(--canopy)}.data-export-heading h1{letter-spacing:-.06em;margin:8px 0 0;font-size:clamp(42px,5.5vw,68px);line-height:1}.data-export-heading>div>p:last-child{color:var(--ink-muted);margin:16px 0 0;font-size:15px}.data-export-heading>svg{color:var(--canopy)}.data-export-layout{grid-template-columns:minmax(0,1fr) 330px;align-items:start;gap:42px;padding-top:38px;display:grid}.data-export-form{min-width:0}.data-export-form fieldset{border:0;min-width:0;margin:0;padding:0 0 34px}.data-export-form fieldset+fieldset{border-top:1px solid var(--line);padding-top:34px}.data-export-form legend{align-items:center;gap:10px;width:100%;margin-bottom:20px;font-size:20px;font-weight:800;display:flex}.data-export-form legend span{color:var(--canopy);letter-spacing:.08em;font-family:IBM Plex Mono,monospace;font-size:11px}.data-export-scope>label,.data-export-target-list>label{cursor:pointer;display:grid}.data-export-scope>label{border-top:1px solid var(--line);grid-template-columns:auto minmax(0,1fr);gap:13px;padding:15px 0}.data-export-scope>label>input,.data-export-target-list>label>input{width:17px;height:17px;accent-color:var(--canopy);margin:3px 0 0}.data-export-scope label span,.data-export-target-list label span{gap:5px;display:grid}.data-export-scope label strong,.data-export-target-list label strong{font-size:15px}.data-export-scope label small,.data-export-target-list label small{color:var(--ink-muted);font-size:12px}.data-export-dates{background:var(--surface-muted);grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:17px;display:grid}.data-export-dates label{color:var(--ink-muted);gap:7px;font-size:12px;font-weight:700;display:grid}.data-export-dates input{border:1px solid var(--line);background:var(--surface);min-width:0;color:var(--ink);font:inherit;border-radius:7px;padding:11px 12px}.data-export-target-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.data-export-target-head p{color:var(--ink-muted);margin:0;font-family:IBM Plex Mono,monospace;font-size:11px}.data-export-target-list{border-top:1px solid var(--ink)}.data-export-target-list>label{border-bottom:1px solid var(--line);grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:13px;padding:17px 0}.data-export-target-list code{max-width:220px;color:var(--canopy);text-overflow:ellipsis;white-space:nowrap;font-family:IBM Plex Mono,monospace;font-size:11px;overflow:hidden}.data-export-note{color:var(--ink-muted);margin:12px 0 0;font-size:12px}.data-export-form-error{border-left:3px solid var(--error);background:color-mix(in srgb,var(--error)8%,var(--surface));color:var(--error);margin:0 0 14px;padding:12px 14px;font-size:13px;font-weight:700}.data-export-submit,.data-export-task button,.update-control .small-button{align-items:center;gap:7px;display:inline-flex}.data-export-submit{justify-content:center;min-width:180px}.data-export-task{border:1px solid var(--line);border-top:3px solid var(--canopy);background:var(--surface);min-height:330px;padding:25px;position:sticky;top:92px}.data-export-task-icon{background:var(--surface-muted);width:50px;height:50px;color:var(--canopy);border-radius:50%;place-items:center;margin:28px 0 20px;display:grid}.data-export-task-icon.is-processing svg{animation:1.5s linear infinite data-export-spin}.data-export-task-icon.is-completed{background:color-mix(in srgb,var(--canopy)13%,var(--surface))}.data-export-task-icon.is-failed{background:color-mix(in srgb,var(--error)10%,var(--surface));color:var(--error)}.data-export-task h2{letter-spacing:-.04em;margin:0;font-size:24px}.data-export-task>p:not(.eyebrow){color:var(--ink-muted);margin:10px 0 22px;font-size:13px;line-height:1.65}.data-export-task dl{margin:0 0 22px;display:grid}.data-export-task dl div{border-top:1px solid var(--line);grid-template-columns:72px minmax(0,1fr);gap:8px;padding:8px 0;font-size:11px;display:grid}.data-export-task dt{color:var(--ink-muted)}.data-export-task dd{text-align:right;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-family:IBM Plex Mono,monospace;overflow:hidden}.data-export-empty{text-align:center;align-content:center;place-items:center;min-height:360px;padding:60px 24px;display:grid}.data-export-empty h2{margin:18px 0 0;font-size:26px}.data-export-empty p{color:var(--ink-muted);margin:9px 0 22px;font-size:14px}.data-export-loading{grid-template-columns:minmax(0,1fr) 330px;gap:42px;padding-top:38px;display:grid}.data-export-loading div{background:linear-gradient(90deg,var(--surface-muted)25%,var(--surface)50%,var(--surface-muted)75%);background-size:200% 100%;min-height:360px;animation:1.4s infinite data-export-skeleton}@keyframes data-export-spin{to{transform:rotate(360deg)}}@keyframes data-export-skeleton{to{background-position:-200% 0}}@media (max-width:900px){.data-export-layout,.data-export-loading{grid-template-columns:1fr}.data-export-task{min-height:0;position:static}}@media (max-width:640px){.data-export-main{width:calc(100% - 24px);padding-top:28px}.data-export-heading{grid-template-columns:1fr}.data-export-heading h1{font-size:42px}.data-export-heading>svg{display:none}.data-export-dates{grid-template-columns:1fr}.data-export-target-list>label{grid-template-columns:auto minmax(0,1fr)}.data-export-target-list code{grid-column:2;max-width:100%}.data-export-submit{width:100%}}.telemetry-operations-main{width:min(1260px,100% - 48px);margin:0 auto;padding:52px 0 80px}.telemetry-operations-heading,.telemetry-inbox-heading,.telemetry-detail-heading{justify-content:space-between;align-items:end;gap:24px;display:flex}.telemetry-operations-heading{border-bottom:1px solid var(--ink);padding-bottom:30px}.telemetry-operations-heading .eyebrow,.telemetry-inbox-heading .eyebrow,.telemetry-detail-heading .eyebrow{color:var(--canopy)}.telemetry-operations-heading h1{letter-spacing:-.055em;margin:8px 0 0;font-size:clamp(42px,5.5vw,68px);line-height:1}.telemetry-operations-heading p:last-child,.telemetry-inbox-heading p:last-child{color:var(--ink-muted);margin:16px 0 0;font-size:14px}.telemetry-operations-page .small-button{white-space:nowrap;justify-content:center;align-items:center;gap:7px;min-height:42px;display:inline-flex}.telemetry-health{background:var(--canopy-deep);color:#fff;border-radius:14px;grid-template-columns:minmax(0,1.4fr) minmax(260px,.8fr);min-height:244px;margin-top:30px;display:grid;overflow:hidden}.telemetry-health.is-degraded{background:#664624}.telemetry-health.is-unavailable{background:#6a3430}.telemetry-health-main{flex-direction:column;align-items:flex-start;padding:28px 34px;display:flex}.telemetry-health-kicker{color:#d9e8df;letter-spacing:.11em;align-items:center;gap:8px;font-family:IBM Plex Mono,monospace;font-size:11px;display:inline-flex}.telemetry-health-title{align-items:center;gap:12px;margin-top:28px;display:flex}.telemetry-health-light{background:#7fd0a1;border:2px solid #ffffffc7;border-radius:50%;width:12px;height:12px;box-shadow:0 0 0 5px #ffffff1f}.telemetry-health.is-degraded .telemetry-health-light{background:#f8cb72}.telemetry-health.is-unavailable .telemetry-health-light{background:#ffa9a0}.telemetry-health-title h2{margin:0;font-size:clamp(30px,3vw,42px);line-height:1.2}.telemetry-health-main>p{color:#ffffffdb;margin:12px 0 0;font-size:14px}.telemetry-health-main>small{color:#ffffffb8;margin-top:auto;padding-top:28px;font-size:11px}.telemetry-health-metrics{border-left:1px solid #fff3;grid-template-columns:1fr;padding:22px 28px;display:grid}.telemetry-health-metrics>div{border-bottom:1px solid #ffffff2e;justify-content:space-between;align-items:center;gap:20px;display:flex}.telemetry-health-metrics>div:last-child{border-bottom:0}.telemetry-health-metrics span{color:#ffffffb8;font-size:12px}.telemetry-health-metrics strong{font-size:15px}.telemetry-capacity{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:14px;display:grid}.telemetry-capacity>div{border:1px solid var(--line);background:var(--surface);border-radius:12px;min-width:0;min-height:140px;padding:20px}.telemetry-capacity span{color:var(--ink-muted);font-size:12px;font-weight:700}.telemetry-capacity strong{margin-top:11px;font-family:IBM Plex Mono,monospace;font-size:34px;font-weight:500;line-height:1.1;display:block}.telemetry-capacity strong small{color:var(--ink-muted);font-size:16px}.telemetry-capacity p{color:var(--ink-muted);margin:10px 0 0;font-size:11px}.telemetry-inbox{border:1px solid var(--line);background:var(--surface);border-radius:14px;margin-top:28px;padding:30px}.telemetry-inbox-heading h2{margin:8px 0 0;font-size:30px;line-height:1.2}.telemetry-inbox-heading p:last-child{margin-top:8px}.telemetry-filters{border-bottom:1px solid var(--line);grid-template-columns:160px minmax(140px,1fr) auto;align-items:end;gap:10px;margin-top:26px;padding-bottom:24px;display:grid}.telemetry-filters label,.telemetry-detail-actions label{color:var(--ink-muted);gap:7px;font-size:12px;font-weight:700;display:grid}.telemetry-filters input,.telemetry-filters select,.telemetry-detail-actions textarea{border:1px solid var(--line);background:var(--canvas);width:100%;min-height:42px;color:var(--ink);font:inherit;border-radius:8px;outline:none;padding:8px 11px;font-size:13px}.telemetry-inline-error,.telemetry-inline-notice{border-left:3px solid var(--error);background:color-mix(in srgb,var(--error)10%,var(--surface));color:var(--ink);align-items:center;gap:8px;margin:16px 0 0;padding:12px 14px;font-size:13px;display:flex}.telemetry-inline-notice{border-left-color:var(--canopy);background:color-mix(in srgb,var(--canopy)10%,var(--surface))}.telemetry-list-head,.telemetry-list-row{grid-template-columns:minmax(180px,1.2fr) minmax(190px,1.6fr) 64px 96px 58px;align-items:center;gap:14px;display:grid}.telemetry-list-head{color:var(--ink-muted);letter-spacing:.04em;padding:20px 12px 12px;font-family:IBM Plex Mono,monospace;font-size:10px}.telemetry-list-row{border:0;border-top:1px solid var(--line);width:100%;min-height:82px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;padding:14px 12px}.telemetry-list-row:hover,.telemetry-list-row.is-selected{background:color-mix(in srgb,var(--canopy)8%,var(--surface))}.telemetry-list-row>span:nth-child(-n+2){gap:5px;min-width:0;display:grid}.telemetry-list-row strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.telemetry-list-row small{color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.telemetry-state{border:1px solid var(--line);color:var(--ink-muted);white-space:nowrap;border-radius:999px;justify-self:start;padding:6px 9px;font-size:11px;font-weight:700}.telemetry-state.is-open{border-color:color-mix(in srgb,var(--error)40%,var(--line));color:var(--error)}.telemetry-state.is-retrying{border-color:color-mix(in srgb,var(--warning)40%,var(--line));color:var(--warning)}.telemetry-state.is-resolved{border-color:color-mix(in srgb,var(--canopy)40%,var(--line));color:var(--canopy)}.telemetry-row-action{color:var(--canopy);align-items:center;gap:3px;font-size:11px;font-weight:700;display:inline-flex}.telemetry-list-empty{min-height:170px;color:var(--ink-muted);justify-content:center;align-items:center;gap:8px;font-size:13px;display:flex}.telemetry-list-empty:has(strong){flex-direction:column}.telemetry-list-empty strong{color:var(--ink);font-size:17px}.telemetry-detail{border:1px solid color-mix(in srgb,var(--canopy)40%,var(--line));background:var(--canvas);border-radius:12px;margin-top:22px;padding:24px}.telemetry-detail-heading{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.telemetry-detail-heading .eyebrow{margin:0}.telemetry-detail h3{overflow-wrap:anywhere;grid-column:1/-1;margin:0;font-size:22px}.telemetry-detail-message{color:var(--error);align-items:center;gap:8px;margin:18px 0;font-size:13px;display:flex}.telemetry-detail-facts{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0;display:grid}.telemetry-detail-facts>div{border-top:1px solid var(--line);min-width:0;padding:12px 0}.telemetry-detail-facts dt{color:var(--ink-muted);font-size:11px}.telemetry-detail-facts dd{overflow-wrap:anywhere;margin:6px 0 0;font-size:12px;font-weight:700}.telemetry-resolution-note{background:var(--surface);padding:12px 14px;font-size:12px}.telemetry-raw{margin-top:14px;font-size:12px}.telemetry-raw summary{color:var(--canopy);cursor:pointer;font-weight:700}.telemetry-raw pre{border:1px solid var(--line);background:var(--surface);max-height:300px;color:var(--ink);border-radius:8px;padding:14px;font-size:11px;overflow:auto}.telemetry-detail-actions{border-top:1px solid var(--line);grid-template-columns:auto minmax(0,1fr);align-items:end;gap:20px;margin-top:20px;padding-top:20px;display:grid}.telemetry-detail-actions form{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;display:grid}.telemetry-detail-actions label{grid-column:1/-1}.telemetry-detail-actions textarea{resize:vertical;min-height:60px}.telemetry-more-button{border:1px solid var(--line);background:var(--canvas);width:100%;min-height:44px;color:var(--ink);font:inherit;cursor:pointer;border-radius:8px;margin-top:18px;font-size:13px;font-weight:700;display:block}.telemetry-detail-loading{color:var(--ink-muted);font-size:12px}@media (max-width:1050px){.telemetry-capacity{grid-template-columns:repeat(2,minmax(0,1fr))}.telemetry-list-head,.telemetry-list-row{grid-template-columns:minmax(150px,1fr) minmax(150px,1.3fr) 88px 52px}.telemetry-list-head span:nth-child(3),.telemetry-list-row>span:nth-child(3){display:none}}@media (max-width:760px){.telemetry-operations-main{width:calc(100% - 28px);padding:30px 0 60px}.telemetry-operations-heading,.telemetry-inbox-heading{flex-direction:column;align-items:start;gap:16px}.telemetry-health{grid-template-columns:1fr}.telemetry-health-metrics{border-top:1px solid #fff3;border-left:0}.telemetry-health-metrics>div{min-height:48px}.telemetry-inbox{padding:18px}.telemetry-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.telemetry-filters>button{grid-column:1/-1}.telemetry-list-head{display:none}.telemetry-list-row{grid-template-columns:minmax(0,1fr) auto;gap:10px}.telemetry-list-row>span:nth-child(2){grid-area:2/1/auto/-1}.telemetry-list-row>span:nth-child(4){grid-area:1/2}.telemetry-row-action{display:none}.telemetry-detail-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:520px){.telemetry-detail h3{font-size:18px}.telemetry-capacity,.telemetry-filters,.telemetry-detail-actions,.telemetry-detail-actions form{grid-template-columns:1fr}.telemetry-capacity>div{min-height:110px}.telemetry-detail-actions label{grid-column:1}}.firmware-main{width:min(1260px,100% - 48px);margin:0 auto;padding:52px 0 80px}.firmware-heading,.firmware-section-heading{justify-content:space-between;align-items:end;gap:22px;display:flex}.firmware-heading{border-bottom:1px solid var(--ink);padding-bottom:30px}.firmware-page .eyebrow{color:var(--canopy)}.firmware-heading h1{letter-spacing:-.055em;margin:8px 0 0;font-size:clamp(42px,5.5vw,68px);line-height:1}.firmware-heading p:last-child{color:var(--ink-muted);margin:16px 0 0;font-size:14px}.firmware-page .small-button{white-space:nowrap;justify-content:center;align-items:center;gap:7px;min-height:42px;display:inline-flex}.firmware-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:28px 0;display:grid}.firmware-summary>div{border:1px solid var(--line);background:var(--surface);border-radius:12px;min-height:128px;padding:20px}.firmware-summary span,.firmware-summary small{color:var(--ink-muted);font-size:12px;display:block}.firmware-summary span{font-weight:700}.firmware-summary strong{margin:9px 0 3px;font-family:IBM Plex Mono,monospace;font-size:34px;font-weight:500;line-height:1;display:block}.firmware-create{border:1px solid color-mix(in srgb,var(--canopy)38%,var(--line));background:var(--surface);border-radius:14px;gap:22px;margin:0 0 26px;padding:26px;display:grid}.firmware-create h2,.firmware-section-heading h2{margin:6px 0 0;font-size:28px}.firmware-create p:last-child{color:var(--ink-muted);margin:7px 0 0;font-size:13px}.firmware-create form{grid-template-columns:130px minmax(170px,1fr) minmax(170px,1fr);align-items:end;gap:12px;display:grid}.firmware-create form>button{grid-column:1/-1;justify-self:end}.firmware-memo-field{grid-column:1/-1}.sensor-auto-update{color:var(--ink);align-items:flex-start;gap:12px;margin:16px 0;display:flex}.sensor-auto-update input[type=checkbox]{width:18px;height:18px;min-height:0;accent-color:var(--canopy);flex:0 0 18px;margin:2px 0 0}.sensor-auto-update span{gap:5px;display:grid}.sensor-auto-update small{color:var(--ink-muted);font-size:12px;font-weight:400;line-height:1.6}.firmware-memo-editor{gap:10px;margin-top:24px;display:grid}.firmware-memo-editor label{color:var(--ink);font-size:14px;font-weight:700}.firmware-memo-field textarea,.firmware-memo-editor textarea{border:1px solid var(--line);background:var(--canvas);width:100%;color:var(--ink);font:inherit;resize:vertical;border-radius:8px;padding:11px;font-size:13px;line-height:1.6}.firmware-memo-editor>div{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.firmware-memo-editor small{color:var(--ink-muted);font-size:11px}.firmware-row-title .firmware-memo-preview{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.firmware-create label,.firmware-filter,.firmware-upload label{color:var(--ink-muted);gap:7px;font-size:12px;font-weight:700;display:grid}.firmware-create input,.firmware-create select,.firmware-filter select,.firmware-upload input{border:1px solid var(--line);background:var(--canvas);width:100%;min-height:42px;color:var(--ink);font:inherit;border-radius:8px;padding:8px 11px;font-size:13px}.firmware-create label small,.firmware-upload small{color:var(--ink-muted);font-size:11px;font-weight:400}.firmware-workspace{grid-template-columns:minmax(0,.95fr) minmax(380px,1.05fr);align-items:start;gap:20px;margin-top:28px;display:grid}.firmware-catalog,.firmware-detail{border:1px solid var(--line);background:var(--surface);border-radius:14px;min-width:0;padding:28px}.firmware-section-heading .eyebrow,.firmware-detail-head .eyebrow{margin:0}.firmware-filter{width:164px;margin:24px 0 18px}.firmware-list{border-top:1px solid var(--line)}.firmware-list-row{border:0;border-bottom:1px solid var(--line);width:100%;min-height:94px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;padding:15px 11px;display:grid}.firmware-list-row:hover,.firmware-list-row.is-selected{background:color-mix(in srgb,var(--canopy)8%,var(--surface))}.firmware-row-icon{background:color-mix(in srgb,var(--canopy)10%,var(--surface));width:36px;height:36px;color:var(--canopy);border-radius:9px;place-items:center;display:grid}.firmware-row-title{gap:4px;min-width:0;display:grid}.firmware-row-title strong{font-family:IBM Plex Mono,monospace;font-size:16px}.firmware-row-title small,.firmware-row-sub{color:var(--ink-muted);font-size:11px}.firmware-row-sub{grid-column:2/-1;margin-top:-15px}.firmware-badge{border:1px solid var(--line);color:var(--ink-muted);white-space:nowrap;border-radius:999px;justify-self:end;padding:6px 10px;font-size:11px;font-weight:700}.firmware-badge.is-published{border-color:color-mix(in srgb,var(--canopy)40%,var(--line));background:color-mix(in srgb,var(--canopy)8%,var(--surface));color:var(--canopy)}.firmware-empty{min-height:150px;color:var(--ink-muted);text-align:center;place-items:center;margin:0;font-size:13px;display:grid}.firmware-detail{min-height:390px}.firmware-detail-head{grid-template-columns:1fr auto;align-items:start;gap:6px;display:grid}.firmware-detail-head h2{grid-column:1/-1;margin:8px 0 0;font-family:IBM Plex Mono,monospace;font-size:32px}.firmware-detail-head>p:last-child{color:var(--ink-muted);grid-column:1/-1;margin:0;font-size:12px}.firmware-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:24px 0 0;display:grid}.firmware-facts>div{border-top:1px solid var(--line);padding-top:12px}.firmware-facts dt{color:var(--ink-muted);font-size:11px}.firmware-facts dd{overflow-wrap:anywhere;margin:7px 0 0;font-size:12px;font-weight:700}.firmware-facts .firmware-hash{grid-column:1/-1}.firmware-hash dd{font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:400}.firmware-step{border-top:1px solid var(--line);margin-top:24px;padding-top:22px}.firmware-step>span{color:var(--canopy);letter-spacing:.1em;font-family:IBM Plex Mono,monospace;font-size:10px}.firmware-step h3{margin:7px 0 0;font-size:18px}.firmware-step p,.firmware-delete p,.firmware-locked{color:var(--ink-muted);margin:8px 0 14px;font-size:12px;line-height:1.55}.firmware-step>small{color:var(--ink-muted);margin-top:8px;font-size:11px;display:block}.firmware-upload{gap:8px;display:grid}.firmware-upload .small-button{justify-self:start;margin-top:4px}.firmware-publication{margin-top:2px}.firmware-page .firmware-danger{border-color:color-mix(in srgb,var(--error)50%,var(--line));color:var(--error)}.firmware-delete{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-top:24px;padding-top:20px;display:flex}.firmware-delete p{margin:0}.firmware-locked{border-left:3px solid var(--line);background:var(--canvas);margin-top:24px;padding:13px}.firmware-placeholder{min-height:320px;color:var(--ink-muted);text-align:center;place-content:center;justify-items:center;display:grid}.firmware-placeholder h2{color:var(--ink);margin:14px 0 0;font-size:20px}.firmware-placeholder p{max-width:280px;font-size:12px;line-height:1.6}@media (max-width:1100px){.firmware-create form{grid-template-columns:130px repeat(2,minmax(0,1fr))}.firmware-create form>button{grid-column:1/-1;justify-self:start}.firmware-workspace{grid-template-columns:1fr}}@media (max-width:760px){.firmware-main{width:calc(100% - 28px);padding:30px 0 60px}.firmware-heading{flex-direction:column;align-items:start;gap:16px}.firmware-section-heading{flex-wrap:wrap;align-items:start}.firmware-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.firmware-create form{grid-template-columns:1fr}.firmware-create form>button{grid-column:auto}.firmware-catalog,.firmware-detail,.firmware-create{padding:18px}.firmware-delete{flex-direction:column;align-items:start}}.observation-list-heading{border-bottom:1px solid var(--ink);justify-content:space-between;align-items:flex-end;gap:24px;padding-bottom:34px;display:flex}.observation-list-heading .eyebrow,.animal-list-section .eyebrow{color:var(--canopy)}.observation-list-heading h1{letter-spacing:-.055em;margin:6px 0 0;font-size:clamp(38px,5vw,64px);line-height:1.08}.observation-list-heading p:last-child{color:var(--ink-muted);margin:12px 0 0;font-size:13px}.observation-list-summary{color:var(--ink-muted);gap:28px;padding:20px 4px;font-size:12px;display:flex}.observation-list-summary strong{color:var(--ink);margin-left:7px;font-family:IBM Plex Mono,monospace;font-size:19px}.observation-list-page .sensor-status{padding-top:26px}.animal-list-section{margin-top:20px;padding-top:26px}.observation-list-controls{align-items:center;gap:12px;margin:0 16px 20px;display:flex}.animal-list-section .observation-list-controls{margin:22px 0 24px}.observation-list-controls input{border:1px solid var(--line);background:var(--surface);width:min(100%,360px);min-height:44px;color:var(--ink);font:inherit;border-radius:8px;padding:0 14px;font-size:12px}.observation-list-controls input::placeholder{color:var(--ink-muted)}.observation-list-filters{gap:6px;display:flex}.observation-list-filters button{border:1px solid var(--line);background:var(--surface);min-height:44px;color:var(--ink-muted);font:inherit;border-radius:8px;padding:0 14px;font-size:11px;font-weight:700}.observation-list-filters button.is-active{border-color:var(--canopy);background:var(--canopy-deep);color:#fff}.observation-list-page .panel-empty{border-top:1px solid var(--line);min-height:180px}.animal-list-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.animal-list-card{border:1px solid var(--line);background:var(--surface);min-width:0;color:var(--ink);border-radius:12px;grid-template-columns:112px minmax(0,1fr);text-decoration:none;transition:border-color .16s,transform .16s;display:grid;overflow:hidden}.animal-list-card:hover{border-color:var(--canopy);transform:translateY(-2px)}.animal-list-card:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.animal-list-thumbnail{background:var(--surface-muted);height:100%;min-height:196px;overflow:hidden}.animal-list-thumbnail img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.animal-list-no-image{height:100%;color:var(--ink-muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.animal-list-no-image small{font-size:11px}.animal-list-card-content{gap:12px;padding:18px;display:grid}.animal-list-card h3{letter-spacing:-.04em;margin:6px 0 0;font-size:21px}.animal-list-card dl{gap:8px;margin:0;display:grid}.animal-list-card dl>div{justify-content:space-between;gap:12px;font-size:11px;display:flex}.animal-list-card dt{color:var(--ink-muted)}.animal-list-card dd{text-align:right;margin:0;font-weight:700}.animal-list-card-link{border-top:1px solid var(--line);color:var(--canopy);padding-top:14px;font-size:11px;font-weight:700}.animal-list-card-link span{margin-left:5px}@media (max-width:760px){.observation-list-heading{flex-direction:column;align-items:flex-start}.observation-list-controls{flex-direction:column;align-items:stretch}.observation-list-controls input{width:100%}.observation-list-filters button{flex:1}.animal-list-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.animal-list-card{transition:none}.animal-list-card:hover{transform:none}}.device-admin-wrap,.sensor-management-main,.project-main,.overview-main,.project-detail-main,.sensor-detail-page,.animal-detail-page,.data-export-main,.telemetry-operations-main,.firmware-main,.sensor-map-page{padding-top:20px}.device-admin-heading,.sensor-management-heading,.project-heading,.overview-heading,.project-detail-heading,.sensor-detail-heading,.animal-detail-heading,.data-export-heading,.telemetry-operations-heading,.firmware-heading,.observation-list-heading,.sensor-map-heading{gap:12px;padding-bottom:16px}.sensor-detail-heading .back-button,.animal-detail-heading .back-button,.sensor-map-heading .back-button{margin-bottom:10px}.device-admin-heading .eyebrow,.sensor-management-heading .eyebrow,.project-heading .eyebrow,.overview-heading .eyebrow,.project-detail-heading .eyebrow,.sensor-detail-heading .eyebrow,.animal-detail-heading .eyebrow,.data-export-heading .eyebrow,.telemetry-operations-heading .eyebrow,.firmware-heading .eyebrow,.observation-list-heading .eyebrow,.sensor-map-heading .eyebrow{margin-bottom:6px}.device-admin-heading h1,.sensor-management-heading h1,.project-heading h1,.overview-title h1,.project-detail-heading h1,.sensor-detail-heading h1,.sensor-map-heading h1,.animal-detail-heading h1,.data-export-heading h1,.telemetry-operations-heading h1,.firmware-heading h1,.observation-list-heading h1{font-size:clamp(30px,3.2vw,44px)}.device-admin-heading p:last-child,.sensor-management-heading>div>p:last-child,.project-heading p:last-child,.overview-title>p:last-child,.project-detail-heading>div>p:last-child,.sensor-detail-heading>div>p:last-child,.animal-detail-heading>div>p:last-child,.data-export-heading>div>p:last-child,.telemetry-operations-heading p:last-child,.firmware-heading p:last-child,.observation-list-heading p:last-child,.sensor-map-heading>div>p:last-child{margin-top:5px}.sensor-summary-grid article,.animal-summary-grid article{min-height:96px;padding:16px 20px}.project-count strong{font-size:46px}.chart-series.is-battery{color:#2f7d5b}.chart-series.is-temperature{color:#d97745}.chart-series .chart-point{fill:currentColor;stroke:var(--surface);stroke-width:1.5px}.chart-series.is-temperature .chart-line{stroke-dasharray:6 4}.chart-point:focus{stroke:var(--ink);stroke-width:2.5px;outline:none}.connected-animal-empty{padding:28px 0}.connected-animal-empty strong{color:var(--ink);font-size:15px;line-height:1.6}.connected-animal-empty p{color:var(--ink-muted);max-width:48ch;margin:10px 0 20px;font-size:13px;line-height:1.7}.history-events{background:var(--surface-muted);border-radius:8px;margin-top:16px;padding:16px}.history-events header{justify-content:space-between;align-items:center;display:flex}.history-events strong{font-size:13px}.history-events ul{color:var(--ink-muted);padding-left:20px;font-size:12px;line-height:1.8}.history-create form [role=alert]{color:var(--error)}.animal-connection.history-panel{background:0 0;border:0;border-radius:0;margin:0 0 24px;padding:0}.animal-connection-entry{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.animal-connection-entry p,.animal-connection-state p{color:var(--ink-muted);margin:0;font-size:13px;line-height:1.7}.animal-connection-entry>button{flex-shrink:0}.animal-connection-state{color:var(--ink-muted);margin-bottom:20px;font-size:13px}.animal-connection-state button{margin-top:12px}.animal-connection .sensor-animal-connect-form{grid-template-columns:minmax(0,1fr);margin-top:20px}.animal-connection form [role=alert]{color:var(--error)}.animal-connection select:focus-visible{outline:2px solid var(--canopy);outline-offset:3px}.measurement-axis-toggle{color:var(--ink);cursor:pointer;align-items:center;gap:8px;font-size:12px;line-height:1.6;display:flex}.measurement-axis-toggle input{width:15px;height:15px;accent-color:var(--canopy);flex-shrink:0;margin:0}.measurement-axis-break path{pointer-events:none}.telemetry-protocol-panel{border:1px solid var(--line);background:var(--surface);border-radius:12px;margin:26px 0;padding:22px}.telemetry-protocol-panel>summary{cursor:pointer;font-size:18px;font-weight:700}.telemetry-protocol-panel>summary span{color:var(--ink-muted);margin-left:12px;font-size:13px;font-weight:400}.telemetry-protocol-panel p,.telemetry-protocol-panel small{color:var(--ink-muted);overflow-wrap:anywhere;line-height:1.6}.protocol-actions{flex-wrap:wrap;gap:10px;display:flex}.protocol-list{margin-top:18px}.protocol-list article{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;display:flex}.protocol-list article>div:first-child{flex:240px;min-width:0}.protocol-list article p{margin:6px 0;font-size:13px}.protocol-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:24px;display:grid}.protocol-form h2,.protocol-specification,.protocol-permission,.protocol-form>.protocol-actions{grid-column:1/-1}.protocol-form h2{margin:0;font-size:22px}.protocol-form label{gap:8px;font-size:14px;display:grid}.protocol-form input:not([type=checkbox]),.protocol-form select,.protocol-form textarea{border:1px solid var(--line);width:100%;min-height:44px;font:inherit;color:var(--ink);background:var(--canvas);border-radius:8px;padding:10px 12px}.protocol-form textarea{resize:vertical}.protocol-form label.protocol-permission{align-items:center;min-height:44px;display:flex}.protocol-form .protocol-permission input{width:20px;height:20px;accent-color:var(--canopy)}.protocol-form pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--canvas);max-height:380px;color:var(--ink);padding:16px;font-size:13px;overflow:auto}@media (max-width:640px){.protocol-form{grid-template-columns:minmax(0,1fr)}.telemetry-protocol-panel{padding:18px}}.observation-list-page .observation-list-heading{border-bottom:0;padding-bottom:20px}.observation-list-page .sensor-status,.observation-list-page .animal-list-section{border-top:0;margin-top:0;padding-top:0}.observation-list-page .observation-list-controls{border-bottom:1px solid var(--line);flex-wrap:wrap;margin:0 0 16px;padding-bottom:20px}.observation-list-result{color:var(--ink-muted);white-space:nowrap;margin-left:auto;font-size:12px}
