/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid}}}@layer theme{:root,:host{--spacing:.25rem;--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-geist-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.table{display:table}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.border{border-style:var(--tw-border-style);border-width:1px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.outline{outline-style:var(--tw-outline-style);outline-width:1px}}.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{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;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-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{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);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-grab{cursor:-webkit-grab;cursor:-moz-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:-webkit-grabbing;cursor:-moz-grabbing;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(images/layers.png);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(images/layers-2x.png);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(images/marker-icon.png)}.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{--background:#f4f2ed;--foreground:#20201d;--panel:#fffdfa;--panel-strong:#fff;--border:#d9d2c2;--muted:#6f6a5f;--green:#237a57;--teal:#087d8f;--amber:#c7771a;--red:#be3b36;--violet:#6b5dd3;--ink:#20201d;--shadow:0 18px 45px #312c221f}body{background:var(--background);color:var(--foreground);font-family:var(--font-geist-sans), Arial, Helvetica, sans-serif;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.68}.app-shell{min-height:100vh;color:var(--ink);grid-template-columns:284px minmax(0,1fr);display:grid}.auth-shell{background:linear-gradient(#f4f2edd6,#f4f2edeb),url(https://tile.openstreetmap.org/6/35/22.png) 50%/cover;place-items:center;min-height:100vh;padding:24px;display:grid}.dashboard-error-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.auth-panel{background:var(--panel);border:1px solid var(--border);width:min(460px,100%);box-shadow:var(--shadow);border-radius:8px;gap:16px;padding:22px;display:grid}.dashboard-error-panel{background:var(--panel);border:1px solid var(--border);width:min(520px,100%);box-shadow:var(--shadow);border-radius:8px;gap:16px;padding:22px;display:grid}.dashboard-error-panel p{color:var(--muted);margin:0;line-height:1.45}.auth-brand h1{margin:0;font-size:25px}.auth-toggle{border:1px solid var(--border);background:#ebe7de;border-radius:8px;grid-template-columns:1fr 1fr;gap:6px;padding:5px;display:grid}.auth-toggle button{color:var(--muted);background:0 0;border:0;border-radius:6px;padding:9px;font-weight:760}.auth-toggle button.active{color:var(--ink);background:#fff}.auth-note,.form-message{color:var(--muted);margin:0;font-size:13px;line-height:1.35}.form-message{color:var(--green);font-weight:700}.sidebar{color:#f7f3ea;background:#252620;border-right:1px solid #ffffff14;flex-direction:column;gap:22px;padding:24px 18px;display:flex}.brand-block{align-items:center;gap:12px;display:flex}.brand-mark{width:42px;height:42px;color:var(--green);background:#e8f7ee;border-radius:8px;place-items:center;display:grid}.brand-block h1,.topbar h2,.panel-header h3,.integration-title h3{letter-spacing:0;margin:0}.brand-block h1{font-size:22px;line-height:1.05}.eyebrow,.section-label{text-transform:uppercase;color:#958d7e;letter-spacing:0;margin:0 0 5px;font-size:11px;font-weight:750}.sidebar .eyebrow{color:#b8cbbd}.boundary-note{color:#dcd5c8;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:8px;align-items:flex-start;gap:9px;padding:12px;font-size:13px;line-height:1.35;display:flex}.nav-tabs{gap:8px;display:grid}.nav-tabs button,.filter-row button{background:0 0;border:1px solid #0000}.nav-tabs button{color:#e9e3d9;text-align:left;border-radius:8px;align-items:center;gap:9px;padding:10px 11px;display:flex}.nav-tabs button.active,.nav-tabs button:hover{color:#20201d;background:#f4f2ed}.mini-metrics{grid-template-columns:1fr 1fr;gap:8px;display:grid}.metric-tile{background:#ffffff0d;border:1px solid #ffffff1f;border-radius:8px;gap:4px;min-height:78px;padding:10px;display:grid}.metric-tile span{color:#cfc7b8;font-size:12px}.metric-tile strong{font-size:24px;line-height:1}.sidebar-section{gap:10px;display:grid}.provider-stack,.asset-list,.event-list{gap:9px;display:grid}.provider-row{color:#e6dfd1;grid-template-columns:18px 1fr 10px;align-items:center;gap:8px;font-size:14px;display:grid}.status-dot{background:#8c877d;border-radius:999px;width:9px;height:9px}.status-dot.active,.status-dot.ready{background:#64c28b}.status-dot.degraded{background:var(--amber)}.workspace{gap:18px;min-width:0;padding:22px;display:grid}.topbar,.panel-header,.integration-title,.form-actions,.details-footer,.topbar-actions{align-items:center;display:flex}.topbar{border-bottom:1px solid var(--border);justify-content:space-between;gap:16px;padding-bottom:16px}.topbar h2{font-size:clamp(24px,3vw,38px);line-height:1.05}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px}.runtime-pill,.status-badge,.sample-state{white-space:nowrap;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:760}.runtime-pill{color:var(--green);background:#e5f0e3;border:1px solid #bddac2}.runtime-pill.update-pill{color:#393832;background:#fffdfa;border-color:#d8d0c0}.settings-message{color:var(--muted);white-space:nowrap;font-size:12px;font-weight:700}.offline-control{color:#2d5f46;white-space:nowrap;background:#f5faf4;border:1px solid #cddbcf;border-radius:8px;align-items:center;gap:7px;height:38px;padding-left:10px;font-size:12px;font-weight:760;display:flex}.offline-control input{width:74px;min-width:0;color:var(--ink);background:#fff;border:1px solid #bddac2;border-radius:6px;padding:6px 7px;font-weight:760}.offline-control .icon-button{width:36px;height:36px;color:var(--green);background:#e4f1e6;border-width:0 0 0 1px;border-radius:0 7px 7px 0}.refresh-control{border:1px solid var(--border);background:var(--panel-strong);height:38px;color:var(--ink);border-radius:8px;align-items:center;gap:6px;padding:0 9px;display:inline-flex}.refresh-control select{color:var(--ink);background:0 0;border:0;outline:0;font-size:12px;font-weight:760}.icon-button,.copy-line button{border:1px solid var(--border);background:var(--panel-strong);width:38px;height:38px;color:var(--ink);border-radius:8px;place-items:center;display:grid}.operations-grid{grid-template-columns:minmax(440px,1.45fr) minmax(330px,.92fr);grid-template-areas:"map details""assets details""geofences details";align-items:start;gap:16px;display:grid}.map-panel{grid-area:map;overflow:hidden}.assets-panel{grid-area:assets}.details-panel{grid-area:details}.geofences-panel{grid-area:geofences}.map-panel,.assets-panel,.details-panel,.geofences-panel,.events-panel,.integration-card{background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:8px}.map-toolbar{border-bottom:1px solid var(--border);background:#fffdfaeb;justify-content:space-between;align-items:center;gap:12px;padding:14px;display:flex}.map-toolbar h3{margin:0;font-size:18px}.map-controls{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.range-tabs{flex-wrap:wrap;gap:6px;display:flex}.range-tabs button,.mode-tabs button{border:1px solid var(--border);color:var(--muted);background:#fff;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:760}.mode-tabs{flex-wrap:wrap;gap:6px;display:flex}.mode-tabs button{align-items:center;gap:5px;display:inline-flex}.range-tabs button.active,.mode-tabs button.active{color:#fffdfa;background:#20201d;border-color:#20201d}.map-action{min-height:34px;padding:7px 10px;font-size:12px;text-decoration:none}.refresh-note{color:var(--muted);white-space:nowrap;font-size:12px;font-weight:700}.map-canvas{touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;background:linear-gradient(#f4f2ed29,#f4f2ed29),#dce2d1;border-radius:0 0 8px 8px;min-height:470px;position:relative;overflow:hidden}.map-canvas.is-panning{cursor:grabbing}.leaflet-map-surface,.leaflet-container{background:#d8e7ec;outline:0;width:100%;height:100%;position:absolute;inset:0}.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{font:inherit;overflow:hidden}.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{padding:0;max-width:none!important;max-height:none!important}.leaflet-safari .leaflet-tile-container{transform-origin:0 0;width:1600px;height:1600px}.leaflet-tile{filter:saturate(.78)contrast(1.05);-webkit-user-select:none;user-select:none;border:0}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-shadow-pane{z-index:500}.leaflet-interactive{cursor:pointer}.leaflet-growtrack-marker{background:var(--green);border:2px solid #fffdfa;border-radius:999px;place-items:center;width:34px;height:34px;display:grid;box-shadow:0 10px 26px #20201d47}.leaflet-growtrack-marker span{background:#fffdfa;border-radius:999px;width:12px;height:12px;box-shadow:inset 0 0 0 2px #20201d2e}.leaflet-growtrack-marker.idle{background:var(--teal)}.leaflet-growtrack-marker.offline{background:#6f6a5f}.leaflet-growtrack-marker.alert{background:var(--red)}.leaflet-growtrack-marker.selected{outline:3px solid #c7771a73}.leaflet-route-line{fill:none;opacity:.92;stroke:var(--green);stroke-linecap:round;stroke-linejoin:round;stroke-width:4px}.leaflet-route-line.chirpstack{stroke:var(--teal)}.leaflet-route-line.helium{stroke:var(--violet)}.leaflet-route-line.nbiot{stroke:var(--amber)}.leaflet-route-point{fill:#20201d;opacity:.85}.leaflet-route-point-icon{color:#fffdfa;background:#20201d;border:2px solid #fffdfa;border-radius:999px;place-items:center;width:20px;height:20px;display:grid;box-shadow:0 6px 16px #20201d47}.leaflet-route-point-icon span{font-size:9px;font-weight:850;line-height:1}.leaflet-route-arrow-icon{pointer-events:none;place-items:center;width:18px;height:18px;display:grid}.leaflet-route-arrow-icon span{filter:drop-shadow(0 2px 3px #fffdfae6)drop-shadow(0 3px 8px #20201d4d);transform-origin:50% 55%;border-bottom:13px solid #20201d;border-left:5px solid #0000;border-right:5px solid #0000;width:0;height:0}.leaflet-stop-marker{fill:var(--amber);stroke:#fffdfa;stroke-width:2px}.leaflet-stop-icon{background:var(--amber);color:#fffdfa;border:2px solid #fffdfa;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;place-items:center;gap:3px;width:44px;height:32px;padding:0 5px;display:grid;box-shadow:0 10px 24px #20201d57}.leaflet-stop-icon span{text-overflow:clip;white-space:nowrap;min-width:0;font-size:11px;font-weight:850;line-height:1;overflow:hidden}.leaflet-stop-icon small{background:#fffdfa38;border-radius:999px;place-items:center;width:14px;height:14px;font-size:8px;font-weight:850;line-height:1;display:grid}.leaflet-geofence-ring{fill:#237a570f;stroke:#237a578c;stroke-width:2px}.leaflet-tooltip{border:1px solid var(--border);max-width:260px;color:var(--ink);background:#fffdfaf5;border-radius:6px;padding:5px 7px;font-size:11px;font-weight:700;box-shadow:0 8px 20px #20201d24}.map-pan-layer{will-change:transform;position:absolute;inset:0}.map-tiles{opacity:.82;filter:saturate(.72)contrast(1.06);pointer-events:none;position:absolute;inset:0}.map-tiles.satellite{opacity:.92;filter:saturate(1.04)contrast(1.05)}.map-tiles span{background-position:50%;background-size:100% 100%;position:absolute}.route-layer{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.route-line{fill:none;stroke:var(--green);stroke-width:.55px;stroke-linecap:round;stroke-linejoin:round;opacity:.86}.route-line.selected-route{stroke-width:.78px;opacity:.96}.route-line.chirpstack{stroke:var(--teal)}.route-line.helium{stroke:var(--violet)}.route-line.nbiot{stroke:var(--amber)}.map-marker,.geofence-ring{position:absolute;transform:translate(-50%,-50%)}.geofence-ring{pointer-events:none;border:2px solid #237a5780;border-radius:999px;box-shadow:0 0 0 999px #237a5704}.map-marker{background:var(--green);color:#fff;border:2px solid #fffdfa;border-radius:999px;place-items:center;width:34px;height:34px;display:grid;box-shadow:0 10px 26px #20201d47}.map-marker.idle{background:var(--teal)}.map-marker.offline{background:#6f6a5f}.map-marker.alert{background:var(--red)}.map-marker.selected{outline:3px solid #c7771a73}.stop-marker{background:var(--amber);pointer-events:none;border:2px solid #fff;border-radius:3px;width:13px;height:13px;position:absolute;transform:translate(-50%,-50%)rotate(45deg);box-shadow:0 8px 18px #20201d40}.route-point{pointer-events:none;background:#20201d;border:1px solid #fff;border-radius:999px;width:7px;height:7px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 3px 8px #20201d47}.zoom-controls{z-index:20;background:#fffdfaf0;border:1px solid #d9d2c2e6;border-radius:8px;grid-template-columns:36px auto 36px;align-items:center;display:grid;position:absolute;top:12px;right:12px;overflow:hidden;box-shadow:0 8px 24px #20201d2e}.zoom-controls button{width:36px;height:36px;color:var(--ink);background:#fff;border:0;font-size:18px;font-weight:800}.zoom-controls span{min-width:54px;color:var(--muted);text-align:center;font-size:12px;font-weight:800}.map-legend{z-index:20;background:#fffdfae6;border:1px solid #d9d2c2bf;border-radius:8px;flex-wrap:wrap;gap:8px;padding:8px;display:flex;position:absolute;bottom:14px;left:14px}.map-legend span{color:var(--muted);align-items:center;gap:5px;font-size:12px;display:flex}.map-attribution{z-index:20;color:#4d4a43;background:#fffdfad1;border-radius:4px;padding:3px 6px;font-size:11px;position:absolute;bottom:10px;right:10px}.assets-panel,.details-panel,.events-panel{padding:16px}.panel-header{justify-content:space-between;gap:12px;margin-bottom:12px}.panel-header h3{font-size:19px}.search-box{border:1px solid var(--border);background:#fff;border-radius:8px;align-items:center;gap:7px;min-width:170px;padding:8px 10px;display:flex}.search-box input{background:0 0;border:0;outline:0;width:120px;min-width:0}.filter-row{flex-wrap:wrap;gap:7px;margin-bottom:10px;display:flex}.filter-row button{border-color:var(--border);color:var(--muted);background:#fffdfa;border-radius:999px;padding:7px 10px;font-size:12px}.filter-row button.active{color:#fffdfa;background:#20201d}.asset-row{text-align:left;border:1px solid var(--border);background:#fff;border-radius:8px;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:72px;padding:10px;display:grid}.asset-row.selected{border-color:var(--green);box-shadow:inset 0 0 0 1px #237a5738}.asset-icon{width:36px;height:36px;color:var(--green);background:#e7f3eb;border-radius:8px;place-items:center;display:grid}.asset-icon.alert{color:var(--red);background:#f9e5e3}.asset-icon.offline{color:var(--muted);background:#ebe7de}.asset-main,.asset-meta{gap:3px;min-width:0;display:grid}.asset-main strong,.asset-main small,.asset-meta strong,.asset-meta small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.asset-main small,.asset-meta small,.integration-title p,.event-item p,.event-item span,.details-footer,.signal-row,.integration-facts{color:var(--muted)}.asset-meta{text-align:right;font-size:12px}.status-badge{color:#4b4841;background:#ebe7de}.status-badge.moving,.status-badge.active,.status-badge.ready{color:var(--green);background:#dff0e5}.status-badge.idle{color:var(--teal);background:#dbeff2}.status-badge.alert,.status-badge.degraded{color:var(--red);background:#f9e5e3}.status-badge.offline{color:#777065;background:#ece8df}.detail-grid{grid-template-columns:1fr 1fr;gap:9px;display:grid}.route-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:9px;display:grid}.detail-tile{border:1px solid var(--border);background:#fff;border-radius:8px;align-content:start;gap:5px;min-height:84px;padding:11px;display:grid}.detail-tile span{color:var(--muted);font-size:12px}.detail-tile strong{overflow-wrap:anywhere;font-size:14px}.timeline-strip{grid-template-columns:repeat(auto-fit,minmax(86px,1fr));gap:8px;margin:16px 0;display:grid}.timeline-strip span{color:var(--muted);gap:5px;font-size:12px;display:grid}.timeline-strip i{background:linear-gradient(90deg, var(--green), var(--amber));border-radius:999px;height:5px}.signal-row,.details-footer{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;gap:10px;padding-top:12px;font-size:13px}.geofence-list{flex-wrap:wrap;gap:7px;margin:15px 0;display:flex}.geofence-list .section-label{width:100%}.geofence-list span{border:1px solid var(--border);background:#fff;border-radius:999px;align-items:center;gap:5px;padding:6px 9px;font-size:12px;display:flex}.geofence-list span.active{color:var(--green);border-color:#237a5780}.stop-list{border:1px solid var(--border);background:#fffdfa;border-radius:8px;gap:9px;margin:14px 0;padding:12px;display:grid}.route-point-list{border:1px solid var(--border);background:#f7fbfc;border-radius:8px;gap:9px;margin:14px 0;padding:12px;display:grid}.panel-subheader{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.panel-subheader strong{font-size:14px;display:block}.panel-subheader span,.empty-note{color:var(--muted);font-size:12px}.empty-note{margin:0}.stop-row,.route-log-row{border:1px solid var(--border);background:#fff;border-radius:8px;grid-template-columns:22px minmax(0,1fr);gap:9px;padding:10px;display:grid}.stop-row div,.route-log-row div{gap:3px;min-width:0;display:grid}.stop-row span,.route-log-row span,.route-log-row small{color:var(--muted);font-size:12px;line-height:1.35}.route-log-row span{overflow-wrap:anywhere}.route-log-row.stop-event{background:#fff8ec;border-color:#c7771a8c}.route-log-row.stop-event svg{color:var(--amber)}.geofences-panel{padding:16px}.geofence-form{grid-template-columns:minmax(150px,1.1fr) repeat(3,minmax(90px,.7fr)) minmax(100px,.6fr) auto auto;align-items:start;gap:8px;display:grid}.geofence-form input,.geofence-form select{border:1px solid var(--border);width:100%;min-width:0;color:var(--ink);background:#fff;border-radius:8px;padding:10px;font-weight:600}.geofence-table{gap:9px;margin-top:12px;display:grid}.geofence-row{border:1px solid var(--border);background:#fff;border-radius:8px;grid-template-columns:24px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px;display:grid}.geofence-row div{gap:3px;min-width:0;display:grid}.geofence-row span{color:var(--muted);font-size:12px}.integration-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.integration-card{gap:12px;padding:16px;display:grid}.integration-title{align-items:flex-start;gap:11px}.integration-title h3{font-size:18px}.integration-title p{margin:3px 0 0;font-size:13px}.integration-icon{width:42px;height:42px;color:var(--green);background:#e7f3eb;border-radius:8px;flex:none;place-items:center;display:grid}.integration-icon.chirpstack{color:var(--teal);background:#dbeff2}.integration-icon.helium{color:var(--violet);background:#e8e4fb}.integration-icon.nbiot{color:var(--amber);background:#faecd8}.copy-line{grid-template-columns:minmax(0,1fr) 38px;gap:8px;display:grid}.copy-line code,.integration-card pre{color:#f7f3ea;font-family:var(--font-geist-mono), monospace;background:#24251f;border-radius:8px}.copy-line code{text-overflow:ellipsis;white-space:nowrap;min-width:0;padding:10px;font-size:12px;overflow:hidden}.integration-card pre{max-height:210px;margin:0;padding:12px;font-size:12px;line-height:1.42;overflow:auto}.integration-facts{gap:5px;font-size:13px;display:grid}.form-actions{flex-wrap:wrap;gap:10px}.primary-button{background:var(--green);color:#fff;border:0;border-radius:8px;align-items:center;gap:8px;padding:10px 12px;font-weight:760;display:inline-flex}.primary-button.wide{justify-content:center;width:100%}.danger-button{color:var(--red);background:#f9e5e3;border:1px solid #be3b3659;border-radius:8px;align-items:center;gap:7px;padding:9px 10px;font-weight:760;display:inline-flex}.secondary-button{border:1px solid var(--border);color:var(--ink);background:#fff;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:10px 12px;font-weight:760;display:inline-flex}.stack-form{gap:12px;display:grid}.stack-form label{color:#4b4841;gap:6px;font-size:13px;font-weight:700;display:grid}.stack-form input,.stack-form select,.stack-form textarea{border:1px solid var(--border);width:100%;min-width:0;color:var(--ink);background:#fff;border-radius:8px;padding:10px;font-weight:500}.stack-form textarea{resize:vertical;min-height:88px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.scan-panel,.repository-panel,.sim-config-panel{background:#fffaf1;border:1px dashed #b9ae9a;border-radius:8px;grid-column:1/-1;gap:10px;padding:12px;display:grid}.scan-panel h4{margin:0;font-size:16px}.repository-panel{background:#f4fbfc;border-style:solid;border-color:#b7d4da}.repository-panel h4{margin:0;font-size:16px}.sim-config-panel{background:#f5f8f1;border-style:solid;border-color:#b9d2c3}.sim-config-panel summary{cursor:pointer;gap:4px;display:grid}.sim-config-panel h4{margin:0;font-size:16px}.sim-config-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.config-command{align-items:start;gap:8px;display:grid}.config-command span{color:var(--muted);text-transform:uppercase;font-size:13px;font-weight:760}.config-command code{color:#f7f3ea;overflow-wrap:anywhere;white-space:pre-wrap;background:#24251f;border-radius:6px;min-width:0;padding:10px;font-size:12px;line-height:1.45;display:block}.sim868-monitor{background:#f5f8f1;border:1px solid #b9d2c3;border-radius:8px;gap:12px;padding:12px;display:grid}.sim868-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.sim868-meta-row{color:var(--muted);flex-wrap:wrap;gap:8px;font-size:13px;display:flex}.sim868-meta-row span{overflow-wrap:anywhere;min-width:0}.profile-search{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;display:grid}.photo-actions{flex-wrap:wrap;gap:8px;display:flex}.file-action{background:#fff;border:1px dashed #b9ae9a;border-radius:8px;justify-content:center;align-items:center;width:fit-content;padding:10px 12px;position:relative;overflow:hidden;color:var(--ink)!important;gap:8px!important;font-weight:760!important;display:inline-flex!important}.file-action input{opacity:0;cursor:pointer;position:absolute;inset:0}.management-grid{grid-template-columns:minmax(360px,.95fr) minmax(420px,1.05fr);align-items:start;gap:16px;display:grid}.management-panel{background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:8px;padding:16px}.sensor-list,.user-list{gap:10px;display:grid}.sensor-card,.user-row{border:1px solid var(--border);background:#fff;border-radius:8px;gap:10px;padding:12px;display:grid}.sensor-card{grid-template-columns:minmax(0,1fr) auto;align-items:start}.sensor-card div,.user-row div{gap:4px;min-width:0;display:grid}.sensor-card span,.user-row span{color:var(--muted);font-size:13px}.sensor-card code{color:#f7f3ea;text-overflow:ellipsis;white-space:nowrap;background:#24251f;border-radius:6px;min-width:0;padding:7px 8px;font-size:12px;overflow:hidden}.user-row{grid-template-columns:24px minmax(0,1fr) auto;align-items:center}.sample-state{color:var(--green);background:#e7f3eb;align-items:center;gap:6px;display:inline-flex}.sample-state.rejected{color:var(--red);background:#f9e5e3}.events-panel{max-width:980px}.event-item{border:1px solid var(--border);background:#fff;border-radius:8px;grid-template-columns:24px minmax(0,1fr);gap:10px;padding:12px;display:grid}.event-item.warning{border-color:#c7771a73}.event-item.critical{border-color:#be3b368c}.event-item p{margin:3px 0 5px}.event-item span{font-size:12px}@media (width<=1180px){.operations-grid{grid-template-columns:1fr;grid-template-areas:"map""details""assets""geofences"}.integration-grid,.management-grid{grid-template-columns:1fr}}@media (width<=820px){.app-shell{grid-template-columns:1fr}.sidebar{position:static}.nav-tabs,.mini-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace{padding:14px}.topbar,.panel-header,.map-toolbar{flex-direction:column;align-items:flex-start}.topbar-actions{justify-content:flex-start}.offline-control{justify-content:flex-start;width:100%}.refresh-control{width:100%}.runtime-pill.update-pill{white-space:normal;width:100%}.map-canvas{min-height:390px}.map-controls{justify-content:flex-start}.detail-grid,.route-summary,.form-grid,.sim-config-grid,.sim868-grid,.geofence-form,.geofence-row,.profile-search{grid-template-columns:1fr}.asset-row{grid-template-columns:38px minmax(0,1fr)}.asset-meta{text-align:left;grid-column:2}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}
