/* Neutral surfaces, readable secondary text, restrained teal accents. */
:root{--blue:#206c80;--border:#c7d1d9;--text:#263747;--muted:#526477;--surface:#f1f4f6;--canvas:#dfe6eb;color:var(--text)}
body,main,aside,#sidebar,#monitor-panel{background:var(--surface)}button,input,select,textarea{border-color:#bdcbd5;background:#f7f9fa;color:#263747}button:hover{background:#e0eaf0;border-color:#819bac}button.primary,.accent{background:#206c80!important;border-color:#206c80!important;color:#fff!important}button:disabled{color:#667887;opacity:.65}input::placeholder{color:#5e7080;opacity:1}label,.help{color:#526477}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #197c91;outline-offset:2px}header{background:#435465}header nav button.active{background:#2d4153}#selection-card,.leaflet-popup-content-wrapper{background:#f6f8f9;color:#263747}#selection-card .card-title{background:#f6f8f9}.popup-grid span,.sensor-row small,.popup-params small,.unit-main small{color:#526477}.desktop-unit-row.unit-row{background:#e8edf1}.desktop-unit-row.unit-row:hover{background:#dce7ed}.desktop-unit-row.unit-row.selected{background:#d7e9ed;box-shadow:inset 0 0 0 1px #6f9fa9}.desktop-unit-icon{color:#526779}.desktop-row-actions button,.desktop-watch{color:#4d6275}.desktop-status .green,.desktop-recency .green{color:#238646}.desktop-status .gray,.desktop-recency .gray{color:#788692}.desktop-status .red,.desktop-recency .red{color:#c73f38}.yellow{color:#a17813}.orange{color:#b45e13}#sidebar-footer,#pagination,.list-caption,.desktop-list-caption{color:#536576;background:#e7edf1}.searchbar,.list-tools,.desktop-work-controls{background:#e7edf1}#tablewrap,.table-toolbar{background:#f1f4f6}th{background:#dee6ec;color:#354c60}tbody tr:nth-child(even){background:#edf1f4}tbody tr:hover{background:#dce9ef}dialog{background:#f1f4f6;color:#263747}.dialog-title{background:#dfe7ed}.fleet-card-body,.fleet-card-content,.fleet-profile-form{color:#263747}#toast{background:#eaf1f4;color:#263747;border-color:#99afbd}#monitor-tooltip{background:#f3f6f8;color:#263747}
/* A single, responsive identity shared by monitoring and CMS. */
#login.access-screen,#cms-login.access-screen{position:fixed;inset:0;z-index:2000;display:grid;grid-template-columns:minmax(340px,1fr) minmax(360px,460px);align-content:center;gap:64px;padding:clamp(24px,6vw,100px);overflow:auto;background:radial-gradient(ellipse at 23% 35%,#b9d5db80,transparent 55%),linear-gradient(130deg,#d3dfe6,#e9edf0);color:#263747}
.access-story{max-width:620px;justify-self:center;align-self:center;width:100%}.access-art{position:relative;text-align:center;padding:30px 20px}.access-art:before{content:'';position:absolute;inset:0;opacity:.28;background-image:linear-gradient(#7c9eac28 1px,transparent 1px),linear-gradient(90deg,#7c9eac28 1px,transparent 1px);background-size:36px 36px;mask-image:radial-gradient(ellipse,black,transparent 70%);pointer-events:none}.access-orbits img{width:84px;height:84px}.access-slogan{font-size:clamp(16px,2vw,23px);letter-spacing:.1px;color:#3e596e;margin:28px 0 8px}.access-wordmark{display:block;width:min(100%,400px);height:auto;margin:0 auto}.access-route{position:relative;height:22px;margin:24px auto;width:75%;border-top:1px solid #9aafbc}.access-route:before{content:'';position:absolute;top:-2px;left:0;width:83%;height:3px;background:linear-gradient(90deg,#2b8d9c30,#2b8d9c)}.access-route i{position:absolute;top:-4px;width:7px;height:7px;background:#6d909f;border-radius:50%}.access-route i:nth-child(2){left:40%}.access-route i:nth-child(3){left:80%}.access-route>span{position:absolute;left:82%;top:-22px;width:36px;color:#426578}.access-route svg{width:100%;height:27px}.access-caption{border-top:1px solid #acbec9;margin:20px 40px 0;padding-top:24px;color:#405d70}.access-caption>span{font-size:10px;letter-spacing:2.5px;font-weight:700}.access-caption p{font-size:15px;line-height:1.7;margin-bottom:0}
#login.access-screen form,#cms-login.access-screen form{background:#f1f4f6;border:1px solid #bfcdd7;border-radius:18px;padding:32px;width:100%;max-width:460px;box-shadow:0 18px 55px #233e5120;justify-self:center;align-self:center;border-top:3px solid #398c9c}.access-form .brand{margin:0 0 12px!important}.access-form .brand-emblem{width:32px!important;height:32px!important;flex-basis:32px!important}.access-form .brand-wordmark{font-size:23px!important}.access-form .brand small{font-size:7px!important;letter-spacing:2px!important}.access-form h1{font-size:23px!important;font-weight:650!important;color:#273e52!important;margin:20px 0 8px!important}.access-lead{font-size:13px;line-height:1.5;color:#526b7e;margin:0 0 26px}.access-form label{font-weight:600!important;font-size:12px!important;color:#344e63!important;margin:16px 0 7px!important}.access-screen form input{height:46px!important;background:#e8eef2;border:1px solid #aebfcb!important;border-radius:8px!important;padding:10px 12px!important;margin:0!important;width:100%!important}.access-screen form button.primary{height:46px!important;border-radius:8px!important;margin-top:24px!important;font-weight:600!important;font-size:14px}.access-password{position:relative}.access-password input{padding-right:88px!important}.access-screen .access-password-toggle{position:absolute;right:4px;top:4px;min-height:38px;height:38px!important;width:78px!important;margin:0!important;border:0;background:transparent;color:#326277;font-size:11px;padding:4px!important}.access-screen .auth-links{padding-top:12px;border-top:1px solid #cdd7de;margin-top:24px!important;gap:12px!important}.access-screen .auth-links button{font-size:12px!important;color:#255d75!important;min-height:32px!important}.access-screen form>small{display:none}#error,#cms-login-error{color:#a52b34!important;line-height:1.5}
.web-entrance{position:fixed;inset:0;z-index:2100;pointer-events:none;background:radial-gradient(ellipse at center,#bfd7de,#dfe6eb 70%);display:grid;place-items:center;animation:entrance-out .6s 1.9s both}.web-entrance .access-art{width:min(520px,90vw)}.web-entrance .access-slogan{animation:entrance-text .55s .05s both}.web-entrance .access-wordmark{animation:entrance-brand .8s .55s both}.web-entrance .access-orbits{animation:entrance-brand .9s .7s both}.web-entrance .access-route{animation:entrance-text .5s 1s both}.web-entrance .access-route>span{animation:entrance-car 1.3s .6s both}@keyframes entrance-text{from{opacity:0}to{opacity:1}}@keyframes entrance-brand{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}@keyframes entrance-car{from{left:0}to{left:82%}}@keyframes entrance-out{to{opacity:0;visibility:hidden}}@media(max-width:900px){#login.access-screen,#cms-login.access-screen{grid-template-columns:1fr;padding:24px;gap:20px}.access-story{display:none}.access-screen form{max-width:440px!important}}@media(prefers-reduced-motion:reduce){.web-entrance{display:none}.access-orbits *{animation:none!important}}
#freshness-banner{position:fixed;top:62px;left:50%;transform:translateX(-50%);z-index:1900;max-width:90vw;border:1px solid #b9823e;border-radius:8px;padding:12px 20px;background:#f8e8d0;color:#71430d;box-shadow:0 3px 15px #442c1720;font-size:13px}.data-stale .desktop-statuses{opacity:.6}.track-sample-time{color:#4d6275;margin:5px 0 10px}.track-sample .popup-params{max-height:240px}
.vehicle-marker{font-size:0;line-height:0;filter:drop-shadow(0 1px 2px #29425260)}.vehicle-marker.offline{filter:grayscale(.85) opacity(.7)}.vehicle-marker svg{overflow:visible}

.app-downloads{border-top:1px solid #c7d1d9;margin-top:20px;padding-top:16px;display:grid;gap:10px}.app-downloads strong{font-size:12px;color:#344e63}.app-downloads a{padding:12px;border-radius:8px;background:#d5e7ec;color:#205b70;text-decoration:none;font-weight:600;text-align:center}.app-downloads small{color:#526477;font-size:11px}
