: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;
}

/* V47 - Avisos visuales en KPIs superiores de la ficha */
.kpi.kpi-alert-warn{
  border-color:#f28c28 !important;
  background:#fff8eb !important;
  animation:fichaKpiWarnBlink 1s linear infinite;
}
.kpi.kpi-alert-warn small,
.kpi.kpi-alert-warn strong{
  color:#a76200 !important;
}
.kpi.kpi-alert-danger{
  border-color:#d71920 !important;
  background:#fff1f1 !important;
  animation:fichaKpiDangerBlink .78s linear infinite;
}
.kpi.kpi-alert-danger small,
.kpi.kpi-alert-danger strong{
  color:#b42323 !important;
}
@keyframes fichaKpiWarnBlink{
  0%,45%{box-shadow:0 0 0 0 rgba(242,140,40,.18);filter:none}
  50%,100%{box-shadow:0 0 0 4px rgba(242,140,40,.22);filter:saturate(1.35)}
}
@keyframes fichaKpiDangerBlink{
  0%,45%{box-shadow:0 0 0 0 rgba(215,25,32,.22);filter:none}
  50%,100%{box-shadow:0 0 0 5px rgba(215,25,32,.3);filter:saturate(1.55)}
}
.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}

tbody tr.no-apto-row td{
  background:#d71920 !important;
  color:#fff !important;
  border-bottom-color:#b80f15 !important;
}
tbody tr.no-apto-row:hover td{
  background:#bd1016 !important;
}
tbody tr.no-apto-row td b,
tbody tr.no-apto-row .km-unit{
  color:#fff !important;
}
tbody tr.no-apto-row .badge.NO-APTO{
  background:#fff !important;
  color:#d71920 !important;
  border-color:#fff !important;
  box-shadow:0 0 0 1px rgba(255,255,255,.45);
}
tbody tr.no-apto-row .alert-cell{
  min-height:18px;
}

.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-historial:hover,.nav.color-historial.active{background:rgba(99,133,176,.22)!important;border-color:rgba(99,133,176,.48)!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 */
.screen > .empty-panel,
.screen > .module-empty,
.module:before{
  display:none !important;
  content:none !important;
}
.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}
.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}


/* 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;
}
.alert-chip.distribucion,
.alert-chip.cadena{
  background:#c80000;
  color:#fff;
  border:2px solid #ff5a5a;
  box-shadow:0 0 0 3px rgba(200,0,0,.12);
  animation:distributionBlink .8s steps(2,end) infinite;
}
.distribution-field.distribution-overdue,
.chain-field.distribution-overdue{
  color:#a40000!important;
  font-weight:900!important;
  animation:distributionFieldBlink .8s steps(2,end) infinite;
}
.distribution-field.distribution-overdue input,
.chain-field.distribution-overdue input{
  background:#c80000!important;
  color:#fff!important;
  border:2px solid #ff5656!important;
  box-shadow:0 0 0 4px rgba(200,0,0,.16)!important;
}
.field-alert-warn{
  color:#9a5f00!important;
  animation:fieldWarnBlink .95s steps(2,end) infinite;
}
.field-alert-warn input{
  background:#fff3d8!important;
  color:#8a4b00!important;
  border:2px solid #f28c28!important;
  box-shadow:0 0 0 4px rgba(242,140,40,.16)!important;
}
.field-alert-danger{
  color:#a40000!important;
  animation:distributionFieldBlink .8s steps(2,end) infinite;
}
.field-alert-danger input{
  background:#c80000!important;
  color:#fff!important;
  border:2px solid #ff5656!important;
  box-shadow:0 0 0 4px rgba(200,0,0,.16)!important;
}
@keyframes distributionBlink{0%,45%{opacity:1}50%,100%{opacity:.28}}
@keyframes distributionFieldBlink{0%,45%{opacity:1}50%,100%{opacity:.38}}
@keyframes fieldWarnBlink{0%,45%{opacity:1}50%,100%{opacity:.5}}
.alert.distribucion,.alert.cadena{background:#c80000!important;color:#fff!important;border-color:#ff5555!important;animation:distributionBlink .8s steps(2,end) infinite}
.alert.distribucion span,.alert.cadena span{color:#fff!important}


/* 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; }


/* Actualización global de datos 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-datos{
  background:#061d31!important;
  color:#fff!important;
  border:none!important;
  box-shadow:0 8px 18px rgba(6,29,49,.16);
}
.btn-actualizar-datos:active{
  transform:scale(.97);
}


/* V47.0.6 - Ajustes estéticos de ficha y formato homogéneo de kilómetros */
#ficha > .btn.secondary:first-child{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:0 0 18px 0;
  background:#f28c28 !important;
  color:#fff !important;
  border:1px solid #e27b16;
  box-shadow:0 8px 18px rgba(242,140,40,.22);
  position:relative;
  z-index:2;
}
#ficha > .btn.secondary:first-child:hover{
  background:#e87e18 !important;
}
#ficha > .form{
  margin-top:0;
}
.form-actions-top{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:16px;
  flex-wrap:wrap;
}
#saveBtnTop,
#altaSaveBtn{
  background:#d71920 !important;
  color:#fff !important;
  box-shadow:0 8px 18px rgba(215,25,32,.18);
}
#saveBtnTop:hover,
#altaSaveBtn:hover{
  background:#bd1218 !important;
}
.kpi strong .km-unit{
  font-size:11px;
  font-weight:800;
  margin-left:6px;
  color:#60737c;
  vertical-align:baseline;
}
.alert .km-unit,
.alert-chip .km-unit,
td .km-unit{
  font-size:.86em;
  font-weight:800;
  margin-left:4px;
  color:#60737c;
}


