:root{--blue:#478df5;--border:#dedfe3;--text:#353e4a;--muted:#878d96;--sidebar:420px;--table-height:35%;font-family:Arial,Helvetica,sans-serif;color:var(--text);font-size:13px;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:#fff;overflow:hidden}button,input,select{font:inherit;color:inherit}button{cursor:pointer;border:1px solid #dedfe5;border-radius:3px;background:#fff;padding:6px 10px;white-space:nowrap}button:hover{background:#edf3fc;border-color:#a9c7f1}button:disabled{opacity:.4;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #438bf4;outline-offset:1px}button.primary,button.accent{color:#fff;background:var(--blue);border-color:var(--blue)}button.primary:hover{background:#357ee8}input:not([type=checkbox]):not([type=color]),select{height:31px;border:1px solid #d7dbe1;border-radius:3px;background:white;padding:5px 8px;min-width:0}input[type=checkbox]{accent-color:var(--blue);width:13px;height:13px;cursor:pointer;margin:0}input[type=color]{border:1px solid var(--border);background:#fff;height:30px;width:100%}label{display:block;margin:13px 0 6px;color:#5c626d}.check{display:flex;align-items:center;gap:7px;font-size:12px;margin:10px 0}.muted{color:var(--muted)}.spacer{flex:1}header{height:42px;background:#596270;display:flex;align-items:stretch;color:white;box-shadow:0 1px 3px #0003;position:relative;z-index:500}.brand{display:flex;align-items:center;gap:7px;font-size:25px;letter-spacing:-1px;text-decoration:none;color:inherit;font-weight:400;min-width:165px;padding:0 23px}.brand-symbol{color:#4c98ff;font-size:33px}nav{display:flex;overflow-x:auto;scrollbar-width:none}header button{border:0;border-radius:0;background:transparent;color:#f2f4f8;padding:0 14px}header button:hover{background:#4b5461}nav button.active{background:#414b59;box-shadow:inset 0 -3px #5bb4f7}.account{display:flex;align-items:center;gap:10px;margin-left:auto;padding-right:8px}.account button{padding:0 8px}#connection{color:#ffb13a;font-size:12px}.account #logout{font-size:12px}main{height:calc(100dvh - 77px);display:grid;grid-template-columns:var(--sidebar) 5px 1fr;min-width:0}aside{position:relative;min-width:0;display:flex;flex-direction:column;background:white;overflow:auto;padding-bottom:30px}aside>section{flex:1;min-height:0}#vsplit{cursor:col-resize;background:#e4e6eb;border-left:1px solid #ccd2dc;border-right:1px solid #d2d7df;z-index:450}.workspace{display:flex;flex-direction:column;min-width:0;min-height:0}#mapwrap{flex:1;position:relative;min-height:100px}#map{height:100%;width:100%;background:#e4e8e9}.searchbar{display:flex;align-items:center;padding:9px 10px;gap:5px;border-bottom:1px solid var(--border);height:46px}.searchbar>span{color:#9ea6b0;font-size:25px}.searchbar input{width:100%;border:0!important}.searchbar button{border:0;font-size:20px;padding:0 7px}.list-tools{display:flex;gap:5px;align-items:center;height:44px;padding:7px 9px;border-bottom:1px solid var(--border)}.list-tools button{font-size:17px;width:28px;height:28px;padding:0;color:#7d8796}.list-tools button.accent{color:white;font-size:23px}.list-tools>span:not(.spacer){display:inline-block;width:24px;color:#89919c;text-align:center}.group-title{background:#f6f7f9;border-bottom:1px solid var(--border);color:#737c89;padding:8px 12px;font-size:12px}.unit-row{display:grid;grid-template-columns:17px 27px 1fr 22px 22px 27px 24px;align-items:center;gap:5px;margin:5px 12px 5px 7px;padding:8px 5px;background:#f5f5f7;min-height:54px;border:1px solid transparent;border-radius:2px;cursor:pointer}.unit-row:hover{background:#eaf1fc}.unit-row.selected{border-color:#83b2f9;background:#eaf2ff}.unit-row .unit-icon{font-size:22px;color:#637892}.unit-main{min-width:0}.unit-main b{display:block;font-weight:400;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unit-main small{display:block;color:#8b929b;font-size:11px;margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.state-icon{font-size:16px;text-align:center}.green{color:#4baa53}.red{color:#f15359}.orange{color:#e6a127}.gray{color:#a7acb3}.unit-row button{border:0;background:none;padding:2px;color:#7c8691}.battery{height:9px;width:17px;border:1px solid currentColor;display:block;position:relative}.battery:after{content:'';position:absolute;right:-3px;top:2px;height:3px;border-right:2px solid currentColor}.battery>i{display:block;width:75%;height:100%;background:currentColor}.unit-detail{padding:10px 15px 12px 52px;border-bottom:1px solid var(--border);font-size:12px;line-height:1.8;background:#fafbfd}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.detail-grid span{color:#8a9199}.detail-grid strong{font-weight:400;text-align:right}.empty{padding:35px;color:#9299a4;text-align:center}#filters{padding:8px 12px;background:#fafbfc}#filters select{width:100%}.panel-heading{background:#f4f5f7;padding:11px 13px;border-bottom:1px solid var(--border);font-weight:bold;font-size:13px}.form-body{padding:0 15px 14px}.form-body>input,.form-body>select{width:100%}.presets{display:flex;gap:5px;margin:13px 0}.presets button{flex:1;font-size:12px}.presets button.selected{border-color:#5b99f4;color:#2974df}.form-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:18px}.query-result{padding:14px 16px;font-size:12px;line-height:1.9;color:#697380}.export-panel{border-top:1px solid var(--border);padding:5px 15px 15px;margin-top:16px}.export-panel button{margin-right:7px}.track-item{padding:11px 15px;background:#f5f6f8;margin:5px 10px;font-size:12px;line-height:1.7}.help{font-size:12px;color:#828a96;line-height:1.7;padding:7px 14px}.summary-grid{display:grid;grid-template-columns:1fr 1fr;padding:10px;gap:8px}.summary-grid article{border:1px solid #e5e8ed;padding:18px;background:#fafbfd}.summary-grid strong{font-size:29px;font-weight:400;color:#448be9;display:block}.summary-grid span{font-size:12px;color:#828a95;display:block;margin-top:7px}.wide{margin:8px 15px;width:calc(100% - 30px)}#sidebar-footer{position:sticky;bottom:-30px;background:#fff;border-top:1px solid var(--border);padding:8px 12px;font-size:10px;color:#89919b;margin-top:auto}#tablewrap{height:var(--table-height);min-height:145px;display:flex;flex-direction:column;background:white}#tablewrap[hidden],*[hidden]{display:none!important}#hsplit{height:5px;background:#e3e6eb;cursor:row-resize;flex-shrink:0}.table-toolbar{height:37px;display:flex;gap:15px;align-items:center;padding:4px 12px;border-bottom:1px solid var(--border);font-size:12px;background:#f6f7f9}.table-toolbar .check{margin:0}.table-toolbar button{border:0;background:transparent}.table-scroll{overflow:auto;flex:1;min-height:0}table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}th{position:sticky;top:0;background:#edf0f4;font-weight:400;z-index:1;border-right:1px solid #dce1e7}th,td{padding:7px 10px;text-align:left;border-bottom:1px solid #e5e8ed}tbody tr{cursor:pointer}tbody tr:nth-child(even){background:#f7f8fa}tbody tr:hover{background:#edf4ff}tbody tr.selected{background:#dceaff}tbody tr.alarm{color:#bd3535}td.parameters{max-width:450px;overflow:hidden;text-overflow:ellipsis}#pagination{height:31px;display:flex;align-items:center;gap:8px;border-top:1px solid var(--border);font-size:11px;color:#86909e;padding:3px 10px}#pagination button{padding:1px 8px}.map-toolbar{position:absolute;left:12px;top:12px;z-index:430;display:flex;flex-direction:column;gap:1px;filter:drop-shadow(0 1px 2px #0002)}.map-toolbar button{border:0;border-radius:0;padding:4px;font-size:21px;color:#75808e;width:30px;height:30px;background:white}.map-toolbar button:first-child{border-radius:4px 4px 0 0}.map-toolbar button:last-child{border-radius:0 0 4px 4px}.map-toolbar span{height:9px}.map-toolbar button.selected{color:#2c7ce9;background:#e5f0ff}.map-top{position:absolute;right:12px;top:12px;z-index:430;display:flex;gap:7px;align-items:center}.map-top span{font-size:11px;background:#fffE;padding:8px;border-radius:3px;color:#697587}.map-top select{box-shadow:0 1px 4px #0002;border:none;height:30px;font-size:12px}.leaflet-control-zoom{border:0!important;box-shadow:0 1px 5px #0003!important}.leaflet-control-zoom a{color:#737b89!important;border-color:#e2e5e9!important}.leaflet-control-scale{margin-left:12px!important;margin-bottom:24px!important}.leaflet-control-attribution{font-size:9px!important}.leaflet-tooltip.unit-label{border:0;border-radius:2px;background:#fffd;box-shadow:0 1px 3px #0002;color:#286dba;font-size:11px;font-weight:bold;padding:2px 5px}.leaflet-popup-content{font-size:12px;line-height:1.6;min-width:220px}.leaflet-popup-content h3{font-size:14px;margin:0 0 9px}.popup-grid{display:grid;grid-template-columns:1fr auto;gap:2px 15px}.popup-grid span{color:#88909a}.popup-params{border-top:1px solid #ddd;margin-top:7px;padding-top:6px;max-height:140px;overflow:auto}.vehicle-marker{filter:drop-shadow(0 1px 2px #fff);font-size:28px;line-height:28px;text-align:center;color:#248d59}.vehicle-marker.offline{color:#7e8b9b}#map-coordinates{position:absolute;right:8px;bottom:20px;font-size:10px;color:#394a5d;z-index:430;background:#fff9;padding:3px 6px}#selection-card{position:absolute;bottom:35px;left:13px;z-index:430;width:300px;background:white;box-shadow:0 1px 7px #0003;padding:13px;border-radius:3px;font-size:12px;line-height:1.6}#selection-card .card-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}#selection-card button{padding:3px 7px}#map-help{position:absolute;bottom:35px;left:50%;transform:translateX(-50%);z-index:440;background:#fff;padding:10px 15px;box-shadow:0 2px 8px #0003;border-radius:3px;white-space:nowrap}footer{display:flex;align-items:center;gap:10px;height:35px;border-top:1px solid var(--border);padding:3px 12px;font-size:12px;color:#747e8d}footer button{border:0;color:#798494;padding:0 3px;font-size:19px}footer time{margin-left:8px;font-variant-numeric:tabular-nums}#login{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;background:#f4f6f9}#login form{width:390px;background:white;padding:33px 38px;box-shadow:0 5px 35px #21395718;border:1px solid #e5e8ef;border-radius:4px}#login .brand{padding:0;color:#536172;font-size:36px}#login h1{font-size:16px;font-weight:400;color:#737e8e;margin:22px 0}#login input{width:100%;height:36px}#login button{width:100%;margin-top:20px;height:35px}#login small{color:#9ca4b0;font-size:11px}#error{color:#bb4040;font-size:12px}dialog{border:1px solid #d3dae5;border-radius:4px;box-shadow:0 7px 40px #0003;color:var(--text);width:620px;max-width:94vw;padding:0}dialog::backdrop{background:#27334766}.dialog-title{display:flex;align-items:center;justify-content:space-between;padding:9px 16px;background:#f1f3f6;border-bottom:1px solid var(--border)}.dialog-title button{border:0;background:none;font-size:22px;padding:0 5px}.property-tabs{padding:10px 15px;display:flex;border-bottom:1px solid var(--border);gap:4px}.property-tabs button.selected{background:#e9f1fe;border-color:#89b6f6;color:#2b75da}#property-general,#property-sensors,#property-raw{padding:12px 20px;max-height:65vh;overflow:auto}#property-general input{width:100%;margin-bottom:12px}#property-general button{margin:15px 0}#property-raw{white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px;background:#f7f9fb;margin:0}.sensor-row{display:grid;grid-template-columns:1fr 1fr;padding:6px 0;border-bottom:1px solid #edf0f4;gap:15px;font-size:12px}.sensor-row small{display:block;color:#939ca8;margin-top:2px}.sensor-row>strong{text-align:right;font-weight:400;overflow-wrap:anywhere}#settings-dialog{width:380px;padding-bottom:18px}#settings-dialog>.check,#settings-dialog>button{margin-left:20px}#toast{position:fixed;bottom:48px;left:50%;transform:translateX(-50%);z-index:2500;background:#fff;border:1px solid #ccd9ed;box-shadow:0 2px 12px #0002;color:#42526a;padding:12px 20px;border-radius:4px;max-width:90vw}.event-row{padding:11px 14px;border-bottom:1px solid var(--border);font-size:12px;line-height:1.6}.event-row small{color:#8a929e}.report-summary{padding:10px;white-space:normal}@media(max-width:1100px){:root{--sidebar:350px}header nav button{padding:0 9px}.brand{min-width:135px;padding:0 15px}.account #logout{font-size:0}.account #logout:first-letter{font-size:16px}}@media(max-width:700px){:root{--sidebar:290px}header{height:42px}.brand{min-width:105px;font-size:21px;padding:0 8px}.brand-symbol{font-size:25px}.account{display:none}.map-top span{display:none}.unit-row{gap:3px;margin-right:5px;padding:8px 3px;grid-template-columns:15px 22px 1fr 19px 19px 20px 20px}.unit-main b{font-size:12px}.list-tools>span:not(.spacer){width:20px}.map-top select{max-width:130px}}@media(max-width:480px){main{grid-template-columns:min(65vw,var(--sidebar)) 4px 1fr}aside{font-size:12px}.map-toolbar{left:5px;top:48px}.map-top{right:5px}#selection-card{width:230px;left:5px}#login form{width:92vw}}
.cms-link{color:#edf4ff;text-decoration:none;font-size:12px;padding:10px;white-space:nowrap}.cms-link:hover{background:#465260}#login label{margin-top:16px}#login input{margin-top:2px}
#login .auth-links,#cms-login .auth-links{display:flex;flex-wrap:wrap;gap:7px 14px;margin-top:16px}#login .auth-links button,#cms-login .auth-links button{border:0;background:none;color:#347cc0;font-size:11px;padding:2px 0;width:auto;margin:0;height:auto;text-align:left}.public-auth-fields{padding:6px 24px 18px}.public-auth-fields input{width:100%}.public-auth-fields .help{padding:0;margin-bottom:0}#public-auth-message{margin:0 24px 15px;font-size:13px;line-height:1.7;color:#4d6d82}#auth-dialog .dialog-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid #e1e6ee}
