:root{--bg:#07101d;--card:#111c2e;--line:#2b3b52;--muted:#9dafc5;--blue:#2f80ed;--green:#22c55e;--red:#ef4444;--amber:#f59e0b;--cyan:#22d3ee}
*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;background:linear-gradient(#07101d,#0d1726);color:#edf3fb;font-family:Arial,sans-serif}.wrap{max-width:1600px;margin:18px auto;padding:0 16px 60px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:14px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.topbar h1{margin:0;font-size:24px}.topbar .sub{color:var(--muted);font-size:13px;margin-top:4px}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}button,.btn{border:0;border-radius:9px;padding:9px 12px;background:var(--blue);color:#fff;font-weight:700;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.secondary{background:#26364d}.dangerBtn{background:#9f2731}.greenBtn{background:#14743b}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{width:100%;padding:9px 10px;border:1px solid #3a4d67;border-radius:9px;background:#08111f;color:#fff;font:inherit}textarea{min-height:80px;resize:vertical}label{display:block;font-weight:700;margin:8px 0 5px}.note{color:var(--muted);font-size:12px}.small{font-size:12px}.mono{font-family:Consolas,monospace}.pill{display:inline-block;border:1px solid #3a4d67;border-radius:999px;padding:4px 8px;font-size:11px;margin:2px;background:#08111f}.okMsg,.errorMsg{padding:11px 13px;border-radius:10px;margin-bottom:12px}.okMsg{background:#0e2a1b;border:1px solid #1f7a46}.errorMsg{background:#34151a;border:1px solid #a6323f}.summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}.metric{background:#08111f;border:1px solid var(--line);border-radius:11px;padding:11px}.metric span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase}.metric strong{display:block;font-size:22px;margin-top:4px}.compactTop{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:9px;margin-bottom:12px}.accordion{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}.accordion summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;min-height:44px}.accordion summary::-webkit-details-marker{display:none}.accordion summary:after{content:'▾';color:var(--muted)}.accordion[open] summary:after{content:'▴'}.accordionBody{border-top:1px solid var(--line);padding:11px 12px}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.toolbar{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:10px;align-items:end}.tablewrap{overflow:auto;border:1px solid var(--line);border-radius:10px}table{border-collapse:collapse;width:100%;min-width:980px}th,td{padding:8px 9px;border-bottom:1px solid #24354c;text-align:left;vertical-align:top;font-size:12px}th{background:#0b1626;position:sticky;top:0;z-index:1;color:#c7d5e6}.checkcol{width:54px}.status,.rule{display:inline-block;border-radius:999px;padding:4px 7px;font-size:10px;font-weight:700;white-space:nowrap}.status.move,.rule.normal{background:#123821;color:#89f7af}.status.stop{background:#342d15;color:#ffd96f}.status.nogps{background:#352027;color:#ff9aa7}.rule.danger{background:#4a171d;color:#ffb4bd}.rule.warning{background:#493812;color:#ffe08c}.rule.info{background:#102f42;color:#8adfff}.mapHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}.mapStatus{font-size:12px;color:var(--muted)}#map{height:540px;border-radius:12px;border:1px solid var(--line);background:#08111f;overflow:hidden}.zoneEditor{display:none;margin-top:12px;padding:13px;background:#0a1422;border:1px solid var(--line);border-radius:11px}.zoneEditor.show{display:block}.rulePanel{border:1px solid #2d405b;border-radius:10px;padding:10px;margin-top:10px;background:#08111f}.ruleTitle{font-weight:800;margin-bottom:6px}.checks{display:flex;flex-wrap:wrap;gap:9px}.checks label{display:flex;gap:6px;align-items:center;font-weight:normal;margin:0}.checks input{width:18px;height:18px}.vehicleAccessList{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px;max-height:250px;overflow:auto;margin-top:8px}.vehicleAccessItem{display:flex;gap:7px;align-items:center;padding:7px;border:1px solid #25354a;border-radius:8px;background:#0a1524}.vehicleAccessItem input{width:17px;height:17px}.alarmDanger{border-left:5px solid var(--red)}.alarmWarn{border-left:5px solid var(--amber)}.alarmInfo{border-left:5px solid var(--cyan)}.alarmRowNew{background:#281a12}.loginWrap{max-width:440px;margin:70px auto;padding:0 16px}.loginCard{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px}.loginCard h1{margin-top:0}.tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}.tabBtn.active{background:var(--green)}.panel{display:none}.panel.show{display:block}.mapConfig{display:grid;grid-template-columns:1fr 1fr auto;gap:9px;align-items:end}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;border-radius:999px;padding:0 6px;background:var(--red);font-size:11px;font-weight:800}.hidden{display:none!important}.mutedBox{background:#08111f;border:1px solid var(--line);border-radius:9px;padding:9px}.userTable table{min-width:720px}.alarmTable table{min-width:1050px}@media(max-width:1000px){.compactTop{grid-template-columns:1fr}.toolbar{grid-template-columns:1fr 1fr}.mapConfig{grid-template-columns:1fr 1fr}.mapConfig button{width:100%}.grid3{grid-template-columns:1fr 1fr}}@media(max-width:650px){.wrap{padding:0 10px 40px}.toolbar,.grid2,.grid3,.mapConfig{grid-template-columns:1fr}#map{height:420px}.topbar h1{font-size:20px}.card{padding:12px}.summary{grid-template-columns:repeat(2,1fr)}}
.faenaSwitch{display:flex;align-items:center;gap:7px}.faenaSwitch label{font-size:11px;color:var(--muted)}.faenaSwitch select{min-width:220px}.faenaTag{display:inline-block;padding:4px 7px;border:1px solid #3a4d67;border-radius:7px;background:#08111f;font-size:11px}.faenaCards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.faenaCards .mutedBox strong{font-size:20px;display:block;margin-top:4px}@media(max-width:650px){.faenaSwitch{width:100%;align-items:stretch;flex-direction:column}.faenaSwitch select{min-width:0}}

.buttonLike{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:9px;padding:10px 12px;font-weight:700}
.vehicleFilters{display:grid;grid-template-columns:minmax(240px,2fr) repeat(8,minmax(130px,1fr)) auto;gap:9px;align-items:end}
.vehicleFilters .vehicleFilterSearch{min-width:220px}
.assignmentFilters{display:grid;grid-template-columns:minmax(260px,2fr) minmax(150px,1fr) minmax(150px,1fr) auto;gap:9px;align-items:end;margin:8px 0}
.assignmentVehicleRow.isFilteredOut{display:none}
@media(max-width:1400px){.vehicleFilters{grid-template-columns:repeat(4,minmax(150px,1fr))}}
@media(max-width:900px){.vehicleFilters,.assignmentFilters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.vehicleFilters,.assignmentFilters{grid-template-columns:1fr}}

.profileCard{border:1px solid var(--line);border-radius:12px;margin:10px 0;background:rgba(8,17,31,.55)}
.profileCard>summary{cursor:pointer;padding:12px 14px;display:flex;justify-content:space-between;gap:12px}
.profileBody{padding:0 14px 14px}
.permissionGroup{margin:12px 0 5px;padding-bottom:4px;border-bottom:1px solid var(--line);color:#cfe0f5}


/* MonitorSAT v2.1.8 · instalación y optimización móvil */
html{scroll-behavior:smooth}
body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
.loginInstall{margin-top:14px;border:1px solid var(--line);border-radius:10px;overflow:hidden}.loginInstall summary{cursor:pointer;padding:10px 12px}.loginInstallBody{padding:0 12px 12px}
.mobileMenuButton{display:none}.mobileMenuBackdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:9997;opacity:0;transition:opacity .18s}.mobileMenuBackdrop.show{opacity:1}
.mobileMenuPanel{position:fixed;top:0;right:0;bottom:0;width:min(86vw,360px);padding:calc(14px + env(safe-area-inset-top)) 14px calc(14px + env(safe-area-inset-bottom));background:#0b1626;border-left:1px solid var(--line);z-index:9998;transform:translateX(100%);transition:transform .18s;overflow:auto}.mobileMenuPanel.show{transform:translateX(0)}
.mobileMenuHead{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.mobileMenuLink{width:100%;display:flex;text-align:left;padding:12px;margin:7px 0;border:1px solid var(--line);border-radius:10px;background:#111c2e;color:#edf3fb;text-decoration:none;font-weight:700}
.installHelpModal{display:none;position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.72);padding:18px;align-items:center;justify-content:center}.installHelpModal.show{display:flex}.installHelpCard{width:min(720px,100%);max-height:90vh;overflow:auto;background:#111c2e;border:1px solid var(--line);border-radius:16px;padding:16px}.installSteps p{line-height:1.5}.installSteps h3{margin-bottom:5px}
.tablewrap{-webkit-overflow-scrolling:touch}

@media(max-width:700px){
  body{font-size:15px;padding-bottom:env(safe-area-inset-bottom)}
  .wrap{margin:8px auto;padding:0 8px calc(84px + env(safe-area-inset-bottom))}
  .card{border-radius:12px;padding:10px;margin-bottom:10px}
  .topbar{position:sticky;top:0;z-index:1500;background:#111c2e;margin-left:-2px;margin-right:-2px}
  .topbar .actions{width:100%;display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
  .topbar .actions form{width:100%}.topbar .actions form button{width:100%}
  .topbar .pill{display:flex;align-items:center;justify-content:center;min-height:40px}
  .mobileMenuButton{display:inline-flex;width:100%;min-height:44px}
  .faenaSwitch{grid-column:1/-1}.faenaSwitch select{min-height:46px}
  button,.btn,.buttonLike,input,select,textarea{min-height:44px;font-size:16px}
  .compactTop{grid-template-columns:1fr;gap:8px}
  .summary{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{padding:9px}.metric strong{font-size:19px}
  #map{height:min(52vh,470px);min-height:330px;border-radius:10px}
  .mapHeader .actions{width:100%}.mapHeader .actions button{flex:1;min-width:120px}
  .vehicleFilters,.assignmentFilters{grid-template-columns:1fr}
  .vehicleFilterSearch{min-width:0!important}
  .verticalOnPhone{display:grid;grid-template-columns:1fr;width:100%}.verticalOnPhone>*{width:100%}
  .checks{gap:12px}.checks label{min-height:38px}.checks input{width:22px;height:22px}
  .zoneEditor{padding:9px}.vehicleAccessList{grid-template-columns:1fr;max-height:320px}
  .profileCard>summary{align-items:flex-start;flex-direction:column}
  .tablewrap{max-width:100%}
  .installHelpModal{padding:8px}.installHelpCard{max-height:94vh;border-radius:12px}
  #toast{left:10px!important;right:10px!important;bottom:calc(12px + env(safe-area-inset-bottom))!important;max-width:none!important}
}


/* MonitorSAT v2.1.8 · etiquetas completas de reglas por zona */
.zoneRuleGroup{margin:0 0 7px}.zoneRuleGroup:last-child{margin-bottom:0}
.zoneRuleName{font-weight:800;font-size:11px;color:#d8e7f7;margin-bottom:4px}
.zoneRuleTags{display:flex;flex-wrap:wrap;gap:4px}
.zoneRuleTag{display:inline-flex;align-items:center;border-radius:999px;padding:4px 7px;font-size:10px;font-weight:700;line-height:1.2}
.zoneRuleTag.info{background:#102f42;color:#8adfff}
.zoneRuleTag.danger{background:#4a171d;color:#ffb4bd}
@media(max-width:700px){
  .zoneRuleName{font-size:12px}
  .zoneRuleTag{font-size:11px;white-space:normal}
}


/* MonitorSAT v2.1.9 · columna Regla compacta */
.ruleNameList{display:flex;flex-wrap:wrap;gap:4px}
.ruleNameTag{
  display:inline-flex;
  align-items:center;
  max-width:180px;
  padding:4px 8px;
  border-radius:999px;
  background:#102f42;
  color:#8adfff;
  font-size:10px;
  font-weight:800;
  line-height:1.2;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
@media(max-width:700px){
  .ruleNameTag{max-width:100%;font-size:11px}
}


/* MonitorSAT v2.1.12 · periodo de prueba */
.demoBanner{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding:12px 14px;
  margin:0 0 12px;
  border-radius:12px;
  border:1px solid
}
.demoBanner>div:first-child{display:flex;gap:8px;align-items:center;white-space:nowrap}
.demoBanner>div:first-child span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.demoBannerText{font-size:13px;text-align:right}
.demoActive{background:#102f42;border-color:#275a75}
.demoExpired{background:#441a20;border-color:#7d3540}
.demoInfoGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.demoInfoGrid>div{background:rgba(0,0,0,.14);border:1px solid rgba(255,255,255,.08);border-radius:9px;padding:9px}
.demoInfoGrid span{display:block;font-size:11px;opacity:.72;margin-bottom:3px}
.demoInfoGrid strong{font-size:13px}
@media(max-width:700px){
  .demoBanner{display:block}
  .demoBannerText{text-align:left;margin-top:7px}
  .demoInfoGrid{grid-template-columns:1fr}
}


/* MonitorSAT v2.1.13 · DEMO bajo Cerrar sesión */
.sessionControls{display:flex;flex-direction:column;align-items:stretch;gap:5px;position:relative}
.sessionControls>form{margin:0}
.sessionControls>form button{width:100%}
.demoQuick{position:relative}
.demoQuick>summary{list-style:none}
.demoQuick>summary::-webkit-details-marker{display:none}
.demoQuickBadge{
  display:block;
  cursor:pointer;
  text-align:center;
  border-radius:8px;
  padding:5px 9px;
  background:#b91c1c;
  border:1px solid #ef4444;
  color:#fff;
  font-size:11px;
  font-weight:900;
  letter-spacing:.04em;
  line-height:1.2;
  user-select:none
}
.demoQuickBadge:hover{background:#991b1b}
.demoQuickPanel{
  position:absolute;
  z-index:1200;
  right:0;
  top:calc(100% + 7px);
  width:320px;
  padding:13px;
  border-radius:12px;
  background:#101b25;
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 18px 40px rgba(0,0,0,.38)
}
.demoQuickTitle{font-size:15px;font-weight:900;margin-bottom:7px}
.demoQuickState{padding:7px 9px;border-radius:8px;background:#102f42;color:#8adfff;font-size:12px;font-weight:800}
.demoQuickExpired{background:#4a171d;color:#ffb4bd}
.demoQuickDates{display:grid;gap:4px;margin:9px 0;font-size:11px;opacity:.88}
.demoQuickDates span{display:block}
.demoQuickForm{margin:0}
.demoQuickForm label{font-size:11px;margin-bottom:4px}
.demoQuickForm input{width:100%;margin-bottom:7px}
.demoQuickButtons{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.demoQuickButtons button{width:100%}
.demoQuickDisable{margin-top:7px}
.demoQuickDisable button{width:100%}
.demoQuickNote{font-size:10px;opacity:.68;margin-top:8px;text-align:center}
@media(max-width:700px){
  .sessionControls{width:100%}
  .demoQuickPanel{position:fixed;left:12px;right:12px;top:auto;bottom:12px;width:auto;max-height:70vh;overflow:auto}
  .demoQuickBadge{font-size:12px;padding:7px 10px}
}


/* MonitorSAT v2.1.14 · requerimientos a Super OP */
.supportCard{margin-top:14px}
.supportHeader{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}
.supportHeader h2{margin:0 0 3px}
.supportGrid{display:grid;grid-template-columns:1fr 1fr 1.5fr;gap:10px}
.supportForm textarea,.supportManageForm textarea{width:100%;resize:vertical}
.supportSendRow{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px}
.supportSendRow button{min-width:160px}
.supportHistory{margin-top:14px;border-top:1px solid rgba(255,255,255,.08);padding-top:10px}
.supportHistory>summary{cursor:pointer;font-weight:800}
.supportHistoryList,.supportInbox{display:grid;gap:9px;margin-top:10px}
.supportRequest{border:1px solid rgba(255,255,255,.1);border-radius:10px;background:rgba(0,0,0,.12);padding:10px}
.supportRequest>summary{cursor:pointer;list-style:none}
.supportRequest>summary::-webkit-details-marker{display:none}
.supportRequestTop{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.supportStatus{display:inline-flex;align-items:center;white-space:nowrap;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:900;background:#293746}
.supportStatus-pending{border-left:3px solid #ef4444}
.supportStatus-review{border-left:3px solid #f59e0b}
.supportStatus-resolved{border-left:3px solid #22c55e}
.supportMessage{margin-top:9px;padding:9px 10px;border-radius:8px;background:rgba(255,255,255,.045);font-size:13px;line-height:1.45;white-space:normal}
.supportReply{margin-top:8px;padding:9px 10px;border-radius:8px;background:#102f42;color:#d8f2ff;font-size:12px;line-height:1.4}
.supportPendingBadge{display:inline-flex;border-radius:999px;padding:5px 9px;background:#b91c1c;color:#fff;font-size:11px;font-weight:900}
.supportRequestBody{padding-top:9px}
.supportMeta{font-size:12px;margin-bottom:6px}
.supportManageForm{display:grid;grid-template-columns:150px 1fr auto;gap:9px;align-items:end;margin-top:10px}
.supportManageForm button{margin-bottom:1px}
@media(max-width:800px){
  .supportGrid{grid-template-columns:1fr}
  .supportSubject{grid-column:auto}
  .supportSendRow{display:block}
  .supportSendRow button{width:100%;margin-top:8px}
  .supportHeader{align-items:flex-start}
  .supportRequestTop{display:block}
  .supportStatus{margin-top:7px}
  .supportManageForm{grid-template-columns:1fr}
  .supportManageForm button{width:100%}
}

/* DEMO visible para todos; administración solo Super OP */
.demoQuickBadge{background:#b91c1c!important;border-color:#ef4444!important;color:#fff!important}


/* MonitorSAT v2.1.16 · Contactar a soporte como acordeón */
.supportAccordion{
  border:1px solid rgba(255,255,255,.10);
  border-radius:12px;
  background:rgba(0,0,0,.10);
  overflow:hidden
}
.supportAccordion>summary{
  list-style:none;
  cursor:pointer;
  padding:14px 16px;
  user-select:none
}
.supportAccordion>summary::-webkit-details-marker{display:none}
.supportAccordion>summary::after{
  content:"▾";
  float:right;
  margin-top:-22px;
  font-size:16px;
  opacity:.75;
  transition:transform .18s ease
}
.supportAccordion[open]>summary::after{transform:rotate(180deg)}
.supportAccordionTitle{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-right:24px}
.supportAccordionTitle strong{font-size:16px}
.supportAccordionTitle span{font-size:11px;font-weight:800;opacity:.72}
.supportAccordionBody{padding:0 16px 16px;border-top:1px solid rgba(255,255,255,.08)}
.supportAccordionIntro{padding-top:12px;margin-bottom:12px}
@media(max-width:700px){
  .supportAccordion>summary{padding:13px 14px}
  .supportAccordionTitle{display:block}
  .supportAccordionTitle span{display:block;margin-top:3px}
  .supportAccordionBody{padding:0 14px 14px}
}


/* MonitorSAT v2.1.18 · proveedores GPS */
.gpsProviderStack{display:grid;grid-template-columns:1fr;gap:12px}
.gpsProviderCard h3{margin-top:0}
@media(max-width:700px){
  .gpsProviderCard .actions{display:grid;grid-template-columns:1fr}
  .gpsProviderCard .actions button,
  .gpsProviderCard .actions .buttonLike{width:100%;text-align:center}
}


/* MonitorSAT v2.1.19 · proveedores GPS múltiples */
.providerTag{display:inline-flex;align-items:center;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:800;background:#102f42;color:#8adfff}


/* MonitorSAT v2.1.28 · vista previa de restauración */
.backupPreviewBox{margin-top:14px;border:1px solid #3f5c7b;border-radius:12px;background:#0d1b2b;padding:14px}
.backupPreviewTitle{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.backupPreviewTitle strong{font-size:16px}
.backupPreviewTitle span{font-size:12px;color:#86efac;font-weight:700}
.backupPreviewMeta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px}
.backupPreviewMeta>div,.backupConfigPreview>div{background:#12243a;border:1px solid #29415e;border-radius:9px;padding:9px}
.backupPreviewMeta span{display:block;color:#9dafc5;font-size:11px;margin-bottom:3px}
.backupPreviewGroup{border-top:1px solid #29415e;padding-top:12px;margin-top:12px}
.backupPreviewTags{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
.backupPreviewTags span{display:inline-flex;padding:5px 8px;border:1px solid #35506f;border-radius:999px;background:#132940;font-size:11px}
.backupPreviewTable{margin-top:8px}
.backupPreviewTable table{min-width:720px}
.backupPreviewWarning{margin-top:12px;border:1px solid #8b6a22;background:#2b230f;border-radius:10px;padding:10px}
.backupConfigPreview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:8px}
.backupRestoreConfirmForm{margin-top:14px;border-top:1px solid #46627f;padding-top:14px}
@media(max-width:720px){
  .backupPreviewMeta,.backupConfigPreview{grid-template-columns:1fr}
}


/* MonitorSAT v2.1.31 · seleccionar vehículo desde la lista */
.fleetVehicleRow{cursor:pointer;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}
.fleetVehicleRow:hover{background:#10233a}
.fleetVehicleRow:focus{outline:2px solid #3b82f6;outline-offset:-2px;background:#10233a}
.fleetClickHint{margin-top:4px;color:#8fb8e8}
@media(max-width:700px){
  .fleetVehicleRow{cursor:pointer}
  .fleetVehicleRow:active{background:#132b45}
}


/* MonitorSAT v2.1.32 · cabecera/menú móvil compacto */
@media(max-width:700px){
  .topbar{
    padding:8px 10px;
    gap:7px;
    margin-bottom:8px;
  }

  .topbar>div:first-child{
    width:100%;
  }

  .topbar h1{
    font-size:20px;
    line-height:1.1;
  }

  .topbar h1 small{
    font-size:13px;
  }

  .topbar .sub{
    font-size:11px;
    line-height:1.25;
    margin-top:2px;
  }

  .topbar .actions{
    width:100%;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:6px;
    align-items:start;
  }

  .faenaSwitch{
    grid-column:1/-1;
    margin:0;
  }

  .faenaSwitch label{
    font-size:11px;
    margin:0 0 3px;
  }

  .faenaSwitch select{
    min-height:38px;
    height:38px;
    padding:5px 9px;
    font-size:14px;
    border-radius:8px;
  }

  .topbar .pill{
    min-height:30px;
    height:30px;
    padding:3px 7px;
    margin:0;
    font-size:10px;
    line-height:1;
  }

  .mobileMenuButton{
    display:inline-flex;
    width:100%;
    min-height:38px;
    height:38px;
    padding:5px 8px;
    font-size:14px;
    align-self:start;
  }

  /* Convierte Cerrar sesión y DEMO en elementos del mismo grid de acciones.
     Esto evita que el botón Menú se estire hasta la altura de ambos. */
  .topbar .sessionControls{
    display:contents;
  }

  .topbar .sessionControls>form{
    width:100%;
    margin:0;
  }

  .topbar .sessionControls>form button{
    width:100%;
    min-height:38px;
    height:38px;
    padding:5px 8px;
    font-size:14px;
  }

  .topbar .demoQuick{
    grid-column:1/-1;
    width:100%;
  }

  .topbar .demoQuickBadge{
    min-height:32px;
    padding:6px 8px;
    font-size:11px;
    border-radius:8px;
  }

  /* Los accesos plegables superiores quedan más compactos sin perder área táctil. */
  .compactTop{
    gap:6px;
    margin-bottom:8px;
  }

  .compactTop .accordion summary{
    min-height:40px;
    padding:7px 10px;
  }

  .compactTop .accordion summary strong{
    font-size:14px;
  }

  .compactTop .accordion summary .note{
    font-size:10px;
  }
}





/* MonitorSAT v2.1.35 · tablas móviles horizontales reales */
@media(max-width:700px){
  #vehiculosSeccion .tablewrap,
  #historialSeccion .tablewrap,
  #alarmasSeccion .tablewrap{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    overflow-x:scroll!important;
    overflow-y:hidden!important;
    border:1px solid var(--line)!important;
    border-radius:10px!important;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-x pan-y;
  }

  #vehiculosSeccion table,
  #historialSeccion table,
  #alarmasSeccion table{
    display:table!important;
    width:auto!important;
    min-width:1180px!important;
    max-width:none!important;
    border-collapse:collapse!important;
  }

  #vehiculosSeccion thead,
  #historialSeccion thead,
  #alarmasSeccion thead{
    display:table-header-group!important;
  }

  #vehiculosSeccion tbody,
  #historialSeccion tbody,
  #alarmasSeccion tbody{
    display:table-row-group!important;
  }

  #vehiculosSeccion tr,
  #historialSeccion tr,
  #alarmasSeccion tr{
    display:table-row!important;
  }

  #vehiculosSeccion th,
  #vehiculosSeccion td,
  #historialSeccion th,
  #historialSeccion td,
  #alarmasSeccion th,
  #alarmasSeccion td{
    display:table-cell!important;
    padding:8px 9px!important;
    font-size:12px!important;
    white-space:nowrap!important;
    vertical-align:top!important;
  }

  #vehiculosSeccion td::before,
  #historialSeccion td::before,
  #alarmasSeccion td::before{
    display:none!important;
    content:none!important;
  }
  #vehiculosSeccion .vehicleCheck{
    width:20px!important;
    height:20px!important;
    min-height:0!important;
  }

  #vehiculosSeccion .fleetClickHint{
    font-size:10px;
  }
}




/* MonitorSAT v2.1.37 · cabecera móvil de dos líneas sin superposiciones */
.mobileIdentity{display:none}

@media(max-width:700px){
  .topbar{
    position:sticky!important;
    top:0!important;
    z-index:1500!important;
    display:grid!important;
    grid-template-columns:150px minmax(0,1fr) 62px!important;
    grid-template-rows:34px 28px!important;
    gap:4px 6px!important;
    align-items:center!important;
    padding:6px 8px!important;
    margin:0 -2px 7px!important;
    background:#111c2e!important;
  }

  .topbarBrand{
    grid-column:1!important;
    grid-row:1!important;
    min-width:0!important;
    width:100%!important;
    display:flex!important;
    align-items:center!important;
    overflow:hidden!important;
  }

  .topbarBrand h1{
    margin:0!important;
    max-width:100%!important;
    font-size:16px!important;
    line-height:1!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:clip!important;
  }

  .topbarBrand h1 small{
    font-size:9px!important;
  }

  .topbarBrand .sub{
    display:none!important;
  }

  /* Aplanar los contenedores para que cada control ocupe una celda real. */
  .topbarActions,
  .topbarActions .sessionControls{
    display:contents!important;
  }

  .topbarActions .faenaSwitch{
    grid-column:2!important;
    grid-row:1!important;
    min-width:0!important;
    width:100%!important;
    margin:0!important;
  }

  .topbarActions .faenaSwitch label{
    display:none!important;
  }

  .topbarActions .faenaSwitch select{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    min-height:34px!important;
    height:34px!important;
    padding:3px 7px!important;
    border-radius:8px!important;
    font-size:12px!important;
  }

  .topbarActions .mobileMenuButton{
    grid-column:3!important;
    grid-row:1!important;
    display:inline-flex!important;
    width:62px!important;
    min-width:62px!important;
    min-height:34px!important;
    height:34px!important;
    padding:3px 5px!important;
    border-radius:8px!important;
    font-size:11px!important;
  }

  /* Ocultar los dos pills separados y usar una identidad compacta. */
  .topbarActions .topbarUser,
  .topbarActions .topbarRole{
    display:none!important;
  }

  .topbarActions .mobileIdentity{
    grid-column:2!important;
    grid-row:2!important;
    display:block!important;
    width:100%!important;
    min-width:0!important;
    height:28px!important;
    padding:7px 6px!important;
    border:1px solid #3a4d67!important;
    border-radius:8px!important;
    background:#08111f!important;
    color:#dce7f5!important;
    font-size:9px!important;
    line-height:1!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    text-align:center!important;
  }

  .topbarActions .topbarLogout{
    grid-column:3!important;
    grid-row:2!important;
    width:62px!important;
    margin:0!important;
  }

  .topbarActions .topbarLogout button{
    width:62px!important;
    min-width:62px!important;
    min-height:28px!important;
    height:28px!important;
    padding:2px 3px!important;
    border-radius:8px!important;
    font-size:8px!important;
    line-height:1!important;
  }

  /* DEMO ocupa su propia celda en la línea 2: nunca se superpone con Faena. */
  .topbarActions .demoQuick{
    grid-column:1!important;
    grid-row:2!important;
    position:static!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    z-index:auto!important;
  }

  .topbarActions .demoQuickBadge{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    min-height:28px!important;
    height:28px!important;
    padding:4px 5px!important;
    border-radius:8px!important;
    font-size:9px!important;
    line-height:1!important;
    white-space:nowrap!important;
  }

  .topbarActions .demoQuickPanel{
    position:fixed!important;
    left:10px!important;
    right:10px!important;
    top:auto!important;
    bottom:10px!important;
    width:auto!important;
    max-height:72vh!important;
    overflow:auto!important;
    z-index:9999!important;
  }
}

@media(max-width:390px){
  .topbar{
    grid-template-columns:132px minmax(0,1fr) 56px!important;
  }
  .topbarBrand h1{font-size:14px!important}
  .topbarBrand h1 small{font-size:8px!important}
  .topbarActions .mobileMenuButton,
  .topbarActions .topbarLogout,
  .topbarActions .topbarLogout button{
    width:56px!important;
    min-width:56px!important;
  }
  .topbarActions .demoQuickBadge{font-size:8px!important}
  .topbarActions .mobileIdentity{font-size:8px!important}
}


/* MonitorSAT v2.1.39 · mantener sesión abierta */
.rememberLogin{display:flex;align-items:center;gap:8px;margin-top:12px;font-weight:700;cursor:pointer}
.rememberLogin input{width:18px;height:18px;flex:0 0 auto;margin:0}
.rememberLoginNote{margin:5px 0 0;line-height:1.35}


/* MonitorSAT v2.1.40 · ver/ocultar clave de inicio de sesión */
.loginPasswordWrap{
  display:grid;
  grid-template-columns:minmax(0,1fr) 76px;
  gap:7px;
  align-items:stretch
}
.loginPasswordWrap input{
  min-width:0
}
.loginPasswordToggle{
  width:76px;
  padding:8px 7px;
  white-space:nowrap
}
@media(max-width:420px){
  .loginPasswordWrap{
    grid-template-columns:minmax(0,1fr) 70px
  }
  .loginPasswordToggle{
    width:70px;
    padding-left:5px;
    padding-right:5px;
    font-size:12px
  }
}


/* MonitorSAT v2.1.47 · búsqueda y filtros en acordeón */
.vehicleSearchAccordion .accordionBody{
  padding:11px 12px 12px
}
.vehicleSearchAccordion .vehicleFilterCountNote{
  margin-top:8px
}
@media(max-width:650px){
  .vehicleSearchAccordion summary{
    min-height:42px;
    padding:9px 11px
  }
  .vehicleSearchAccordion summary .note{
    text-align:right
  }
}


/* MonitorSAT v2.1.48 · zonas guardadas en acordeón */
.savedZonesAccordion{
  margin-top:12px
}
.savedZonesAccordion .accordionBody{
  padding:10px 12px 12px
}
.savedZonesAccordion table{
  min-width:900px
}


/* MonitorSAT v2.1.53 · selección de eventos que notifican */
.notificationEventChecks{
  margin:4px 0 8px;
  gap:7px 14px
}
.notificationEventChecks label{
  padding:6px 9px;
  border:1px solid #2d405b;
  border-radius:8px;
  background:#08111f
}


/* MonitorSAT v2.1.54 · historial de recorridos */
.routeHistoryFilters{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px;align-items:end}
.routeCronStatus{margin-top:9px;padding:9px 10px}
.routeHistoryCard .accordionBody{padding:11px 12px 12px}
.errorText{color:#ff8c8c}
@media(max-width:760px){.routeHistoryFilters{grid-template-columns:1fr}.routeHistoryCard .actions{align-items:stretch}.routeHistoryCard .actions button{width:100%}}


/* MonitorSAT v2.1.55 · estado cron BenzaHosting / cPanel */
.routeCronStatus .cronHealth{
  display:inline-block;
  margin:0 3px;
  padding:2px 7px;
  border-radius:999px;
  font-weight:700
}
.routeCronStatus .cronOk{background:#123d2c;color:#8cf0bd}
.routeCronStatus .cronLate{background:#493b13;color:#ffe08a}
.routeCronStatus .cronError{background:#4a2025;color:#ffb1b8}
.routeCronHosting{
  display:grid;
  gap:5px;
  margin-top:10px;
  padding-top:9px;
  border-top:1px solid #2b3b52
}
.routeCronHosting code{
  display:block;
  overflow:auto;
  white-space:nowrap;
  padding:8px 10px;
  border:1px solid #2d405b;
  border-radius:8px;
  background:#07101d
}


/* MonitorSAT v2.1.56 · salud del cron visible solo para Super OP */
.cronTopStatus{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:0 9px;
  border-radius:999px;
  font-size:12px;
  font-weight:700;
  white-space:nowrap;
  border:1px solid transparent
}
.cronTopOk{
  background:#123d2c;
  color:#8cf0bd;
  border-color:#256143
}
.cronTopLate{
  background:#493b13;
  color:#ffe08a;
  border-color:#745f22
}
.cronTopError{
  background:#4a2025;
  color:#ffb1b8;
  border-color:#7a3039
}
@media(max-width:700px){
  .cronTopStatus{
    grid-column:1 / -1;
    justify-self:end;
    min-height:24px;
    padding:0 7px;
    font-size:11px
  }
}
