@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');
:root{--zultra:#0B5FFF;--dark:#0A2540;--soft:#E0EBFF;--canvas:#F8FAFC;--line:#E2E8F0;--ink:#0F172A;--muted:#64748B}*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font:14px Inter,system-ui,sans-serif}button,input,select{font:inherit}button{cursor:pointer;transition:150ms}button,input,select{border:1px solid var(--line);border-radius:8px;min-height:44px;padding:10px 14px;background:white;color:var(--ink)}button:hover{border-color:var(--zultra);color:var(--zultra)}:focus-visible{outline:2px solid var(--zultra);outline-offset:2px}.primary{background:var(--zultra);color:white;border-color:var(--zultra)}.primary:hover{background:#3B82F6;color:white}.brand{display:flex;align-items:center;gap:10px}.brand b{font-size:20px;letter-spacing:-.6px}.brand small{display:block;font-size:10px;letter-spacing:1.5px;margin-top:4px;opacity:.65}.shell{display:grid;grid-template-columns:236px 1fr;min-height:100vh}.sidebar{background:var(--dark);color:white;padding:28px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sidebar .brand{padding:0 10px 36px}.group{font-size:10px;letter-spacing:1.5px;color:#ffffff66;padding:20px 14px 10px}.nav{display:flex;align-items:center;gap:12px;width:100%;border:0;background:transparent;color:#ffffffa6;text-align:left;margin:4px 0}.nav.active{color:white;background:#ffffff15}.nav svg{width:19px;height:19px}.sidefoot{margin-top:auto;border-top:1px solid #ffffff20;padding:24px 12px 0;font-size:12px;color:#ffffff99;line-height:1.8}.live{color:#10b981}.topbar{height:78px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;gap:16px}.breadcrumb{color:var(--muted);font-size:12px}.user{display:flex;align-items:center;gap:12px}.avatar{background:var(--soft);color:var(--zultra);border-radius:50%;width:38px;height:38px;display:grid;place-items:center;font-weight:600}.user small{display:block;color:var(--muted);margin-top:4px}.main{min-width:0}.content{padding:26px 30px}.heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:15px}h1{font-size:24px;letter-spacing:-.7px;margin:0 0 7px}p{color:var(--muted);margin:0;line-height:1.6}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.stat{background:white;border:1px solid var(--line);border-radius:12px;padding:18px;display:flex;justify-content:space-between}.stat small{color:var(--muted)}.stat strong{display:block;font-size:27px;margin-top:10px}.stat .symbol{background:var(--canvas);width:36px;height:36px;display:grid;place-items:center;border-radius:9px;color:var(--zultra)}.tracking{display:grid;grid-template-columns:330px 1fr;border:1px solid var(--line);border-radius:12px;background:white;overflow:hidden;height:calc(100vh - 330px);min-height:470px}.fleet{border-right:1px solid var(--line);overflow:auto}.fleethead{padding:20px;border-bottom:1px solid var(--line)}.fleethead h3{margin:0 0 16px;font-size:16px}.search{width:100%;background:var(--canvas)}.filters{display:flex;gap:6px;margin-top:12px}.filters button{min-height:32px;font-size:11px;padding:6px 9px;flex:1}.filters .active{background:var(--soft);color:var(--zultra);border-color:var(--soft)}.asset{padding:18px 20px;border:0;border-bottom:1px solid var(--line);width:100%;text-align:left;border-radius:0;display:block}.asset.selected{background:#f0f6ff;box-shadow:inset 3px 0 var(--zultra)}.asset b{display:block;margin-bottom:7px}.asset .meta{color:var(--muted);font-size:12px;margin-bottom:13px}.assetbottom{display:flex;justify-content:space-between;align-items:center;font-size:12px}.badge{border-radius:999px;padding:4px 8px;font-size:11px;display:inline-flex;align-items:center;gap:5px;background:#f1f5f9;color:var(--muted)}.moving{background:#10b98115;color:#047857}.stopped{background:#f59e0b15;color:#a16207}.offline{background:#64748b12;color:#64748b}.mapwrap{position:relative;min-width:0;background:#e8ede9}#map{width:100%;height:100%;z-index:1}.maptag{position:absolute;left:16px;top:16px;background:white;border:1px solid var(--line);border-radius:8px;padding:11px 14px;z-index:500;font-size:12px;box-shadow:0 2px 5px #00000008}.mapbuttons{position:absolute;right:14px;top:14px;z-index:500}.mapempty{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);z-index:500;background:white;padding:16px 22px;border:1px solid var(--line);border-radius:12px;width:min(370px,85%);box-shadow:0 4px 20px #00000009}.mapempty b{display:block;margin-bottom:5px}.mapempty p{font-size:12px}.empty{text-align:center;padding:40px 22px;color:var(--muted)}.empty svg{color:#a3bff7;width:36px;height:36px;margin-bottom:12px}.empty b{display:block;color:var(--ink);margin-bottom:8px}.empty p{font-size:12px}.panel{background:white;border:1px solid var(--line);border-radius:12px;overflow:auto}.panel table{border-collapse:collapse;width:100%;white-space:nowrap}th{text-align:left;background:var(--canvas);font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted)}th,td{padding:17px 20px;border-bottom:1px solid var(--line)}td{font-size:13px}.note{margin:20px 0;background:var(--soft);border:1px solid #0b5fff22;border-radius:10px;padding:16px;color:var(--dark);font-size:13px;line-height:1.7}.login{min-height:100vh;display:grid;place-items:center;padding:24px}.loginbox{width:400px;max-width:100%;background:white;border:1px solid var(--line);border-radius:16px;padding:36px;box-shadow:0 8px 30px #0f172a06}.loginbox .brand{margin-bottom:36px}.loginbox h1{font-size:22px}.loginbox p{font-size:13px;margin-bottom:24px}label{display:block;font-size:13px;font-weight:500;margin-bottom:16px}label input,label select{width:100%;margin-top:8px}form .primary{width:100%}.error{color:#b91c1c;font-size:12px;margin:10px 0;line-height:1.6}dialog{width:510px;max-width:calc(100% - 30px);border:1px solid var(--line);border-radius:12px;padding:26px;box-shadow:0 16px 40px #0f172a30}dialog::backdrop{background:#0a254055}dialog h2{font-size:20px;margin:0 0 24px}.dialoghead{display:flex;justify-content:space-between;align-items:start}.dialoghead button{min-height:32px;padding:3px 10px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}#toast{position:fixed;bottom:24px;right:24px;background:var(--dark);color:white;border-radius:10px;padding:16px 24px;z-index:2000;display:none}.footerline{margin-top:16px;color:var(--muted);font-size:11px;display:flex;justify-content:space-between}.details{margin-top:20px;padding:20px}.details h3{margin-top:0}.sensorgrid{display:flex;flex-wrap:wrap;gap:12px}.sensorvalue{border:1px solid var(--line);padding:14px;border-radius:8px;min-width:140px}.sensorvalue small{display:block;color:var(--muted);margin-bottom:8px}.sensorvalue b{font-size:18px}.pin{background:var(--zultra);border:3px solid white;border-radius:50%;box-shadow:0 1px 8px #0a254060;width:24px;height:24px}.leaflet-popup-content{font-family:Inter,system-ui,sans-serif;line-height:1.8}@media(max-width:1150px){.shell{grid-template-columns:190px 1fr}.tracking{grid-template-columns:290px 1fr}.content{padding:24px 20px}.sidebar{padding:24px 10px}.user .username{display:none}}@media(max-width:800px){.shell{display:block}.sidebar{height:auto;position:relative;padding:15px;display:block}.sidebar .brand{padding:0 0 14px}.sidebar .group,.sidefoot{display:none}.sidebar nav{display:flex;overflow:auto;gap:5px}.nav{width:auto;white-space:nowrap;font-size:12px}.nav svg{display:none}.topbar{height:65px;padding:0 16px}.content{padding:20px 14px}.stats{grid-template-columns:repeat(2,1fr);gap:10px}.stat{padding:14px}.tracking{display:flex;flex-direction:column;height:auto}.fleet{max-height:320px;border-right:0}#map,.mapwrap{height:450px}.heading{align-items:start}.heading p{font-size:12px}.heading button{font-size:12px}.footerline{line-height:1.8;gap:10px}.formgrid{display:block}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
/* Navegación superior y mapa a pantalla completa */
.shell{display:flex;flex-direction:column;min-height:100dvh}.topbar{height:56px;min-height:56px;padding:0 18px;position:sticky;top:0;z-index:700}.topnav{display:flex;align-items:center;gap:9px;background:transparent;border-color:transparent;color:var(--muted);font-weight:500}.topnav.active{background:var(--soft);color:var(--zultra)}.main{flex:1;min-height:0}.mapcontent{padding:0}.mapcontent .tracking{height:calc(100dvh - 56px);min-height:0;border:0;border-radius:0;grid-template-columns:330px minmax(0,1fr)}.mapcontent .fleet{display:flex;flex-direction:column;max-height:none;min-height:0}.fleethead{flex-shrink:0}.fleetupdated{padding:16px 20px;color:var(--muted);font-size:11px;margin-top:auto}.mapcontent .details{margin:12px;padding:16px}.mapcontent .details h3{font-size:14px}.mapcontent .sensorvalue{min-width:100px;flex:1}.mapcontent .sensorvalue b{font-size:15px}.mapcontent .mapwrap{height:100%;min-height:0}.mapcontent #map{height:100%}.settingsgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;max-width:1200px}.settingscard{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:12px;padding:24px;border-radius:12px}.settingscard strong{font-size:16px}.settingscard>span:not(.settingicon){color:var(--muted);font-size:13px;line-height:1.6}.settingicon{display:grid;place-items:center;width:42px;height:42px;background:var(--soft);color:var(--zultra);border-radius:10px}.settingscard .settingcount{margin-top:auto;padding-top:12px}.settingsback{margin-bottom:20px;background:transparent}.settingsaccount{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line);margin-top:30px;padding-top:20px;color:var(--muted);font-size:12px;max-width:1200px}@media(max-width:1000px){.settingsgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.mapcontent .tracking{grid-template-columns:290px minmax(0,1fr)}}@media(max-width:800px){.topbar{height:56px;padding:0 10px}.mapcontent .tracking{display:grid;grid-template-columns:240px minmax(0,1fr);height:calc(100dvh - 56px)}.mapcontent .tracking{grid-template-columns:240px minmax(0,1fr)}.fleethead{padding:16px 12px}.asset{padding:16px 12px}.filters{flex-wrap:wrap}.maptag{top:12px;left:12px;font-size:10px;padding:8px}.mapbuttons{top:50px;right:12px}.mapbuttons button{font-size:12px}.mapempty{bottom:32px;padding:12px}.settingsgrid{gap:12px}.settingscard{padding:18px}}@media(max-width:540px){.mapcontent .tracking{grid-template-columns:175px minmax(0,1fr)}.fleethead h3{font-size:14px;line-height:1.8}.fleethead .search{font-size:12px;padding:8px}.filters button{font-size:10px;padding:6px}.assetbottom{align-items:flex-start;flex-direction:column;gap:7px}.maptag{max-width:calc(100% - 24px);line-height:1.6}.mapbuttons{top:68px}.mapempty{bottom:40px}.settingsgrid{grid-template-columns:1fr}.settingsaccount{align-items:flex-start;flex-direction:column}.fleetupdated{padding:12px;font-size:10px}}
.navleft{display:flex;align-items:center;gap:20px;min-width:0}.topbar .brand{gap:9px;flex-shrink:0}.topbar .brand svg{width:32px;height:32px}.topbar .brand b{font-size:18px}.topbar .brand small{font-size:9px;letter-spacing:1.1px;margin-top:2px;color:var(--muted);opacity:1}.navdivider{width:1px;height:28px;background:var(--line)}.leaflet-control-zoom{border:1px solid var(--line)!important;border-radius:10px!important;overflow:hidden;box-shadow:0 2px 10px #0f172a0d!important}.leaflet-control-zoom a{color:var(--dark)!important;width:36px!important;height:36px!important;line-height:36px!important}.leaflet-control-layers{border:1px solid var(--line)!important;border-radius:10px!important;box-shadow:0 2px 10px #0f172a0d!important;font-family:Inter,system-ui,sans-serif}.leaflet-control-layers label{margin:0;font-size:12px}.leaflet-control-layers input{min-height:0;width:auto;padding:0}.leaflet-control-attribution{font-size:9px!important;max-width:90%;line-height:1.4!important}.mapwrap{background:#e9eff2}.maptag,.mapbuttons button{box-shadow:0 2px 12px #0f172a0a;border-radius:10px}@media(max-width:540px){.navleft{gap:8px}.navdivider{display:none}.topbar .brand{gap:6px}.topbar .brand b{font-size:15px}.topbar .brand small{font-size:7px;letter-spacing:.5px}.topbar .brand svg{width:28px;height:28px}.topnav{gap:5px;font-size:12px;padding:8px}.topbar{gap:4px}}
.settingscontent{padding:0}.settingslayout{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:calc(100dvh - 56px)}.settingssidebar{background:white;border-right:1px solid var(--line);padding:24px 14px;display:flex;flex-direction:column;position:sticky;top:56px;height:calc(100dvh - 56px);overflow:auto}.settingslabel{padding:0 12px 20px;font-size:16px;font-weight:600;letter-spacing:-.3px}.settingsnav{display:flex;align-items:center;gap:10px;text-align:left;width:100%;margin-bottom:6px;border-color:transparent;color:var(--muted);background:transparent}.settingsnav span{flex:1}.settingsnav small{font-size:11px;color:var(--muted);background:var(--canvas);border-radius:6px;padding:3px 6px}.settingsnav.active{background:var(--soft);color:var(--zultra)}.settingsnav.active small{background:#ffffff99;color:var(--zultra)}.settingsprofile{margin-top:auto;padding:24px 12px 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px;font-size:12px}.settingsprofile span{color:var(--muted);overflow-wrap:anywhere}.settingsprofile button{margin-top:10px;font-size:12px}.settingsbody{padding:30px;min-width:0}.settingsbody .panel{max-width:100%}.settingsbody .heading{align-items:flex-start}@media(max-width:800px){.settingslayout{grid-template-columns:195px minmax(0,1fr)}.settingssidebar{padding:20px 8px}.settingsbody{padding:22px 16px}.settingsnav{padding:10px 8px;font-size:12px}.settingslabel{font-size:14px}.settingsbody .heading{flex-wrap:wrap}.settingsbody h1{font-size:22px}}@media(max-width:540px){.settingslayout{grid-template-columns:150px minmax(0,1fr)}.settingssidebar{padding:18px 6px}.settingsnav{gap:7px}.settingsnav svg{width:16px;min-width:16px}.settingsnav small{display:none}.settingsbody{padding:20px 12px}.settingsprofile{padding:18px 6px 0}.settingslabel{padding:0 6px 18px;font-size:13px}.settingsbody .heading .primary{width:100%}}
.maplibregl-ctrl-group{border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:0 2px 10px #0f172a10!important}.maplibregl-ctrl-group button{min-height:36px;width:36px;border-radius:0;padding:0}.maplibregl-ctrl-attrib{font-size:10px}.vehiclepin{display:grid;place-items:center;min-height:36px;width:36px;padding:5px;border:3px solid white;border-radius:50%;background:var(--zultra);color:white;box-shadow:0 2px 8px #0a254055}.vehiclepin:hover{background:#3B82F6;color:white;border-color:white}.vehiclepin svg{width:20px;height:20px}.maplibregl-canvas:focus-visible{outline-offset:-2px}
.mapbuttons{display:flex;flex-direction:column;align-items:flex-end;gap:10px}.basemapselector{display:flex;padding:4px;gap:3px;background:white;border:1px solid var(--line);border-radius:10px;box-shadow:0 2px 12px #0f172a0a}.basemapselector button{min-height:36px;padding:7px 12px;border:0;border-radius:7px;box-shadow:none}.basemapselector button.active{background:var(--soft);color:var(--zultra)}@media(max-width:540px){.basemapselector button{font-size:11px;padding:7px 8px}}
.fleettitle{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:16px;flex-wrap:wrap}.fleettitle h3{margin:0}.fleetfilter{position:relative;display:flex;align-items:center;color:var(--muted);max-width:100%;border-radius:6px}.fleetfilter>svg{position:absolute;left:6px;width:15px;height:15px;pointer-events:none}.fleetfilter select{min-height:32px;max-width:100%;width:145px;padding:6px 16px 6px 26px;font-size:11px;color:var(--muted);background:transparent;border:1px solid transparent;border-radius:6px;cursor:pointer}.fleetfilter select:hover{background:var(--canvas);border-color:var(--line)}.fleetfilter:focus-within{color:var(--zultra)}@media(max-width:540px){.fleettitle{gap:4px;margin-bottom:12px}.fleetfilter select{width:140px}.fleettitle h3{line-height:1.5}}
.assetname{display:flex!important;align-items:center;gap:9px}.assetname svg{width:22px;flex-shrink:0;color:var(--muted)}.assetlogo{width:32px;height:32px;object-fit:contain}.vehiclepin:has(.assetlogo){width:44px;min-height:44px;background:white;border:2px solid var(--zultra)}.vehiclepin .assetlogo{width:32px;height:32px}.logopreview{display:flex;align-items:center;gap:14px;padding:14px;background:var(--canvas);border:1px solid var(--line);border-radius:8px;margin-bottom:18px}.logopreviewicon{display:grid;place-items:center;width:56px;min-width:56px;height:56px;background:white;border:1px solid var(--line);border-radius:8px;color:var(--zultra)}.logopreviewicon img{width:46px;height:46px}.logopreview strong{font-size:13px}.logopreview p{font-size:11px;overflow-wrap:anywhere}
.sensordialog{width:620px;max-height:90dvh;overflow:auto}.sensordialog h3{font-size:14px;margin:18px 0 10px}.sensorhint{font-size:12px;color:var(--muted);line-height:1.6;margin:0 0 14px}.calibrationtable{border:1px solid var(--line);border-radius:8px;overflow:hidden}.calibrationhead,.calibrationrow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 36px;gap:10px;padding:10px 12px;align-items:center}.calibrationhead{background:var(--canvas);font-size:12px;color:var(--muted)}#calibrationrows{max-height:280px;overflow:auto}.calibrationrow{border-top:1px solid var(--line)}.calibrationrow input{width:100%;min-width:0}.calibrationrow button{padding:5px;min-height:36px;color:#b91c1c}.addpoint{margin:12px 0}.reading-open,.reading-out_of_range,.reading-invalid{color:#b45309}.reading-closed{color:#047857}.reading-missing{color:var(--muted)}
.assetactions{display:flex;gap:6px}.assetactions button{font-size:12px;min-height:34px;padding:6px 10px}.deleteaction{color:#b91c1c}.dangerbutton{color:white;background:#ef4444;border-color:#ef4444}.bluetoothtable td{vertical-align:top;white-space:normal}.bluetoothtable td:first-child{min-width:180px}.bluetoothtable td:nth-child(2){min-width:200px}.bluetoothtable td:nth-child(3){min-width:180px}.rowconfig{min-width:340px}.bluetoothtable input,.bluetoothtable select{width:100%}.rawreading{display:block;font-size:11px;color:var(--muted);margin-top:8px}.pointrows{max-height:280px;overflow:auto}.lidrange,.linearconfig{display:flex;gap:10px}.lidrange label,.linearconfig label{flex:1;min-width:0;font-size:11px}.batchfooter{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:18px;border-top:1px solid var(--line)}.batchfooter span{font-size:12px;color:var(--muted)}.sensorname:disabled{background:var(--canvas)}@media(max-width:800px){.batchfooter{align-items:stretch;flex-direction:column}}
.assetfloating[hidden]{display:none}.assetfloating{position:absolute;right:16px;top:124px;width:340px;max-width:calc(100% - 32px);max-height:calc(100% - 156px);overflow:auto;z-index:550;background:white;border:1px solid var(--line);border-radius:12px;box-shadow:0 4px 12px #0f172a14,0 16px 40px -20px #0f172a47;overscroll-behavior:contain}.assetfloatinghead{position:sticky;top:0;background:white;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:18px;border-bottom:1px solid var(--line)}.assetfloatingidentity{display:flex;gap:10px;align-items:center;min-width:0}.assetfloatingidentity>div{min-width:0}.assetfloatinghead h2{font-size:16px;line-height:1.4;letter-spacing:-.3px;margin:0;overflow-wrap:anywhere}.assetfloatinghead p{font-size:12px;margin-top:4px}.assetfloatingicon{display:grid;place-items:center;width:38px;height:38px;flex-shrink:0;background:var(--soft);border-radius:9px;color:var(--zultra)}#closeassetdetail{display:grid;place-items:center;width:32px;min-width:32px;min-height:32px;padding:0;border-color:transparent;font-size:22px;color:var(--muted)}.assetfloatingbody{padding:16px 18px}.assetfloatingstatus{display:flex;justify-content:space-between;gap:10px;align-items:center}.assetfloatingstatus>span:last-child:not(.badge){font-size:11px;color:var(--muted);text-align:right}.assetdeviceinfo{margin:18px 0;display:flex;flex-direction:column;gap:10px}.assetdeviceinfo>div{display:flex;justify-content:space-between;gap:12px}.assetdeviceinfo dt{font-size:11px;color:var(--muted)}.assetdeviceinfo dd{font-size:12px;margin:0;text-align:right;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.telemetrygrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.telemetrymetric{padding:12px;background:var(--canvas);border:1px solid var(--line);border-radius:8px}.telemetrymetric small{display:block;color:var(--muted);font-size:11px;margin-bottom:7px}.telemetrymetric strong{font-size:16px;font-variant-numeric:tabular-nums}.speedmetric{grid-column:1/-1;background:#f4f8ff}.speedmetric strong{font-size:25px;color:var(--zultra)}.floatingsensorhead{display:flex;justify-content:space-between;align-items:center;margin-top:22px;margin-bottom:10px}.floatingsensorhead h3{margin:0;font-size:14px}.floatingsensor{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.floatingsensor span{font-size:12px;display:block;overflow-wrap:anywhere}.floatingsensor small{font-size:10px;color:var(--muted);display:block;margin-top:5px}.floatingsensor strong{text-align:right;font-size:14px;max-width:50%;font-variant-numeric:tabular-nums}.assetfloatingfooter{display:flex;flex-direction:column;gap:5px;padding-top:16px;color:var(--muted);font-size:10px}.assetfloatingfooter time{color:var(--ink);font-size:11px}.selectedpin{box-shadow:0 0 0 5px #0b5fff33,0 2px 8px #0a254055!important}@media(max-width:800px){.assetfloating{top:auto;bottom:34px;right:12px;max-width:calc(100% - 24px);max-height:58%;width:340px}.assetfloatinghead{padding:13px}.assetfloatingbody{padding:13px}.assetfloatinghead h2{font-size:14px}.telemetrymetric{padding:10px}.assetdeviceinfo{margin:14px 0}}@media(max-width:540px){.assetfloating{position:fixed;top:auto;bottom:16px;right:12px;max-width:calc(100vw - 24px);max-height:60dvh;z-index:650}.assetfloatinghead{padding:12px 14px}#closeassetdetail{min-height:44px;width:44px;min-width:44px}}
.telemetrycompact{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 8px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.telemetrycompact>div{display:flex;flex-direction:column;gap:5px;min-width:0}.telemetrycompact span{font-size:10px;color:var(--muted)}.telemetrycompact strong{font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.telemetrycompact .compactupdated{grid-column:1/-1;flex-direction:row;justify-content:space-between;align-items:center;gap:8px}.compactupdated time{font-size:10px;color:var(--muted);text-align:right}.floatingsensors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.floatingsensor{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:14px;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--canvas);min-height:110px}.floatingsensor>div{width:100%}.floatingsensor span{font-weight:500;font-size:12px}.floatingsensor small{font-size:10px;line-height:1.4}.floatingsensor strong{font-size:21px;text-align:left;max-width:100%;overflow-wrap:anywhere;line-height:1.3}.floatingsensors>.sensorhint{grid-column:1/-1}.floatingsensor strong.reading-missing,.floatingsensor strong.reading-invalid,.floatingsensor strong.reading-out_of_range{font-size:14px}.floatingsensorhead{margin-top:18px}.assetdeviceinfo{margin:14px 0}.assetfloatingbody{padding-bottom:18px}
.sensorcard{border:1px solid var(--line);border-radius:12px;padding:14px;background:white;min-width:0;box-shadow:0 1px 2px #0f172a05}.sensorcardtop{display:flex;gap:8px;align-items:center;margin-bottom:14px}.sensortypeicon{display:grid;place-items:center;flex-shrink:0;width:30px;height:30px;border-radius:8px;background:var(--soft);color:var(--zultra)}.sensortypeicon svg{width:19px;height:19px}.sensorkind{font-size:10px;font-weight:500;color:var(--muted);line-height:1.4}.sensorcardmain{display:flex;gap:16px;align-items:center;justify-content:space-between}.sensorcardinfo{min-width:0}.sensorcard h4{font-size:12px;font-weight:500;line-height:1.5;margin:0 0 8px;overflow-wrap:anywhere}.sensorcardvalue{display:block;font-size:25px;font-weight:700;letter-spacing:-.6px;line-height:1.2;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.sensorcardinfo p{font-size:10px;margin-top:9px;line-height:1.5}.sensorcard-fuel_tank,.sensorcard-fuel_cistern{grid-column:1/-1;background:#fbfdff}.sensorcard-fuel_tank .sensorcardvalue,.sensorcard-fuel_cistern .sensorcardvalue{color:var(--zultra);font-size:30px}.sensorcard .reading-missing,.sensorcard .reading-invalid,.sensorcard .reading-out_of_range{font-size:14px!important;letter-spacing:0}.sensorcard-lid .sensorcardvalue{font-size:21px}.sensorstatus-closed .sensortypeicon{color:#047857;background:#10b98112}.sensorstatus-open .sensortypeicon{color:#b45309;background:#f59e0b12}.lidstatedot{width:6px;height:6px;border-radius:50%;background:#10b981;margin-left:auto;flex-shrink:0}.sensorstatus-open .lidstatedot{background:#f59e0b}.tankvisual{position:relative;flex-shrink:0;width:64px;height:88px;margin:0 4px 4px 0;padding-top:7px}.tankcap{height:7px;width:24px;border:2px solid #a3bff7;border-bottom:0;border-radius:4px 4px 0 0;position:absolute;top:0;left:20px}.tankbody{height:75px;border:2px solid #a3bff7;border-radius:11px;background:white;position:relative;overflow:hidden}.tankfill{position:absolute;bottom:0;left:0;right:0;background:#0b5fff26;border-top:2px solid #3b82f6}.tankticks{position:absolute;inset:12px 7px;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end}.tankticks i{height:1px;width:12px;background:#0b5fff55}.tankfeet{height:5px;position:absolute;left:12px;right:12px;border-left:3px solid #a3bff7;border-right:3px solid #a3bff7}.tankunknown .tankbody{border-style:dashed}.tankunknown .tankfill{display:none}.sensorcard .reading-open{color:#b45309}.sensorcard .reading-closed{color:#047857}
.floatingsensors{grid-template-columns:1fr;gap:8px}.sensorcard{padding:11px 12px;border-radius:8px;box-shadow:none;background:white}.sensorcard-fuel_tank,.sensorcard-fuel_cistern{background:white}.sensorcompactrow{display:flex;align-items:center;gap:9px}.sensorcompactlabel{flex:1;min-width:0}.sensorcompactlabel h4{font-size:12px;margin:0;line-height:1.4;font-weight:500}.sensorcompactlabel small{display:block;font-size:10px;line-height:1.4;color:var(--muted);margin-top:2px}.sensorcard .sensortypeicon{width:27px;height:27px;border-radius:7px;background:var(--canvas);color:var(--muted)}.sensorcard .sensortypeicon svg{width:16px;height:16px}.sensorcard .sensorcardvalue,.sensorcard-fuel_tank .sensorcardvalue,.sensorcard-fuel_cistern .sensorcardvalue,.sensorcard-lid .sensorcardvalue{font-size:16px;line-height:1.4;letter-spacing:-.2px;color:var(--ink);font-weight:600;text-align:right;max-width:46%;flex-shrink:0}.sensorcard .reading-missing,.sensorcard .reading-invalid,.sensorcard .reading-out_of_range{font-size:11px!important}.sensorcard .reading-open{color:#b45309}.sensorcard .reading-closed{color:#047857}.sensorlevel{height:3px;background:#edf2f7;border-radius:999px;margin:10px 0 0 36px;overflow:hidden}.sensorlevel span{display:block;height:100%;background:#8cb4ff;border-radius:999px}.sensorlevelunknown{opacity:.45}.sensorlevelunknown span{display:none}
.floatingsensors{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.sensorcard{aspect-ratio:1;min-height:0;padding:12px;display:flex;flex-direction:column;justify-content:space-between;border-radius:10px}.sensorcard-fuel_tank,.sensorcard-fuel_cistern{grid-column:auto}.sensorcompactrow{display:grid;grid-template-columns:27px minmax(0,1fr);align-items:start;gap:9px 7px;flex:1}.sensorcompactlabel{align-self:center}.sensorcompactlabel h4{font-size:11px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.sensorcompactlabel small{font-size:9px;line-height:1.3;margin-top:3px}.sensorcard .sensorcardvalue,.sensorcard-fuel_tank .sensorcardvalue,.sensorcard-fuel_cistern .sensorcardvalue,.sensorcard-lid .sensorcardvalue{grid-column:1/-1;text-align:left;max-width:100%;font-size:21px;align-self:end;margin:6px 0 0;line-height:1.2}.sensorlevel{margin:11px 0 0;height:3px}.sensorcard .reading-missing,.sensorcard .reading-invalid,.sensorcard .reading-out_of_range{font-size:12px!important}
[hidden]{display:none!important}.assetcounts{grid-column:1/-1}.assetcounts:has(input:disabled):not(:has(input:enabled)){display:none}.tankassignment{font-size:11px;margin:12px 0 0;color:var(--muted)}.tankassignment select{font-size:12px;margin-top:6px}.tankassignments{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}.tankassignmentitem{display:flex;flex-direction:column;gap:7px;padding:14px 16px;border:1px solid var(--line);background:white;border-radius:9px;min-width:170px;font-size:12px}.tankassignmentitem strong{margin-bottom:3px}.assignedok{color:#047857}.assignmentmissing{color:#b45309}.tanktemperature{display:flex;align-items:center;gap:5px;border-top:1px solid var(--line);padding-top:8px;margin-top:8px;font-size:10px;color:var(--muted)}.tanktemperature svg{flex-shrink:0}.tanktemperature span{flex:1;font-size:9px}.tanktemperature strong{font-size:12px;color:var(--ink);font-weight:600;max-width:55%;text-align:right;overflow-wrap:anywhere}.tankcombined .sensorcompactrow{gap:6px}.tankcombined .sensorcompactlabel small{font-size:8px}.tankcombined .sensorcardvalue{font-size:19px}.tankcombined .sensorlevel{margin-top:6px}.tankcombined{aspect-ratio:1;min-height:155px}.tankcombined .sensorcompactlabel h4{font-size:12px}
.historysidebar{overflow:auto}.historysidebar form label{font-size:12px;margin-bottom:12px}.historysidebar form input,.historysidebar form select{font-size:12px}.historysidebar form button{width:100%}.historysummary,.historypoint{padding:20px;border-bottom:1px solid var(--line)}.historysummary h3,.historypoint h3{font-size:14px;margin:0 0 16px}.historysummary>p{font-size:12px}.historymetrics{display:grid;grid-template-columns:1fr 1fr;gap:16px 12px;margin-bottom:18px}.historymetrics small{font-size:10px;color:var(--muted);display:block;margin-bottom:6px}.historymetrics strong{font-size:17px;font-variant-numeric:tabular-nums}.historywarning{font-size:11px;color:#92400e;background:#fffbeb;padding:10px;border-radius:7px;line-height:1.6;margin:12px 0}.historytimeline{position:absolute;bottom:35px;left:16px;right:16px;max-width:420px;margin:auto;z-index:500;background:white;border:1px solid var(--line);border-radius:10px;box-shadow:0 2px 12px #0f172a14;padding:10px 14px}.historytimeline>div{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px}.historytimeline button{min-height:32px;width:32px;padding:0;font-size:22px}.historytimeline input{width:100%;padding:0;border:0;min-height:24px;margin:6px 0 0;accent-color:var(--zultra)}.historymarker{display:grid;place-items:center;border-radius:50%;min-height:28px;width:28px;padding:0;border:2px solid white;box-shadow:0 2px 6px #0f172a40;background:#0a2540;color:white;font-size:11px;font-weight:600}.historymarker-end{background:#64748b}.historymarker-current{background:var(--zultra);min-height:24px;width:24px}.historicalsensors>div{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding:10px 0;font-size:11px}.historicalsensors strong{white-space:nowrap}.historypoint details{margin-top:16px;font-size:11px;color:var(--muted)}.historypoint summary{cursor:pointer;min-height:32px}.historypoint pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:10px;background:var(--canvas);padding:10px;border-radius:8px}.historysidebar .sensorhint{font-size:10px;line-height:1.7}.historysidebar .fleethead h3{margin-bottom:8px}@media(max-width:800px){.historysummary,.historypoint{padding:16px 12px}.historymetrics{gap:12px 8px}.historymetrics strong{font-size:14px}.historytimeline{left:10px;right:10px;padding:8px}.historytimeline>div{font-size:10px}.navleft{gap:10px}.topbar .brand small{letter-spacing:.4px}}@media(max-width:540px){.topbar .brand small{display:none}.topbar .brand b{font-size:13px}.topbar .brand svg{width:24px;height:24px}.topnav svg{display:none}.navleft{gap:4px}.topnav{font-size:11px;padding:8px 6px}.historysidebar .fleethead{padding:14px 10px}.historysidebar form input,.historysidebar form select{font-size:10px;padding:8px 5px}.historymetrics{grid-template-columns:1fr}.historytimeline>div{flex-wrap:wrap}.historytimeline #historytime{max-width:calc(100% - 70px);font-size:9px}.historymarker{min-height:25px;width:25px}}
.alertrule{background:white;border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:16px;max-width:900px}.alertrulehead{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.alertrulehead label{margin:0}.alertrulehead .removerule{font-size:21px;min-height:32px;padding:0;width:32px;color:var(--muted)}.alertrule input[type=checkbox]{width:16px;min-height:16px;margin:0 8px 0 0;vertical-align:middle}.alertrule .alertcheck{font-size:12px;display:flex;align-items:center;min-height:36px}.fullfield{grid-column:1/-1}.alertmapcontrols{display:flex;gap:6px}.alertmapcontrols button{font-size:11px;min-height:32px;padding:7px 10px}.alertpopups{position:fixed;right:20px;top:76px;width:330px;max-width:calc(100vw - 32px);z-index:1800;display:flex;flex-direction:column;gap:10px;pointer-events:none}.alertnotice{pointer-events:auto;background:white;border:1px solid var(--line);border-left:3px solid #f59e0b;border-radius:10px;padding:15px 36px 15px 16px;box-shadow:0 4px 20px #0f172a20;position:relative}.alertnotice>button{position:absolute;right:5px;top:5px;width:28px;min-height:28px;padding:0;border:0;font-size:20px;color:var(--muted)}.eventheader{display:flex;justify-content:space-between;gap:10px;align-items:center}.eventheader strong{font-size:13px}.eventheader time{font-size:10px;color:var(--muted);white-space:nowrap}.eventasset{display:block;margin-top:9px;font-size:11px;font-weight:500;color:var(--muted)}.alertnotice p,.alertevent p{font-size:12px;margin-top:6px;color:var(--ink);line-height:1.6}.mapalertcenter{position:absolute;z-index:1100;right:14px;top:180px;width:340px;max-width:calc(100% - 28px);max-height:calc(100% - 210px);overflow:auto;background:white;border:1px solid var(--line);border-radius:12px;box-shadow:0 4px 20px #0f172a20}.mapalertcenter>header{position:sticky;top:0;background:white;padding:14px 16px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;font-size:14px}.mapalertcenter header button{width:28px;min-height:28px;padding:0;border:0;font-size:22px}.alertevent{padding:14px 16px;border-bottom:1px solid var(--line)}@media(max-width:800px){.mapalertcenter{top:210px;max-height:calc(100% - 245px)}.alertrule{padding:16px}}@media(max-width:540px){.alertpopups{right:12px;top:65px}.mapalertcenter{position:fixed;top:180px;right:12px;width:340px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 210px)}}
/* Editores de sensores y alertas */
.configassethead{margin-bottom:22px}.configback{padding:0;min-height:30px;border:0;background:transparent;color:var(--muted);font-size:12px;margin-bottom:14px}.configassettitle{display:flex;align-items:center;gap:12px}.configassettitle h1{font-size:23px;margin:0 0 4px}.configassettitle p{font-size:12px}.configasseticon{display:grid;place-items:center;width:44px;height:44px;background:var(--soft);color:var(--zultra);border-radius:11px;flex-shrink:0}.configtabs{display:flex;gap:20px;border-bottom:1px solid var(--line);margin-top:20px}.configtabs button{display:flex;align-items:center;gap:8px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--muted);font-size:13px;padding:10px 4px}.configtabs button.active{color:var(--zultra);border-bottom-color:var(--zultra)}.configtabs svg{width:17px;height:17px}.configsavebar{display:flex;justify-content:space-between;align-items:center;gap:16px;position:sticky;bottom:0;z-index:25;background:#fffffffa;border:1px solid var(--line);border-radius:10px;padding:12px 16px;margin-top:18px;box-shadow:0 -4px 18px #0f172a04}.savestate{font-size:11px;color:var(--muted)}.configsavebar .primary{font-size:13px;min-height:40px}.sensorworkspace{display:grid;grid-template-columns:minmax(200px,28%) minmax(0,1fr);border:1px solid var(--line);border-radius:12px;background:white;overflow:hidden;min-height:410px;height:calc(100dvh - 365px)}.sensorchooser{background:#fbfcfe;border-right:1px solid var(--line);padding:16px 0;min-height:0;display:flex;flex-direction:column}.chooserhead{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 14px;font-size:12px;margin-bottom:12px}.sensorchooser #fieldsearch{margin:0 12px;width:calc(100% - 24px);min-height:36px;font-size:11px;padding:8px 10px}.fieldfilters{display:flex;gap:4px;margin:10px 12px}.fieldfilters button{border:0;min-height:29px;padding:5px 8px;font-size:10px;background:transparent;color:var(--muted)}.fieldfilters button.active{background:var(--soft);color:var(--zultra)}#sensorfieldlist{flex:1;overflow:auto;min-height:0;padding:2px 6px}.sensorfielditem{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:1px solid transparent;background:transparent;padding:12px 8px;min-height:58px;border-radius:8px;margin:3px 0}.sensorfielditem.active{background:white;border-color:#0b5fff30;box-shadow:0 1px 3px #0f172a04}.sensorfielditem>span:nth-child(2){flex:1;min-width:0}.sensorfielditem strong{display:block;font-size:11px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}.sensorfielditem small{display:block;font-size:9px;color:var(--muted);margin-top:5px}.fielditemicon{display:grid;place-items:center;color:var(--muted);width:26px;height:26px;flex-shrink:0}.fielditemicon svg{width:17px;height:17px}.sensorfielditem.active .fielditemicon{color:var(--zultra)}.fielditemvalue{font-size:11px;font-variant-numeric:tabular-nums;color:var(--muted);max-width:60px;overflow:hidden;text-overflow:ellipsis}.manualfieldbutton{margin:12px 12px 0;font-size:11px;min-height:34px;background:white}.sensoreditors{overflow:auto;min-height:0;padding:24px}.sensoreditor{min-width:0}.sensoreditorhead{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px}.configeyebrow{font-size:9px;letter-spacing:1px;color:var(--muted)}.sensoreditorhead h2{margin:6px 0 0;font-size:18px;letter-spacing:-.4px}.fieldreading{text-align:right;max-width:40%}.fieldreading small{font-size:10px;color:var(--muted);display:block;margin-bottom:4px}.fieldreading strong{font-size:22px;font-variant-numeric:tabular-nums;color:var(--zultra)}.sensorbasic{padding:16px 0 6px;border-top:1px solid var(--line);margin-top:16px}.sensoreditor label{font-size:12px}.sensoreditor input,.sensoreditor select{font-size:12px}.sensoreditor .rowconfig{min-width:0}.sensoreditor .tankassignment{margin:0 0 16px;color:var(--ink)}.configsectionhead{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:12px 0 14px}.configsectionhead h2,.configsectionhead h3{font-size:14px;margin:0 0 5px}.configsectionhead p{font-size:11px;margin:0;color:var(--muted)}.configsectionhead>button{font-size:11px;min-height:32px;padding:6px 10px}.sensorquickassign{padding:24px 0}.sensorquickassign h3{font-size:15px;margin:0 0 6px}.sensorquickassign p{font-size:12px}.sensorquickassign>div{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:18px}.sensorquickassign button{display:flex;align-items:center;gap:8px;font-size:12px}.sensorquickassign svg{width:17px;height:17px;color:var(--zultra)}.bulkimport{font-size:11px;margin:4px 0 16px;color:var(--muted)}.bulkimport summary{cursor:pointer;min-height:30px}.bulkimport textarea{width:100%;min-height:100px;resize:vertical;border:1px solid var(--line);border-radius:8px;padding:10px;font:12px ui-monospace,monospace;margin-bottom:8px;color:var(--ink)}.bulkimport button{font-size:11px;min-height:34px}.calibrationpreview{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px;border-radius:8px;background:var(--canvas);border:1px solid var(--line);font-size:10px;color:var(--muted)}.calibrationpreview strong{font-size:14px;color:var(--ink);text-align:right}.temperaturehelp{padding:18px;display:flex;align-items:center;gap:14px;background:var(--canvas);border-radius:10px}.temperaturehelp>span{font-size:23px;color:var(--zultra)}.temperaturehelp h3{font-size:14px;margin:0 0 6px}.temperaturehelp p{font-size:11px}.configempty{padding:40px 24px;text-align:center;color:var(--muted)}.configempty>svg{width:32px;height:32px;color:#a3bff7}.configempty h3{font-size:14px;color:var(--ink)}.configempty p{font-size:12px;max-width:350px;margin:auto}.tanksummarybutton{display:flex;align-items:center;gap:12px;min-height:42px;background:white;font-size:11px;padding:10px 14px}.tanksummarybutton strong{font-size:12px}.tanksummarybutton span{color:#b45309}.tanksummarybutton.complete span{color:#047857}.alertpresets{margin-bottom:24px}.alertpresetgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.alertpresetgrid button{display:flex;align-items:center;gap:10px;font-size:12px;min-height:56px;text-align:left;padding:12px;background:white}.alertpresetgrid button>span{width:28px;height:28px;display:grid;place-items:center;background:var(--soft);color:var(--zultra);border-radius:7px;flex-shrink:0}.alertpresetgrid button svg{width:16px;height:16px}.alertpresetgrid button b{margin-left:auto;color:var(--muted);font-size:17px;font-weight:400}.ruleslisthead{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.ruleslisthead h2{font-size:14px;margin:0}.ruleslisthead button{min-height:30px;font-size:11px;background:transparent;border:0;color:var(--muted);padding:4px}.alertrule{padding:0;max-width:none;margin-bottom:10px;overflow:hidden}.alertrulehead{padding:14px 16px;margin:0;gap:12px}.ruleheadicon{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:var(--canvas);color:var(--muted);flex-shrink:0}.ruleheadicon svg{width:18px;height:18px}.ruletoggle{display:flex;flex-direction:column;justify-content:center;text-align:left;gap:5px;flex:1;min-width:0;padding:0;min-height:40px;border:0;background:transparent}.ruletitle{font-size:13px;color:var(--ink);font-weight:500}.rulesummary{font-size:11px;color:var(--muted);line-height:1.5}.rulebody{padding:20px;border-top:1px solid var(--line);background:#fcfdff}.rulebody label{font-size:12px}.rulebody input,.rulebody select{font-size:12px}.ruleswitch{position:relative;width:32px;height:19px;flex-shrink:0;cursor:pointer}.alertrule .ruleswitch input{position:absolute;inset:0;width:32px;height:19px;opacity:0;cursor:pointer;margin:0}.ruleswitch>span{display:block;width:32px;height:19px;background:#cbd5e1;border-radius:999px;pointer-events:none}.ruleswitch>span:after{content:'';display:block;position:absolute;width:13px;height:13px;background:white;border-radius:50%;top:3px;left:3px;transition:transform 150ms}.ruleswitch input:checked+span{background:var(--zultra)}.ruleswitch input:checked+span:after{transform:translateX(13px)}.ruleswitch:focus-within{outline:2px solid var(--zultra);outline-offset:3px;border-radius:999px}.duplicaterule{width:30px;min-height:30px;border:0;padding:0;font-size:19px;background:transparent;color:var(--muted)}.ruledisabled .ruleheadicon{opacity:.5}.ruleadvanced{font-size:11px;color:var(--muted);border-top:1px solid var(--line);padding-top:12px}.ruleadvanced summary{cursor:pointer;min-height:32px}.ruleadvanced[open]>.formgrid{margin-top:12px}@media(max-width:1100px){.alertpresetgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.sensorworkspace{grid-template-columns:190px minmax(0,1fr)}.sensoreditors{padding:18px}.sensoreditor .formgrid{grid-template-columns:1fr}}@media(max-width:850px){.sensorworkspace{display:flex;flex-direction:column;height:auto}.sensorchooser{border-right:0;border-bottom:1px solid var(--line);max-height:270px;min-height:220px}#sensorfieldlist{max-height:140px}.sensorchooser .manualfieldbutton{margin-top:6px}.sensoreditors{min-height:380px;max-height:none;overflow:visible}.sensorbasic{display:grid!important;grid-template-columns:1fr!important}.configassettitle h1{font-size:19px}.alertpresetgrid button{font-size:11px;padding:10px 8px}.alertrulehead{gap:8px;padding:12px}.rulebody{padding:16px}.rulebody .formgrid{grid-template-columns:1fr}.ruleheadicon{display:none}.configsavebar{padding:10px 12px}.savestate{font-size:10px}.rulesummary{font-size:10px}.tanksummarybutton{flex-direction:column;align-items:flex-start;gap:5px}}@media(max-width:540px){.configassettitle h1{font-size:17px}.alertpresetgrid{grid-template-columns:1fr}.configsavebar .primary{font-size:11px;padding:10px}.configsavebar{gap:8px}.ruletitle{font-size:12px}.duplicaterule{display:none}.sensorquickassign>div{grid-template-columns:1fr}.calibrationpreview{flex-direction:column;align-items:flex-start}.sensoreditorhead{gap:10px}.sensoreditorhead h2{font-size:15px}.fieldreading strong{font-size:19px}.configtabs{gap:18px}.configempty{padding:25px 14px}}
.discardmanual{font-size:10px;padding:5px 8px;min-height:28px;color:var(--muted)}
/* Configuración en tabla y alertas siempre visibles. */
.sensorstableview{display:block;height:auto;min-height:0;overflow:visible;border:0;background:transparent}.sensorstableview .sensorchooser{display:block;padding:0;border:0;background:transparent}.sensorstableview .chooserhead,.sensorstableview #fieldsearch,.sensorstableview .fieldfilters,.sensorstableview #sensorfieldlist{display:none}.sensorstableview .manualfieldbutton{margin:0 0 12px}.sensorstableview .sensoreditors{padding:0;overflow:auto}.sensorassignmenttable{width:100%;table-layout:fixed;border:1px solid var(--line);background:white;border-radius:10px;border-collapse:collapse}.sensorassignmenttable th{padding:13px;text-align:left;font-size:11px;color:var(--muted);background:#f8fafc}.sensorassignmenttable th:first-child{width:23%}.sensorassignmenttable th:nth-child(2){width:27%}.sensorassignmenttable td{padding:16px;vertical-align:top;border-top:1px solid var(--line)}.sensorassignmenttable .sensoreditorhead{display:block}.sensorassignmenttable .sensoreditorhead h2{font-size:13px;overflow-wrap:anywhere}.sensorassignmenttable .configeyebrow{display:none}.sensorassignmenttable .fieldreading{text-align:left;max-width:none;margin-top:12px}.sensorassignmenttable .fieldreading strong{font-size:17px}.sensorassignmenttable .sensorbasic{display:block;border:0;margin:0;padding:0}.sensorassignmenttable .sensorbasic label{display:block;margin-bottom:12px}.sensorassignmenttable .sensorbasic label[hidden]{display:none}.sensorassignmenttable .sensorquickassign{padding:0}.sensorassignmenttable .sensorquickassign>div{display:none}.sensorassignmenttable .configsectionhead{margin-top:0}.alertalwaysvisible{max-width:none}.alertalwaysvisible .rulebody{display:block}.alertalwaysvisible .ruletoggle:disabled{opacity:1;cursor:default;color:var(--ink)}.alertalwaysvisible .ruleadvanced>div{display:grid}.alertalwaysvisible .ruleadvanced{border-top:0}.alertalwaysvisible .ruleadvanced summary{display:none}.alertalwaysvisible .ruleadvanced:not([open])>div{display:grid}.alertalwaysvisible .rulesummary{display:none}.alertalwaysvisible .ruletoggle:after{display:none}@media(max-width:800px){.sensorstableview .sensorchooser{max-height:none}.sensorassignmenttable{min-width:780px}.sensorstableview{display:block!important}.sensorstableview .sensoreditors{padding:0}}
.alertpopups{top:auto;bottom:18px;right:18px;max-height:calc(100dvh - 100px);overflow-y:auto;padding:3px;display:flex;flex-direction:column;gap:9px}.noticeactions{display:flex;align-items:center;justify-content:space-between;gap:16px;pointer-events:auto;background:#fff;border:1px solid var(--line);border-radius:9px;padding:8px 12px;box-shadow:0 3px 14px #0f172a12}.noticeactions strong{font-size:12px}.noticeactions button{font-size:11px;min-height:28px;padding:5px 8px;border:0;color:var(--muted)}@media(max-width:540px){.alertpopups{top:auto;bottom:12px;right:12px;max-height:calc(100dvh - 85px)}}
.alerttypeicon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;flex-shrink:0;background:var(--alert-bg,#eff6ff);color:var(--alert-color,#2563eb);font-size:15px}.alertcolor-blue{--alert-color:#2563eb;--alert-bg:#eff6ff}.alertcolor-green{--alert-color:#16804a;--alert-bg:#ecfdf3}.alertcolor-red{--alert-color:#dc3545;--alert-bg:#fff1f2}.alertcolor-amber{--alert-color:#b97509;--alert-bg:#fffbeb}.alertcolor-slate{--alert-color:#64748b;--alert-bg:#f1f5f9}.alertnotice{border-left-color:var(--alert-color,#2563eb);padding:14px 30px 14px 12px}.alertnoticecontent{display:flex;gap:10px;align-items:flex-start}.alertnoticecontent>div{min-width:0;flex:1}.alertnotice .eventheader{display:block}.alertnotice .eventheader strong{font-size:12px;display:block;padding-right:2px}.alertnotice .eventheader time{display:block;font-size:10px;margin-top:4px}.alertnotice .eventasset{font-size:10px;margin-top:7px}.alertnotice p{font-size:11px;line-height:1.5}.alertalwaysvisible .ruleheadicon{background:none;width:auto;height:auto}.alertalwaysvisible .ruleheadicon .alerttypeicon{width:32px;height:32px}.routeworkspace{display:flex;flex-direction:column;min-width:0;min-height:0;flex:1;height:100%;overflow:hidden}.routeworkspace>.mapwrap{flex:1;min-height:260px;width:100%}.historyalerts{flex:0 0 auto;max-height:34%;background:white;border-top:1px solid var(--line);display:flex;flex-direction:column;min-height:105px}.historyalerts[hidden]{display:none}.historyalerts>header{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:13px 18px;border-bottom:1px solid var(--line)}.historyalerts h3{font-size:13px;margin:0;display:flex;gap:8px;align-items:center}.historyalerts header small{font-size:10px;color:var(--muted)}.routealertscroll{overflow:auto;min-height:0}.historyalerts table{width:100%;border-collapse:collapse;font-size:11px}.historyalerts th{position:sticky;top:0;background:#f8fafc;z-index:1;padding:9px 14px;font-size:10px;text-align:left;white-space:nowrap;color:var(--muted)}.historyalerts td{padding:10px 14px;border-bottom:1px solid var(--line);vertical-align:middle}.historyalerts td:first-child{white-space:nowrap;font-variant-numeric:tabular-nums}.routealertname{display:flex;align-items:center;gap:9px;min-width:170px}.routealertname .alerttypeicon{height:27px;width:27px;border-radius:7px;font-size:12px}.routealertname strong{font-size:11px;font-weight:500}.historyalerts td button{font-size:10px;min-height:29px;padding:5px 8px;white-space:nowrap}.historyalerts td>small{display:block;font-size:9px;color:var(--muted);margin-top:4px}.historyalerts .selectedalert td{background:#eff6ff}.routealertempty{padding:18px;color:var(--muted);font-size:12px}.routealertmarker{border:2px solid white;border-radius:12px;padding:0;min-height:0;width:36px;height:36px;background:white;box-shadow:0 2px 9px #0f172a45;cursor:pointer;z-index:2}.routealertmarker .alerttypeicon{width:32px;height:32px;border-radius:10px}.routealertpopup{padding:5px;max-width:250px;font:12px Inter,Arial,sans-serif}.routealertpopup>.alerttypeicon{margin-bottom:8px}.routealertpopup strong,.routealertpopup small{display:block;margin-bottom:6px}.routealertpopup small{font-size:10px;color:var(--muted)}.routealertpopup p{line-height:1.6;font-size:12px;margin:8px 0}@media(max-width:800px){.routeworkspace{min-height:520px}.historyalerts{max-height:240px}.historyalerts>header{align-items:flex-start;flex-direction:column;gap:5px}.historyalerts table{min-width:680px}.alertalwaysvisible .ruleheadicon{display:block}}
.assetfloating-cistern{width:590px}.assetfloating-cistern .floatingsensors{display:block}.assetfloating-cistern .floatingsensorhead{display:none}.cisternpanel{margin-top:20px}.cisternpanelhead{display:flex;align-items:center;justify-content:space-between;gap:15px}.cisternpanelhead h3{font-size:14px;margin:0 0 4px}.cisternpanelhead small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.cisternpanelhead>div:last-child{text-align:right}.cisternpanelhead strong{font-size:20px;font-variant-numeric:tabular-nums}.cisternstage{overflow:hidden;padding:22px 0 12px;border-bottom:1px solid var(--line);margin-bottom:14px;min-height:90px;background:linear-gradient(0deg,#f8fafc,white 65%)}.cisternvisual svg{display:block;width:100%;height:auto;overflow:visible}.cisternarrival{animation:cistern-arrive .85s cubic-bezier(.18,.7,.23,1) both}.cisternfuelshape{transition:opacity .8s ease}.cisternreadings{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.cisternreading{padding:11px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;min-width:0}.cisternreading header{display:flex;align-items:center;justify-content:space-between;gap:5px;font-size:10px;color:var(--muted)}.cisternreading header b{font-size:10px;color:var(--ink)}.cisternreading>strong{display:block;font-size:15px;font-variant-numeric:tabular-nums;margin:9px 0}.cisternreading>small{display:block;font-size:9px;color:var(--muted);line-height:1.5}.cisternmeter{height:4px;background:#f1f3f6;border-radius:5px;overflow:hidden;margin:0 0 7px}.cisternmeter span{display:block;height:100%;background:#dfb93a;transition:width .8s ease;border-radius:5px}.cisternunknown>strong{font-size:11px;font-weight:500;color:var(--muted)}.cisternsecondary{margin-top:5px}.cisternsecondary i{margin-right:3px}.cisternhint{font-size:10px;line-height:1.6;color:var(--muted);margin:12px 0}.cisternpanel+.sensorcard{margin-top:12px}@keyframes cistern-arrive{from{transform:translateX(-75%);opacity:0}to{transform:translateX(0);opacity:1}}@media(max-width:1000px){.cisternreadings{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:800px){.assetfloating-cistern{width:560px;max-height:72%}.cisternstage{padding-top:18px}}@media(prefers-reduced-motion:reduce){.cisternarrival{animation:none}.cisternfuelshape,.cisternmeter span{transition:none}}
/* El tractor llega, frena, desacopla y sale; el semirremolque queda centrado. */
.cisternstage{padding:22px 0 16px;border-bottom:0;margin-bottom:0;min-height:110px}.cisternpanelhead{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px}.cisterncommon-temperature{text-align:center}.cisterncommon-temperature strong{display:block;font-size:17px;margin-top:6px}.cisterncommon-temperature small{font-size:10px}.cisternvisual .cisternscene,.cisternvisual .cisterntractor,.cisternvisual .cisterntrailer{transform-box:view-box;transform-origin:0 0}.cisternvisual.is-moving .cisternscene{animation:cistern-rig-arrive 5.2s linear both}.cisternvisual.is-moving .cisterntractor{animation:cistern-tractor-depart 5.2s linear both}.cisternvisual.is-moving .cisterntrailer{animation:cistern-trailer-center 5.2s linear both}.cisternvisual.is-parked .cisternscene{animation:none;transform:none;opacity:1}.cisternvisual.is-parked .cisterntractor{animation:none;transform:translateX(450px);opacity:0;pointer-events:none}.cisternvisual.is-parked .cisterntrailer{animation:none;transform:var(--cistern-final-transform,translateX(0px))}@keyframes cistern-rig-arrive{0%{transform:translateX(-430px);opacity:0}7%{opacity:1}27%{transform:translateX(3px)}31%{transform:translate(0,1px)}35%,100%{transform:translate(0,0);opacity:1}}@keyframes cistern-tractor-depart{0%,46%{transform:translateX(0);opacity:1}52%{transform:translateX(7px);opacity:1}62%{transform:translateX(40px);opacity:1}80%{transform:translateX(300px);opacity:1}90%,100%{transform:translateX(450px);opacity:0}}@keyframes cistern-trailer-center{0%,68%{transform:translateX(0)}100%{transform:var(--cistern-final-transform,translateX(0px))}}@media(max-width:540px){.cisternpanelhead{gap:8px}.cisternpanelhead h3{font-size:12px}.cisternpanelhead strong{font-size:16px}.cisternpanelhead small{font-size:9px}.cisterncommon-temperature strong{font-size:14px}}@media(prefers-reduced-motion:reduce){.cisternvisual.is-moving .cisternscene{animation:none;transform:none;opacity:1}.cisternvisual.is-moving .cisterntractor{animation:none;transform:translateX(450px);opacity:0}.cisternvisual.is-moving .cisterntrailer{animation:none;transform:var(--cistern-final-transform,translateX(0px))}}

@media(max-width:800px){.assetfloating-cistern{width:590px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 105px)}}
.cisternstage{padding-top:26px;padding-bottom:46px}
.cisternpanelhead{grid-template-columns:1fr auto}.cisternpanelhead .cisterncommon-temperature{text-align:right}.cisternvalue-label{font-weight:800;letter-spacing:-.12px}.fleetaddress{display:flex;align-items:flex-start;gap:5px;text-align:left;margin-top:9px;color:#64748b;font-size:10px;font-weight:400;line-height:1.5}.fleetaddress svg{width:12px;height:12px;flex-shrink:0;margin-top:1px}.fleetaddress span{overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.assetdeviceinfo .assetaddress{align-items:flex-start}.assetaddress dd{line-height:1.6;max-width:83%;font-size:11px}.addressattribution{font-size:9px;color:var(--muted);padding:0 18px 12px;display:block}.addressattribution a{color:inherit;text-decoration:none}
.cisternstage{padding-top:42px;padding-bottom:64px}
.cisternstage{padding-top:32px;padding-bottom:42px}
.reportscontent{padding:32px!important;height:calc(100dvh - 64px);overflow:auto}.reports-page{max-width:1120px;margin:auto;padding-bottom:30px}.reports-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.report-eyebrow{font-size:9px;letter-spacing:1.4px;color:var(--zultra);font-weight:600}.reports-heading h1{font-size:29px;margin:8px 0}.reports-heading p{font-size:12px}.report-pdf-badge{display:flex;align-items:center;gap:9px;padding:11px 14px;border:1px solid var(--line);border-radius:9px;background:white;color:var(--muted);font-size:12px}.report-pdf-badge i{font-size:19px;color:var(--zultra)}.reportfilters{display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px;background:white;padding:20px;border:1px solid var(--line);border-radius:12px}.reportfilters label{font-size:11px;margin:0;display:block}.reportfilters input,.reportfilters select{display:block;width:100%;font-size:12px;margin-top:8px}.report-zone{font-size:10px;margin:10px 2px 27px}.reporttype-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.reporttype-heading h2{font-size:15px;margin:0}.reporttype-heading span{font-size:10px;color:var(--muted)}.reporttypes{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.reporttype{position:relative;cursor:pointer;padding:20px 16px;border:1px solid var(--line);border-radius:12px;background:white;display:block;margin:0;transition:border-color .15s,box-shadow .15s}.reporttype.selected{border-color:var(--zultra);box-shadow:0 0 0 1px #0b5fff12;background:#fbfdff}.reporttype input{position:absolute;right:13px;top:15px;min-height:0;width:15px;height:15px;margin:0;accent-color:var(--zultra)}.reporttype-icon{display:grid;place-items:center;width:35px;height:35px;border-radius:9px;background:var(--soft);color:var(--zultra);font-size:15px;margin-bottom:16px}.reporttype strong{font-size:12px;display:block;margin-bottom:8px}.reporttype p{font-size:11px;line-height:1.7}.reportdownload{margin-top:24px;background:white;border:1px solid var(--line);border-radius:12px;padding:22px}.reportpreview{display:flex;align-items:center;gap:13px}.reportpreview-icon{display:grid;place-items:center;width:42px;height:49px;flex-shrink:0;border:1px solid var(--line);border-radius:7px;color:var(--zultra);font-size:20px}.reportpreview h3{font-size:14px;margin:0 0 6px}.reportpreview p{font-size:10px}.report-options{display:flex;gap:24px;flex-wrap:wrap;margin:23px 0}.report-options label{display:flex;align-items:center;gap:8px;font-size:11px;margin:0}.report-options label[hidden]{display:none}.report-options input{width:15px;height:15px;min-height:0;accent-color:var(--zultra);margin:0}.reportdownload-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:18px;border-top:1px solid var(--line)}.reportdownload-footer p{font-size:10px;max-width:440px}.reportdownload-footer button{white-space:nowrap;font-size:12px;display:flex;gap:9px;align-items:center}.reportsuccess{color:#15803d;font-size:11px;margin-top:10px}.topnav>i{font-size:16px}@media(max-width:1000px){.reporttypes{grid-template-columns:repeat(2,1fr)}}@media(max-width:800px){.reportscontent{height:calc(100dvh - 56px);padding:22px 16px!important}.reportfilters{grid-template-columns:1fr 1fr;padding:16px;gap:12px}.reportfilters label:first-child{grid-column:1/-1}.reporttype-heading{align-items:flex-start;flex-direction:column;gap:7px}.reports-heading h1{font-size:25px}}@media(max-width:540px){.reporttypes{gap:10px}.reporttype{padding:17px 13px}.reporttype strong{font-size:11px}.reportdownload{padding:17px}.reportdownload-footer{align-items:stretch;flex-direction:column}.reportdownload-footer button{justify-content:center}.topnav>i{display:none}.navleft{gap:4px}.topnav{font-size:10px;padding:8px 5px}}
@media(max-width:800px){.topbar{gap:6px}.navleft{gap:6px}.navdivider{display:none}.topnav{font-size:11px;padding:8px;gap:5px;white-space:nowrap;flex-shrink:0}.topnav svg{width:16px;height:16px}.topnav>i{font-size:14px}.topbar .brand b{font-size:16px}.topbar .brand small{font-size:7px;letter-spacing:.65px}.topbar>[data-page="settings"]{flex-shrink:0}}@media(max-width:540px){.navleft{gap:2px}.topnav{font-size:10px;padding:8px 5px}.topbar .brand small{display:none}.topbar .brand b{font-size:13px}.topbar .brand svg{width:24px;height:24px}.topnav>i,.topnav svg{display:none}}
.asseticonpicker{margin-bottom:20px}.iconpickerhead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.iconpickerhead strong{font-size:12px}.iconpickerhead span{font-size:10px;color:var(--muted)}.iconchoices{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;max-height:240px;overflow:auto;padding:3px}.iconchoices button{min-width:0;min-height:83px;padding:8px 5px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;background:white;border:1px solid var(--line)}.iconchoices button[aria-pressed="true"]{border-color:var(--zultra);background:#f1f6ff;box-shadow:0 0 0 1px #0b5fff22}.iconchoices img{width:78px;height:39px;object-fit:contain}.iconchoices svg{height:32px;width:32px;color:var(--muted);margin:3px 0}.iconchoices small{font-size:9px;line-height:1.4;max-width:100%;overflow-wrap:anywhere;color:var(--muted)}.vehiclepin.vehiclepin-wide{width:88px;min-height:44px;height:44px;padding:4px;border-radius:12px}.vehiclepin.vehiclepin-wide .assetlogo{width:76px;height:32px}.vehiclepinfallback{display:flex;align-items:center;justify-content:center;border:2px solid var(--zultra);border-radius:50%;background:white;box-shadow:0 2px 8px #0a254055;color:var(--zultra)}.vehiclepinfallback .assetlogo{width:34px;height:34px}.vehiclepinfallback.vehiclepin-wide{border-radius:12px}.vehiclepinfallback.vehiclepin-wide .assetlogo{width:76px;height:32px}
/* Los logos elegidos flotan sobre el mapa sin contenedor. */
.vehiclepin:has(.assetlogo),.vehiclepin:has(.assetlogo):hover{width:58px;height:58px;min-height:58px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none!important;overflow:visible}.vehiclepin .assetlogo{width:54px;height:54px;filter:drop-shadow(0 2px 2px #0f172a35)}.vehiclepin.vehiclepin-wide,.vehiclepin.vehiclepin-wide:hover{width:112px;height:54px;min-height:54px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none!important}.vehiclepin.vehiclepin-wide .assetlogo{width:108px;height:46px}.vehiclepinfallback:has(.assetlogo){background:transparent;border:0;border-radius:0;box-shadow:none!important}.vehiclepinfallback .assetlogo{width:54px;height:54px;max-width:none;filter:drop-shadow(0 2px 2px #0f172a35)}.vehiclepinfallback.vehiclepin-wide .assetlogo{width:108px;height:46px}
/* Ajuste fino del tamaño de los logos flotantes. */
.vehiclepin:has(.assetlogo),.vehiclepin:has(.assetlogo):hover{width:50px;height:50px;min-height:50px}.vehiclepin .assetlogo,.vehiclepinfallback .assetlogo{width:46px;height:46px}.vehiclepin.vehiclepin-wide,.vehiclepin.vehiclepin-wide:hover{width:96px;height:46px;min-height:46px}.vehiclepin.vehiclepin-wide .assetlogo,.vehiclepinfallback.vehiclepin-wide .assetlogo{width:92px;height:38px}
.adminnav{display:flex;align-items:center;gap:8px;flex-shrink:0}.terminalcontent{padding:26px!important;height:calc(100dvh - 56px);overflow:hidden}.terminalpage{height:100%;display:flex;flex-direction:column;min-height:0;max-width:1600px;margin:auto}.terminalheading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:20px}.terminalheading h1{font-size:24px;display:flex;gap:11px;align-items:center}.terminalheading h1 i{font-size:19px;color:var(--zultra)}.terminalheading p{font-size:12px}.terminal-admin{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--muted);white-space:nowrap}.terminaltools{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin-bottom:15px}.terminaltools>label{font-size:10px;margin:0}.terminaltools input,.terminaltools select{display:block;margin-top:6px;font-size:11px;min-height:36px;padding:8px 10px}.terminalsearch{flex:1;min-width:160px}.terminalsearch input{width:100%}.terminaltools .terminalautoscroll{display:flex;align-items:center;gap:6px;min-height:36px;font-size:11px}.terminalautoscroll input{min-height:0;width:14px;height:14px;margin:0;accent-color:var(--zultra)}.terminaltools button{min-height:36px;font-size:11px;padding:8px 11px}.terminalbar{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#172236;color:#9eb4d2;border:1px solid #25344d;border-bottom:0;border-radius:10px 10px 0 0;padding:11px 15px;font:10px ui-monospace,Consolas,monospace}.terminaldot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#3acf99;margin-right:6px}.terminalbardiv{margin:0 10px;color:#536782}.terminalconsole{flex:1;min-height:0;overflow:auto;background:#0d1421;color:#c3d3e9;border:1px solid #25344d;border-top:0;border-radius:0 0 10px 10px;padding:6px 16px 16px;font:11px/1.7 ui-monospace,Consolas,monospace;scrollbar-color:#34445d #0d1421}.terminalframe{padding:15px 0;border-bottom:1px solid #25344d}.terminalframe header{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:10px;color:#849ab9}.terminalframe header strong{color:#67c6e8;font-weight:500}.terminalframe header small{margin-left:auto;font-size:10px;color:#687f9f}.terminalframe time{color:#9fb1ca}.terminalconsole pre{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 0;font:inherit}.terminalraw{color:#cce7df}.terminalframe details{margin-top:9px}.terminalframe summary{font-size:10px;color:#7c9bc1;cursor:pointer}.terminalframe details pre{color:#9bafcb;background:#121e30;padding:10px;border-radius:6px;font-size:10px;max-height:300px;overflow:auto}.terminalerror{font-size:11px;color:#ff9b9b;margin-top:7px}.terminalwarning{font-size:10px;color:#e5bf77;margin-top:5px}.terminalempty{font:11px ui-monospace,Consolas,monospace;color:#8094b0;padding:22px 0}.terminalfooter{display:flex;justify-content:space-between;gap:15px;padding-top:11px;font-size:9px;color:var(--muted);line-height:1.6}.terminalfooter #terminalstatus{white-space:nowrap;color:#27826b}@media(max-width:800px){.terminalcontent{padding:18px 12px!important}.adminnav{gap:2px}.terminalheading h1{font-size:20px}.terminalheading{margin-bottom:15px}.terminal-admin{display:none}.terminaltools{gap:8px}.terminalbar{font-size:9px;padding:10px}.terminalconsole{padding:4px 11px 12px;font-size:10px}.terminalfooter{flex-direction:column;gap:3px}}@media(max-width:540px){.topbar{overflow-x:auto}.navleft,.adminnav{flex-shrink:0}.terminalbar{align-items:flex-start;flex-direction:column;gap:5px}.terminaltools .terminalautoscroll{font-size:10px}.terminaltools input,.terminaltools select{font-size:10px}}
.zonelayout{display:grid;grid-template-columns:215px minmax(0,1fr);gap:20px}.zonelist{border:1px solid var(--line);background:white;border-radius:10px;overflow:auto;max-height:620px;padding:7px}.zonelist>button{display:flex;align-items:flex-start;gap:9px;width:100%;text-align:left;border:0;padding:12px 8px}.zonelist strong{font-size:11px;display:block;margin-bottom:5px}.zonelist small{font-size:9px;color:var(--muted);display:block;line-height:1.6}.zonedot{width:9px;height:9px;border-radius:50%;margin-top:3px;flex-shrink:0}.zone-mapwrap{height:360px;position:relative;border:1px solid var(--line);border-radius:10px;overflow:hidden}.zone-drawtools{position:absolute;top:10px;left:10px;z-index:500;display:flex;gap:6px;flex-wrap:wrap}.zone-drawtools button{font-size:10px;min-height:32px;padding:6px 9px;box-shadow:0 2px 9px #0f172a15}.zone-mapwrap #zonehint{position:absolute;bottom:8px;left:10px;z-index:500;background:white;padding:7px 10px;border-radius:7px;font-size:10px;max-width:85%}#zoneform{margin-top:18px;padding:18px;background:white;border:1px solid var(--line);border-radius:10px}#zoneform label{font-size:11px}#zoneform input,#zoneform select{font-size:12px}#zoneform input[type=color]{width:100%;height:40px;padding:5px}.zonechecks{display:flex;gap:16px;flex-wrap:wrap;margin:18px 0}.zonechecks label,.zoneassets label{display:flex;align-items:center;gap:7px;font-size:11px!important;margin:0}.zonechecks input,.zoneassets input{min-height:0;width:14px;height:14px;margin:0;accent-color:var(--zultra)}.zoneassignhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;font-size:12px}.zoneassignhead button{font-size:10px;min-height:28px;padding:5px 8px}.zoneassets{display:grid;gap:10px;max-height:180px;overflow:auto;padding:12px;background:var(--canvas);border-radius:8px;margin-bottom:14px}.zoneactions{display:flex;justify-content:flex-end;gap:10px;margin-top:17px}.zoneactions button{font-size:12px}.operationscontent{padding:28px!important;max-height:calc(100dvh - 56px);overflow:auto}.operationspage{max-width:1500px;margin:auto}.opfilters{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr auto;align-items:end;gap:12px;padding:18px;border:1px solid var(--line);border-radius:10px;background:white}.opfilters label{font-size:10px;margin:0;display:block}.opfilters input,.opfilters select{display:block;width:100%;min-height:38px;margin-top:7px;font-size:11px}.opfilters button{font-size:11px;min-height:38px}.operationspage>#opszone{margin:10px 0 18px;font-size:10px}.opssummary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0}.opssummary>div{border:1px solid var(--line);background:white;border-radius:10px;padding:16px}.opssummary small{display:block;color:var(--muted);font-size:10px;margin-bottom:8px}.opssummary strong{font-size:22px;font-variant-numeric:tabular-nums}.operationtable{overflow:auto}.operationtable table{width:100%;min-width:1050px}.operationtable td{font-size:11px;line-height:1.6}.operationtable td>small{display:block;font-size:9px;color:var(--muted)}.operationtable td>button{font-size:11px;min-height:32px;padding:6px 10px}.opstatus{display:inline-block;border-radius:20px;padding:4px 8px;font-size:10px;background:#fff7db;color:#936211}.opstatus-confirmed{background:#e9f8ef;color:#187545}.opstatus-dismissed{background:#f1f3f5;color:#64748b}.opspager{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-top:16px;font-size:11px;color:var(--muted)}.opspager button{min-height:34px;font-size:11px;padding:7px 11px}.opreviewmetrics{grid-template-columns:repeat(3,1fr);gap:8px}.opreviewmetrics>div{padding:12px}.opreviewmetrics strong{font-size:17px}.operationmap{height:210px;border:1px solid var(--line);border-radius:9px;margin-bottom:16px}#opreview label{font-size:12px}#opreview textarea{width:100%;font:12px Inter,Arial,sans-serif;display:block;resize:vertical;padding:10px;border:1px solid var(--line);border-radius:8px;min-height:75px}#opreview select{width:100%;font-size:12px}#opreview .primary{margin-top:14px}.opaudit{margin-top:20px;font-size:11px;color:var(--muted)}.opaudit summary{cursor:pointer;margin-bottom:10px}.opaudit p{font-size:10px;padding:8px 0;border-bottom:1px solid var(--line)}@media(max-width:1100px){.opfilters{grid-template-columns:2fr 1fr 1fr}.opssummary{grid-template-columns:repeat(2,1fr)}.zonelayout{grid-template-columns:170px minmax(0,1fr)}}@media(max-width:800px){.operationscontent{padding:20px 12px!important}.zonelayout{grid-template-columns:1fr}.zonelist{display:flex;gap:4px;max-height:100px}.zonelist>button{min-width:180px}.zone-mapwrap{height:330px}.topbar{overflow-x:auto}.navleft,.adminnav{flex-shrink:0}.opfilters{grid-template-columns:1fr 1fr}.opfilters label:first-child{grid-column:1/-1}.opfilters button{align-self:end}.opssummary strong{font-size:19px}}@media(max-width:540px){.zonechecks{gap:12px}.zone-drawtools{gap:4px}.zone-drawtools button{font-size:9px}.opreviewmetrics>div{padding:9px}.opreviewmetrics strong{font-size:14px}}
.maintenancecontent{overflow:auto!important;background:#f5f7fb}.maintenancepage{padding:28px;max-width:1600px;margin:auto}.maintfilters{display:flex;align-items:center;gap:28px;background:#fff;border:1px solid #e4e9f1;border-radius:14px;padding:18px;margin-bottom:18px}.maintfilters label{min-width:260px}.maintfilters strong{display:block;font-size:22px}.maintsummary{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:20px 0}.maintsummary>div{background:white;border:1px solid #e4e9f1;border-radius:12px;padding:18px}.maintsummary small,.mainttable small{display:block;color:#718096}.maintsummary strong{display:block;font-size:27px;margin-top:6px}.mainttable{overflow:auto;margin-bottom:24px}.maintkind{display:flex;align-items:center;gap:12px}.maintkind i{color:#1c64d9;font-size:21px;width:24px}.maintactions{display:flex;gap:7px;flex-wrap:wrap}.maintstatus{white-space:nowrap;padding:5px 9px;border-radius:7px;font-size:12px;font-weight:650}.maintstatus.ok{background:#e5f6ed;color:#197546}.maintstatus.due{background:#fee9e8;color:#b4332c}.maintstatus.soon{background:#fff2d8;color:#946000}.maintstatus.paused{background:#edf0f5;color:#64748b}.maintempty{padding:24px;color:#64748b}.maintcheck{display:flex!important;align-items:center;gap:8px}.maintcheck input{width:auto!important}.maintenancepage .heading h2{font-size:18px}[hidden]{display:none!important}@media(max-width:850px){.maintenancepage{padding:16px}.maintfilters{flex-wrap:wrap;gap:16px}.maintsummary{grid-template-columns:repeat(2,1fr)}.maintfilters label{min-width:0;width:100%}}

/* Informes y mantenimiento comparten una composición única de página. */
.reportscontent,.maintenancecontent{padding:28px 30px!important;min-height:calc(100dvh - 56px);height:auto!important;overflow:auto}.reports-page,.maintenancepage{max-width:1120px;margin:0 auto;padding:0 0 32px}.reports-heading,.maintenancepage>.heading{min-height:64px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin:0 0 22px;padding:0}.reports-heading h1,.maintenancepage>.heading h1{font-size:26px;line-height:1.15;margin:7px 0 6px;font-weight:750}.reports-heading p,.maintenancepage>.heading p{font-size:12px}.reportfilters,.maintfilters{display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px;padding:18px;margin-bottom:18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.maintfilters{display:flex;align-items:flex-end;flex-wrap:wrap}.reportfilters label,.maintfilters label{font-size:11px;margin:0;color:#526175}.reportfilters input,.reportfilters select,.maintfilters input,.maintfilters select{font-size:12px;min-height:40px;margin-top:7px}.report-zone,.maintfilters .sensorhint{margin:8px 2px 20px;font-size:10px}.reporttype-heading,.mainthead{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:24px 0 13px}.reporttype-heading h2,.mainthead h2{font-size:15px;margin:0}.reporttypes{gap:14px}.reporttype{min-height:150px;padding:18px;border-radius:var(--radius);box-shadow:var(--shadow)}.reportdownload{margin-top:20px;padding:20px;border-radius:var(--radius);box-shadow:var(--shadow)}.maintsummary{gap:12px;margin:18px 0}.maintsummary>div{padding:16px;box-shadow:var(--shadow)}.maintsummary strong{font-size:23px}.mainttable,.reportdownload{border:1px solid var(--line);box-shadow:var(--shadow)}.mainttable th,.mainttable td{padding:14px 16px}.maintenancepage .heading button,.reports-page button{min-height:40px;font-size:12px}.report-pdf-badge{border-radius:10px;box-shadow:none}.maintlog .heading{margin-top:28px;margin-bottom:12px}.maintlog .heading h2{font-size:15px}.maintlog .heading p{font-size:11px}@media(max-width:800px){.reportscontent,.maintenancecontent{padding:20px 16px!important}.reportfilters{grid-template-columns:1fr 1fr}.reportfilters label:first-child{grid-column:1/-1}.reports-heading,.maintenancepage>.heading{min-height:auto}.reporttypes{grid-template-columns:repeat(2,1fr)}.maintsummary{grid-template-columns:repeat(2,1fr)}}@media(max-width:540px){.reportfilters{grid-template-columns:1fr}.reportfilters label:first-child{grid-column:auto}.reporttypes{grid-template-columns:1fr}.reports-heading,.maintenancepage>.heading{flex-direction:column}.maintenancepage>.heading button{width:100%}}

/* Sistema visual común: todas las vistas comparten la misma superficie, ritmo y controles. */
:root{--surface:#fff;--surface-soft:#f6f8fc;--line:#e5eaf2;--line-strong:#d6deea;--shadow:0 8px 28px rgba(15,23,42,.06);--radius:14px}body{background:#f5f7fb;color:#162238}button,input,select,textarea{border-color:var(--line-strong);border-radius:10px}button{font-weight:500}button.primary{box-shadow:0 5px 12px rgba(11,95,255,.16)}.content:not(.mapcontent){background:#f5f7fb}.heading{max-width:1500px;margin:0 auto 22px;padding:2px 0}.heading h1{font-size:26px;font-weight:750;letter-spacing:-.8px}.heading p{font-size:13px}.panel,.settingscard,.reporttype,.reportdownload,.opfilters,.maintfilters,.maintsummary>div,#zoneform,.zonelist{border-color:var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:var(--surface)}.panel table{background:var(--surface)}th{background:#f7f9fc;color:#718096;font-weight:700;font-size:10px}th,td{padding:14px 18px}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#f8fbff}.settingsbody,.operationscontent,.reportscontent,.maintenancepage{color:#162238}.settingsbody .heading,.operationspage>.heading,.reports-heading,.maintenancepage>.heading{padding-top:4px}.settingsgrid{gap:16px}.settingscard{transition:transform .15s,box-shadow .15s}.settingscard:hover{transform:translateY(-2px);box-shadow:0 12px 32px rgba(15,23,42,.1)}.opssummary>div,.maintsummary>div,.stat{border-color:var(--line);box-shadow:var(--shadow);border-radius:12px}.opfilters,.maintfilters{padding:20px}.opfilters label,.maintfilters label{color:#526175;font-weight:600}.operationtable,.mainttable{border-radius:var(--radius);box-shadow:var(--shadow)}.operationtable td,.mainttable td{vertical-align:middle}.zone-mapwrap,.operationmap{border-color:var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.zone-drawtools button,.mapbuttons button,.maptag{box-shadow:0 4px 14px rgba(15,23,42,.09)}.maintenancepage{padding:28px 30px}.maintfilters{background:var(--surface)}.maintfilters strong{color:var(--dark)}.maintkind small{margin-top:3px}.maintactions button{min-height:34px;padding:7px 10px;font-size:11px}.maintstatus{border:1px solid transparent}.maintstatus-ok{background:#eaf8f0;color:#187546;border-color:#c9efd9}.maintstatus-due{background:#fff0ef;color:#b42318;border-color:#ffd3cf}.maintstatus-soon{background:#fff7df;color:#946200;border-color:#f5df9d}.maintstatus-paused{background:#f0f3f7;color:#64748b;border-color:#dce3ec}.error{background:#fff2f1;border-radius:8px;padding:8px 10px}.empty{background:var(--surface);border:1px dashed var(--line-strong);border-radius:var(--radius);box-shadow:var(--shadow)}dialog{border-radius:var(--radius);box-shadow:0 20px 60px rgba(15,23,42,.18)}@media(max-width:800px){.heading h1{font-size:22px}.maintenancepage{padding:20px 16px}.opfilters,.maintfilters{padding:15px}.panel table{min-width:720px}}
/* Cisternas: controles visuales */
.cisternvisual.is-moving .cisternscene,.cisternvisual.is-moving .cisterntractor,.cisternvisual.is-moving .cisterntrailer{animation-duration:2.6s}.cisterncommon-values{display:flex;align-items:center;gap:16px;text-align:center}.cisterncommon-values>div{min-width:92px}.cisterncommon-values strong{display:block;font-size:16px;margin-top:5px}.cisterncommon-values small{font-size:9px;color:var(--muted);white-space:nowrap}.cisternvalvehint{margin:10px 0;text-align:center;color:var(--muted);font-size:10px}
/* La barra de activos queda limpia; la hora y la atribución pertenecen al mapa si hacen falta. */
.fleetupdated,.addressattribution{display:none!important}
.assetmicro{display:flex;gap:10px;color:#64748b;font-size:10px;margin-top:5px;padding-left:26px;white-space:nowrap;overflow:hidden}.assetmicro span{overflow:hidden;text-overflow:ellipsis}.assetmicro i{font-size:9px;color:#94a3b8;margin-right:3px}
.fleet .asset{padding:9px 12px 8px}.fleet .assetname{line-height:18px}.fleet .meta{margin-top:1px;font-size:10px}.fleet .assetbottom{margin-top:5px;min-height:18px;gap:8px}.fleetmetric{font-size:12px;color:#64748b;cursor:help}.fleetmetric i{font-size:11px}.fleet .fleetaddress{margin-top:4px;font-size:10px;line-height:14px}.fleet .fleetaddress svg{width:13px;height:13px}.fleet .badge{font-size:9px;padding:3px 6px}
.fleet .asset{position:relative;padding-right:58px}.fleet .assetbottom{position:absolute;right:12px;top:10px;margin:0;display:flex;flex-direction:column;align-items:center;gap:5px;min-height:0}.fleet .assetbottom .badge{position:absolute;right:0;top:36px;white-space:nowrap;transform:translateX(50%);opacity:.9}.fleet .assetbottom .fleetmetric{line-height:14px}.fleet .assetbottom .fleetmetric i{font-size:12px}.fleet .assetmicro{display:none}
.fleet .meta{display:none}.fleet .assetbottom .badge.offline{display:none}
.fleet .fleetaddress{display:flex;align-items:center;gap:4px;margin-top:7px;padding-top:6px;border-top:1px solid #e8edf3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fleet .fleetaddress span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fleet .fleetaddress svg{flex:0 0 auto}
.fleetsensors{display:flex;gap:7px;overflow:hidden;margin-top:5px;padding-left:2px;color:#475569;font-size:10px;white-space:nowrap}.fleetsensors span{overflow:hidden;text-overflow:ellipsis;max-width:92px}.fleetsensors i{font-size:9px;color:#94a3b8}
.fleetsensors{flex-wrap:wrap;overflow:visible;white-space:normal;max-height:34px;overflow-y:auto}.fleetsensors span{max-width:110px}
.fleetcisterns{display:flex;gap:4px;flex-wrap:wrap;margin-top:5px;padding-left:2px}.fleetcistern{display:grid;grid-template-columns:auto auto;column-gap:5px;align-items:center;padding:3px 5px;border:1px solid #dbe4ef;border-radius:5px;background:#f8fafc;font-size:9px;line-height:11px}.fleetcistern b{grid-row:1/3;color:#2563eb;font-size:9px}.fleetcistern strong{font-size:9px;color:#1e293b}.fleetcistern small{font-size:8px;color:#64748b}
.fleetcistern i{margin-left:4px;font-size:9px}.fleetcistern .lockok{color:#16a34a}.fleetcistern .lockbad{color:#dc2626}
.fleetcistern{position:relative;min-width:42px;grid-template-columns:1fr;padding:4px 6px;border-radius:7px;background:linear-gradient(180deg,#fff 0%,#eef5ff 100%);box-shadow:inset 0 -3px 0 #d8e7f7,0 1px 2px #0f172a12}.fleetcistern b{grid-row:auto;text-align:center;color:#2563eb}.fleetcistern strong,.fleetcistern small{text-align:center}.fleetcistern small{display:flex;justify-content:center;align-items:center;gap:2px}
.fleetcistern .fa-lock-open{display:none}.fleetcistern small:empty{display:none}
.fleetvalve{min-height:30px;align-content:center;background:#f8fafc;border-color:#cbd5e1}.fleetvalve b{font-size:8px;color:#64748b}.fleetvalve small{font-size:11px}
.fleetcisterns{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.fleetvalve{grid-column:5;grid-row:1 / span 2;min-height:100%;display:flex;flex-direction:column;justify-content:center}.fleetcistern{min-width:0}
.fleetvalve .fa-lock-open{display:inline-block;color:#dc2626}.fleetvalve .lockok{display:inline-block;color:#16a34a}
.fleetcistern .fa-lock-open{display:inline-block;color:#dc2626}
.fleetcistern b{font-size:11px}.fleetcistern strong{font-size:11px}.fleetcistern small{font-size:10px}.fleetcistern i{font-size:14px}.fleetvalve i{font-size:18px}
.fleetcistern b{font-size:10px}.fleetcistern strong{font-size:10px}.fleetcistern small{font-size:9px}.fleetcistern i{font-size:12px}.fleetvalve i{font-size:16px}
.fleetcistern b{font-size:9px}.fleetcistern strong{font-size:9px}.fleetcistern small{font-size:8px}.fleetcistern i{font-size:10px}.fleetvalve i{font-size:14px}
.fleetcistern small{margin-top:3px}.fleetcistern strong{margin-bottom:2px}
.loginzultra{display:flex;min-height:100vh;background:#f7f9fc}.loginbrand{position:relative;display:flex;flex:0 0 46%;flex-direction:column;justify-content:space-between;overflow:hidden;padding:56px;color:#fff;background:#0a2540}.loginbrand:before,.loginbrand:after{content:"";position:absolute;border-radius:50%;filter:blur(45px);pointer-events:none}.loginbrand:before{width:360px;height:360px;right:-100px;top:-100px;background:#0b5fff55}.loginbrand:after{width:300px;height:300px;left:-100px;bottom:-100px;background:#57b6ff33}.loginbrand>*{position:relative;z-index:1}.loginbrand .brand{color:#fff}.loginpitch{max-width:430px;margin-top:-80px}.loginpitch h1{font-size:40px;line-height:1.08;margin:0 0 18px;letter-spacing:-1px}.loginpitch h1 span{color:#6dbdff}.loginpitch p{max-width:360px;color:#ffffffb8;line-height:1.6}.loginmain{display:flex;flex:1;align-items:center;justify-content:center;padding:40px}.loginformbox{width:100%;max-width:390px}.loginformbox h2{font-size:30px;margin:0;color:#172235}.loginformbox>p{margin:7px 0 28px;color:#64748b}.loginformbox form{display:flex;flex-direction:column;gap:15px}.loginformbox label:not(.remember){position:relative;display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:#243247}.loginformbox input[type=email],.loginformbox input[type=password]{height:46px;border:1px solid #d9e1eb;border-radius:9px;background:#fff;padding:0 42px 0 14px;font-size:14px;outline:none}.loginformbox input:focus{border-color:#0b5fff;box-shadow:0 0 0 3px #0b5fff18}.loginicon{position:absolute;right:14px;bottom:14px;color:#94a3b8}.loginformbox .remember{display:flex;flex-direction:row;align-items:center;gap:8px;font-size:13px;color:#64748b}.loginformbox .remember input{accent-color:#0b5fff}.loginformbox button{height:48px;border-radius:9px;font-size:15px}.loginhelp{display:flex;justify-content:center;gap:6px;color:#64748b;font-size:11px}.loginmobile{display:none}@media(max-width:800px){.loginbrand{display:none}.loginmain{padding:28px}.loginmobile{display:block;margin-bottom:32px}.loginformbox{max-width:420px}}
.loginzultra{background:linear-gradient(135deg,#f8fbff 0%,#eef4fb 100%)}.loginbrand{background:linear-gradient(145deg,#071f3a 0%,#0b355c 58%,#0b5fff 140%);box-shadow:12px 0 40px #0b254018}.loginbrand .brand{transform:scale(1.04);transform-origin:left center}.loginpitch h1{font-size:clamp(34px,4vw,48px);letter-spacing:-1.5px}.loginpitch p{font-size:15px}.loginmain{background:transparent}.loginformbox{padding:42px 40px;border:1px solid #ffffff;background:#ffffffd9;border-radius:20px;box-shadow:0 20px 60px #14345c18;backdrop-filter:blur(12px)}.loginformbox h2{font-size:32px;letter-spacing:-.8px}.loginformbox>p{font-size:14px}.loginformbox button{box-shadow:0 8px 18px #0b5fff30}.loginformbox button i{margin-right:8px}.loginhelp{margin-top:5px}@media(max-width:800px){.loginformbox{padding:30px 24px;border-radius:16px}}
.loginmain{padding:64px 8vw}.loginformbox{max-width:440px;padding:52px 48px}.loginformbox form{gap:20px}.loginformbox h2{margin-bottom:4px}.loginformbox>p{margin-bottom:34px}.loginformbox input[type=email],.loginformbox input[type=password]{height:52px}.loginbrand{padding:64px 6vw}.loginpitch{margin-top:-110px}.loginpitch p{max-width:390px;font-size:16px}.loginbrand small{font-size:12px}
.login-wrap{display:flex;min-height:100vh}.login-brand-panel{position:relative;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;width:46%;padding:56px;color:#fff;background:#0a2540}.login-brand-panel:before,.login-brand-panel:after{content:"";position:absolute;border-radius:50%;filter:blur(55px);pointer-events:none}.login-brand-panel:before{width:380px;height:380px;right:-120px;top:-110px;background:#0b5fff55}.login-brand-panel:after{width:320px;height:320px;left:-110px;bottom:-140px;background:#57b6ff25}.login-brand-panel>*{position:relative;z-index:1}.login-brand{display:flex;align-items:center}.login-brand .brand{color:#fff}.login-brand-copy{max-width:430px}.login-eyebrow{font-size:10px;letter-spacing:2px;color:#9ccfff}.login-brand-copy h2{margin:16px 0;font-size:43px;line-height:1.05;letter-spacing:-1px}.login-brand-copy h2 strong{color:#6dbdff}.login-brand-copy p{color:#ffffffb8;line-height:1.65;font-size:15px}.login-brand-footer{font-size:12px;color:#ffffff80}.login-main{display:flex;flex:1;align-items:center;justify-content:center;padding:48px;background:#f7f9fc}.login-card{width:100%;max-width:410px;padding:45px 42px;background:#fff;border:1px solid #e5ebf3;border-radius:14px;box-shadow:0 18px 50px #18395b14}.login-form-icon{display:flex;width:42px;height:42px;align-items:center;justify-content:center;margin-bottom:20px;border-radius:10px;color:#0b5fff;background:#eaf2ff;font-size:19px}.login-card h1{margin:0;font-size:30px;color:#172235}.login-intro{margin:8px 0 30px;color:#64748b;font-size:14px}.login-form{display:flex;flex-direction:column;gap:18px}.login-field{display:flex;flex-direction:column;gap:7px}.login-field label{font-size:13px;font-weight:600;color:#243247}.login-field label span{color:#ef4444}.login-field .input{height:46px;padding:0 14px;border:1px solid #d9e1eb;border-radius:8px;outline:none;font-size:14px}.login-field .input:focus{border-color:#0b5fff;box-shadow:0 0 0 3px #0b5fff18}.login-submit{height:46px;margin-top:2px;border-radius:8px}.login-submit i{margin-left:8px}.login-help{display:flex;justify-content:center;gap:6px;margin:4px 0 0;color:#64748b;font-size:11px}.login-error{min-height:18px}@media(max-width:800px){.login-brand-panel{display:none}.login-main{padding:24px}.login-card{padding:34px 26px}}
.login-error:empty{display:none}.login-error:not(:empty){display:block;padding:9px 11px;border-radius:7px;background:#fef2f2;color:#dc2626;font-size:12px}
.error:empty{display:none}.error:not(:empty){display:block}
.assetadvancedbutton{margin-left:auto;margin-right:8px;border:1px solid #dbe4ef;background:#f8fbff;color:#2563eb;border-radius:7px;padding:7px 9px;font-size:11px}.advancedasset{width:min(900px,90vw);padding:28px}.advancedasset>header{display:flex;justify-content:space-between;border-bottom:1px solid #e5ebf3;padding-bottom:18px;margin-bottom:20px}.advancedasset h2{margin:4px 0 0}.advancedasset header button{border:0;background:none;font-size:25px;color:#64748b}.advancedgrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.advancedblock{border:1px solid #e5ebf3;border-radius:12px;padding:16px;background:#fbfdff}.advancedblockhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.advancedblockhead h3{margin:0;font-size:14px}.advancedblockhead select{border:1px solid #dbe4ef;border-radius:6px;padding:6px;font-size:11px}.advancedalert{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid #edf1f5}.advancedalert i{color:#f59e0b}.advancedalert small{display:block;color:#64748b;margin-top:3px}.sensorline{display:grid;grid-template-columns:110px 1fr 85px;align-items:center;gap:8px;margin:13px 0;font-size:11px}.sensorline>div{height:8px;border-radius:5px;background:#e8eef6;overflow:hidden}.sensorline i{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,#0b5fff,#57b6ff)}.sensorline b{text-align:right;font-size:11px}@media(max-width:700px){.advancedgrid{grid-template-columns:1fr}.advancedasset{padding:20px}.sensorline{grid-template-columns:80px 1fr 65px}}
.assetfloatinghead{position:relative}.assetadvancedbutton{position:absolute;right:48px;top:10px;margin:0}.assetfloatinghead #closeassetdetail{position:absolute;right:8px;top:8px}.advancedclose{cursor:pointer}.advancedtabs{display:flex;gap:5px;border-bottom:1px solid #e5ebf3;margin-bottom:16px}.advancedtabs button{border:0;background:none;padding:10px 14px;color:#64748b;border-bottom:2px solid transparent}.advancedtabs button.active{color:#0b5fff;border-bottom-color:#0b5fff}.advancedfilters{display:flex;align-items:end;gap:10px;margin-bottom:16px}.advancedfilters label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:#64748b}.advancedfilters input{padding:7px;border:1px solid #dbe4ef;border-radius:6px}.advancedfilters .primary{padding:8px 12px;font-size:11px}
.advancedasset{width:min(1180px,94vw);max-height:88vh;overflow:auto;padding:34px}.advancedasset .advancedblock{min-height:360px}.advancedasset #advsensorsview .advancedblock{min-height:420px}.advancedasset .sensorline{margin:18px 0;grid-template-columns:150px 1fr 110px}.advancedasset .sensorline>div{height:14px;border-radius:8px}.advancedasset .sensorline i{background:linear-gradient(90deg,#0b5fff 0%,#57b6ff 55%,#8dd6ff 100%)}
.advancedasset{width:min(1200px,calc(100vw - 40px));max-height:none;overflow:visible}.advancedasset .advancedblock{overflow:visible}.advancedasset #advsensorsview .advancedblock{min-height:460px}.advancedasset .sensorline>div{position:relative;height:180px;border-left:2px solid #94a3b8;border-bottom:2px solid #94a3b8;border-radius:0;background:repeating-linear-gradient(to bottom,transparent 0,transparent 35px,#e5ebf3 36px),repeating-linear-gradient(to right,transparent 0,transparent 70px,#e5ebf3 71px)}.advancedasset .sensorline>div i{position:absolute;left:0;bottom:20%;width:100%;height:2px;background:#0b5fff;transform:skewY(-8deg);box-shadow:0 -28px 0 -1px #0b5fff,0 24px 0 -1px #0b5fff}.advancedasset .sensorline{display:grid;grid-template-columns:120px minmax(0,1fr) 90px;align-items:center}
dialog:has(.advancedasset){width:calc(100vw - 40px);max-width:1200px;max-height:calc(100vh - 40px);overflow:hidden;padding:0}.advancedasset{width:100%;max-width:none;max-height:calc(100vh - 40px);overflow:hidden;box-sizing:border-box}.advancedgrid{min-width:0}.advancedblock{min-width:0;overflow:hidden}
.chartlegend{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}.chartlegend label{display:flex;align-items:center;gap:5px;margin:0;font-size:12px}.chartlegend input{width:auto;margin:0}.chartlegend i{width:10px;height:10px;border-radius:50%}.sensorplot{position:relative;height:330px;min-width:0}.sensorplot svg{width:100%;height:100%;display:block}.chartcursor{position:absolute;top:6%;bottom:15%;border-left:1px dashed #334155;pointer-events:none}.chartvalues{min-height:36px;padding:10px;font-size:12px;color:#334155}.chartvalues span{white-space:nowrap}
.advanced-charts{display:grid;gap:12px}.timeseries{min-width:0;border:1px solid #dfe7f2;border-radius:12px;background:#fff;padding:12px 16px}.timeseries header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:8px}.timeseries h3{margin:0;font-size:14px}.timeseries header small{color:#64748b}.series-selector{display:flex;flex-wrap:wrap;gap:6px}.series-selector label{display:inline-flex;align-items:center;gap:5px;margin:0;padding:5px 9px;border:1px solid #dbe4ef;border-radius:99px;font-size:11px;white-space:nowrap;cursor:pointer}.series-selector label:has(input:checked){background:#f2f7ff;border-color:#b8d1ff}.series-selector input{width:13px;height:13px;min-height:0;margin:0;accent-color:#0b5fff}.series-swatch,.timeseries-readout i{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--series-color)}.timeseries-plot{position:relative;height:170px}.timeseries-plot svg{width:100%;height:100%;display:block}.timeseries-crosshair{position:absolute;top:15%;bottom:18%;border-left:1px dashed #334155;pointer-events:none}.timeseries-readout{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;min-height:38px;padding:8px 12px;background:#f7f9fd;border-radius:8px;font-size:11px}.timeseries-readout span{display:inline-flex;align-items:center;gap:4px}.timeseries-readout i{background:currentColor}.advancedasset:has(.advanced-charts){padding:24px}.advancedasset:has(.advanced-charts) .advancedfilters{margin-bottom:10px}
dialog:has(.advancedasset){overflow-y:auto;overflow-x:hidden}.advancedasset{max-height:none;overflow:visible}.timeseries-tooltip{position:absolute;top:4px;left:50%;transform:translateX(-50%);padding:5px 8px;border-radius:6px;background:#172b46;color:#fff;white-space:nowrap;font-size:11px;pointer-events:none;z-index:2;box-shadow:0 4px 12px #10254130}
.chart-scale{display:flex;align-items:center;gap:12px;font-size:11px;color:#64748b}.chart-scale label{display:flex;align-items:center;gap:7px;margin:0;font-weight:600}.chart-scale input{width:105px;min-height:30px;padding:5px 8px;margin:0}.timeseries-tooltip[hidden]{display:none}
.timeseries-tooltip{max-width:min(360px,70vw);white-space:normal;line-height:1.4}.timeseries-tooltip>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;margin-top:5px}.timeseries-tooltip span{display:flex;align-items:center;gap:5px;min-width:0}.timeseries-tooltip span i{width:7px;height:7px;border-radius:50%;flex:none}.timeseries-tooltip span strong{margin-left:auto}.timeseries-plot{cursor:crosshair}
.timeseries-tooltip{width:max-content;min-width:220px;max-width:min(390px,calc(100vw - 80px));box-sizing:border-box}.timeseries-tooltip>div{grid-template-columns:repeat(2,minmax(130px,1fr))}.timeseries-tooltip span{white-space:nowrap}
.advancedfilters{display:flex;align-items:end;gap:12px;width:100%}.advancedfilters label{min-width:170px;margin:0}.advancedfilters #advapply{width:auto;margin-left:auto;min-height:38px;padding:8px 18px;border-radius:9px;font-weight:600;white-space:nowrap}
.assetadvancedbutton{display:grid;place-items:center;width:32px;height:32px;min-height:32px;padding:0;border-radius:8px;font-size:15px}
.fleet .asset{padding-right:54px}.fleet .assetbottom{right:11px;top:10px;width:30px;display:flex;flex-direction:column;align-items:center;gap:5px}.fleet .assetbottom .fleetmetric{display:grid;place-items:center;width:26px;height:26px;min-width:26px;line-height:1;border:1px solid #e1eaf5;border-radius:8px;background:#f7faff;color:#557293;box-shadow:0 1px 2px #1025410a}.fleet .assetbottom .fleetmetric i{font-size:12px;line-height:1}.fleet .assetbottom .fleetmetric:nth-of-type(1){color:#2563eb;background:#eff5ff}.fleet .assetbottom .fleetmetric:nth-of-type(2){color:#6d55a5;background:#f5f2ff}.fleet .assetbottom .fleetmetric:nth-of-type(3){color:#0b9867;background:#eaf9f2}.fleet .assetbottom .fleetmetric[title="Sin conexión"]{color:#94a3b8;background:#f2f4f7}.fleet .assetbottom .badge{position:static;transform:none;max-width:100%;overflow:hidden;font-size:0;padding:0;width:7px;height:7px;min-height:7px;border-radius:50%;background:currentColor}.fleet .assetbottom .badge.offline{display:none}.fleet .assetbottom .badge::first-letter{font-size:0}
.fleet .assetbottom .fleetmetric[title^="Velocidad"]{color:#2563eb;background:#eff5ff}.fleet .assetbottom .fleetmetric[title^="Satélites"]{color:#6d55a5;background:#f5f2ff}.fleet .assetbottom .fleetmetric[title="GPS conectado"]{color:#0b9867;background:#eaf9f2}
.fleet .asset{padding-right:92px}.fleet .assetbottom{top:11px;right:10px;width:auto;display:flex;flex-direction:row;align-items:center;gap:9px}.fleet .assetbottom .fleetmetric,.fleet .assetbottom .fleetmetric:nth-of-type(1),.fleet .assetbottom .fleetmetric:nth-of-type(2),.fleet .assetbottom .fleetmetric:nth-of-type(3){display:inline-flex;align-items:center;justify-content:center;width:16px;height:20px;min-width:16px;min-height:20px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.fleet .assetbottom .fleetmetric i{font-size:13px}.fleet .assetbottom .badge{display:none}.fleet .assetbottom .fleetmetric[title^="Velocidad"],.fleet .assetbottom .fleetmetric[title^="Satélites"],.fleet .assetbottom .fleetmetric[title="GPS conectado"],.fleet .assetbottom .fleetmetric[title="Sin conexión"]{background:transparent}
.fleet .asset .fleetcisterns{width:calc(100% + 82px);margin:8px 0 0;justify-content:center}.fleet .asset .fleetcisterns:not(:has(.fleetvalve)){display:flex;flex-wrap:wrap;gap:5px}.fleet .asset .fleetcisterns:not(:has(.fleetvalve)) .fleetcistern{min-width:42px}.fleet .asset .fleetsensors{width:calc(100% + 82px);justify-content:center;padding:0}
.fleetquick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;width:calc(100% + 82px);margin:8px 0 0}.fleetquickitem{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 3px;border:1px solid #e3eaf3;border-radius:8px;background:#f8fbff;text-align:center}.fleetquickitem i{font-size:12px;color:#3875ca}.fleetquickitem small{font-size:9px;color:#75849a;white-space:nowrap}.fleetquickitem strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:#203450;font-weight:700}
.fleet .asset .fleet-tank-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:76px;min-height:66px;padding:7px 8px;border:1px solid #e3eaf3;border-radius:8px;background:#f8fbff;box-shadow:none}.fleet-tank-card .fleet-tank-icon{margin:0 0 2px;color:#3875ca;font-size:12px}.fleet-tank-card b{margin:0;color:#75849a;font-size:9px;font-weight:600}.fleet-tank-card strong{margin:0;color:#203450;font-size:11px;font-weight:700;line-height:1.2}.fleet-tank-card small{margin:0;color:#71849a;font-size:9px;line-height:1.2}.fleet-tank-card small i{margin:0 2px 0 0;color:#e08a4c;font-size:9px}
.fleet .asset .fleetcisterns{display:grid;width:calc(100% + 82px);grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.fleet .asset .fleetcisterns:not(:has(.fleetvalve)){display:grid;grid-template-columns:repeat(auto-fit,minmax(56px,1fr));gap:5px}.fleet .asset .fleetcisterns .fleetcistern{min-width:0;width:100%;min-height:58px;padding:6px 4px;border:1px solid #e3eaf3;border-radius:8px;background:#f8fbff;box-shadow:none}.fleet .asset .fleetcisterns .fleetcistern b{margin:0;color:#3875ca;font-size:10px;font-weight:700}.fleet .asset .fleetcisterns .fleetcistern strong{margin:0;color:#203450;font-size:10px;font-weight:700}.fleet .asset .fleetcisterns .fleetcistern small{color:#71849a}.fleet .asset .fleetcisterns .fleetvalve{min-height:100%;background:#f2f7ff}.fleet .asset .fleetcisterns .fleetvalve b{font-size:9px}.fleet .asset .fleetcisterns .fleet-tank-card{min-height:66px;padding:7px 4px}.fleet .asset .fleetcisterns .fleet-tank-card b{color:#75849a;font-size:9px}.fleet .asset .fleetcisterns .fleet-tank-card strong{font-size:11px}
.fleet .asset .fleetcisterns:has(> .fleetvalve:nth-child(5):last-child) .fleetvalve{grid-row:1;min-height:58px}.fleet .asset .fleetcisterns:has(> .fleetvalve:nth-child(5):last-child){grid-template-columns:repeat(5,minmax(0,1fr))}

.fleet .asset .fleet-equipment-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(74px,1fr));gap:5px;width:calc(100% + 82px);margin:8px 0 0}
.fleet-equipment-card{display:flex;min-width:0;min-height:62px;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 4px;border:1px solid #e3eaf3;border-radius:8px;background:#f8fbff;text-align:center}
.fleet-equipment-card i{color:#3875ca;font-size:12px}
.fleet-equipment-card b{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#71849a;font-size:9px;font-weight:600}
.fleet-equipment-card strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#203450;font-size:11px;font-weight:700}
.fleet .asset .fleetaddress{width:calc(100% + 92px);max-width:none}

.vehiclepin[data-plate]::after,.fleet .asset[data-plate]::after{content:attr(data-plate);position:absolute;z-index:20;display:none;width:max-content;max-width:180px;padding:6px 10px;border-radius:8px;background:#0a2540;color:#fff;font:600 11px Inter,system-ui,sans-serif;line-height:1.3;white-space:nowrap;box-shadow:0 4px 14px #0a254044;pointer-events:none}
.vehiclepin[data-plate]::after{left:50%;bottom:calc(100% + 7px);transform:translateX(-50%)}
.vehiclepin[data-plate]:hover::after,.vehiclepin[data-plate]:focus-visible::after{display:block}
.fleet .asset[data-plate]::after{right:9px;top:34px}
.fleet .asset[data-plate]:hover,.fleet .asset[data-plate]:focus-visible{z-index:5}
.fleet .asset[data-plate]:hover::after,.fleet .asset[data-plate]:focus-visible::after{display:block}
.vehicle-plate-tooltip{background:#0a2540;border:0;border-radius:8px;color:#fff;font:600 11px Inter,system-ui,sans-serif;padding:6px 10px;box-shadow:0 4px 14px #0a254044}
.vehicle-plate-tooltip::before{border-top-color:#0a2540}

.vehiclepin[data-plate]::after{display:block;bottom:calc(100% + 1px)}
.fleet .asset[data-plate]::after{left:12px;right:auto;top:0;transform:translateY(-90%)}

.assetfloating .telemetrycompact{gap:7px;padding:12px 0 0;border:0}
.assetfloating .telemetrycompact>div:not(.compactupdated){min-height:62px;justify-content:center;gap:5px;padding:9px 10px;border:1px solid #e3eaf3;border-radius:9px;background:#f8fbff}
.assetfloating .telemetrycompact>div:not(.compactupdated) span{color:#71849a;font-size:10px}
.assetfloating .telemetrycompact>div:not(.compactupdated) strong{color:#203450;font-size:15px;font-weight:700}
.assetfloating .telemetrycompact .compactupdated{margin-top:5px;padding:8px 1px 0;border-top:1px solid #e8edf3}

.assetfloating-equipment .floatingsensors{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.assetfloating-equipment .sensorcard{aspect-ratio:auto;min-height:108px;padding:13px 14px;border-color:#e3eaf3;background:#f8fbff}
.assetfloating-equipment .sensorcompactrow{grid-template-columns:32px minmax(0,1fr);gap:8px}
.assetfloating-equipment .sensorcard .sensortypeicon{width:32px;height:32px;background:#e8f1ff;color:#2f71cf}
.assetfloating-equipment .sensorcard .sensortypeicon svg{width:19px;height:19px}
.assetfloating-equipment .sensorcompactlabel h4{font-size:11px;font-weight:650;color:#50657f}
.assetfloating-equipment .sensorcard .sensorcardvalue{margin-top:9px;font-size:19px;font-weight:750;color:#203450}
.assetfloating-equipment .sensorcard-mixer .sensorcardvalue{width:max-content;max-width:100%;padding:5px 9px;border-radius:7px;background:#e9f4ed;color:#16724a;font-size:14px}
.assetfloating-equipment .sensorcard-temperature .reading-missing{color:#8796a8!important;font-weight:500}
@media(max-width:450px){.assetfloating-equipment .floatingsensors{grid-template-columns:1fr}}

.assetfloating:not(.assetfloating-cistern) .sensorcard-fuel_tank{aspect-ratio:auto;min-height:124px;padding:13px 14px;border-color:#e3eaf3;background:#f8fbff}
.assetfloating:not(.assetfloating-cistern) .sensorcard-fuel_tank .sensorcompactrow{grid-template-columns:32px minmax(0,1fr);gap:8px}
.assetfloating:not(.assetfloating-cistern) .sensorcard-fuel_tank .sensortypeicon{width:32px;height:32px;background:#e8f1ff;color:#2f71cf}
.assetfloating:not(.assetfloating-cistern) .sensorcard-fuel_tank .sensortypeicon svg{width:19px;height:19px}
.assetfloating:not(.assetfloating-cistern) .sensorcard-fuel_tank .sensorcompactlabel h4{font-size:11px;font-weight:650;color:#50657f}
.assetfloating:not(.assetfloating-cistern) .sensorcard-fuel_tank .sensorcardvalue{margin-top:9px;font-size:19px;font-weight:750;color:#203450}
.assetfloating:not(.assetfloating-cistern) .sensorcard-fuel_tank .sensorlevel{margin-top:8px;height:4px;background:#e4ebf5}
.assetfloating:not(.assetfloating-cistern) .sensorcard-fuel_tank .sensorlevel span{background:#4e91e9}
.assetfloating:not(.assetfloating-cistern) .sensorcard-fuel_tank .tanktemperature{margin-top:8px;padding-top:7px;border-color:#e3eaf3}

.tankcapacity{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:8px;padding-top:7px;border-top:1px solid #e3eaf3;color:#71849a;font-size:10px}
.tankcapacity strong{color:#203450;font-size:11px;font-weight:700;white-space:nowrap}
.assetfloating:not(.assetfloating-cistern) .sensorcard-fuel_tank .tanktemperature{margin-top:6px}

.fleetquickitem:last-child strong{white-space:normal;overflow:visible;line-height:1.25;font-size:9px}
.tripslayout .tripmapwrap{min-height:420px}.tripmapwrap .zone-drawtools{z-index:5}.tripmaphint{position:absolute;bottom:12px;left:12px;z-index:5;background:#fff;padding:8px 12px;border-radius:8px;font-size:11px;box-shadow:0 2px 10px #0002}.tripform{padding:20px;background:#fff;border:1px solid var(--line);border-radius:12px}.tripform label{font-size:11px}.tripform .sensorhint{margin-top:14px}.triplist{display:grid;gap:8px;margin-top:16px}.triplist button{text-align:left;display:grid;gap:4px;padding:12px;background:#fff;border:1px solid var(--line);border-radius:8px}.triplist small{color:var(--muted)}
.terminalpage [hidden]{display:none!important}.terminal-tabs{display:flex;gap:8px;padding:0 0 18px}.terminal-tabs button{padding:9px 15px;font-size:12px}.terminal-tabs button.active{background:#0b5fff;color:#fff;border-color:#0b5fff}.terminal-health{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px}.terminal-health-head{display:flex;justify-content:space-between;gap:18px;align-items:start}.terminal-health-head h2{font-size:18px;margin:0 0 5px}.terminal-health-head p{font-size:11px;color:var(--muted);margin:0}.terminal-health-head button{font-size:11px}.health-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:20px 0}.health-count{border:1px solid var(--line);border-radius:10px;padding:13px;display:flex;align-items:center;gap:10px}.health-count strong{font-size:23px}.health-count span{font-size:11px}.health-online{color:#15803d}.health-delayed{color:#b45309}.health-offline{color:#b91c1c}.health-never{color:#64748b}.health-filters{display:flex;gap:10px;margin-bottom:14px}.health-filters input{flex:1;min-width:0}.health-filters select{min-width:150px}.health-table-wrap{overflow:auto}.health-table{width:100%;border-collapse:collapse;font-size:11px;min-width:950px}.health-table th,.health-table td{padding:12px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.health-table small{display:block;color:var(--muted);margin-top:4px}.health-pill{display:inline-block;padding:5px 8px;border-radius:20px;background:#f1f5f9;font-weight:650}.health-pill.health-online{background:#e8f8ef}.health-pill.health-delayed{background:#fff4dc}.health-pill.health-offline{background:#ffeded}.health-pill.health-never{background:#f1f5f9}@media(max-width:700px){.health-summary{grid-template-columns:repeat(2,1fr)}.health-filters{flex-direction:column}.terminal-health{padding:14px}}

/* Configuración: acciones compactas con íconos. */
.assetactions .actionicon{display:inline-flex;align-items:center;justify-content:center;width:36px;min-width:36px;height:36px;min-height:36px;padding:0;font-size:14px;line-height:1}
.assetactions .actionicon:focus-visible{outline:2px solid var(--zultra);outline-offset:2px}
.assetactions .actionicon.deleteaction:hover{background:#fef2f2;border-color:#ef4444}
