.status-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;display:grid}.status-cell{border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface);padding:11px 13px 11px 12px;position:relative;overflow:hidden}.status-cell:before{content:"";background:var(--border-strong);width:3px;position:absolute;inset-block:0;inset-inline-start:0}.status-cell:has(.badge.good):before{background:var(--good)}.status-cell:has(.badge.warning):before{background:var(--warning)}.status-cell:has(.badge.serious):before{background:var(--serious)}.status-cell:has(.badge.critical):before{background:var(--critical)}.status-cell:has(.badge.info):before{background:var(--info)}.status-cell .dim{color:var(--text-2);font-size:12px}.status-cell .code{color:var(--muted);font-size:11px}.status-cell .note{color:var(--text-2);margin-top:4px;font-size:12px}.map-layout{grid-template-columns:minmax(0,1fr) 320px;gap:14px;height:calc(100vh - 190px);min-height:460px;display:grid}.map-box{border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface-2);min-height:360px;position:relative;overflow:hidden}.map-box .maplibregl-map{position:absolute;inset:0}.map-overlay{inset-inline-start:12px;z-index:5;flex-direction:column;gap:6px;max-width:calc(100% - 24px);display:flex;position:absolute;top:12px}.side-panel{scrollbar-width:thin;flex-direction:column;gap:12px;display:flex;overflow-y:auto}.legend{flex-direction:column;gap:4px;font-size:12.5px;display:flex}.legend .sw{vertical-align:middle;border:2px solid var(--surface);width:10px;height:10px;box-shadow:0 0 0 1px var(--border-strong);border-radius:50%;margin-inline-end:6px;display:inline-block}@media (max-width:900px){.map-layout{grid-template-columns:minmax(0,1fr);height:auto}.map-box{height:60vh}}.maplibregl-ctrl-group{overflow:hidden;border-radius:var(--r-control)!important;box-shadow:var(--e2)!important}.maplibregl-ctrl-group button{border-radius:0;min-height:0}.maplibregl-ctrl-group{border:1px solid var(--map-overlay-line);background:var(--surface)!important}.maplibregl-ctrl-group button+button{border-top-color:var(--map-overlay-line)!important}.maplibregl-popup-content{color:var(--text);border:1px solid var(--map-overlay-line);border-radius:var(--r-card)!important;box-shadow:var(--e2)!important;background:var(--surface)!important}.maplibregl-popup-close-button{min-height:0;color:var(--muted);background:0 0;border:0;padding:0 6px}.maplibregl-popup-anchor-bottom .maplibregl-popup-tip,.maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip,.maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip{border-top-color:var(--surface)!important}.maplibregl-popup-anchor-top .maplibregl-popup-tip,.maplibregl-popup-anchor-top-left .maplibregl-popup-tip,.maplibregl-popup-anchor-top-right .maplibregl-popup-tip{border-bottom-color:var(--surface)!important}.maplibregl-popup-anchor-left .maplibregl-popup-tip{border-right-color:var(--surface)!important}.maplibregl-popup-anchor-right .maplibregl-popup-tip{border-left-color:var(--surface)!important}.maplibregl-ctrl.maplibregl-ctrl-attrib{background:var(--map-overlay-bg);color:var(--muted)}.maplibregl-ctrl-attrib a{color:inherit}:root[data-theme=dark] .maplibregl-ctrl button .maplibregl-ctrl-icon,:root[data-theme=dark] .maplibregl-ctrl-attrib-button{filter:invert(.9)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .maplibregl-ctrl button .maplibregl-ctrl-icon,:root:not([data-theme=light]) .maplibregl-ctrl-attrib-button{filter:invert(.9)}}.playback-layout{grid-template-columns:minmax(0,1fr) 320px;gap:14px;display:grid}.playback-layout .map-box{height:440px}@media (max-width:1000px){.playback-layout{grid-template-columns:minmax(0,1fr)}}.chart{width:100%;display:block}.chart .grid-line{stroke:var(--border);stroke-width:1px}.chart .axis-label{fill:var(--muted);font-size:11px}.chart .speed-line{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linejoin:round}.chart .gap-band{fill:var(--surface-2)}.chart .gap-hatch{stroke:var(--border-strong);stroke-width:1px}.chart .cursor{stroke:var(--text);stroke-width:1.5px}.chart .stop-mark{fill:var(--neutral)}.chart .alert-mark{fill:var(--critical)}.timeline-list{max-height:320px;margin:0;padding:0;list-style:none;overflow:auto}.timeline-list li{border-bottom:1px solid var(--border);padding:6px 4px;font-size:12.5px}.timeline-list button{background:0 0;border:none;justify-content:space-between;width:100%;min-height:0;padding:2px 4px}.impersonation-banner{background:repeating-linear-gradient(-45deg, var(--critical), var(--critical) 14px, color-mix(in srgb, var(--critical) 88%, #000) 14px, color-mix(in srgb, var(--critical) 88%, #000) 28px);color:#fff;z-index:30;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:10px 24px;font-size:13px;display:flex;position:sticky;top:0}.impersonation-banner button{margin-inline-start:auto}.impersonation-banner button.danger{color:#a2201f;background:#fff}.kpi-card{color:inherit;transition:border-color var(--dur-1), box-shadow var(--dur-2), translate var(--dur-2) var(--ease-out);flex-direction:column;gap:6px;text-decoration:none;display:flex;position:relative;overflow:hidden}.kpi-card:before{content:"";background:var(--accent);width:3px;position:absolute;inset-block:0;inset-inline-start:0}.kpi-card[data-kpi-state=zero]:before{background:var(--border-strong)}.kpi-card[data-kpi-state=unavailable]:before{background:repeating-linear-gradient(180deg, var(--border-strong) 0 6px, transparent 6px 10px)}a.kpi-card:hover,a.kpi-card:focus-visible{border-color:color-mix(in srgb, var(--accent) 55%, var(--border));box-shadow:var(--e2);translate:0 -2px}.kpi-head{align-items:center;gap:8px;display:flex}.kpi-head .label{min-width:0;color:var(--text-2);flex:1;font-size:13px;font-weight:600}.kpi-icon{background:var(--accent-soft);width:28px;height:28px;color:var(--accent-ink);border-radius:8px;flex:none;place-items:center;display:grid}.kpi-card .value{font-size:var(--fs-kpi);font-variant-numeric:tabular-nums;letter-spacing:-.01em;overflow-wrap:anywhere;min-width:0;font-weight:750;line-height:1.2}.kpi-card .value .unit{white-space:nowrap;color:var(--text-2);margin-inline-start:.35em;font-size:max(13px,.46em);font-weight:600;display:inline-block}.kpi-card .exact{font-variant-numeric:tabular-nums;margin-top:-4px}.kpi-card .value.zero{color:var(--text-2)}.kpi-card .value.na{color:var(--muted);border:1px dashed var(--border-strong);border-radius:var(--r-control);align-self:flex-start;padding:4px 8px;font-size:13.5px;font-weight:500}.kpi-card .meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 8px;margin-top:auto;font-size:12px;display:flex}.kpi-card .kid{color:var(--muted);align-items:center;gap:3px;font-size:11px;display:inline-flex}.sparkline{width:100%;height:64px;display:block}.sparkline .line{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linejoin:round}.sparkline .prov{fill:none;stroke:var(--accent);stroke-width:2px;stroke-dasharray:3 3}.sparkline .gapmark{fill:var(--muted)}.bar-row{grid-template-columns:minmax(90px,160px) 1fr auto;align-items:center;gap:10px;font-size:13px;display:grid}.bar-track{background:var(--surface-2);border-radius:5px;height:10px;overflow:hidden}.bar-fill{background:linear-gradient(270deg, var(--accent), color-mix(in srgb, var(--accent) 65%, var(--surface)));height:100%;transition:width var(--dur-3) var(--ease-out);border-radius:5px 0 0 5px}.checks-matrix td,.checks-matrix th{white-space:normal}.action-bar{flex-wrap:wrap;align-items:flex-start;gap:10px 12px;display:flex}.action-bar>div{flex-direction:column;align-items:flex-start;gap:4px;max-width:240px;display:flex}.action-bar .why{font-size:var(--fs-caption);color:var(--muted);line-height:1.5;display:block}table.data td .action-bar{flex-wrap:nowrap;gap:6px}table.data td .action-bar>div{max-width:150px}table.data td .action-bar button{min-height:28px;font-size:var(--fs-small);padding:3px 10px}table.data td .action-bar .why{white-space:normal}.timeline{gap:6px;margin:0;padding:0;list-style:none;display:grid}.timeline li{border-bottom:1px solid var(--border);grid-template-columns:fit-content(45%) minmax(0,1fr);align-items:baseline;gap:4px 12px;padding-block:6px;display:grid}.timeline li:last-child{border-bottom:0}.timeline li>time{white-space:nowrap;color:var(--text-2)}.timeline li>.ltr{overflow-wrap:anywhere;justify-self:start}.demo-persona select{border-color:var(--demo-ink)}.ops-band{border-radius:var(--r-card);border:1px solid color-mix(in srgb, var(--accent) 22%, var(--border));background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 7%, transparent)), repeating-linear-gradient(0deg, var(--bg-chart) 0 1px, transparent 1px 28px), repeating-linear-gradient(90deg, var(--bg-chart) 0 1px, transparent 1px 28px), var(--surface);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px 20px;padding:16px 18px;display:grid;position:relative;overflow:hidden}.ops-band .ops-status{color:var(--text-2);flex-wrap:wrap;align-items:center;gap:8px 18px;font-size:13px;display:flex}.ops-band .ops-status>span{align-items:center;gap:6px;display:inline-flex}.ops-band .ops-status strong{color:var(--text)}.ops-band [role=group]{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.ops-band .ops-filters{border-top:1px dashed var(--border);grid-column:1/-1;padding-top:12px}@media (max-width:900px){.ops-band{grid-template-columns:1fr}}@media (max-width:640px){.grid.kpi-board{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kpi-board>.kpi-card{padding:12px}.kpi-board .kpi-card .value:not(.na){font-size:24px}.kpi-board .kpi-head{flex-wrap:wrap;justify-content:space-between;row-gap:4px}.kpi-board .kpi-head .label{flex-basis:100%;order:3}}@media (min-width:1200px){.kpi-board>.kpi-card:last-child:nth-child(4n+2):not(:first-child){grid-column:span 2}.kpi-board>.kpi-card:last-child:nth-child(4n+1):not(:first-child){grid-column:span 3}}@media (min-width:1100px){.kpi-board>.kpi-card:first-child{grid-column:span 2}.kpi-board>.kpi-card:first-child .value{font-size:var(--fs-display)}}.dash-section{gap:12px;display:grid}.decision-list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.decision-list li{border-radius:var(--r-control);grid-template-columns:76px minmax(0,1fr);align-items:center;gap:12px;padding:8px 6px;display:grid}.decision-list li:hover{background:var(--row-hover)}.decision-list .num{text-align:center;white-space:nowrap;border-radius:var(--r-control);background:var(--surface-2);color:var(--text);padding:2px 4px;font-size:18px;font-weight:750}.decision-list li[data-state=unavailable] .num{white-space:normal;padding-block:4px;font-size:11px;font-weight:500;line-height:1.35}.decision-list .num:has(.unavailable){white-space:normal;padding-block:4px;font-size:11px;font-weight:500;line-height:1.35}.quick-links{flex-wrap:wrap;gap:10px;display:flex}.quick-links .btn{min-height:40px;padding-inline:16px}.cluster-label{pointer-events:none;width:var(--d,26px);height:var(--d,26px);color:var(--map-cluster-ink);letter-spacing:0;font-variant-numeric:tabular-nums;text-shadow:0 1px 1px #00000040;place-items:center;font-size:12px;font-weight:700;line-height:1;display:grid}.cluster-label[data-ring]:before{content:"";background:var(--ring);border-radius:50%;position:absolute;inset:-6px;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 3.5px),#000 calc(100% - 3px));mask:radial-gradient(farthest-side,#0000 calc(100% - 3.5px),#000 calc(100% - 3px))}.cluster-popup .maplibregl-popup-content{padding:9px 12px;font-family:inherit;font-size:12px}.cluster-popup-rows{font-variant-numeric:tabular-nums;gap:3px;margin:6px 0;display:grid}.cluster-popup-rows .dot{background:var(--map-idle);border-radius:50%;width:8px;height:8px;margin-inline-end:6px;display:inline-block}.sw{background:var(--map-idle);width:9px;height:9px;box-shadow:0 0 0 1.5px var(--map-ground);border-radius:50%;flex:none;display:inline-block}.conn-online{background:var(--map-fresh)!important}.conn-delayed{background:var(--map-stale)!important}.conn-offline{background:var(--map-offline)!important}.conn-unknown,.conn-never_seen{background:var(--map-idle)!important}.sw.cluster{background:var(--map-cluster);width:12px;height:12px;box-shadow:0 0 0 1.5px var(--map-ground), 0 0 0 4px color-mix(in srgb, var(--map-cluster) 22%, transparent)}.zone-label{pointer-events:none;text-overflow:ellipsis;white-space:nowrap;border-radius:var(--r-pill);background:var(--map-overlay-bg);max-width:180px;color:var(--map-overlay-ink);border:1px solid color-mix(in srgb, var(--zone,var(--map-zone)) 55%, transparent);box-shadow:var(--e1);padding:2px 8px;font-size:11.5px;font-weight:600;overflow:hidden}[data-zones-visible="0"] .zone-label{display:none}.map-tools{inset-inline-start:10px;z-index:5;border-radius:var(--r-control);background:var(--map-overlay-bg);border:1px solid var(--map-overlay-line);box-shadow:var(--e2);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:inline-flex;position:absolute;top:10px;overflow:hidden}.map-tools button{min-height:32px;color:var(--map-overlay-ink);font-size:var(--fs-small);background:0 0;border:0;border-radius:0;gap:6px;padding:4px 11px;font-weight:600}.map-tools button+button{border-inline-start:1px solid var(--map-overlay-line)}.map-tools button:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 10%, transparent);border-color:var(--map-overlay-line)}.map-tools button[aria-pressed=true] .icon{color:var(--accent)}.map-legend{inset-inline-end:10px;z-index:4;border-radius:var(--r-control);background:var(--map-overlay-bg);max-width:calc(100% - 20px);color:var(--map-overlay-ink);border:1px solid var(--map-overlay-line);box-shadow:var(--e2);font-size:var(--fs-caption);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);flex-wrap:wrap;gap:4px 12px;margin:0;padding:6px 10px;list-style:none;display:flex;position:absolute;bottom:30px}.map-legend li{align-items:center;gap:6px;display:inline-flex}.map-caption{inset-inline-end:10px;z-index:4;border-radius:var(--r-tag);background:var(--map-overlay-bg);color:var(--muted);font-size:var(--fs-caption);padding:0 7px;position:absolute;bottom:6px}.map-overlay.map-overlay-bottom{top:auto;bottom:10px}@media (max-width:600px){.map-caption{max-width:calc(100% - 20px);bottom:30px}.map-legend{gap:3px 9px;padding:4px 8px;bottom:50px}.map-tools .ctl-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.map-tools button{min-width:36px;min-height:36px;padding:6px}}.side-panel.inspector{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);gap:0}.insp-section{border-top:1px solid var(--border);padding:14px 16px}.insp-section:first-child{border-top:0}.insp-title{color:var(--text);align-items:center;gap:8px;margin:0 0 10px;font-size:13.5px;font-weight:700;display:flex}.insp-title>.icon{color:var(--muted)}.insp-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.insp-row .insp-title{margin:0}.insp-meta{font-size:var(--fs-small);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 10px;margin-top:6px;display:flex}.insp-link{align-items:center;gap:2px;font-weight:600;display:inline-flex}.insp-hint{font-size:var(--fs-caption);color:var(--muted);margin:8px 0 0;line-height:1.65}.insp-subtitle{font-size:var(--fs-small);color:var(--text-2);justify-content:space-between;gap:8px;margin:12px 0 6px;font-weight:600;display:flex}.insp-total{color:var(--text);font-variant-numeric:tabular-nums;font-weight:700}.count-badge{border-radius:var(--r-pill);background:var(--neutral-soft);min-width:30px;color:var(--text);text-align:center;font-variant-numeric:tabular-nums;padding:1px 10px;font-size:14px;font-weight:700}.count-badge.hot{background:var(--critical-soft);color:var(--critical-ink)}.search-field{gap:6px;display:flex}.search-field input{flex:1;min-width:0}.insp-section>.notice{margin-top:8px}.conn-breakdown{font-size:var(--fs-small);grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 12px;margin:0;padding:0;list-style:none;display:grid}.conn-breakdown li{align-items:center;gap:6px;display:flex}.conn-breakdown li:last-child{grid-column:1/-1}.conn-breakdown .num{font-variant-numeric:tabular-nums;font-weight:700}.insp-list{gap:2px;margin:8px 0 0;padding:0;list-style:none;display:grid}.insp-list.scroll{scrollbar-width:thin;max-height:240px;overflow-y:auto}.insp-list button{background:0 0;border:0;justify-content:flex-start;gap:8px;width:100%;min-height:0;padding:6px 8px}.insp-list button:hover:not(:disabled){background:var(--row-hover)}.insp-list button .small{margin-inline-start:auto}.insp-more>summary{font-size:var(--fs-small);color:var(--text-2);font-weight:600}.insp-more[open]>summary{margin-bottom:10px}.insp-notes{font-size:var(--fs-caption);color:var(--muted);margin:10px 0 0;padding-inline-start:18px;line-height:1.65}.insp-actions{gap:6px;margin-top:12px}.insp-check{margin-top:10px}.switch-field{margin-bottom:4px}.zone-list{gap:1px;margin:6px -8px 0;padding:0;list-style:none;display:grid}.zone-list .zone-item{white-space:normal;text-align:start;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"sw name go""sw meta go";justify-items:start;gap:0 10px;width:100%;min-height:0;padding:7px 8px;display:grid}.zone-list .zone-item:hover:not(:disabled){background:var(--row-hover)}.zone-list .zone-item .sw{width:12px;height:12px;box-shadow:none;border-radius:3px;grid-area:sw}.zone-list .zone-name{grid-area:name;font-weight:600}.zone-list .zone-item .small{grid-area:meta}.zone-list .zone-go{color:var(--muted);grid-area:go}.warn-text{color:var(--warning-ink)}.located-card{background:color-mix(in srgb, var(--map-focus) 7%, var(--surface));border-inline-start:3px solid var(--map-focus);animation:rise-in var(--dur-3) var(--ease-out)}.side-panel.inspector>.located-card:first-child{border-start-start-radius:var(--r-card);border-end-start-radius:0}.located-card:focus{outline:2px solid var(--focus);outline-offset:-2px}.insp-head{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:6px;display:flex}.insp-head h2{margin:0;font-size:17px}.insp-kicker{font-size:var(--fs-caption);color:var(--warning-ink);align-items:center;gap:4px;margin-bottom:2px;font-weight:600;display:inline-flex}.card-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.card-head h2{margin:0}.located-summary{margin:4px 0 10px;font-weight:600}.followed-popup .maplibregl-popup-content,.located-popup{font-family:inherit;font-size:12px}.located-popup{gap:2px;display:grid}.located-popup .row{gap:10px}.geofence-layout{grid-template-columns:minmax(0,1fr) 380px;gap:14px;display:grid}.geofence-layout .map-box{height:520px}.vertex-table input{width:100%;min-width:0}@media (max-width:1000px){.geofence-layout{grid-template-columns:minmax(0,1fr)}.geofence-layout .map-box{height:60vh}}.conversation{gap:10px;margin:0;padding:0;list-style:none;display:grid}.conversation li{border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface);padding:10px 14px}.conversation li[data-visibility=internal]{background:var(--surface-2);border-style:dashed}.conversation .msg-body{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:4px}.map-box.map-inline{height:320px;min-height:0}.map-box.map-inline.tall{height:420px}.card.compact{padding:6px 10px}span.why{max-width:260px;display:block}.w-full{width:100%}.col-check{width:36px}.crosshair{cursor:crosshair}.doc-frame{border:1px solid var(--border);border-radius:var(--r-card);background:#fff;width:100%;min-height:640px}.sw.pb-track{background:var(--map-track);border-radius:2px}.sw.pb-stop{background:var(--neutral)}.sw.pb-alert{background:var(--critical)}.sw.pb-marker{background:var(--map-ground);box-shadow:0 0 0 1.5px var(--text)}.sw.pb-gap{background:repeating-linear-gradient(45deg, var(--border-strong) 0 2px, transparent 2px 4px);box-shadow:0 0 0 1px var(--border-strong);border-radius:2px}.legend.row{flex-flow:wrap;gap:6px 16px}.legend.row>span{align-items:center;display:inline-flex}.vehicle-ref{flex-direction:column;align-items:flex-start;line-height:1.35;display:inline-flex}.dt-jalali{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:3px;font-size:12px;display:block}.heading-read{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.heading-arrow{background:var(--accent-soft);width:22px;height:22px;color:var(--accent-ink);border-radius:50%;place-items:center;display:inline-grid}.heading-arrow svg{transform:rotate(var(--hd,0deg))}