/* V47.0.7 - La ficha prioriza la identificación del vehículo */
#ficha .form-header h1{
  font-size:18px;
  line-height:1.15;
  font-weight:400;
  color:#425864;
  margin-bottom:6px;
}
#subFicha{
  margin-top:0;
  color:#0b4f8a;
  font-weight:900;
  line-height:1.12;
}
#subFicha .vehicle-code-title{
  font-size:25px;
  font-weight:900;
  letter-spacing:-.2px;
}
#subFicha .vehicle-title-detail{
  font-size:25px;
  font-weight:900;
}

#ficha .kpis.compact{
  gap:10px;
  margin-bottom:12px;
}
#ficha .kpis.compact .kpi{
  padding:7px 16px;
  min-height:54px;
  border-radius:15px;
}
#ficha .kpis.compact .kpi small{
  font-size:9px;
}
#ficha .kpis.compact .kpi strong{
  font-size:19px;
  margin-top:3px;
}
#ficha .kpis.compact .kpi strong .km-unit{
  font-size:9px;
  margin-left:4px;
}


/* 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}
}

/* V47 - Historial permanente de cambios */
.vehicle-history-section{margin-top:28px;padding-top:22px;border-top:1px solid #dce7ea}
.history-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}
.history-heading h2{margin:0}
.vehicle-history-body{display:block;margin-top:10px}
.vehicle-history-section.collapsed{display:none}
.history-list{display:flex;flex-direction:column;gap:12px;margin-top:14px}
.history-list>h3{margin:20px 0 2px;color:#061d31;font-size:15px}
.history-event{background:#fff;border:1px solid #dce7ea;border-radius:15px;padding:14px;box-shadow:0 6px 18px rgba(6,29,49,.05)}
.history-event header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:10px}
.history-event header div{display:flex;flex-direction:column;gap:3px}
.history-event header strong{font-size:13px;color:#061d31}
.history-event header span,.history-event time{font-size:11px;font-weight:700;color:#60737c}
.history-changes{display:flex;flex-direction:column;gap:7px}
.history-changes>div{display:grid;grid-template-columns:minmax(145px,.7fr) minmax(120px,1fr) 20px minmax(120px,1fr);gap:8px;align-items:center;background:#f6f9fa;border-radius:9px;padding:8px 10px;font-size:11px}
.history-before{color:#9a3f3f;text-decoration:line-through}
.history-after{color:#17694b;font-weight:800}
.history-arrow{text-align:center;color:#60737c;font-weight:900}
.history-no-changes{font-size:11px;color:#60737c;font-weight:700}
.history-source-km{border-left:6px solid #8bbab1}
.history-source-flota{border-left:6px solid #8b5cf6}
@media(max-width:760px){.history-event header{flex-direction:column}.history-changes>div{grid-template-columns:1fr}.history-arrow{text-align:left}}


/* V47 - Fotografía de vehículo compartida desde CONSULTA */
.ficha-top-panel{
  display:grid;
  grid-template-columns:minmax(220px,1fr) minmax(280px,390px);
  gap:18px;
  align-items:start;
  margin:-6px 0 14px;
}
.ficha-quick-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(180px,1fr));
  gap:12px;
  align-content:start;
  grid-column:1;
  grid-row:1;
}
.ficha-quick-actions .btn{
  --accent:#8bbab1;
  position:relative;
  overflow:hidden;
  min-height:48px;
  display:grid;
  grid-template-columns:34px minmax(0,1fr) 34px;
  align-items:center;
  gap:8px;
  text-align:center;
  background:#fff !important;
  color:#061d31 !important;
  border:1px solid #dbe7eb;
  box-shadow:0 8px 18px rgba(6,29,49,.08);
  transform:none;
  z-index:0;
}
.ficha-action-icon{
  width:28px;
  height:28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  justify-self:start;
  border-radius:9px;
  background:color-mix(in srgb,var(--accent) 16%,white);
  color:var(--accent);
  font-size:16px;
  font-weight:900;
  line-height:1;
  transition:background .18s ease,color .18s ease,transform .18s ease;
}
.ficha-action-label{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ficha-action-chevron{
  justify-self:end;
  width:26px;
  height:26px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  color:var(--accent);
  font-size:16px;
  font-weight:900;
  line-height:1;
  transition:transform .2s ease,color .18s ease,background .18s ease;
}
.ficha-quick-actions .btn::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:10px;
  background:var(--accent);
  opacity:1;
  z-index:-1;
  transition:width .22s ease, opacity .18s ease;
}
.ficha-quick-actions .btn::after{
  content:"";
  position:absolute;
  inset:0;
  background:var(--accent);
  transform:scaleX(0);
  transform-origin:left center;
  opacity:0;
  z-index:-1;
  pointer-events:none;
}
.ficha-quick-actions .btn:hover{
  background:#f7fbfc !important;
  color:#061d31 !important;
  transform:translateY(-4px) scale(1.012);
  box-shadow:0 16px 30px rgba(6,29,49,.18);
  border-color:var(--accent);
  filter:none;
}
.ficha-quick-actions .btn:hover::before{
  width:16px;
  opacity:1;
}
.ficha-quick-actions .btn:hover .ficha-action-icon{
  background:var(--accent);
  color:#fff;
  transform:scale(1.08);
}
.ficha-quick-actions .btn:hover .ficha-action-chevron{
  background:color-mix(in srgb,var(--accent) 14%,white);
}
.ficha-quick-actions .btn:active{
  transform:translateY(2px) scale(.985);
  box-shadow:0 5px 12px rgba(6,29,49,.16);
  background:#fff !important;
  color:#061d31 !important;
}
.ficha-quick-actions .btn:not(.ficha-action-no-fill):active::after,
.ficha-quick-actions .btn.is-filling::after{
  animation:buttonFillClick .42s cubic-bezier(.2,.8,.2,1) forwards;
  opacity:1;
}
.ficha-quick-actions .btn.is-filling,
.ficha-quick-actions .btn.is-filled{
  color:#fff !important;
}
.ficha-quick-actions .btn.is-filled{
  background:var(--accent) !important;
  border-color:var(--accent);
  box-shadow:0 12px 24px rgba(6,29,49,.18);
}
.ficha-quick-actions .btn.is-filled .ficha-action-icon,
.ficha-quick-actions .btn.is-filled .ficha-action-chevron{
  background:rgba(255,255,255,.18);
  color:#fff;
}
.ficha-quick-actions .btn.is-filled .ficha-action-chevron{
  transform:translateY(-1px);
}
.ficha-quick-actions .btn.is-filled::before{
  width:100%;
  opacity:1;
}
.ficha-quick-actions .btn.is-filled:hover{
  background:var(--accent) !important;
  color:#fff !important;
  filter:brightness(1.03);
}
.ficha-quick-actions .btn.is-filled::after{
  transform:scaleX(1);
  opacity:1;
}
@keyframes buttonFillClick{
  0%{transform:scaleX(0)}
  72%{transform:scaleX(1)}
  100%{transform:scaleX(1)}
}
.ficha-quick-actions .ficha-action-docs{
  --accent:#2d9cdb;
}
.ficha-quick-actions .ficha-action-history{
  --accent:#8b5cf6;
}
.ficha-quick-actions .ficha-action-save-revision{
  --accent:#f28c28;
}
.ficha-quick-actions .ficha-action-consult-revision{
  --accent:#2f9f66;
}
.ficha-top-details{
  grid-column:1 / -1;
  order:3;
}
.ficha-top-details .vehicle-history-section{
  margin:2px 0 8px;
  padding:16px 18px;
  border:1px solid #8b5cf6;
  border-radius:16px;
  background:#fff;
  box-shadow:0 8px 24px rgba(19,43,54,.06);
}
.ficha-top-details .vehicle-history-section.collapsed{
  display:none;
}
.ficha-top-details .history-heading{
  display:none;
}
.ficha-top-details .vehicle-history-body{
  margin-top:0;
}
.vehicle-revisions-panel{
  margin:2px 0 8px;
  padding:16px 18px;
  border:1px solid #2f9f66;
  border-radius:16px;
  background:#fff;
  box-shadow:0 8px 24px rgba(19,43,54,.06);
}
.vehicle-revisions-heading{
  margin:0 0 12px;
  color:#60737c;
  font-size:13px;
  font-weight:800;
  letter-spacing:.01em;
}
.revision-record-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.revision-record-row{
  width:100%;
  display:grid;
  grid-template-columns:72px 120px 112px minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  text-align:left;
  border:1px solid #dce7ea;
  border-left:6px solid #2f9f66;
  border-radius:12px;
  background:#f8fbfc;
  color:#061d31;
  padding:12px 14px;
  box-shadow:0 5px 14px rgba(6,29,49,.05);
}
.revision-record-row:hover{
  transform:translateY(-2px);
  background:#fff;
  box-shadow:0 12px 24px rgba(6,29,49,.12);
}
.revision-record-row:active{
  transform:translateY(1px) scale(.99);
}
.revision-record-row strong{
  color:#164d8f;
  font-size:14px;
  font-weight:900;
}
.revision-type-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  min-width:88px;
  border-radius:999px;
  padding:6px 10px;
  font-size:11px!important;
  font-weight:900!important;
}
.revision-type-badge.review{
  background:#e8f6ee;
  color:#17694b;
  border:1px solid #bfe9cf;
}
.revision-type-badge.repair{
  background:#fff2df;
  color:#a76200;
  border:1px solid #ffd49b;
}
.revision-record-row span,
.revision-record-row em{
  font-size:12px;
  font-style:normal;
  font-weight:800;
}
.revision-record-row em{
  color:#60737c;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.revision-row-actions{
  justify-content:flex-end;
}
.revision-inline-delete{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:78px;
  border-radius:10px;
  padding:8px 12px;
  background:#fff0f0;
  color:#b42323;
  border:1px solid #ffb6b6;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  cursor:pointer;
  transition:transform .16s ease,background .16s ease,box-shadow .16s ease;
}
.revision-inline-delete:hover{
  background:#d71920;
  color:#fff;
  box-shadow:0 10px 22px rgba(215,25,32,.22);
  transform:translateY(-1px);
}
.revision-inline-delete:active{
  transform:translateY(1px) scale(.98);
}
.admin-modal.active .revision-modal-card{
  width:min(780px,92vw) !important;
  max-width:780px !important;
}
.revision-modal-card form{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:13px;
  margin-top:14px;
}
.revision-choice-group{
  grid-column:1 / -1;
  display:flex;
  align-items:center;
  gap:10px;
  border:1px solid #dce7ea;
  border-radius:14px;
  padding:12px;
  margin:0;
  background:#f8fbfc;
}
.revision-choice-group legend{
  padding:0 6px;
  color:#60737c;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
}
.revision-choice-group label{
  flex:1;
  margin:0;
  cursor:pointer;
}
.revision-choice-group input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.revision-choice-group span{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  border:1px solid #dce7ea;
  border-radius:12px;
  background:#fff;
  color:#061d31;
  font-size:12px;
  font-weight:900;
  text-transform:none;
  transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.revision-choice-group input:checked+span{
  background:#2f9f66;
  border-color:#2f9f66;
  color:#fff;
  box-shadow:0 8px 18px rgba(47,159,102,.2);
}
.revision-choice-group label:hover span{
  transform:translateY(-1px);
  border-color:#8bbab1;
}
.revision-modal-card label{
  text-align:left;
}
.revision-modal-card textarea{
  min-height:230px;
  resize:vertical;
  text-transform:none;
}
.revision-modal-card label:has(textarea){
  grid-column:1 / -1;
}
.revision-modal-actions{
  grid-column:1 / -1;
  justify-content:flex-end;
}
.ficha-vehicle-photo{
  display:flex;
  justify-content:flex-end;
  margin:0;
  grid-column:2;
  grid-row:1;
}
.ficha-vehicle-photo.empty{
  display:none;
}
.ficha-vehicle-photo img{
  display:block;
  width:min(390px,100%);
  aspect-ratio:16/9;
  height:auto;
  object-fit:cover;
  border:0;
  border-radius:10px;
  background:transparent;
}
#ficha > .form > .actions,
#vehicleHistoryToggle{
  display:none !important;
}
@media(max-width:760px){
  .ficha-top-panel{grid-template-columns:1fr}
  .ficha-quick-actions{grid-template-columns:1fr}
  .ficha-vehicle-photo{justify-content:center;margin:0 0 14px}
  .ficha-vehicle-photo img{width:100%}
  .revision-record-row{grid-template-columns:1fr;gap:5px}
  .revision-modal-card form{grid-template-columns:1fr}
}
/* V47.0.30 - Capa de acceso independiente, sesiones y permisos tipo RRHH */
#syncStatus:empty{display:none}
body.flota-auth-locked{overflow:hidden;background:#071d35}
body.flota-auth-locked>.app{visibility:hidden;pointer-events:none}
.flota-login{position:fixed;inset:0;z-index:50000;display:none;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at 70% 18%,rgba(38,126,171,.2),transparent 34%),linear-gradient(145deg,#061b33,#031426 72%)}
body.flota-auth-locked .flota-login{display:flex}
.flota-login-card{width:min(410px,94vw);padding:31px;border:1px solid rgba(171,201,221,.2);border-radius:22px;background:rgba(249,252,255,.98);box-shadow:0 28px 85px rgba(0,0,0,.38)}
.flota-login-logo{width:142px;height:auto;display:block;margin:0 auto 20px}
.flota-login-card h1{margin:0 0 6px;color:#0a2342;font-size:23px;font-weight:750;text-align:center}
.flota-login-card>p{margin:0 0 23px;color:#66778b;font-size:12px;font-weight:450;line-height:1.55;text-align:center}
.flota-login-field{margin-top:14px}
.flota-login-field label{display:block;margin-bottom:7px;color:#5f7187;font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:.4px}
.flota-login-field input{width:100%;height:45px;border:1px solid #d3dfe9;border-radius:11px;background:#fff;padding:0 13px;color:#142b46;font:550 13px Montserrat,Arial,sans-serif;outline:none}
.flota-login-field input:focus{border-color:#3982c1;box-shadow:0 0 0 3px rgba(57,130,193,.12)}
.flota-secret-input{-webkit-text-security:disc}
.flota-login-message{min-height:18px;margin:12px 0 3px;color:#c93434;font-size:11px;font-weight:600;text-align:center}
.flota-login-submit{width:100%;justify-content:center;margin-top:8px}
.flota-session-strip{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 18px;color:#53677d;font-size:11px;font-weight:600}
.flota-session-self{display:flex;align-items:center;gap:8px}
.flota-session-avatar{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#e7f0f8;color:#165a91;font-size:9px;font-weight:800}
.flota-session-strip strong{color:#17324f}
.flota-session-logout{height:31px;padding:0 11px;border:1px solid #dce7f0;border-radius:999px;background:#fff;color:#64768a;font:650 10px Montserrat,Arial,sans-serif;cursor:pointer}
.flota-session-logout:hover{border-color:#efb8b8;background:#fff7f7;color:#b52b2b}
.flota-readonly-badge{padding:6px 9px;border-radius:999px;background:#fff1cf;color:#8a6200;font-size:9px;font-weight:900;text-transform:uppercase}
.flota-presence{min-width:0;display:flex;flex-flow:row nowrap;align-items:center;gap:8px;overflow-x:auto;overflow-y:hidden;white-space:nowrap;padding:2px 1px;scrollbar-width:thin}
.flota-presence-person{height:31px;flex:0 0 auto;display:flex;align-items:center;gap:6px;padding:3px 9px 3px 3px;border:1px solid #dce7f0;border-radius:999px;background:#fff;color:#40546b;font-size:10px;font-weight:650;box-shadow:0 3px 10px rgba(20,48,76,.04)}
.flota-presence-avatar{width:23px;height:23px;border-radius:50%;display:grid;place-items:center;font-size:9px;font-weight:850}
.flota-presence-empty{color:#8b98a7;font-size:10px}
.admin-only-nav{display:none!important}
body.admin-mode .admin-only-nav{display:flex!important}
.nav.color-accesos:hover,.nav.color-accesos.active{background:rgba(129,140,248,.20)!important;border-color:rgba(129,140,248,.48)!important}
.access-notice{margin-bottom:18px;padding:14px 16px;border:1px solid #bfe7d0;border-radius:14px;background:#effbf4;color:#27714a;font-size:12px}
.access-layout{display:grid;grid-template-columns:minmax(300px,.72fr) minmax(520px,1.28fr);gap:18px;align-items:start}
.access-form-card,.access-list-card,.access-sessions-card{padding:22px}
.access-form-card p,.access-list-card p,.access-sessions-head p{margin:4px 0 17px;color:var(--muted);font-size:12px;font-weight:600}
.access-form-card label{display:block;margin-top:13px}
.access-form-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px}
#accessMessage{font-size:11px;font-weight:700}
.access-row{display:grid;grid-template-columns:minmax(130px,1fr) 70px 86px 90px minmax(235px,auto);gap:10px;align-items:center;padding:11px 4px;border-top:1px solid var(--line);font-size:11px}
.access-row.head{border:0;color:var(--muted);font-size:9px;font-weight:900;text-transform:uppercase}
.access-code{font-weight:900;letter-spacing:.12em}
.access-state,.access-permission{width:max-content;padding:5px 8px;border-radius:999px;background:#e5f8ec;color:#15803d;font-size:9px;font-weight:850;text-transform:uppercase}
.access-state.inactive,.access-state.blocked{background:#feecec;color:#b42323}
.access-permission.readonly{background:#fff1cf;color:#8a6200}
.access-actions{display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-end}
.access-actions button,.access-kick{border:0;border-radius:8px;padding:7px 9px;font:700 9px Montserrat,Arial,sans-serif;cursor:pointer;background:#edf3f7;color:#365064}
.access-actions .danger,.access-kick{background:#feecec;color:#b42323}
.access-sessions-card{margin-top:18px}
.access-sessions-head{display:flex;align-items:center;justify-content:space-between;gap:15px}
.access-session-row{display:grid;grid-template-columns:minmax(160px,1fr) 145px 145px 90px 90px;gap:12px;align-items:center;padding:11px 4px;border-top:1px solid var(--line);font-size:11px}
.access-session-row.head{border-top:0;color:var(--muted);font-size:9px;font-weight:900;text-transform:uppercase}
body.flota-readonly-mode #saveBtnTop,body.flota-readonly-mode #altaSaveBtn,body.flota-readonly-mode .nav[data-screen="alta"],body.flota-readonly-mode [onclick="openSaveRevisionModal()"]{display:none!important}
@media(max-width:1050px){.flota-session-strip{align-items:flex-start;flex-direction:column-reverse}.flota-presence{width:100%}.access-layout{grid-template-columns:1fr}.access-row{grid-template-columns:1fr 70px}.access-row.head{display:none}.access-actions{grid-column:1/-1;justify-content:flex-start}.access-session-row{grid-template-columns:1fr}.access-session-row.head{display:none}}

/* V47.0.35 - Menú lateral fijo y desplazamiento independiente */
html,body{height:100%}
body{overflow:hidden}
.app{height:100vh;min-height:0;overflow:hidden}
.sidebar{
  height:100vh!important;
  min-height:0!important;
  flex:0 0 290px;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.main{
  height:100vh;
  min-width:0;
  min-height:0;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
}
