:root{--brand:#8bbab1;--dark:#172a35;--bg:#f3f6f7;--line:#dfe7e9;--text:#14232c;--muted:#637780;--ok:#2f9f66;--warn:#e9a93c;--danger:#d94d4d}*{box-sizing:border-box}body{margin:0;font-family:Montserrat,Arial,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font-family:Montserrat}.app{display:flex;min-height:100vh}.sidebar{width:278px;background:linear-gradient(180deg,#172a35,#203642);color:white;padding:22px 18px;flex-shrink:0}.brand{display:flex;gap:13px;align-items:center;margin-bottom:30px}.brand .mark{width:50px;height:50px;border-radius:16px;background:var(--brand);display:flex;align-items:center;justify-content:center;color:#10252d;font-weight:900}.brand b{display:block;font-size:24px}.brand span{display:block;color:var(--brand);font-weight:900;font-size:18px}.nav-title{font-size:11px;text-transform:uppercase;color:#aac1c8;font-weight:900;margin:20px 12px 8px}.nav{display:block;width:100%;text-align:left;padding:13px 14px;border:0;border-radius:12px;background:transparent;color:#edf5f6;font-weight:800;margin-bottom:6px;cursor:pointer}.nav.active{background:rgba(139,186,177,.23);border:1px solid rgba(139,186,177,.55)}.main{flex:1;padding:24px;overflow:auto}.screen{display:none}.screen.active{display:block}.page-header,.panel,.form{background:white;border-radius:18px;box-shadow:0 8px 24px rgba(19,43,54,.06)}.page-header{padding:20px 22px;margin-bottom:18px;display:flex;justify-content:space-between;align-items:center;gap:16px}h1{margin:0;font-size:30px;font-weight:900}p{margin:5px 0 0;color:var(--muted);font-weight:600}.btn{border:0;border-radius:12px;padding:12px 15px;font-weight:900;background:var(--dark);color:white;cursor:pointer}.btn.secondary{background:#e8f0f1;color:#18303a}.kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:18px}.kpis.compact{grid-template-columns:repeat(4,1fr)}.kpi{background:white;border-radius:18px;padding:18px;box-shadow:0 8px 24px rgba(19,43,54,.06);border:1px solid transparent}.kpi small{display:block;color:#6e8088;font-size:11px;font-weight:900;text-transform:uppercase}.kpi strong{display:block;margin-top:7px;font-size:28px;font-weight:900}.kpi.ok{border-color:#c8ead8}.kpi.warn{border-color:#f5deb2}.kpi.danger{border-color:#f3c3c3}.grid2{display:grid;grid-template-columns:1.2fr 1fr;gap:18px}.panel{padding:18px}.panel h2,.form h2{margin:0 0 14px;font-size:18px;font-weight:900}.summary{display:flex;justify-content:space-between;border-bottom:1px solid #edf2f3;padding:12px 0;font-weight:900}.alert{border:1px solid var(--line);border-left:6px solid var(--warn);padding:12px 13px;border-radius:12px;margin-bottom:10px;font-weight:800;background:#fffdf7}.alert.danger{border-left-color:var(--danger);background:#fff7f7}.alert.ok{border-left-color:var(--ok);background:#f8fffb}.alert span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.filters{display:grid;grid-template-columns:1.5fr repeat(4,1fr);gap:12px;margin-bottom:18px;background:white;border-radius:18px;padding:18px;box-shadow:0 8px 24px rgba(19,43,54,.06)}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px;font-weight:700;background:#fbfcfc}.tablepanel{overflow:auto}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:11px;text-transform:uppercase;color:#71838b;padding:13px 16px;border-bottom:1px solid var(--line);background:#fafcfc;white-space:nowrap}td{padding:15px 16px;border-bottom:1px solid #edf2f3;font-weight:800;white-space:nowrap}tbody tr{cursor:pointer}tbody tr:hover{background:#f8fbfb}.small{display:block;color:var(--muted);font-size:12px;font-weight:700;margin-top:3px}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:92px;border-radius:9px;padding:7px 12px;font-size:11px;font-weight:900;border:1px solid transparent;text-transform:uppercase;line-height:1}.badge.ACTIVO,.badge.APTO{background:#dff5ec;color:#147246;border-color:#b7e7d0}.badge.ITV{background:#fff0d6;color:#a76200;border-color:#ffd99b}.badge.REVISION{background:#fff6c9;color:#7a6200;border-color:#f4df83}.badge.SIN-SEGURO{background:#ffdede;color:#b42323;border-color:#ffb6b6}.badge.NO-APTO{background:#ffd3d3;color:#9f1717;border-color:#ff9f9f}.badge.NEUTRO{background:#edf2f4;color:#43515a;border-color:#d5dee2}.form{padding:0 22px 22px}.form-header{display:flex;justify-content:space-between;gap:16px;align-items:center;border-bottom:1px solid var(--line);margin:0 -22px 18px;padding:20px 22px}.formgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}label{font-size:11px;color:#63777f;font-weight:900;text-transform:uppercase}label input,label select,label textarea{margin-top:6px}textarea{min-height:105px}.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.module:before{content:"Módulo preparado para la siguiente fase.";display:block;background:white;border-radius:18px;padding:28px;font-weight:800;color:var(--muted);box-shadow:0 8px 24px rgba(19,43,54,.06)}.errorbox{background:#fff7f7;border:1px solid #f1c4c4;color:#8a2222;border-radius:14px;padding:14px;font-weight:800;margin-bottom:14px}@media(max-width:1250px){.kpis,.kpis.compact,.grid2,.filters,.formgrid{grid-template-columns:1fr 1fr}}

/* V5 - Ajuste visual tipo RRHH: menos peso, menos tamaño, más líneas visibles */
table{
  font-size:13px;
}
th{
  font-size:10.5px !important;
  font-weight:700 !important;
  letter-spacing:.01em;
}
td{
  font-size:13px !important;
  font-weight:600 !important;
  padding:11px 16px !important;
}
td b{
  font-weight:700 !important;
}
.panel h2{
  font-size:18px;
  font-weight:800;
}
.badge{
  font-size:10.5px !important;
  font-weight:800 !important;
  padding:6px 11px !important;
  min-width:88px;
}
.filters input,.filters select{
  font-size:13px;
  font-weight:700;
}
.nav{
  font-size:13px;
  font-weight:700;
}
.summary,.alert{
  font-size:13px;
}
.module-table{
  width:100%;
  border-collapse:collapse;
}
.module-empty{
  padding:18px;
  color:var(--muted);
  font-weight:700;
}


/* V6 - Estado con color también dentro de la ficha */
.status-select-wrap select{
  font-weight:800 !important;
  border-width:1px !important;
}
.status-select-wrap select.estado-ACTIVO,
.status-select-wrap select.estado-APTO{
  background:#dff5ec !important;
  color:#147246 !important;
  border-color:#b7e7d0 !important;
}
.status-select-wrap select.estado-ITV{
  background:#fff0d6 !important;
  color:#a76200 !important;
  border-color:#ffd99b !important;
}
.status-select-wrap select.estado-REVISION{
  background:#fff6c9 !important;
  color:#7a6200 !important;
  border-color:#f4df83 !important;
}
.status-select-wrap select.estado-SIN-SEGURO{
  background:#ffdede !important;
  color:#b42323 !important;
  border-color:#ffb6b6 !important;
}
.status-select-wrap select.estado-NO-APTO{
  background:#ffd3d3 !important;
  color:#9f1717 !important;
  border-color:#ff9f9f !important;
}


/* V7 - Animación de botones */
.btn{
  transition: transform .12s ease, box-shadow .12s ease, filter .12s ease, background-color .12s ease;
  box-shadow: 0 4px 10px rgba(19,43,54,.10);
}
.btn:hover{
  transform: translateY(-1px);
  filter: brightness(1.03);
  box-shadow: 0 7px 16px rgba(19,43,54,.16);
}
.btn:active{
  transform: translateY(1px) scale(.985);
  filter: brightness(.96);
  box-shadow: 0 2px 6px rgba(19,43,54,.12);
}
.btn.secondary:hover{
  background:#dfeaed;
}
.nav{
  transition: transform .12s ease, background-color .12s ease, border-color .12s ease;
}
.nav:hover{
  transform: translateX(2px);
  background:rgba(255,255,255,.07);
}
.nav:active{
  transform: translateX(1px) scale(.99);
}
tbody tr{
  transition: background-color .12s ease, transform .08s ease;
}
tbody tr:active{
  transform: scale(.998);
}

/* V8 - Alertas visuales en listado */
tbody tr.alerta-itv td:first-child,
tbody tr.alerta-revision td:first-child,
tbody tr.alerta-critica td:first-child{position:relative}
tbody tr.alerta-itv td:first-child:before,
tbody tr.alerta-revision td:first-child:before,
tbody tr.alerta-critica td:first-child:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:4px;border-radius:4px}
tbody tr.alerta-itv td:first-child:before{background:#f09a2a}
tbody tr.alerta-revision td:first-child:before{background:#d3ad00}
tbody tr.alerta-critica td:first-child:before{background:#d94d4d}
.alert-cell{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.alert-chip{display:inline-flex;align-items:center;justify-content:center;border-radius:8px;padding:6px 9px;font-size:10px;font-weight:900;line-height:1;border:1px solid transparent;white-space:nowrap}
.alert-chip.itv{background:#fff0d6;color:#a76200;border-color:#ffd99b}
.alert-chip.rev{background:#fff6c9;color:#7a6200;border-color:#f4df83}
.alert-chip.crit{background:#ffd3d3;color:#9f1717;border-color:#ff9f9f}
.alert-chip.ok{background:#edf2f4;color:#788993;border-color:#d9e2e6}

.webfleet-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:9px;padding:6px 10px;font-size:10px;font-weight:900;background:#dff5ec;color:#147246;border:1px solid #b7e7d0;text-transform:uppercase;white-space:nowrap}
.webfleet-empty{display:inline-block;min-width:72px}
.km-unit{color:#60737c;font-size:11px;font-weight:700;margin-left:3px}
.toggle-row{display:flex;align-items:center;gap:12px;margin-top:6px}
.toggle{width:54px;height:30px;border-radius:999px;border:1px solid #cfdde1;background:#e7eef1;position:relative;cursor:pointer;transition:background .18s ease,border-color .18s ease}
.toggle:after{content:"";width:24px;height:24px;border-radius:50%;background:white;position:absolute;left:3px;top:2px;box-shadow:0 2px 6px rgba(19,43,54,.2);transition:left .18s ease}
.toggle.active{background:#8bbab1;border-color:#72aaa1}.toggle.active:after{left:26px}
.toggle-label{font-size:12px;font-weight:800;color:#43515a}.notice{background:#eef8f6;border:1px solid #cde7e2;color:#244e48;border-radius:14px;padding:12px 14px;font-size:13px;font-weight:700;margin-bottom:16px}


/* V11 - Indicador visual guardando cambios tipo RRHH */
.saving-indicator{
  display:none;
  color:#d71920;
  font-size:13px;
  font-weight:900;
  text-transform:uppercase;
  margin-right:12px;
  animation:savingBlink .75s infinite;
}
.saving-indicator.active{
  display:inline-flex;
  align-items:center;
}
@keyframes savingBlink{
  0%,100%{opacity:1}
  50%{opacity:.25}
}
.btn[disabled]{
  opacity:.65;
  cursor:not-allowed;
  transform:none !important;
}


/* V12 - Sufijo visual km en campos de kilometraje de ficha y alta */
.km-field{
  position:relative;
}
.km-field input{
  padding-right:42px !important;
}
.km-field::after{
  content:"km";
  position:absolute;
  right:14px;
  top:34px;
  color:#60737c;
  font-size:12px;
  font-weight:800;
  text-transform:lowercase;
  pointer-events:none;
}


/* V13 - Menú lateral estilo RRHH + administrador */
.sidebar{
  width:290px !important;
  background:#061d31 !important;
  padding:24px 22px !important;
  display:flex;
  flex-direction:column;
}
.sidebar-logo img{
  width:155px;
  display:block;
  margin:0 auto 14px;
}
.sidebar-title{
  color:#fff;
  font-size:15px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
  margin:10px 0 22px;
}
.sidebar-nav{
  flex:1;
}
.nav-section{
  color:#8fb2c5;
  font-size:12px;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
  margin:22px 0 10px 10px;
}
.nav{
  display:flex !important;
  align-items:center;
  gap:13px;
  min-height:46px;
  border-radius:13px !important;
  font-size:14px !important;
  font-weight:800 !important;
  padding:10px 12px !important;
  color:#f4fbff !important;
  border:1px solid transparent !important;
  transition:background .16s ease,border-color .16s ease,transform .12s ease,color .16s ease !important;
}
.nav-icon{
  width:30px;
  height:30px;
  border-radius:11px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.10);
  color:#d8edf5;
  font-size:14px;
  flex-shrink:0;
}
.nav:hover{
  transform:translateX(3px);
}
.nav.color-dashboard:hover,.nav.color-dashboard.active{background:rgba(139,186,177,.20)!important;border-color:rgba(139,186,177,.45)!important}
.nav.color-listado:hover,.nav.color-listado.active{background:rgba(95,165,220,.20)!important;border-color:rgba(95,165,220,.45)!important}
.nav.color-alta:hover,.nav.color-alta.active{background:rgba(91,204,150,.18)!important;border-color:rgba(91,204,150,.42)!important}
.nav.color-seguros:hover,.nav.color-seguros.active{background:rgba(226,94,94,.18)!important;border-color:rgba(226,94,94,.42)!important}
.nav.color-revisiones:hover,.nav.color-revisiones.active{background:rgba(238,180,55,.20)!important;border-color:rgba(238,180,55,.45)!important}
.nav.color-itv:hover,.nav.color-itv.active{background:rgba(243,139,44,.20)!important;border-color:rgba(243,139,44,.45)!important}
.nav.color-documentacion:hover,.nav.color-documentacion.active{background:rgba(150,126,235,.20)!important;border-color:rgba(150,126,235,.45)!important}
.nav.color-webfleet:hover,.nav.color-webfleet.active{background:rgba(80,180,170,.20)!important;border-color:rgba(80,180,170,.45)!important}

.sidebar-bottom{
  margin-top:auto;
  padding-top:20px;
}
.admin-btn{
  width:100%;
  border:1px solid rgba(139,186,177,.35);
  border-radius:14px;
  min-height:54px;
  background:rgba(139,186,177,.12);
  color:#fff;
  display:flex;
  align-items:center;
  gap:13px;
  padding:10px 12px;
  font-family:Montserrat;
  font-size:14px;
  font-weight:900;
  cursor:pointer;
  transition:background .16s ease,transform .12s ease,border-color .16s ease;
}
.admin-btn:hover{
  background:rgba(139,186,177,.24);
  border-color:rgba(139,186,177,.65);
  transform:translateY(-1px);
}
.admin-btn.active{
  background:rgba(139,186,177,.30);
  border-color:rgba(139,186,177,.8);
}
.sidebar-status{
  border-top:1px solid rgba(255,255,255,.16);
  margin-top:22px;
  padding-top:18px;
  color:#b6cfda;
  font-size:12px;
  line-height:1.55;
}
.sidebar-status strong{
  display:block;
  color:#8bbab1;
  font-weight:900;
}
.sidebar-status span{
  display:block;
  font-weight:700;
}
.admin-modal{
  display:none;
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.42);
  z-index:9999;
  align-items:center;
  justify-content:center;
}
.admin-modal.active{
  display:flex;
}
.admin-modal-card{
  width:390px;
  background:#fff;
  border-radius:18px;
  box-shadow:0 20px 70px rgba(0,0,0,.22);
  padding:24px;
}
.admin-modal-card h2{
  margin:0 0 8px;
  font-size:22px;
  font-weight:900;
}
.admin-modal-card p{
  margin:0 0 16px;
}
.admin-modal-card input{
  width:100%;
}
.admin-modal-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:16px;
}
.admin-error{
  color:#d71920;
  font-size:12px;
  font-weight:900;
  margin-top:8px;
}
.admin-tools{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.btn.danger{
  background:#d71920 !important;
  color:#fff !important;
}
.danger-notice{
  background:#fff0f0 !important;
  border-color:#ffc7c7 !important;
  color:#8a1f1f !important;
}


/* V14 - Administrador sin pantalla propia */
.sidebar-bottom{
  margin-top:18px !important;
  padding-top:16px !important;
}
.sidebar-status{
  margin-top:16px !important;
  padding-top:14px !important;
}
.admin-only{
  display:none !important;
}
body.admin-mode .admin-only{
  display:inline-flex !important;
}
.admin-col{
  width:92px;
}
.admin-delete-btn{
  border:0;
  border-radius:9px;
  background:#ffe0e0;
  color:#a51f1f;
  border:1px solid #ffb7b7;
  font-family:Montserrat;
  font-weight:900;
  font-size:10.5px;
  padding:7px 10px;
  cursor:pointer;
  transition:transform .12s ease,filter .12s ease,box-shadow .12s ease;
}
.admin-delete-btn:hover{
  transform:translateY(-1px);
  filter:brightness(1.03);
  box-shadow:0 6px 12px rgba(165,31,31,.14);
}
.admin-delete-btn:active{
  transform:translateY(1px) scale(.985);
}
.btn.danger{
  background:#d71920 !important;
  color:#fff !important;
}


/* V15 - Administrador y versión justo debajo del último menú */
.sidebar{
  display:block !important;
  min-height:100vh;
  overflow-y:auto;
}
.sidebar-nav{
  flex:none !important;
  margin-bottom:0 !important;
}
.sidebar-bottom{
  margin-top:14px !important;
  padding-top:12px !important;
  position:static !important;
}
.admin-btn{
  min-height:50px !important;
}
.sidebar-status{
  margin-top:14px !important;
  padding-top:14px !important;
}


/* V17 - eliminación definitiva de bloques vacíos + WebFleet PKEY */
.screen > .empty-panel,
.screen > .module-empty,
.module:before{
  display:none !important;
  content:none !important;
}
.webfleet-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:9px;
  padding:6px 10px;
  font-size:10px;
  font-weight:900;
  background:#dff5ec;
  color:#147246;
  border:1px solid #b7e7d0;
  text-transform:uppercase;
  white-space:nowrap;
}
.webfleet-empty{display:inline-block;min-width:72px}
.km-unit{color:#60737c;font-size:11px;font-weight:700;margin-left:3px}
.toggle-row{display:flex;align-items:center;gap:12px;margin-top:6px}
.toggle{width:54px;height:30px;border-radius:999px;border:1px solid #cfdde1;background:#e7eef1;position:relative;cursor:pointer;transition:background .18s ease,border-color .18s ease}
.toggle:after{content:"";width:24px;height:24px;border-radius:50%;background:white;position:absolute;left:3px;top:2px;box-shadow:0 2px 6px rgba(19,43,54,.2);transition:left .18s ease}
.toggle.active{background:#8bbab1;border-color:#72aaa1}.toggle.active:after{left:26px}
.toggle-label{font-size:12px;font-weight:800;color:#43515a}
.notice{background:#eef8f6;border:1px solid #cde7e2;color:#244e48;border-radius:14px;padding:12px 14px;font-size:13px;font-weight:700;margin-bottom:16px}
.webfleet-sync-box{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.webfleet-sync-result{font-size:13px;font-weight:800;color:#43515a}
.km-field{position:relative}
.km-field input{padding-right:42px!important}
.km-field:after{content:"km";position:absolute;right:14px;top:34px;color:#60737c;font-size:12px;font-weight:800;text-transform:lowercase;pointer-events:none}


/* V29 - En la calle / mapa WebFleet */
.nav.color-calle:hover,.nav.color-calle.active{
  background:rgba(68,170,120,.22)!important;
  border-color:rgba(68,170,120,.48)!important;
}
.street-toolbar{
  display:grid;
  grid-template-columns: minmax(260px, 1fr) minmax(240px, 360px) minmax(260px, auto);
  gap:14px;
  align-items:end;
  margin:0 0 14px;
  background:#fff;
  border-radius:18px;
  padding:16px;
  box-shadow:0 8px 24px rgba(6,29,49,.06);
}
.street-toolbar label{
  font-size:11px;
  font-weight:900;
  color:#60737c;
  text-transform:uppercase;
}
.street-toolbar input,.street-toolbar select{
  width:100%;
  margin-top:6px;
}
.street-status{
  font-size:12px;
  font-weight:800;
  color:#48616b;
  background:#eef8f6;
  border:1px solid #d6ebe7;
  border-radius:12px;
  padding:12px 14px;
}
.street-layout{
  display:grid;
  grid-template-columns: minmax(600px, 1fr) 330px;
  gap:14px;
  height:calc(100vh - 220px);
  min-height:560px;
}
.street-map{
  min-height:560px;
  border-radius:20px;
  overflow:hidden;
  border:1px solid #dce7ea;
  box-shadow:0 10px 30px rgba(6,29,49,.08);
  background:#e9eef0;
}
.street-list{
  background:#fff;
  border-radius:20px;
  border:1px solid #e0eaed;
  box-shadow:0 10px 30px rgba(6,29,49,.06);
  overflow:auto;
  padding:10px;
}
.street-vehicle{
  border:1px solid #e1ebef;
  border-radius:14px;
  padding:11px 12px;
  margin-bottom:9px;
  cursor:pointer;
  transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease,background .12s ease;
}
.street-vehicle:hover{
  transform:translateY(-1px);
  border-color:#8bbab1;
  box-shadow:0 8px 18px rgba(6,29,49,.08);
  background:#f7fbfa;
}
.street-vehicle strong{
  display:block;
  font-size:13px;
  font-weight:900;
  color:#061d31;
}
.street-vehicle span{
  display:block;
  font-size:11px;
  font-weight:700;
  color:#60737c;
  margin-top:2px;
}
.street-marker{
  display:flex;
  align-items:center;
  justify-content:center;
  background:#8bbab1;
  border:3px solid #fff;
  color:#061d31;
  font-weight:900;
  font-size:10px;
  border-radius:999px;
  box-shadow:0 4px 12px rgba(6,29,49,.35);
  width:36px!important;
  height:36px!important;
}
.street-marker-label{
  background:#fff;
  color:#061d31;
  border:1px solid #bcd8d4;
  border-radius:10px;
  padding:5px 7px;
  font-family:Montserrat,Arial,sans-serif;
  font-size:11px;
  font-weight:900;
  box-shadow:0 4px 12px rgba(6,29,49,.15);
}
@media(max-width:1200px){
  .street-layout{grid-template-columns:1fr;height:auto}
  .street-map{height:620px}
  .street-toolbar{grid-template-columns:1fr}
}


/* V32 - Alertas detalladas estables sin romper dashboard */
.alert-cell{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
}
.alert-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:24px;
  border-radius:9px;
  padding:5px 9px;
  font-size:10.5px;
  font-weight:900;
  white-space:nowrap;
  line-height:1;
}
.alert-chip .alert-num{
  font-size:11px;
  font-weight:900;
}
.alert-chip.ok{
  background:#dff5ec;
  color:#147246;
  border:1px solid #b7e7d0;
}
.alert-chip.itv{
  background:#fff0d8;
  color:#8a4b00;
  border:1px solid #ffc66b;
}
.alert-chip.seguro{
  background:#e9f2ff;
  color:#164d8f;
  border:1px solid #b9d7ff;
}
.alert-chip.revision{
  background:#fff5c7;
  color:#7a5a00;
  border:1px solid #ead26b;
}
.alert-chip.danger{
  background:#ffe0e0;
  color:#a51f1f;
  border:1px solid #ffb7b7;
}


/* V37 - Firma dmpdigitals aislada bajo logo */
.dmp-brand-signature{
  width:100%;
  margin:10px auto 0;
  text-align:center;
  font-family:Montserrat, Arial, sans-serif;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
.dmp-brand-line{
  width:78%;
  max-width:176px;
  height:1px;
  background:linear-gradient(90deg, rgba(139,186,177,0), rgba(139,186,177,.72), rgba(139,186,177,0));
  box-shadow:0 0 8px rgba(139,186,177,.28);
}
.dmp-line-top{ margin:2px 0 9px; }
.dmp-line-bottom{ margin:9px 0 0; }
.dmp-brand-subtitle{
  color:#a8b5bd;
  font-size:11px;
  line-height:1.1;
  font-weight:700;
  letter-spacing:.1px;
  text-transform:none;
  white-space:nowrap;
}
.dmp-brand-name{
  margin-top:5px;
  font-size:20px;
  line-height:1;
  font-weight:900;
  font-family:Montserrat, Arial, sans-serif;
  letter-spacing:-.4px;
  text-transform:lowercase;
  white-space:nowrap;
}
.dmp-brand-name .dmp-white{ color:#fff; }
.dmp-brand-name .dmp-green{ color:#8bbab1; }


/* V39 - Actualizar APP global y carga parpadeante */
.global-app-loading{
  position:fixed;
  top:18px;
  right:190px;
  z-index:99999;
  display:none;
  color:#c40000;
  font-family:Montserrat,Arial,sans-serif;
  font-size:13px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.2px;
  background:#fff4f4;
  border:1px solid #ffb8b8;
  border-radius:12px;
  padding:10px 14px;
  box-shadow:0 8px 20px rgba(120,0,0,.12);
}
.global-app-loading.active{
  display:block;
  animation:blinkAppLoading .75s linear infinite;
}
@keyframes blinkAppLoading{
  0%,100%{opacity:1}
  50%{opacity:.25}
}
.btn-actualizar-app{
  background:#061d31!important;
  color:#fff!important;
  border:none!important;
  box-shadow:0 8px 18px rgba(6,29,49,.16);
}
.btn-actualizar-app:active{
  transform:scale(.97);
}


/* V41 - Dashboard: resumen por localización y empresa debajo de estado */
.dashboard-grid,
.dashboard-sections,
.dash-grid{
  align-items:start;
}
#dashEstado,
#resumenEstado,
[data-dashboard="estado"]{
  grid-column:1 / -1;
}
#dashLocalizacion,
#resumenLocalizacion,
[data-dashboard="localizacion"],
#dashEmpresa,
#resumenEmpresa,
[data-dashboard="empresa"]{
  grid-column:auto;
}
.summary-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:10px 0;
  border-bottom:1px solid #e3edf0;
}
.summary-row span,
.summary-row strong{
  font-weight:900;
}


/* V42 - Dashboard: estado + localización + empresa en columna derecha */
.dashboard-summary-v42{
  display:flex!important;
  flex-direction:column!important;
  gap:14px!important;
}
.dashboard-summary-v42 > *{
  width:100%!important;
}
.summary-list,
.dashboard-list{
  margin-top:12px;
}
.summary-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:10px 0;
  border-bottom:1px solid #e3edf0;
}
.summary-row span,
.summary-row strong{
  font-weight:900;
}


/* V44 - Dashboard definitivo: alertas izquierda, resúmenes apilados derecha */
.dashboard-grid-v44{
  display:grid!important;
  grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr)!important;
  gap:18px!important;
  align-items:start!important;
}
.dashboard-alerts-v44{
  grid-column:1!important;
  grid-row:1!important;
}
.dashboard-right-v44{
  grid-column:2!important;
  grid-row:1!important;
  display:flex!important;
  flex-direction:column!important;
  gap:18px!important;
}
.dashboard-right-v44 .panel{
  width:100%!important;
  min-height:auto!important;
}
@media(max-width:1100px){
  .dashboard-grid-v44{grid-template-columns:1fr!important}
  .dashboard-right-v44{grid-column:1!important}
}
