/* ASES portal theme: shared fleet, customer and gateway surfaces. */
:root{--ases-navy:#073265;--ases-blue:#155fa7;--ases-line:#dce4ee;--blue:#155fa7;--blue-dark:#073265;--page:#f3f6fa;--paper:#fff;--field:#f8fafc;--ink:#14283f;--muted:#5c6f84;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:#14283f;background:#f3f6fa}body{background:#f3f6fa;line-height:1.5}h1,h2,h3{letter-spacing:-.025em}h1{font-size:30px}h2{font-size:19px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.6;cursor:wait}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #70afe6;outline-offset:3px}.topbar,.portal-rail{background:#073265;padding:16px max(24px,calc((100vw - 1240px)/2));min-height:86px;box-shadow:0 3px 12px #09274212}.brand{display:flex;align-items:center;gap:20px;text-decoration:none;color:#fff}.brand img{width:145px;height:auto;border-radius:5px;display:block}.brand span{font-size:14px;font-weight:600;padding-left:20px;border-left:1px solid #ffffff40;opacity:1}.topbar nav a,.portal-rail a:not(.brand){font-size:14px;font-weight:600}.topbar nav a:hover,.portal-rail a:hover{text-decoration:underline}.container{width:min(1240px,calc(100% - 48px));margin-top:34px}.page-title{margin-bottom:28px}.page-title h1{font-size:32px;margin-bottom:5px}.eyebrow,.page-title .eyebrow{font-size:11px;letter-spacing:.16em;font-weight:750;color:#155fa7;margin:0 0 10px}.badge{font-size:11px;letter-spacing:.025em;padding:7px 12px;background:#e8eef6;color:#365575}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:28px}.metrics>div{background:#fff;border:1px solid var(--ases-line);border-radius:12px;padding:22px 24px;box-shadow:0 3px 10px #17334e03}.metrics span,.metrics small{display:block;color:#5c6f84;font-size:13px}.metrics strong{font-size:34px;line-height:1.6;letter-spacing:-.04em;font-weight:650}.metrics #online-count{color:#188064}.metrics #offline-count{color:#a36226}.metrics small{font-size:11px}.card,.panel{border-color:var(--ases-line);border-radius:12px;box-shadow:0 4px 16px #17334e04}.padded{padding:24px;margin-bottom:24px}.padded h2{margin-top:0}.fleet-card{overflow:hidden}.fleet-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:24px 24px 18px}.fleet-heading h2{margin:0 0 3px}.fleet-heading p{margin:0;color:#64758b;font-size:12px}.fleet-tools{display:flex;gap:14px;align-items:end;padding:0 24px 22px}.fleet-tools label:first-child{flex:1}.fleet-tools label{min-width:180px}.fleet-tools input,.fleet-tools select{height:44px;background:#f8fafc;border:1px solid #d8e1ec}.fleet-tools button,.padded button{border:1px solid #c8d5e4;background:#fff;border-radius:7px;color:#164f86;padding:10px 16px;font-weight:600;min-height:44px}.padded form button{background:#155fa7;color:#fff;align-self:end}.padded .actions{padding:16px 0;border-bottom:1px solid #e7ecf3}.padded .actions>span{flex:1;min-width:200px}.padded .actions input,.padded .actions select{width:auto;max-width:100%}.table-wrap{overflow:auto}th{background:#f7f9fc;color:#6a7a8d;font-size:10px;letter-spacing:.09em;padding:14px 24px}td{padding:20px 24px;font-size:13px}.device-name{font-weight:700;color:#103e69}.button-link{background:#edf4fc;color:#155fa7;font-size:12px;border:1px solid #d4e5f6;font-weight:650;padding:8px 12px}.status{gap:6px;text-transform:none}.status:before{content:'';width:6px;height:6px;background:currentColor;border-radius:50%}.status.online{color:#167552;background:#e7f5ed}.status.offline{color:#845b36;background:#fbf0e4}.empty-state{text-align:center;white-space:normal;color:#61758b;padding:48px 20px}.page-foot{color:#77869a;font-size:11px;text-align:center;margin:25px}.tabs{border-bottom:1px solid #dce4ee;padding-bottom:12px;gap:8px}.tabs button{font-weight:600;background:#fff;padding:11px 18px}.tabs button.active{background:#073265;border-color:#073265}.panel{padding:28px}.panel h2{color:#173b60}.signin-layout{width:min(1030px,100%);display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:80px}.login-bg{background:#f3f6fa;min-height:100vh;padding:50px}.signin-story>img{width:190px;border-radius:6px;margin-bottom:50px}.signin-story h1{font-size:48px;line-height:1.13;color:#073265;margin:12px 0 22px;letter-spacing:-.05em}.signin-story>p:not(.eyebrow){color:#526b85;font-size:16px;max-width:440px}.story-features{display:grid;gap:14px;margin:30px 0 50px;font-size:13px;color:#1b4c7e;font-weight:650}.signin-story small{color:#6d8197;font-size:11px}.login-card{width:100%;padding:38px;border:1px solid #dce4ee;border-radius:14px;box-shadow:0 16px 50px #1234590a}.login-card h2{font-size:25px;color:#123a65;line-height:1.25;margin:12px 0}.login-card form{gap:20px;margin-top:30px}.login-card input{min-height:46px}.login-card button{min-height:46px;background:#155fa7}.signin-help{font-size:12px;color:#6b7e92;margin:26px 0 0;border-top:1px solid #e3eaf2;padding-top:20px}.portal-rail{display:flex;align-items:center;justify-content:space-between;gap:20px;color:white}.portal-rail>div{display:flex;gap:24px}.portal-rail a{color:white}.local-portal .app-shell{width:min(1240px,calc(100% - 48px));padding-top:24px}.local-portal .app-header{padding:14px 0 20px;align-items:center}.local-portal .product-heading p{color:#155fa7;letter-spacing:.1em;font-size:11px;font-weight:700}.local-portal .product-heading h1{font-size:28px}.local-portal .brand-actions>img{display:none}.local-portal #remote-connection-state{border:1px solid #d6e4f2;background:#eaf2fb;border-radius:8px;margin-bottom:20px;color:#285784;font-size:12px}.local-portal .panel{border:1px solid #dce4ee;border-radius:12px;box-shadow:0 4px 16px #17334e04}.local-portal .site-line{font-size:13px}.local-portal input,.local-portal select,.local-portal textarea{border-color:#ccd9e7}.local-portal .tabs-shell{background:#f3f6fa}.local-portal .tab.active{background:#073265;color:white}.local-portal .settings-section{border-color:#e0e7ef}.local-portal .account-link{color:#155fa7}.local-portal .login-shell{margin-top:24px}
@media(max-width:900px){.signin-layout{gap:36px}.signin-story h1{font-size:38px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.brand span{display:none}.topbar,.portal-rail{padding:14px 20px}.container,.local-portal .app-shell{width:calc(100% - 32px)}.fleet-tools{flex-wrap:wrap}.fleet-tools label:first-child{min-width:100%}.signin-layout{grid-template-columns:1fr;max-width:500px}.signin-story>img{margin-bottom:24px}.signin-story h1{font-size:34px}.story-features,.signin-story small{display:none}.login-bg{padding:30px 20px}}
@media(max-width:520px){.topbar{align-items:center;flex-wrap:wrap}.topbar nav{flex-wrap:wrap;gap:14px}.brand img{width:116px}.page-title h1{font-size:27px}.metrics{gap:10px}.metrics>div{padding:16px}.metrics strong{font-size:29px}.metrics small{font-size:10px}.fleet-heading{align-items:flex-start;flex-direction:column;padding:18px}.fleet-tools{padding:0 18px 18px;gap:10px}.fleet-tools label{min-width:0;flex:1}.fleet-tools button{min-width:90px}.panel,.padded{padding:18px}.login-card{padding:25px}.portal-rail{padding:12px 16px}.portal-rail>div{gap:12px;font-size:12px}.local-portal .product-heading h1{font-size:22px}.local-portal .app-header{gap:12px;flex-wrap:wrap}.local-portal .panel{padding:18px}.padded .actions>*{flex:1 1 100%}.fleet-heading .badge{white-space:normal}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
.customer-editor{border:1px solid #dce4ee;border-radius:10px;margin:14px 0;overflow:hidden}.customer-editor summary{cursor:pointer;padding:18px;background:#f7f9fc;font-weight:650;overflow-wrap:anywhere}.customer-form{padding:20px}.customer-devices{padding-top:16px;border-top:1px solid #dce4ee}.customer-devices a{margin:0 8px 8px 0}.customer-devices h3{font-size:15px}#assignments .actions label{flex:1;min-width:0}#assignments .actions select{width:100%}

/* OTA telemetry: device-reported only; this is never animated without real data. */
.remote-ota-visual{margin:.8rem 0;display:grid;gap:.4rem;max-width:580px;}
.remote-ota-visual progress{display:block;width:100%;height:1.1rem;accent-color:#17658e;}
.remote-ota-visual .helper{margin:0;overflow-wrap:anywhere;}
