*{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;background:#f4f7fb;color:#172033}.login-body{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#081b35,#173d68)}.login-card{width:min(420px,92vw);background:#fff;padding:38px;border-radius:18px;box-shadow:0 24px 70px #0005}.brand-mark{width:58px;height:58px;border-radius:15px;background:#0d2b4f;color:white;display:grid;place-items:center;font-size:30px;font-weight:800}.login-card h1{margin:18px 0 4px;font-size:34px}.login-card p{margin:0 0 26px;color:#68758a;font-size:13px;font-weight:700}.login-card label{display:block;margin:15px 0 7px;font-size:12px;font-weight:800}.login-card input{width:100%;padding:13px;border:1px solid #cfd8e6;border-radius:8px;font-size:16px}.login-card button{width:100%;margin:22px 0;padding:14px;border:0;border-radius:8px;background:#0d2b4f;color:#fff;font-weight:800;cursor:pointer}.login-card small{color:#8b96a8}.error{padding:11px;background:#fff0f0;color:#a21d1d;border-radius:8px;font-size:12px;font-weight:700}.sidebar{position:fixed;inset:0 auto 0 0;width:245px;background:#0b2340;color:#fff;padding:25px 18px;display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain}.logo{font-size:25px;font-weight:900;letter-spacing:2px}.userbox{padding:22px 0;border-bottom:1px solid #ffffff20;display:flex;flex-direction:column;gap:5px}.userbox span{font-size:11px;color:#b8c7da}.sidebar nav{display:flex;flex-direction:column;gap:7px;margin-top:24px;flex:0 0 auto}.sidebar a{padding:12px;border-radius:8px;color:#dce7f5;text-decoration:none;font-size:13px;font-weight:700}.sidebar a.active{background:#1a4d7f;color:#fff}.sidebar a.disabled{opacity:.48}.logout{margin-top:18px;flex-shrink:0;width:100%;padding:11px;background:transparent;border:1px solid #ffffff40;color:#fff;border-radius:8px;cursor:pointer}.content{margin-left:245px;padding:30px}.content header{display:flex;justify-content:space-between;align-items:center}.content h1{margin:0;font-size:25px}.content header p{color:#7b8799;font-size:13px}.content header span{font-weight:800;color:#55718f}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:28px 0}.cards article,.panel{background:#fff;border:1px solid #e1e7ef;border-radius:12px;padding:22px}.cards strong{display:block;font-size:30px;color:#0d2b4f}.cards span{font-size:11px;font-weight:800;color:#738198}.panel h2{font-size:16px}.muted{color:#7b8799}@media(max-width:850px){.sidebar{width:190px}.content{margin-left:190px}.cards{grid-template-columns:1fr 1fr}}@media(max-width:600px){.sidebar{position:static;width:100%;min-height:auto}.content{margin:0}.cards{grid-template-columns:1fr}}
.navlabel{font-size:10px;letter-spacing:1.2px;color:#7890aa;margin:18px 12px 4px}.gridform{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:15px}.gridform label{font-size:11px;font-weight:800;color:#56657a}.gridform input,.gridform select,table input{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid #ccd7e5;border-radius:7px;background:#fff}.gridform button{align-self:end;padding:11px 16px;background:#0d2b4f;color:#fff;border:0;border-radius:8px;font-weight:800;cursor:pointer}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;color:#64748b;background:#f7f9fc;padding:11px;border-bottom:1px solid #dfe6ef;white-space:nowrap}td{padding:10px;border-bottom:1px solid #edf1f6;vertical-align:middle;white-space:nowrap}.badge{padding:5px 8px;border-radius:999px;font-size:10px;font-weight:900}.badge.ok{background:#e8f7ee;color:#187443}.badge.off{background:#f0f2f5;color:#667085}.small,.btn.small{padding:7px 9px;border:1px solid #cbd6e4;border-radius:6px;background:#fff;color:#183a60;font-size:10px;font-weight:800;text-decoration:none;cursor:pointer}.actions{display:flex;gap:6px}.actions form{margin:0}.panel+.panel{margin-top:18px}@media(max-width:1000px){.gridform{grid-template-columns:1fr 1fr}}@media(max-width:650px){.gridform{grid-template-columns:1fr}}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px}.toolbar h2{margin:0}.toolbar form{margin:0}.toolbar button,.primary{padding:10px 14px;background:#0d2b4f;color:#fff;border:0;border-radius:7px;font-weight:800;cursor:pointer}.badge.warn{background:#fff4d6;color:#946200}.uploadbox{display:block;border:2px dashed #cbd6e4;border-radius:10px;padding:24px;margin:18px 0;font-size:12px;font-weight:800;color:#56657a}.uploadbox input{display:block;margin-top:12px}textarea{width:100%;margin-top:6px;padding:10px;border:1px solid #ccd7e5;border-radius:7px;font:inherit}

.notice{padding:12px 15px;border-radius:8px;margin:0 0 16px;font-size:12px;font-weight:800}
.notice.success{background:#e8f7ee;color:#187443;border:1px solid #bfe5cd}
.notice.danger{background:#fff0f0;color:#a21d1d;border:1px solid #f0c7c7}
.badge.danger{background:#fff0f0;color:#a21d1d}
.cards.compact{margin:18px 0 0}.cards.compact article{padding:14px}.cards.compact strong{font-size:21px}
.projectdata{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}
.projectdata div{background:#f7f9fc;border:1px solid #e1e7ef;border-radius:8px;padding:11px}
.projectdata b{display:block;font-size:9px;color:#718096;margin-bottom:5px}.projectdata span{font-size:12px;font-weight:700}
.semades-panel{padding:14px}.semades{min-width:2100px}.semades th{font-size:10px}.semades td{white-space:normal;min-width:95px}
.semades td.locked{background:#f1f4f8;color:#465568}.semades textarea{min-width:220px;resize:vertical}
.semades input{min-width:105px}.semades .row-error{box-shadow:inset 3px 0 #b42318}
.cell-errors{max-width:180px;margin-top:6px;font-size:9px;white-space:normal;color:#a21d1d;font-weight:700}
@media(max-width:1000px){.projectdata{grid-template-columns:1fr 1fr}}

.preview-sheet{max-width:1200px;margin-left:auto;margin-right:auto}
.preview-head{text-align:center;display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.preview-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
.preview-grid div{border:1px solid #dfe6ef;padding:9px;border-radius:6px}
.preview-grid b{display:block;font-size:9px;color:#667085;margin-bottom:4px}.preview-grid span{font-size:12px;font-weight:700}
.preview-concept{margin-top:12px;border:1px solid #dfe6ef;border-radius:7px;padding:12px}.preview-concept b{font-size:10px;color:#667085}.preview-concept p{margin:5px 0 12px;white-space:pre-wrap}
td.wrap{white-space:normal;min-width:260px;max-width:420px}

.report-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}.cell-sub{font-size:9px;color:#7b8799;margin-top:3px}.audit-value{white-space:normal;min-width:180px;max-width:360px;word-break:break-word}

/* V1.3 - MOTOR DE PLANTILLAS EXCEL */
.template-import{margin-top:18px;align-items:end}.mapping-grid{display:grid;grid-template-columns:repeat(3,minmax(210px,1fr));gap:10px;margin-top:16px}.mapping-grid label{border:1px solid #e1e7ef;border-radius:8px;padding:10px;background:#f9fbfd}.mapping-grid label span{display:block;font-size:10px;font-weight:900;color:#44546a}.mapping-grid input{width:100%;margin:6px 0 3px;padding:8px;border:1px solid #cbd6e4;border-radius:6px;font-family:monospace;text-transform:uppercase}.mapping-grid small{font-size:9px;color:#8a96a8}.excel-grid-wrap{overflow:auto;max-height:600px;border:1px solid #dfe6ef;border-radius:8px}.excel-grid{width:auto;min-width:1800px}.excel-grid td{min-width:105px;max-width:220px;height:56px;padding:5px;white-space:normal;border:1px solid #e5eaf1;vertical-align:top;background:white}.excel-grid td b{display:block;font-size:8px;color:#8a96a8;margin-bottom:4px}.excel-grid td span{font-size:9px;word-break:break-word}.excel-grid tr:nth-child(even) td{background:#fbfcfe}@media(max-width:1000px){.mapping-grid{grid-template-columns:1fr 1fr}}@media(max-width:650px){.mapping-grid{grid-template-columns:1fr}}

/* V1.4.3 - MEJORAS DE VISUALIZACION */
.programa-presupuestario-cell{min-width:430px}
.programa-presupuestario-input{min-width:410px;font-family:Arial,sans-serif}


/* V1.5.3 - REVISIÓN DEL PADRÓN: DESPLAZAMIENTO Y COLUMNAS FIJAS */
.padron-tablewrap{
  overflow:auto;
  max-height:calc(100vh - 285px);
  border:1px solid #e1e7ef;
  border-radius:8px;
  scrollbar-gutter:stable;
}
.padron-table{min-width:2100px}
.padron-table thead th{position:sticky;top:0;z-index:8;background:#f7f9fc}
.padron-table th:nth-child(1),.padron-table td:nth-child(1){position:sticky;left:0;z-index:5;width:88px;min-width:88px;max-width:88px;background:#fff;text-align:center}
.padron-table th:nth-child(2),.padron-table td:nth-child(2){position:sticky;left:88px;z-index:5;width:95px;min-width:95px;max-width:95px;background:#fff}
.padron-table th:nth-child(3),.padron-table td:nth-child(3){position:sticky;left:183px;z-index:5;width:190px;min-width:190px;max-width:190px;background:#fff;box-shadow:4px 0 6px -5px #667085}
.padron-table thead th:nth-child(1),.padron-table thead th:nth-child(2),.padron-table thead th:nth-child(3){z-index:12;background:#f7f9fc}
.padron-table tbody tr:hover td{background:#f8fbff}
.padron-table tbody tr:hover td:nth-child(-n+3){background:#f8fbff}

/* V1.5.4 - CRUCE MÓVIL/NÚMERO ECONÓMICO Y REVISIÓN EN UNA SOLA PANTALLA */
.padron-review-panel{height:calc(100vh - 150px);min-height:520px;overflow:hidden;padding:16px 20px}
.padron-review-form{height:100%;display:flex;flex-direction:column;min-height:0}
.padron-review-top{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex:0 0 auto}
.padron-review-top h2{margin:0 0 5px}
.padron-review-top p{margin:0;font-size:12px}
.padron-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.padron-confirm{flex:0 0 auto;white-space:nowrap;margin-top:0}
.padron-review-note{margin:8px 0;font-size:11px;flex:0 0 auto}
.padron-pending{flex:0 0 auto;border:1px solid #ead9a1;background:#fffaf0;border-radius:7px;margin:0 0 8px;max-height:150px;overflow:auto}
.padron-pending summary{cursor:pointer;padding:8px 10px;font-size:11px;font-weight:900;color:#7a5600;position:sticky;top:0;background:#fffaf0;z-index:3}
.padron-pending-scroll{max-height:105px;overflow:auto;padding:0 8px 8px}
.padron-pending table{font-size:10px}
.padron-pending th,.padron-pending td{padding:6px}
.padron-review-panel .padron-tablewrap{flex:1 1 auto;min-height:0;max-height:none;margin:0}
@media(max-height:700px){.padron-review-panel{height:calc(100vh - 120px);min-height:430px}.padron-review-note{display:none}.padron-badges{margin-top:5px}.padron-pending{max-height:110px}.padron-pending-scroll{max-height:70px}}

/* V1.5.9: catálogo de vehículos con desplazamiento interno y encabezados visibles */
.vehiculos-list-panel{overflow:hidden}
.vehiculos-tablewrap{
  max-height:60vh;
  min-height:360px;
  overflow:auto;
  border:1px solid #e2e8f0;
  border-radius:8px;
}
.vehiculos-table{min-width:1500px}
.vehiculos-table thead th{
  position:sticky;
  top:0;
  z-index:9;
  background:#f7f9fc;
  box-shadow:0 1px 0 #dfe6ef;
}
.vehiculos-table tbody tr:hover td{background:#f8fbff}
.padron-table tr.row-needs-dir td{background:#fff4f2 !important}
.padron-table tr.row-needs-dir select.padron-dir{border-color:#c43d32;background:#fff7f5}

/* V1.5.13 · importador de cargas con desplazamiento interno */
.import-loads-wrap{max-height:62vh;overflow:auto;border:1px solid #d9dee7;border-radius:10px;position:relative;margin-bottom:14px}
.import-loads-table{min-width:1900px;margin:0}
.import-loads-table thead th{position:sticky;top:0;z-index:5;background:#f4f6f9;box-shadow:0 1px 0 #d9dee7}
.import-loads-table th:first-child,.import-loads-table td:first-child{position:sticky;left:0;z-index:3;background:#fff}
.import-loads-table thead th:first-child{z-index:7;background:#f4f6f9}

/* V1.5.18 · corrección de detección de duplicados en importación histórica */
.import-review-panel{overflow:hidden}
.import-review-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin:8px 0 10px}
.import-review-summary{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;font-weight:800;color:#56657a}
.import-review-actions{display:flex;gap:7px}
.import-loads-wrap{height:62vh;max-height:62vh;min-height:360px;overflow:auto;border:1px solid #d9dee7;border-radius:10px;position:relative;margin-bottom:12px;overscroll-behavior:contain}
.import-loads-table{width:max-content;min-width:1900px;margin:0}
.import-loads-table thead th{position:sticky;top:0;z-index:8;background:#f4f6f9;box-shadow:0 1px 0 #d9dee7}
.import-loads-table th:first-child,.import-loads-table td:first-child{position:sticky;left:0;z-index:5;background:#fff}
.import-loads-table thead th:first-child{z-index:10;background:#f4f6f9}
.import-loads-table tr.row-import-error td{background:#fff4f2}
.import-loads-table tr.row-import-error td:first-child{background:#fff4f2}
.import-review-footer{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.import-review-footer button:disabled{opacity:.5;cursor:not-allowed}
.oktext{color:#187443}.badtext{color:#b42318;font-size:11px;font-weight:800}

/* V1.5.19 · filtros de reportes toleran campos vacíos */


/* V1.5.29 · CARGAS: desplazamiento horizontal interno siempre accesible */
.cargas-list-panel{overflow:hidden}
.cargas-scroll-note{margin:0 0 10px;font-size:11px;font-weight:700}
.cargas-tablewrap{height:62vh;max-height:62vh;min-height:360px;overflow:auto;border:1px solid #dfe6ef;border-radius:9px;position:relative;overscroll-behavior:contain;scrollbar-gutter:stable}
.cargas-table{width:max-content;min-width:1850px;margin:0}
.cargas-table thead th{position:sticky;top:0;z-index:8;background:#f7f9fc;box-shadow:0 1px 0 #dfe6ef}
.cargas-table th:first-child,.cargas-table td:first-child{position:sticky;left:0;z-index:5;background:#fff}
.cargas-table thead th:first-child{z-index:10;background:#f7f9fc}
.cargas-table tbody tr:hover td{background:#f8fbff}
.cargas-table tbody tr:hover td:first-child{background:#f8fbff}
@media(max-height:700px){.cargas-tablewrap{height:55vh;min-height:300px}}

/* V1.5.35 · BUSCADOR EN CARGAS REGISTRADAS */
.cargas-buscador{display:flex;align-items:end;gap:8px;flex-wrap:wrap;margin:8px 0 10px}
.cargas-buscador label{min-width:320px;max-width:520px;flex:1;font-size:11px;font-weight:800;color:#56657a}
.cargas-buscador input{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid #ccd7e5;border-radius:7px;background:#fff}
.cargas-buscador button,.cargas-buscador .btn{padding:10px 14px;border-radius:7px;font-size:11px;font-weight:800;text-decoration:none;cursor:pointer}
.cargas-buscador button{border:0;background:#0d2b4f;color:#fff}
.cargas-buscador .btn{border:1px solid #cbd6e4;background:#fff;color:#183a60}

/* V1.5.42 - conciliacion: control FUERA DE MES visible junto al resultado */
.conciliacion-tablewrap{overflow:auto;scrollbar-gutter:stable}
.fuera-mes-form{margin:0}
.fuera-mes-label{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;cursor:pointer;font-size:11px;font-weight:800;color:#183a60}
table input.fuera-mes-check{display:inline-block;width:auto;margin:0;padding:0;vertical-align:middle}


/* V1.5.44 · CONCILIACIÓN: desplazamiento interno real + encabezados fijos */
.conciliacion-tablewrap{
  height:calc(100vh - 390px);
  max-height:60vh;
  min-height:320px;
  overflow:auto !important;
  border:1px solid #dfe6ef;
  border-radius:9px;
  position:relative;
  padding:0 !important;
  overscroll-behavior:contain;
  scrollbar-gutter:stable both-edges;
}
.conciliacion-table{
  width:max-content;
  min-width:1750px;
  margin:0;
}
.conciliacion-table thead th{
  position:sticky;
  top:0;
  z-index:10;
  background:#f7f9fc;
  box-shadow:0 1px 0 #dfe6ef;
}
.conciliacion-table tbody tr:hover td{background:#f8fbff}
@media(max-height:700px){
  .conciliacion-tablewrap{height:45vh;min-height:280px}
}


/* V1.5.45 · BITÁCORAS: pantallas compactas con desplazamiento interno */
.bitacoras-generadas-panel{overflow:hidden;padding:12px 20px}
.bitacoras-generadas-wrap{
  height:calc(100vh - 255px);
  max-height:calc(100vh - 255px);
  min-height:320px;
  overflow:auto;
  border:1px solid #dfe6ef;
  border-radius:8px;
  position:relative;
  overscroll-behavior:contain;
  scrollbar-gutter:stable both-edges;
}
.bitacoras-generadas-table{width:max-content;min-width:1450px;margin:0}
.bitacoras-generadas-table thead th{position:sticky;top:0;z-index:10;background:#f7f9fc;box-shadow:0 1px 0 #dfe6ef}

.plantillas-top-panel{padding:14px 20px}
.plantillas-top-panel h2{margin:0;font-size:15px}
.plantillas-top-panel .muted{font-size:11px;margin:5px 0 0}
.plantillas-top-panel .template-import{margin-top:10px;gap:10px}
.plantillas-top-panel .template-import label{font-size:10px}
.plantillas-top-panel .template-import input{padding:8px;margin-top:4px}
.plantillas-top-panel .template-import button{padding:9px 14px}
.plantillas-top-panel .notice{padding:8px 12px;margin:0;font-size:10px}
.plantillas-list-panel{overflow:hidden;padding:12px 20px}
.plantillas-list-panel h2{margin:0 0 8px;font-size:15px}
.plantillas-tablewrap{
  height:calc(100vh - 370px);
  max-height:calc(100vh - 370px);
  min-height:300px;
  overflow:auto;
  border:1px solid #dfe6ef;
  border-radius:8px;
  position:relative;
  overscroll-behavior:contain;
  scrollbar-gutter:stable both-edges;
}
.plantillas-table{width:max-content;min-width:1350px;margin:0}
.plantillas-table thead th{position:sticky;top:0;z-index:10;background:#f7f9fc;box-shadow:0 1px 0 #dfe6ef}
@media(max-height:700px){
  .bitacoras-generadas-wrap{height:calc(100vh - 225px);max-height:calc(100vh - 225px);min-height:260px}
  .plantillas-tablewrap{height:calc(100vh - 330px);max-height:calc(100vh - 330px);min-height:240px}
}


/* V1.5.46 · SCROLL INTERNO REAL EN BITÁCORAS Y PLANTILLAS */
.bitacoras-generadas-page, .plantillas-page{
  height:calc(100vh - 118px);
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.bitacoras-generadas-page > .panel:first-child{flex:0 0 auto;margin-bottom:18px}
.bitacoras-generadas-page > .bitacoras-generadas-panel{
  flex:1 1 auto;
  min-height:0;
  margin-top:0;
  display:flex;
  flex-direction:column;
}
.bitacoras-generadas-page .bitacoras-generadas-wrap{
  flex:1 1 auto;
  min-height:0;
  height:auto;
  max-height:none;
  overflow:auto;
}
.project-toggle{
  border:0;
  background:transparent;
  color:#183a60;
  padding:0;
  font:inherit;
  font-weight:800;
  cursor:pointer;
  text-align:left;
  white-space:nowrap;
}
.project-toggle:hover{text-decoration:underline}

.plantillas-page > .plantillas-top-panel{flex:0 0 auto;margin-bottom:18px}
.plantillas-page > .plantillas-list-panel{
  flex:1 1 auto;
  min-height:0;
  margin-top:0;
  display:flex;
  flex-direction:column;
}
.plantillas-page .plantillas-tablewrap{
  flex:1 1 auto;
  min-height:0;
  height:auto;
  max-height:none;
  overflow:auto;
}
@media(max-height:700px){
  .bitacoras-generadas-page,.plantillas-page{height:calc(100vh - 96px)}
}


/* V1.5.47 · BLOQUEO DEL SCROLL GENERAL EN VISTAS DE BITÁCORAS */
body.bitacoras-fixed-view,
body.plantillas-fixed-view{
  height:100vh;
  overflow:hidden !important;
}
body.bitacoras-fixed-view .content,
body.plantillas-fixed-view .content{
  height:100vh;
  min-height:0;
  overflow:hidden !important;
  display:flex;
  flex-direction:column;
}
body.bitacoras-fixed-view .content > header,
body.plantillas-fixed-view .content > header{
  flex:0 0 auto;
}
body.bitacoras-fixed-view .bitacoras-generadas-page,
body.plantillas-fixed-view .plantillas-page{
  flex:1 1 auto;
  height:auto !important;
  min-height:0;
  overflow:hidden !important;
}
body.bitacoras-fixed-view .bitacoras-generadas-panel,
body.plantillas-fixed-view .plantillas-list-panel{
  flex:1 1 0;
  min-height:0;
  overflow:hidden !important;
}
body.bitacoras-fixed-view .bitacoras-generadas-wrap,
body.plantillas-fixed-view .plantillas-tablewrap{
  flex:1 1 0;
  height:0 !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:auto !important;
  position:relative;
  overscroll-behavior:contain;
}
body.bitacoras-fixed-view .bitacoras-generadas-table thead th,
body.plantillas-fixed-view .plantillas-table thead th{
  position:sticky !important;
  top:0 !important;
  z-index:30 !important;
  background:#f7f9fc !important;
}


/* V1.5.48 · CORRECCIÓN DEFINITIVA: EL DOCUMENTO NO DESPLAZA; SOLO LA TABLA */
html:has(body.bitacoras-fixed-view),
html:has(body.plantillas-fixed-view){
  height:100%;
  overflow:hidden !important;
}
body.bitacoras-fixed-view,
body.plantillas-fixed-view{
  position:fixed !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  overflow:hidden !important;
}
body.bitacoras-fixed-view .content,
body.plantillas-fixed-view .content{
  position:absolute !important;
  top:0 !important;
  right:0 !important;
  bottom:0 !important;
  left:245px !important;
  margin-left:0 !important;
  width:auto !important;
  height:auto !important;
  min-height:0 !important;
  overflow:hidden !important;
  display:flex !important;
  flex-direction:column !important;
}
body.bitacoras-fixed-view .bitacoras-generadas-page,
body.plantillas-fixed-view .plantillas-page{
  flex:1 1 0 !important;
  min-height:0 !important;
  height:0 !important;
  overflow:hidden !important;
  display:flex !important;
  flex-direction:column !important;
}
body.bitacoras-fixed-view .bitacoras-generadas-panel,
body.plantillas-fixed-view .plantillas-list-panel{
  flex:1 1 0 !important;
  min-height:0 !important;
  height:0 !important;
  overflow:hidden !important;
  display:flex !important;
  flex-direction:column !important;
}
body.bitacoras-fixed-view .bitacoras-generadas-wrap,
body.plantillas-fixed-view .plantillas-tablewrap{
  flex:1 1 0 !important;
  min-height:0 !important;
  height:0 !important;
  max-height:none !important;
  overflow:auto !important;
}
body.bitacoras-fixed-view .bitacoras-generadas-table thead th,
body.plantillas-fixed-view .plantillas-table thead th{
  position:sticky !important;
  top:0 !important;
  z-index:50 !important;
  background:#f7f9fc !important;
}
@media(max-width:850px){
  body.bitacoras-fixed-view .content,
  body.plantillas-fixed-view .content{left:190px !important}
}


/* V1.5.49 · CATÁLOGOS FIJOS: EL DOCUMENTO NO SE MUEVE; SOLO LAS LISTAS */
html:has(body.catalog-fixed-view){height:100%;overflow:hidden !important}
body.catalog-fixed-view{
  position:fixed !important;inset:0 !important;width:100% !important;height:100% !important;
  overflow:hidden !important;
}
body.catalog-fixed-view .content{
  position:absolute !important;top:0 !important;right:0 !important;bottom:0 !important;left:245px !important;
  margin-left:0 !important;width:auto !important;height:auto !important;min-height:0 !important;
  overflow:hidden !important;display:flex !important;flex-direction:column !important;
}
body.catalog-fixed-view .content > header{flex:0 0 auto}
body.catalog-fixed-view .catalog-fixed-page{
  flex:1 1 0 !important;height:0 !important;min-height:0 !important;overflow:hidden !important;
  display:flex !important;flex-direction:column !important;
}
body.catalog-fixed-view .catalog-fixed-page > .catalog-top-panel,
body.catalog-fixed-view .catalog-fixed-page > .panel:not(.catalog-list-panel){flex:0 0 auto}
body.catalog-fixed-view .catalog-list-panel{
  flex:1 1 0 !important;height:0 !important;min-height:0 !important;overflow:hidden !important;
  display:flex !important;flex-direction:column !important;
}
body.catalog-fixed-view .catalog-list-panel > h2,
body.catalog-fixed-view .catalog-list-panel > .toolbar,
body.catalog-fixed-view .catalog-list-panel > p{flex:0 0 auto}
body.catalog-fixed-view .catalog-tablewrap{
  flex:1 1 0 !important;height:0 !important;min-height:0 !important;max-height:none !important;
  overflow:auto !important;position:relative;overscroll-behavior:contain;scrollbar-gutter:stable both-edges;
  border:1px solid #dfe6ef;border-radius:8px;
}
body.catalog-fixed-view .catalog-tablewrap table thead th{
  position:sticky !important;top:0 !important;z-index:50 !important;background:#f7f9fc !important;
  box-shadow:0 1px 0 #dfe6ef;
}
/* VEHÍCULOS: formulario superior más compacto para ganar área de padrón */
body.catalog-fixed-view .vehiculo-new-panel{padding:12px 18px}
body.catalog-fixed-view .vehiculo-new-panel h2{margin:0 0 8px;font-size:14px}
body.catalog-fixed-view .vehiculo-new-panel .gridform{grid-template-columns:repeat(4,minmax(150px,1fr));gap:8px 12px}
body.catalog-fixed-view .vehiculo-new-panel .gridform label{font-size:10px}
body.catalog-fixed-view .vehiculo-new-panel .gridform input,
body.catalog-fixed-view .vehiculo-new-panel .gridform select{margin-top:3px;padding:7px}
body.catalog-fixed-view .vehiculo-new-panel .gridform button{padding:8px 12px}
body.catalog-fixed-view .vehiculo-new-panel .checklabel small{font-size:8px;line-height:1.15}
body.catalog-fixed-view .vehiculos-list-panel{padding:12px 18px}
body.catalog-fixed-view .vehiculos-list-panel .toolbar label{font-size:10px}
body.catalog-fixed-view .vehiculos-list-panel .toolbar input{padding:7px;margin-top:3px}
/* USUARIOS: lista preparada para crecer sin mover la página */
body.catalog-fixed-view .usuario-new-panel{padding:14px 18px}
body.catalog-fixed-view .usuario-new-panel h2{margin:0 0 8px;font-size:14px}
body.catalog-fixed-view .usuario-new-panel .gridform{gap:9px 12px}
body.catalog-fixed-view .usuario-new-panel .gridform input,
body.catalog-fixed-view .usuario-new-panel .gridform select{padding:7px;margin-top:3px}
body.catalog-fixed-view .usuario-new-panel .gridform button{padding:8px 12px}
@media(max-width:1200px){body.catalog-fixed-view .vehiculo-new-panel .gridform{grid-template-columns:repeat(3,minmax(150px,1fr))}}
@media(max-width:850px){body.catalog-fixed-view .content{left:190px !important}}
\n\n/* V1.5.50 · CATÁLOGOS MÁS COMPACTOS + POSICIÓN DEL MENÚ LATERAL PERSISTENTE */\nbody.catalog-fixed-view .content{padding:18px 24px !important}\nbody.catalog-fixed-view .content > header{min-height:54px}\nbody.catalog-fixed-view .content header p{margin:5px 0 10px}\nbody.catalog-fixed-view .catalog-fixed-page > .panel + .panel{margin-top:10px}\n\n/* PROYECTOS: ganar altura para mostrar más proyectos */\nbody.catalog-fixed-view .proyecto-new-panel{padding:10px 16px}\nbody.catalog-fixed-view .proyecto-new-panel h2{margin:0 0 6px;font-size:14px}\nbody.catalog-fixed-view .proyecto-new-panel .gridform{gap:7px 10px;grid-template-columns:2fr 1fr 1fr}\nbody.catalog-fixed-view .proyecto-new-panel .gridform label{font-size:9px}\nbody.catalog-fixed-view .proyecto-new-panel .gridform input{padding:6px;margin-top:3px}\nbody.catalog-fixed-view .proyecto-new-panel .gridform button{padding:7px 11px}\nbody.catalog-fixed-view .proyecto-new-panel .muted{font-size:9px;margin:6px 0 0}\nbody.catalog-fixed-view .proyectos-fixed-page .catalog-list-panel{padding:10px 16px}\nbody.catalog-fixed-view .proyectos-fixed-page .catalog-list-panel h2{margin:0 0 7px;font-size:14px}\n\n/* VEHÍCULOS: formulario todavía más compacto; la lista recibe el espacio ganado */\nbody.catalog-fixed-view .vehiculo-new-panel{padding:8px 14px}\nbody.catalog-fixed-view .vehiculo-new-panel h2{margin:0 0 5px;font-size:13px}\nbody.catalog-fixed-view .vehiculo-new-panel .gridform{grid-template-columns:repeat(5,minmax(125px,1fr));gap:5px 9px}\nbody.catalog-fixed-view .vehiculo-new-panel .gridform label{font-size:9px}\nbody.catalog-fixed-view .vehiculo-new-panel .gridform input,\nbody.catalog-fixed-view .vehiculo-new-panel .gridform select{margin-top:2px;padding:5px 6px;min-height:28px}\nbody.catalog-fixed-view .vehiculo-new-panel .gridform button{padding:6px 10px;min-height:30px}\nbody.catalog-fixed-view .vehiculo-new-panel .checklabel{line-height:1.05}\nbody.catalog-fixed-view .vehiculo-new-panel .checklabel small{font-size:7px;line-height:1.05}\nbody.catalog-fixed-view .vehiculos-list-panel{padding:9px 14px}\nbody.catalog-fixed-view .vehiculos-list-panel .toolbar{gap:10px}\nbody.catalog-fixed-view .vehiculos-list-panel .toolbar h2{font-size:14px}\nbody.catalog-fixed-view .vehiculos-list-panel .toolbar input{padding:5px 7px;margin-top:2px}\nbody.catalog-fixed-view .vehiculos-list-panel > p{margin:5px 0 0;font-size:9px}\n\n/* La barra lateral conserva visualmente su zona y solo ella puede desplazarse */\n.sidebar{scrollbar-gutter:stable;overscroll-behavior:contain}\n\n@media(max-width:1350px){body.catalog-fixed-view .vehiculo-new-panel .gridform{grid-template-columns:repeat(4,minmax(125px,1fr))}}\n@media(max-width:1050px){body.catalog-fixed-view .vehiculo-new-panel .gridform{grid-template-columns:repeat(3,minmax(125px,1fr))}}\n
/* V1.5.51 · MENÚ ACTIVO + SALDOS MENSUALES */
.sidebar nav a.nav-active{
  background:rgba(255,255,255,.16) !important;
  border-left:4px solid #fff;
  padding-left:14px;
  font-weight:800;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
}
.saldo-periodo-panel{padding:9px 16px !important}
.saldo-periodo-head{display:flex;align-items:end;justify-content:space-between;gap:18px}
.saldo-periodo-head h2{margin:0 0 4px;font-size:14px}
.saldo-periodo-head .muted{margin:0;font-size:9px}
.saldo-periodo-form{display:flex;align-items:end;gap:8px;flex:0 0 auto}
.saldo-periodo-form label{font-size:9px;font-weight:700}
.saldo-periodo-form input,.saldo-periodo-form select{display:block;margin-top:3px;padding:6px;min-width:85px}
.saldo-periodo-form button{padding:7px 10px}
.saldos-list-panel{padding:9px 16px !important}
.saldos-list-panel h2{margin:0 0 7px;font-size:14px}
.saldos-mensuales-table{min-width:1450px}
.saldo-inline-form{display:flex;gap:5px;align-items:center;min-width:430px}
.saldo-inline-form input[type=number]{width:120px;padding:5px}
.saldo-inline-form input:not([type=number]):not([type=hidden]){width:190px;padding:5px}

/* V1.5.52 · MENÚ ACTIVO INEQUÍVOCO */
.sidebar nav a.nav-active{background:#2f6fa7 !important;color:#fff !important;border-left:5px solid #ffd166 !important;padding-left:13px !important;box-shadow:0 0 0 1px rgba(255,255,255,.20),inset 0 0 18px rgba(255,255,255,.08) !important}
.project-toggle{border:0;background:transparent;color:#183a60;font-weight:900;text-decoration:underline;cursor:pointer;padding:2px 0;white-space:nowrap}

/* V1.5.53 · PROYECTOS MÁS ALTOS + CONFIGURACIÓN POR MAGNA/DIÉSEL */
/* En Proyectos se elimina el subtítulo global para recuperar altura útil. */
body.proyectos-page-view .content > header p{display:none !important}
body.proyectos-page-view .content > header{min-height:42px !important;margin-bottom:6px !important}
body.catalog-fixed-view .proyecto-new-panel{padding:7px 14px !important}
body.catalog-fixed-view .proyecto-new-panel h2{margin:0 0 4px !important;font-size:13px !important}
body.catalog-fixed-view .proyecto-new-panel .gridform{gap:4px 8px !important}
body.catalog-fixed-view .proyecto-new-panel .gridform input{padding:5px 6px !important;margin-top:2px !important;min-height:27px}
body.catalog-fixed-view .proyecto-new-panel .gridform button{padding:6px 10px !important;min-height:29px}
body.catalog-fixed-view .proyectos-fixed-page .catalog-list-panel{padding:8px 14px !important}
body.catalog-fixed-view .proyectos-fixed-page .catalog-list-panel h2{margin:0 0 5px !important}

html:has(body.proyecto-config-fixed-view){height:100%;overflow:hidden !important}
body.proyecto-config-fixed-view{position:fixed !important;inset:0 !important;width:100% !important;height:100% !important;overflow:hidden !important}
body.proyecto-config-fixed-view .content{position:absolute !important;top:0 !important;right:0 !important;bottom:0 !important;left:245px !important;margin-left:0 !important;width:auto !important;height:auto !important;min-height:0 !important;overflow:hidden !important;display:flex !important;flex-direction:column !important;padding:14px 20px !important}
body.proyecto-config-fixed-view .content > header{flex:0 0 auto;min-height:48px;margin-bottom:7px}
body.proyecto-config-fixed-view .content > header p{display:none}
body.proyecto-config-fixed-view .proyecto-config-fixed-page{flex:1 1 0;height:0;min-height:0;overflow:hidden;display:flex;flex-direction:column}
body.proyecto-config-fixed-view .proyecto-config-panel{flex:1 1 0;height:0;min-height:0;overflow:hidden;display:flex;flex-direction:column;padding:10px 14px}
body.proyecto-config-fixed-view .proyecto-config-head{flex:0 0 auto}
body.proyecto-config-fixed-view .proyecto-config-head h2{font-size:14px;margin:0 0 3px}
body.proyecto-config-fixed-view .proyecto-config-head .muted{font-size:9px;margin:0 0 7px}
body.proyecto-config-fixed-view .proyecto-config-tablewrap{flex:1 1 0;height:0;min-height:0;max-height:none !important;overflow:auto !important;position:relative;overscroll-behavior:contain;scrollbar-gutter:stable both-edges;border:1px solid #dfe6ef;border-radius:8px}
body.proyecto-config-fixed-view .proyecto-config-table{width:max-content;min-width:1650px;margin:0}
body.proyecto-config-fixed-view .proyecto-config-table thead th{position:sticky !important;top:0 !important;z-index:50 !important;background:#f7f9fc !important;box-shadow:0 1px 0 #dfe6ef}
body.proyecto-config-fixed-view .proyecto-config-table td{padding-top:7px;padding-bottom:7px}
body.proyecto-config-fixed-view .proyecto-config-table input{padding:7px;min-width:140px}
body.proyecto-config-fixed-view .proyecto-config-table .programa-presupuestario-input{min-width:390px}
@media(max-width:850px){body.proyecto-config-fixed-view .content{left:190px !important}}

/* V1.5.55 - CONFIGURAR PROYECTO: columnas fijas + confirmación de guardado */
body.proyecto-config-fixed-view .proyecto-config-table th:nth-child(1),
body.proyecto-config-fixed-view .proyecto-config-table td:nth-child(1){position:sticky !important;left:0 !important;width:660px;min-width:660px;max-width:660px;background:#fff !important;z-index:35 !important;}
body.proyecto-config-fixed-view .proyecto-config-table th:nth-child(2),
body.proyecto-config-fixed-view .proyecto-config-table td:nth-child(2){position:sticky !important;left:660px !important;width:155px;min-width:155px;max-width:155px;background:#fff !important;z-index:35 !important;box-shadow:5px 0 7px -7px #475569;}
body.proyecto-config-fixed-view .proyecto-config-table thead th:nth-child(1),
body.proyecto-config-fixed-view .proyecto-config-table thead th:nth-child(2){z-index:70 !important;background:#f7f9fc !important;}
body.proyecto-config-fixed-view .proyecto-config-saved{display:inline-block;margin:2px 0 5px;padding:5px 10px;border-radius:999px;background:#e8f7ee;color:#187443;font-size:10px;font-weight:900;}

/* V1.5.56 - CONFIGURAR PROYECTO: scroll robusto y múltiples partidas */
body.proyecto-config-fixed-view .proyecto-config-table{border-collapse:separate !important;border-spacing:0 !important;table-layout:fixed !important;width:1850px !important;min-width:1850px !important;}
body.proyecto-config-fixed-view .proyecto-config-table th:nth-child(1),body.proyecto-config-fixed-view .proyecto-config-table td:nth-child(1){left:0 !important;width:360px !important;min-width:360px !important;max-width:360px !important;overflow:hidden;text-overflow:ellipsis;}
body.proyecto-config-fixed-view .proyecto-config-table th:nth-child(2),body.proyecto-config-fixed-view .proyecto-config-table td:nth-child(2){left:360px !important;width:160px !important;min-width:160px !important;max-width:160px !important;}
body.proyecto-config-fixed-view .proyecto-config-table th:nth-child(3),body.proyecto-config-fixed-view .proyecto-config-table td:nth-child(3){width:190px !important;min-width:190px !important;}
body.proyecto-config-fixed-view .proyecto-config-table th:nth-child(4),body.proyecto-config-fixed-view .proyecto-config-table td:nth-child(4){width:430px !important;min-width:430px !important;}
body.proyecto-config-fixed-view .proyecto-config-table th:nth-child(5),body.proyecto-config-fixed-view .proyecto-config-table td:nth-child(5){width:180px !important;min-width:180px !important;}
body.proyecto-config-fixed-view .proyecto-config-table th:nth-child(6),body.proyecto-config-fixed-view .proyecto-config-table td:nth-child(6){width:180px !important;min-width:180px !important;}
body.proyecto-config-fixed-view .proyecto-config-table th:nth-child(7),body.proyecto-config-fixed-view .proyecto-config-table td:nth-child(7){width:130px !important;min-width:130px !important;}
body.proyecto-config-fixed-view .proyecto-config-table th:nth-child(8),body.proyecto-config-fixed-view .proyecto-config-table td:nth-child(8){width:120px !important;min-width:120px !important;}
body.proyecto-config-fixed-view .proyecto-config-table tbody td:nth-child(1),body.proyecto-config-fixed-view .proyecto-config-table tbody td:nth-child(2){background:#fff !important;}
body.proyecto-config-fixed-view .proyecto-config-table thead th:nth-child(1),body.proyecto-config-fixed-view .proyecto-config-table thead th:nth-child(2){background:#f7f9fc !important;}
body.proyecto-config-fixed-view .proyecto-config-table th:nth-child(2),body.proyecto-config-fixed-view .proyecto-config-table td:nth-child(2){box-shadow:7px 0 9px -9px #334155 !important;}
body.proyecto-config-fixed-view .partida-code{display:block;margin-top:5px;font-weight:900;color:#334155;font-size:10px;}
body.proyecto-config-fixed-view .proyecto-config-add{flex:0 0 auto;margin:0 0 7px;border:1px solid #dfe6ef;border-radius:8px;background:#f9fbfd;}
body.proyecto-config-fixed-view .proyecto-config-add summary{cursor:pointer;padding:7px 10px;font-size:10px;font-weight:900;color:#183a60;}
body.proyecto-config-fixed-view .proyecto-config-add-grid{display:grid;grid-template-columns:1.5fr .7fr 1fr 1.8fr 1fr 1fr auto;gap:7px;padding:0 10px 9px;align-items:end;}
body.proyecto-config-fixed-view .proyecto-config-add-grid label{font-size:9px;font-weight:900;color:#56657a;}
body.proyecto-config-fixed-view .proyecto-config-add-grid input,body.proyecto-config-fixed-view .proyecto-config-add-grid select{width:100%;margin-top:3px;padding:6px;border:1px solid #ccd7e5;border-radius:6px;background:#fff;min-height:30px;}
@media(max-width:1200px){body.proyecto-config-fixed-view .proyecto-config-add-grid{grid-template-columns:repeat(3,1fr)}}


/* V1.5.57 - CONFIGURAR PROYECTO: scroll horizontal normal, sin columnas congeladas */
body.proyecto-config-fixed-view .proyecto-config-table tbody td:nth-child(1),
body.proyecto-config-fixed-view .proyecto-config-table tbody td:nth-child(2){position:static !important;left:auto !important;box-shadow:none !important;}
body.proyecto-config-fixed-view .proyecto-config-table thead th:nth-child(1),
body.proyecto-config-fixed-view .proyecto-config-table thead th:nth-child(2){position:sticky !important;top:0 !important;left:auto !important;box-shadow:0 1px 0 #dfe6ef !important;}
body.proyecto-config-fixed-view .proyecto-config-table .danger{margin-left:5px;}
/* V1.5.60 · INICIO OPERATIVO, BUZÓN, CONTRASEÑAS Y SELECTOR DE PARTIDAS */
.dashboard-head{padding:10px 16px}.dashboard-head h2{margin:0}.dashboard-cards article strong{font-size:24px}.dashboard-alerts{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:10px}.dashboard-alerts a{display:flex;gap:12px;align-items:center;padding:14px;border:1px solid #dfe6ef;border-radius:10px;text-decoration:none;color:inherit;background:#fff}.dashboard-alerts b{font-size:24px;color:#183a60}.dashboard-alerts span{font-size:11px;font-weight:800}.mailbox-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}.mailbox-item{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:12px;border:1px solid #dfe6ef;border-radius:10px;text-decoration:none;color:inherit}.mailbox-item.new{background:#f3fbf6;border-color:#a8d8b8}.mailbox-item.seen{background:#fafbfc}.mailbox-item p{margin:4px 0 0;font-size:11px}.mailbox-item>strong{font-size:10px;color:#183a60}.password-panel{max-width:850px}.password-form{margin-top:16px}.cargas-periodo{display:flex;gap:7px;align-items:end}.cargas-periodo label{font-size:9px;font-weight:900}.cargas-periodo input,.cargas-periodo select{display:block;padding:6px;margin-top:2px;max-width:90px}.partida-selector{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-top:12px;padding:12px;background:#f7f9fc;border:1px solid #dfe6ef;border-radius:9px}.partida-selector label{min-width:280px;font-size:10px;font-weight:900}.partida-selector select{display:block;width:100%;margin-top:4px;padding:8px}.partida-selector small{display:block;margin-top:4px;color:#667085;font-weight:500}
@media(max-width:1000px){.dashboard-alerts{grid-template-columns:repeat(2,1fr)}}
/* V1.5.61 - VALES */
.vale-form textarea{width:100%;resize:vertical}.vale-form .span-2{grid-column:span 2}.vale-detail{display:grid;grid-template-columns:1fr 1fr;gap:8px 24px;margin:16px 0}.vale-detail p{margin:0;padding:10px 0;border-bottom:1px solid #e8edf3}.vale-detail .span-2{grid-column:span 2}
@media(max-width:900px){.vale-form .span-2,.vale-detail .span-2{grid-column:span 1}.vale-detail{grid-template-columns:1fr}}

/* V1.5.78 - CONFIGURAR PROYECTO: separación visual DIRECCIÓN / PRODUCTO-PARTIDA */
body.proyecto-config-fixed-view .proyecto-config-table th:nth-child(1),
body.proyecto-config-fixed-view .proyecto-config-table td:nth-child(1){width:430px !important;min-width:430px !important;max-width:430px !important;padding-right:18px !important;white-space:normal !important;overflow:hidden !important;line-height:1.25 !important;}
body.proyecto-config-fixed-view .proyecto-config-table th:nth-child(2),
body.proyecto-config-fixed-view .proyecto-config-table td:nth-child(2){width:190px !important;min-width:190px !important;max-width:190px !important;padding-left:18px !important;overflow:hidden !important;}
body.proyecto-config-fixed-view .proyecto-config-table td:nth-child(2) .badge{display:inline-block !important;position:static !important;}
body.proyecto-config-fixed-view .proyecto-config-table .partida-code{display:block !important;position:static !important;margin-top:4px !important;line-height:1.2 !important;}
body.proyecto-config-fixed-view .proyecto-config-table tbody tr{height:auto !important;min-height:48px !important;}

/* V1.5.79 - PROYECTOS: producto limpio y dirección sin invadir columnas */
body.proyecto-config-fixed-view .proyecto-config-table .direccion-cell-text{display:block !important;width:100% !important;max-width:100% !important;white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important;}
body.proyecto-config-fixed-view .proyecto-config-table th:nth-child(1),
body.proyecto-config-fixed-view .proyecto-config-table td:nth-child(1){width:500px !important;min-width:500px !important;max-width:500px !important;padding-right:22px !important;overflow:hidden !important;}
body.proyecto-config-fixed-view .proyecto-config-table th:nth-child(2),
body.proyecto-config-fixed-view .proyecto-config-table td:nth-child(2){width:140px !important;min-width:140px !important;max-width:140px !important;padding-left:14px !important;overflow:hidden !important;}
body.proyecto-config-fixed-view .proyecto-config-table td:nth-child(2) .badge{display:inline-block !important;position:static !important;margin:0 !important;}
/* V1.5.84 - BUSCADOR DE VEHICULOS EN CARGAS */
.vehiculo-buscador-label{overflow:visible!important}.vehiculo-buscador{position:relative}.vehiculo-buscador>input[type=text]{width:100%}.vehiculo-resultados{position:absolute;z-index:1000;left:0;right:0;top:calc(100% + 3px);max-height:260px;overflow-y:auto;background:#fff;border:1px solid #cbd7e8;border-radius:7px;box-shadow:0 8px 22px rgba(18,49,82,.16)}.vehiculo-opcion{display:block;width:100%;text-align:left;background:#fff;color:#17243a;border:0;border-bottom:1px solid #e8eef6;border-radius:0;padding:10px 12px;font-weight:600}.vehiculo-opcion:hover,.vehiculo-opcion:focus{background:#edf5fb}.vehiculo-opcion:last-child{border-bottom:0}


/* V1.5.88 · CARGAS: FORMULARIO COMPACTO Y MAYOR ÁREA VISIBLE */
.cargas-new-panel{padding:14px 22px}
.cargas-new-panel .toolbar{margin-bottom:8px}
.cargas-new-panel .toolbar h2{margin:0;font-size:16px}
.cargas-new-panel .gridform{gap:9px 15px}
.cargas-new-panel .gridform input,.cargas-new-panel .gridform select{margin-top:4px;padding:8px 10px}
.cargas-new-panel .gridform button{padding:9px 16px}
.cargas-new-panel .historico-check small{font-size:9px;line-height:1.1}
.cargas-new-panel + .cargas-list-panel{margin-top:12px}
.cargas-list-panel{padding-top:14px}
.cargas-list-panel .toolbar h2{margin-top:0}
.cargas-tablewrap{height:68vh;max-height:68vh}
@media(max-height:800px){.cargas-tablewrap{height:62vh;max-height:62vh;min-height:300px}}

/* V1.5.90 · CARGAS DIARIAS */
.direccion-buscador-label{overflow:visible!important}
.historico-compact{display:flex!important;align-items:center;gap:10px;min-height:36px}.historico-compact input{width:auto!important;margin:0!important}
.carga-toast{position:fixed;right:24px;top:24px;z-index:5000;max-width:520px;padding:13px 18px;border-radius:9px;background:#8b1e1e;color:#fff;font-weight:800;font-size:12px;box-shadow:0 10px 28px rgba(0,0,0,.22)}
.cargas-periodo label:nth-of-type(3) select{max-width:82px}


/* V1.5.92 · VEHÍCULOS: aprovechar mejor pantallas de laptop */
@media (max-height:800px){
  body.catalog-fixed-view .content{padding-top:10px !important;padding-bottom:10px !important}
  body.catalog-fixed-view .content > header{min-height:42px !important}
  body.catalog-fixed-view .vehiculo-new-panel{padding:6px 12px !important}
  body.catalog-fixed-view .vehiculo-new-panel h2{margin:0 0 4px !important;font-size:12px !important}
  body.catalog-fixed-view .vehiculo-new-panel .gridform{gap:4px 8px !important}
  body.catalog-fixed-view .vehiculo-new-panel .gridform input,
  body.catalog-fixed-view .vehiculo-new-panel .gridform select{padding:4px 6px !important;min-height:25px !important}
  body.catalog-fixed-view .vehiculo-new-panel .gridform button{padding:5px 9px !important;min-height:27px !important}
  body.catalog-fixed-view .vehiculo-new-panel .checklabel small{display:none}
  body.catalog-fixed-view .vehiculos-list-panel{padding:7px 12px !important}
  body.catalog-fixed-view .vehiculos-list-panel .toolbar{margin-bottom:4px !important}
  body.catalog-fixed-view .vehiculos-list-panel > p{margin:3px 0 0 !important}
}

/* V1.5.93 · permisos en el mismo orden del menú lateral */
.permisos-menu-list{display:flex;flex-direction:column;gap:14px;max-width:760px}
.permisos-grupo{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid #dbe4ef;border-radius:10px;background:#fff}
.permisos-grupo-titulo{font-size:12px;letter-spacing:.08em;color:#61738a;margin-bottom:5px}
.permiso-menu-item{display:flex;align-items:center;gap:10px;min-height:34px;padding:5px 8px;border-radius:7px}
.permiso-menu-item:hover{background:#f4f7fb}
.permiso-menu-item input{width:auto;margin:0}
.permiso-menu-item.permiso-accion{margin-left:24px;color:#53657a}

/* V1.5.96 · LOGIN SCGBC CON IDENTIDAD VISUAL */
.login-body.login-v1596{min-height:100vh;display:flex;flex-direction:column;position:relative;overflow:hidden;background:linear-gradient(135deg,#071a31 0%,#0c3158 48%,#1266a6 100%);color:#172033}
.login-v1596 .login-backdrop{position:fixed;inset:-8%;z-index:0;background:radial-gradient(circle at 18% 22%,#3ca8f44a 0 12%,transparent 36%),radial-gradient(circle at 83% 35%,#6ec8ff42 0 11%,transparent 32%),linear-gradient(115deg,#06172bd9,#0b3d6ebf 55%,#0879c7a8);filter:saturate(1.05)}
.login-v1596 .login-backdrop:after{content:"";position:absolute;right:-7vw;top:-11vh;width:min(68vw,920px);height:min(68vw,920px);background:url('/static/scgbc_logo.png') center/contain no-repeat;opacity:.055;filter:blur(1px)}
.login-shell{position:relative;z-index:2;flex:1;display:grid;place-items:center;width:100%;padding:32px 18px 118px}
.login-card.login-card-v1596{width:min(510px,94vw);padding:28px 44px 30px;border-radius:24px;background:#fffffff7;border:1px solid #ffffffb8;box-shadow:0 30px 90px #00152d73,0 2px 8px #00152d1c;text-align:center;backdrop-filter:blur(10px)}
.login-logo{display:block;width:min(300px,82%);max-height:250px;object-fit:contain;margin:-6px auto 4px}
.login-welcome h1{margin:0;color:#0c65ad;font-size:27px;letter-spacing:.2px}.login-welcome p{margin:6px 0 18px;color:#69788b;font-size:11px;font-weight:800;letter-spacing:.45px}
.login-form-v1596{text-align:left}.login-form-v1596 label{display:block;margin:12px 0 6px;color:#40536b;font-size:10px;font-weight:900;letter-spacing:.8px}
.login-input-wrap{height:48px;display:flex;align-items:center;border:1px solid #bed4e9;border-radius:10px;background:#fbfdff;overflow:hidden;box-shadow:inset 0 1px 2px #0d2b4f0b;transition:.18s ease}
.login-input-wrap:focus-within{border-color:#1686d9;box-shadow:0 0 0 3px #1686d91c}
.login-input-icon{width:50px;height:100%;display:grid;place-items:center;background:#eaf5ff;color:#1381d1;font-size:15px;border-right:1px solid #cfe2f2}.login-input-icon.lock{font-size:12px}
.login-card-v1596 .login-input-wrap input{flex:1;width:auto;height:100%;margin:0;padding:0 14px;border:0;border-radius:0;background:transparent;outline:0;color:#20354d;font-size:14px}.login-card-v1596 .login-input-wrap input::placeholder{color:#8b99aa}
.login-eye{width:48px;height:100%;border:0;background:transparent;color:#6d7f92;font-size:18px;cursor:pointer}.login-eye:hover{color:#0b70bd;background:#f1f8fe}
.login-card-v1596 .login-submit{width:100%;height:50px;margin:20px 0 17px;border:0;border-radius:10px;background:linear-gradient(90deg,#0963b4,#0b94e4);color:#fff;font-size:13px;font-weight:900;letter-spacing:.25px;cursor:pointer;box-shadow:0 9px 22px #0877c52e}.login-card-v1596 .login-submit:hover{filter:brightness(1.05);transform:translateY(-1px)}.login-card-v1596 .login-submit span{font-size:20px;vertical-align:-1px;margin-right:8px}
.login-error{margin:8px 0 12px;text-align:left;border:1px solid #f0c7c7}
.login-municipio{display:flex;align-items:center;gap:10px;color:#65758a;font-size:10px;letter-spacing:.35px}.login-municipio span{height:1px;background:#d5dee9;flex:1}.login-tagline{margin-top:13px;color:#7c8b9d;font-size:10px;font-style:italic}
.login-footer{position:fixed;z-index:3;left:0;right:0;bottom:0;min-height:88px;display:grid;grid-template-columns:repeat(4,minmax(130px,1fr)) minmax(170px,1.2fr);align-items:center;padding:14px max(28px,5vw);background:#062b50e8;border-top:1px solid #ffffff1c;backdrop-filter:blur(10px);color:#d9edff}.login-footer>div{min-height:44px;padding:5px 22px;border-right:1px solid #ffffff24;display:flex;flex-direction:column;justify-content:center}.login-footer>div:last-child{border-right:0}.login-footer b{font-size:11px;letter-spacing:.5px}.login-footer span{margin-top:4px;color:#94b8d7;font-size:8px;letter-spacing:.25px}.login-footer .login-footer-brand{text-align:right;align-items:flex-end}.login-footer-brand b{font-size:20px;font-style:italic}.login-footer-brand span{font-size:9px}
@media(max-height:780px){.login-shell{padding-top:18px;padding-bottom:92px}.login-card.login-card-v1596{padding:18px 38px 20px}.login-logo{width:225px;max-height:180px}.login-welcome h1{font-size:23px}.login-welcome p{margin-bottom:10px}.login-form-v1596 label{margin-top:8px}.login-input-wrap{height:43px}.login-card-v1596 .login-submit{height:44px;margin:14px 0 12px}.login-footer{min-height:70px;padding-top:8px;padding-bottom:8px}}
@media(max-width:760px){.login-body.login-v1596{overflow:auto}.login-shell{padding:18px 12px 24px}.login-card.login-card-v1596{padding:22px 22px 24px}.login-logo{width:245px}.login-footer{position:relative;grid-template-columns:1fr 1fr;padding:12px 18px}.login-footer>div{border-right:0;border-bottom:1px solid #ffffff1c;padding:9px 10px}.login-footer .login-footer-brand{grid-column:1/-1;align-items:center;text-align:center;border-bottom:0}}


/* V1.5.100 · RESUMEN DINÁMICO DE CARGAS FILTRADAS */
.cargas-resumen{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap;margin:10px 0 7px}
.cargas-resumen-item{min-width:210px;padding:9px 14px;border:1px solid #d9e4ef;border-radius:9px;background:#f8fbfe;display:flex;flex-direction:column;gap:2px}
.cargas-resumen-item span{font-size:9px;font-weight:900;letter-spacing:.06em;color:#65778c}
.cargas-resumen-item strong{font-size:18px;line-height:1.2;color:#173b60;font-variant-numeric:tabular-nums}
.cargas-resumen-registros{display:flex;align-items:center;padding:0 6px;font-size:10px;font-weight:800;color:#6a7a8c}
@media(max-width:760px){.cargas-resumen-item{flex:1 1 180px;min-width:0}.cargas-resumen-registros{flex-basis:100%;padding:2px 0}}

/* F5 1.5.102: selección visual de carga */
.cargas-table tbody tr{cursor:pointer}
.cargas-table tbody tr.carga-seleccionada>td{background:#fff3bf!important;box-shadow:inset 0 1px 0 #e2b93b,inset 0 -1px 0 #e2b93b}
.cargas-table tbody tr.carga-seleccionada>td:first-child{box-shadow:inset 4px 0 0 #c48a00,inset 0 1px 0 #e2b93b,inset 0 -1px 0 #e2b93b}


/* F5 1.5.103 · selección visual común + concentrado SEMADES con scroll interno */
.tablewrap table tbody tr{cursor:pointer}
.tablewrap table tbody tr.scgbc-fila-seleccionada>td{background:#fff3bf!important;box-shadow:inset 0 1px 0 #e2b93b,inset 0 -1px 0 #e2b93b}
.tablewrap table tbody tr.scgbc-fila-seleccionada>td:first-child{box-shadow:inset 4px 0 0 #c48a00,inset 0 1px 0 #e2b93b,inset 0 -1px 0 #e2b93b}
.semades-tablewrap{height:68vh;max-height:68vh;overflow:auto;position:relative}
.semades-tablewrap .semades thead th{position:sticky;top:0;z-index:8;background:#f5f8fc}
@media(max-height:800px){.semades-tablewrap{height:62vh;max-height:62vh;min-height:300px}}

/* V1.5.104 · LOGIN SPLIT SCGBC */
.login-body.login-v15104{min-height:100vh;margin:0;display:grid;place-items:center;overflow:auto;background:#f2f6fb;color:#092c57;font-family:Arial,sans-serif}
.login104-shell{width:100%;min-height:100vh;display:grid;place-items:center;padding:3.4vh 3.5vw}
.login104-card{width:min(1430px,94vw);height:min(900px,92vh);min-height:620px;display:grid;grid-template-columns:1fr 1fr;overflow:hidden;background:#fff;border-radius:22px;box-shadow:0 18px 55px #1d42651f}
.login104-brand{position:relative;overflow:hidden;background:linear-gradient(145deg,#063762 0%,#064d82 52%,#06355e 100%);display:grid;place-items:center;padding:38px}
.login104-brand:before,.login104-brand:after{content:"";position:absolute;border-radius:50%;border:80px solid #0c79c35c;width:720px;height:720px;left:-340px;top:-440px}.login104-brand:after{width:760px;height:760px;left:300px;top:650px;border-width:70px;opacity:.42}
.login104-brand-art{position:absolute;inset:0;background:linear-gradient(28deg,transparent 0 20%,#0b71bb40 20% 30%,transparent 30% 100%)}
.login104-logo{position:relative;z-index:2;width:min(92%,650px);height:auto;max-height:78%;object-fit:contain;filter:drop-shadow(0 10px 18px #001c3545)}
.login104-access{display:flex;flex-direction:column;justify-content:center;padding:7% 8%;background:#fff}
.login104-formbox{width:100%;max-width:540px;margin:auto}.login104-formbox h1{margin:0;color:#082e5b;font-size:clamp(34px,3vw,52px);line-height:1.05}.login104-formbox>p{margin:14px 0 48px;color:#718096;font-size:clamp(16px,1.35vw,23px)}
.login104-form label{display:block;margin:25px 0 10px;color:#092d58;font-size:17px;font-weight:800}.login104-input{height:62px;display:flex;align-items:center;border:1px solid #c7d5e3;border-radius:10px;background:#fff;transition:.18s}.login104-input:focus-within{border-color:#1688dc;box-shadow:0 0 0 3px #1688dc17}.login104-input>span{width:62px;text-align:center;color:#123b67;font-size:25px}.login104-input input{flex:1;height:100%;min-width:0;border:0!important;outline:0!important;background:transparent!important;padding:0 8px!important;font-size:18px!important;color:#20364e}.login104-input input::placeholder{color:#8493a5}.login104-eye{width:58px!important;height:100%;margin:0!important;padding:0!important;border:0!important;background:transparent!important;color:#536b83!important;font-size:20px;cursor:pointer}.login104-submit{width:100%;height:78px;margin:34px 0 0!important;border:0!important;border-radius:11px!important;background:linear-gradient(90deg,#0873d5,#087be1)!important;color:#fff!important;font-size:20px!important;font-weight:800!important;box-shadow:0 10px 22px #0875d522;cursor:pointer}.login104-submit:hover{filter:brightness(1.04)}.login104-submit span{font-size:27px;margin-right:10px;vertical-align:-2px}.login104-error{margin:-25px 0 20px}
.login104-municipio{width:100%;max-width:600px;margin:50px auto 0}.login104-rule{display:block;height:1px;background:#d9e2ec;margin-bottom:26px}.login104-muni-brand{display:flex;justify-content:center;align-items:center;gap:17px;color:#263b51}.login104-muni-brand img{width:70px;height:86px;object-fit:contain}.login104-muni-brand div{display:flex;flex-direction:column;line-height:1}.login104-muni-brand span{font-size:15px;font-weight:700}.login104-muni-brand strong{font-size:27px;letter-spacing:.5px}.login104-muni-brand small{margin-top:10px;font-size:13px;font-weight:800;letter-spacing:5px;text-align:center}
@media(max-height:760px) and (min-width:821px){.login104-card{height:94vh;min-height:560px}.login104-access{padding-top:4%;padding-bottom:4%}.login104-formbox>p{margin-bottom:25px}.login104-form label{margin-top:16px}.login104-input{height:54px}.login104-submit{height:60px;margin-top:22px!important}.login104-municipio{margin-top:26px}.login104-muni-brand img{width:56px;height:68px}}
@media(max-width:820px){.login-body.login-v15104{display:block}.login104-shell{padding:18px;display:block}.login104-card{width:100%;height:auto;min-height:0;grid-template-columns:1fr;border-radius:18px}.login104-brand{min-height:310px;padding:20px}.login104-logo{width:min(430px,88%);max-height:280px}.login104-access{padding:38px 28px}.login104-formbox>p{margin-bottom:30px}.login104-municipio{margin-top:36px}}
@media(max-width:480px){.login104-shell{padding:0}.login104-card{border-radius:0}.login104-brand{min-height:260px}.login104-access{padding:32px 20px}.login104-formbox h1{font-size:34px}.login104-formbox>p{font-size:16px}.login104-input{height:56px}.login104-submit{height:62px}.login104-muni-brand img{width:55px;height:70px}.login104-muni-brand strong{font-size:22px}.login104-muni-brand span{font-size:12px}}

/* F5 1.5.105 · SEGUIMIENTO DE AVANCE DE BITÁCORAS POR DIRECCIÓN */
.bit-seg-panel{border-top:3px solid #2e7fbd}.bit-seg-toolbar{align-items:flex-end;gap:18px;flex-wrap:wrap}.bit-seg-filtro{display:flex;align-items:flex-end;gap:8px;margin-left:auto}.bit-seg-filtro label{font-size:9px;font-weight:900;color:#60738a;letter-spacing:.05em}.bit-seg-filtro input{display:block;margin-top:4px;min-width:142px}.bit-seg-filtro button{height:38px}.bit-seg-resumen{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:10px;margin:14px 0}.bit-seg-resumen>div{border:1px solid #dbe5ef;border-radius:10px;background:#f8fbfe;padding:12px 14px}.bit-seg-resumen strong{display:block;color:#143b61;font-size:21px;font-variant-numeric:tabular-nums}.bit-seg-resumen span{display:block;margin-top:3px;color:#6a7d91;font-size:9px;font-weight:900;letter-spacing:.05em}.bit-seg-resumen .ok{border-left:4px solid #2c9a61}.bit-seg-resumen .work{border-left:4px solid #d59b22}.bit-seg-resumen .wait{border-left:4px solid #8a99aa}.bit-seg-tablewrap{max-height:43vh;overflow:auto}.bit-seg-table thead th{position:sticky;top:0;z-index:5;background:#f5f8fc}.bit-progress-cell{min-width:210px}.bit-progress-cell>b{display:inline-block;width:45px;text-align:right;color:#24496d;font-size:10px}.bit-progress{display:inline-block;vertical-align:middle;width:145px;height:8px;margin-right:7px;overflow:hidden;border-radius:20px;background:#e4ebf2}.bit-progress span{display:block;height:100%;border-radius:20px;background:#2f7fbd}.bit-status{display:inline-block;min-width:92px;padding:5px 8px;border-radius:20px;text-align:center;font-size:9px;font-weight:900}.bit-status.done{background:#e3f5ea;color:#197344}.bit-status.doing{background:#fff2d7;color:#8a5a00}.bit-status.waiting{background:#edf1f5;color:#596979}.bit-seg-note{margin:10px 0 0;color:#718095;font-size:9px;font-weight:700}.bit-seg-table td:nth-child(n+2):nth-child(-n+5){text-align:center;font-variant-numeric:tabular-nums}
@media(max-width:1100px){.bit-seg-resumen{grid-template-columns:repeat(2,1fr)}.bit-seg-filtro{margin-left:0;width:100%;flex-wrap:wrap}}
