body {
    font-family:Helvetica, sans-serif;
}

.loading{
	margin:150px;
	text-align:center;
}
.login{
	margin:auto;
	margin-top:50px;
}
.login .title{
	font-weight: bold;
	margin-bottom: 30px;
}
.cursor-pointer{
	cursor:pointer !important;
}

.login .version{
	margin-top: 20px;
	font-size: 10px;
	color:#CCC;
	text-align: center;
}
.login .error,.login .validating{
	margin-top: 10px;
	text-align: center;
}


.footer{
	text-align: right;
	margin-bottom: 20px;
	color:#999;
}
.footer hr{
	margin-bottom: 5px;
}


.reports_map {
	height: 650px;
}

div#processing{
	text-align: right;
	margin-top: 5px;
}
div#contract-map{
	border:1px solid #CCC;
	width: 290px;
	height: 280px;
	display: block;
}
div#routes{
	margin-top: 20px;
}

.routes_list{
	height: 325px;
	overflow: auto;
}
.routes_list hr{
	margin-top:0px;
	margin-bottom: 0px;
}
.routes_list small{
	margin-top:-5px;
}

.route_map{
	border:1px solid #CCC;
	height: 300px;
	display: block;
}

.contracts_list{
	height: 240px;
	overflow: auto;
}
.contracts_list li{
	cursor: pointer;
}

.services-list{
	border:1px solid #CCC;
	border-radius: 4px;
	width: 260px;
	height: 130px;
	display: block;
	overflow: auto;
	padding: 5px;
	margin-bottom: 10px;
}
.services-list .checkbox{
	margin-top: 5px;
	margin-bottom: 5px;
}

.contracts_services_header{
	margin-bottom: 0px;
}
.contracts_services_table{
	overflow: auto;
	height: 255px;
	width: 100%;
	display: block;
	border-bottom: 1px solid #CCC;
}

.contracts_services_table table{
	margin-top: 0px;
}

.contracts_services_table input[type=number]::-webkit-inner-spin-button,
.contracts_services_table input[type=number]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}


#selected_contracts_container{
	height: 425px;
}

.routes-list{
	height: 425px;
	overflow: auto;
}
.routes-list hr{
	margin-top:5px;
	margin-bottom: 0px;
}
.routes-list small{
	margin-top:-5px;
}
.sortable{
	cursor:move;
}

.route-map{
	border:1px solid #CCC;
	height: 400px;
	display: block;
}
.route-gps-map-modal{
	border:1px solid #CCC;
	height: 700px;
	display: block;
	margin-right:20px;
}
.route-gps-map-modal-map{
	border:1px solid #CCC;
	height: 60vh;
	display: block;
	margin-right:20px;
}
.route-gps-map{
	border:1px solid #CCC;
	height: 700px;
	display: block;
}
/*_________________*/
.navbar{
	margin-bottom: 5px;
}
.navbar-brand{
	padding: 5px;
}
.navbar-brand-text{
	margin-left: 5px;
	margin-top: 10px;
	margin-bottom: 10px;
}
.navbar-section{
	margin-top: 10px;
	margin-bottom: 20px;
}

h4.text-success{
	margin-left: 15px;
}


.datepicker{z-index:1151 !important;}

/*
.datepicker .input-mini {
	width: 65px;
}

#map {
	height: 650px;
}
.gm-style img { max-width: none; }
.gm-style label { width: auto; display: inline; }
*/


.table-report{
	overflow: auto;
	height: 400px;
	display: block;
	border-bottom: 1px solid #CCC;
}

.table-report th{
	font-size: 10px;
}
.table-report td{
	white-space: normal;
	word-break: break-word;
}
.table-tiny td{
	font-size: 10px;
}

@media (min-width:1220px) {
  .modal-xlg {
  width: 1200px;
  }
}

.tab-services{
	line-height: 0.6;
	font-size: 12px;
	padding: 5px 10px;
}
.col-near{
	padding-right: 5px;
	padding-left: 10px;
}

.LinkActivo{
	background-color:#0066ff !important;
	color:#ffffff !important;
}

.page-sidebar.navbar-collapse{
	height: auto !important;
	z-index: 1000;
}

.tracking-marker .tracking-name {
	font-weight: bold;
}
.tracking-marker .tracking-time {
	font-size: 10px;
}
.tracking-nodata{
	text-align: center;
	margin: auto;
	padding-top: 150px;
}

/* alerta subida archivo */
    .messages{
		padding-top:10px;
		padding-bottom:10px;
        float: left;
        font-family: sans-serif;
        display: none;
		height:40px;
    }
    .infoalerta{
        padding: 10px;
        border-radius: 10px;
        background: orange;
        color: #fff;
        font-size: 12px;
        text-align: center;
    }
    .before{
        padding: 10px;
        border-radius: 10px;
        background: blue;
        color: #fff;
        font-size: 12px;
        text-align: center;
    }
    .success{
        padding: 10px;
        border-radius: 10px;
        background: green;
        color: #fff;
        font-size: 12px;
        text-align: center;
    }
    .error{
        padding: 10px;
        border-radius: 10px;
        background: red;
        color: #fff;
        font-size: 12px;
        text-align: center;
    }





/* alerta subida archivo */



.selectpicker{
display:none;
margin-bottom: 10px !important;
}

.dropdown-menu li a span.text {
    font-size: 14px;
}

.os-crear .acciones .detalle {
    font-size: 9px;
    margin-top: -5px;
    color: gray;
    text-decoration: underline;
}

.os-crear .acciones .mas_opciones {
    font-size: 9px;
    margin-top: -5px;
    text-decoration: underline;
    color: gray;
}

.os-crear .dropdown-toggle {
    margin-left: 5px;
}


.tablareporte tr {
  display: table-row;
  background: #f6f6f6;
}

.tablareporte tr:nth-of-type(odd) {
  background: #e9e9e9;
}

.tablareporte tr th {
  font-weight: 900;
  color: #ffffff;
  background: #ea6153;
}
.reporte .table-report{
height:auto;
}
#searchContrastList{
width:calc(100%-24px)!important;
}

.label-realized {
  background-color: #FEFE02; }
  .label-realized[href]:hover, .label-realized[href]:focus {
    background-color: #F6F60C; }


.mf-label-success{
  background-color: #6AC64B !important; }
  .mf-label-success[href]:hover, .mf-label-success[href]:focus {
    background-color: #6DBF51 !important; }


.border-after-green:after, .border-before-green:before, .border-green {
    border-color: #E7505A !important;
}


.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-toggle .badge.badge-default {
    background-color: #E7505A !important;
    color: #fff;
}
.page-header.navbar .page-logo{background:blue}

.page-header.navbar .page-logo {
    background: #E7505A !important;
}

.page-logo2{
float:left;
}
.page-logo2 img{
padding-top:10px;
padding-left:20px;
}
.table thead tr th{
    font-size: 12px !important;
    font-weight: 600;
}
.siom-fieldset legend {
    font-size: 14px !important;

}
.siom-fieldset .siom-label {
    font-size: 10px !important;
    height: 13px !important;
}
.siom-fieldset .siom-value {
    font-size: 14px !important;
    font-weight: 600;
    margin-bottom: 7px;
}
#searchContrastList {
    width: 97%;
}
.page-header.navbar .page-logo .logo-default {
    margin: 10px 0 0;
	width: 70px;
	max-height:60px;
}

.wizard .form-horizontal .step-content {
    border-top: 1px solid #D4D4D4;
    padding: 10px;
    float: left;
    width: 100%;
	font-size: 16px;

}
.page-logo2 img {
    padding-top: 10px;
    padding-left: 20px;
    width: 80%;
	margin-top:9px;
	max-height:60px;
}
@-moz-document url-prefix() {
	.form-edicion-container-properties input {
		padding-top: 3px !important;
		padding-bottom: 3px !important;
	}
}
#Wizardformulario{
min-height:500px !important;
}
/* MOV-5816: .step-content usa float sin alto propio (bootstrap-wizard.css:125-136),
   por lo que colapsa al alto de su contenido en vez de ocupar el espacio disponible
   de /admin/forms. Se acota a #Wizardformulario (id exclusivo de admin_forms.hb) para
   no afectar el widget .wizard genérico reutilizado en el resto del módulo admin. */
#Wizardformulario .step-content {
    display: flex;
    flex-direction: column;
    float: none;
    min-height: 80vh;
    max-height: 80vh;
    max-width: 100%;
    overflow-y: auto;
    overflow-x: hidden;
}
#Wizardformulario .step-content .step-pane.active {
    display: flex;
    flex-direction: column;
    /* flex-shrink:0 (no "1 1 auto"): con shrink activo + min-height:0 dentro del
       max-height:80vh de .step-content, este contenedor (y toda la cascada de abajo)
       se comprimia por debajo del alto real de su contenido cuando el formulario
       tenia varias paginas/controles — las paginas terminaban solapadas entre si
       y no se podian ver todos los controles. Con shrink:0 el contenedor solo
       puede crecer (llenar espacio sobrante si el contenido es corto) pero nunca
       se achica por debajo de su contenido; .step-content sigue siendo el UNICO
       que scrollea cuando el contenido excede 80vh. */
    flex: 1 0 auto;
    /* el step-pane del paso 2 (admin_forms.hb:62) trae la clase Bootstrap
       .table-responsive, que fija overflow-x:auto por su cuenta (bootstrap.min.css)
       — se pisa explícitamente para no reabrir el scroll horizontal aquí.
       IMPORTANTE: se usa "visible" y no "hidden" — si un eje overflow no es
       "visible" y el otro queda sin declarar (default "visible"), el spec CSSOM
       computa ese otro como "auto" tambien. Con "hidden" aca este .step-pane se
       volvia un segundo contenedor con scroll propio (ademas del scroll de
       .step-content), atrapando contenido que crece dentro de el — p.ej. un
       .dropdown-menu-overlay (bootstrap-dropdown-helper.js, position:static)
       quedaba recortado sin poder verse completo ni con scroll. "visible" cancela
       el overflow-x:auto de Bootstrap sin forzar ese overflow-y:auto implicito;
       el recorte horizontal real sigue a cargo de .step-content (unico scroll). */
    overflow-x: visible;
    /* MOV-5816 (finding F-10 de /code-review, hallazgo adicional al verificar en
       mobile <768px): esta misma clase .table-responsive tambien matchea la regla
       preexistente (ajena a este ticket) "@media (max-width:767px){ .table-responsive
       { overflow-y:auto !important } }" (mas abajo en este archivo, pensada para
       tablas reales). Sin una declaracion propia de overflow-y aqui, ese
       "!important" ganaba sin competencia bajo 768px y volvia a acoplar ambos ejes
       a "auto" (misma regla CSSOM del parrafo de arriba, pero disparada por
       overflow-y en vez de por overflow-x) -- reabria en mobile el contenedor de
       scroll anidado que este mismo Hallazgo (punto 5) documenta haber evitado en
       desktop, nunca verificado contra este breakpoint. Se declara "visible
       !important" (la especificidad del selector con ID ya le gana a ".table-
       responsive" sin necesidad de !important, pero ambas declaraciones deben
       tener la MISMA prioridad para que la comparacion de especificidad decida, no
       la de origen) para que ".step-content" siga siendo el unico scroll,
       tambien en mobile. Verificado en vivo (Chrome DevTools MCP, viewport
       375x800, form_id=1589): antes del fix, overflow-x/-y computados = "auto";
       despues, "visible" en ambos ejes, igual que en desktop. */
    overflow-y: visible !important;
}
#Wizardformulario .step-content .step-pane.active > .row,
#Wizardformulario .step-content .step-pane.active > .row > [id^="form-bandeja-lista"],
#Wizardformulario .step-content .step-pane.active #core-formulario-form {
    display: flex;
    flex-direction: column;
    /* flex-shrink:0, ver nota extendida en .step-pane.active de arriba. */
    flex: 1 0 auto;
    min-height: 0;
}
/* el editor (form_edicion.hb) se inyecta DENTRO de #core-formulario-form como
   <div class="row"><div id="c-form-edition">...</div></div> — ese .row es
   descendiente de #core-formulario-form, no hijo directo de .step-pane.active,
   asi que la regla de arriba no lo alcanza. Se repite la cascada flex un nivel
   mas para que #c-form-edition tambien pueda usar el alto disponible.
   OJO: #core-formulario-form tiene un SEGUNDO .row hijo directo, hermano de este
   (form_edicion.hb:29, .form-edicion-actions con Cancelar/Guardar) — sin acotar
   el selector, ese tambien recibia flex:1 1 auto y competia por el mismo espacio
   sobrante, "robandole" la mitad del alto disponible al editor. Se acota con
   :not(.form-edicion-actions) para que solo aplique al .row que envuelve
   #c-form-edition. */
#Wizardformulario .step-content .step-pane.active #core-formulario-form > .row:not(.form-edicion-actions) {
    display: flex;
    flex-direction: column;
    /* flex-shrink:0, ver nota extendida en .step-pane.active de arriba. */
    flex: 1 0 auto;
    min-height: 0;
}
/* la fila de acciones (Cancelar/Guardar) debe quedar SIEMPRE con su alto natural,
   pegada justo debajo del editor — no competir por el espacio sobrante ni
   estirarse verticalmente. */
#Wizardformulario .step-content .step-pane.active #core-formulario-form > .row.form-edicion-actions {
    flex: 0 0 auto;
}
/* MOV-5816: refuerza el centrado del editor (form_edicion.hb:2, columnas
   responsivas col-12/col-sm-8/col-xl-6) con margin:auto independiente del grid.
   overflow-x:visible (no hidden) por el mismo motivo que .step-pane.active arriba:
   evita forzar overflow-y:auto implicito (que atrapaba dropdowns/popovers propios
   del editor en un scroll interno recortado) — el recorte horizontal real de
   contenido mas ancho que la columna sigue a cargo de .step-content (unico scroll).
   display:flex/flex-direction:column/min-height:0 son para el rol de #c-form-edition
   como CONTENEDOR de sus propias paginas (para que la cascada de alto siga bajando),
   no para su rol como ITEM del .row padre — a diferencia de ese .row, aqui NO se
   declara flex-grow: se probo (Chrome DevTools MCP, form_id=1589) que un flex:1 0 auto
   en esta regla no afecta el ancho (el eje principal del .row padre es vertical por
   flex-direction:column, asi que flex-grow/flex-basis de un item solo mueven alto) y
   el alto de mas que agregaba (601px vs 445px de contenido real, sin borde/fondo en
   este elemento) era espacio en blanco al final sin ningun elemento visible ahi —
   residual, sin impacto en la apariencia. Se retira para no dejar una declaracion sin
   efecto visible en el codigo (encontrado por /code-review, finding F-1: la lectura de
   que competia con el flex:0 0 auto de Bootstrap y anulaba el ancho responsivo de la
   columna era incorrecta — el ancho lo sigue fijando max-width, ajeno al flex-grow).
   IMPORTANTE: acotada a #Wizardformulario, a diferencia de una version anterior que
   declaraba #c-form-edition suelto (sin prefijo) — form_edicion.hb (mismo id
   c-form-edition) se reinyecta tambien fuera de #Wizardformulario, en el modal
   #DesignForm/#WizardWorkflow de modules/system_flow (system_flow_conf.js:75-85,
   admin_system_flow.js:149-159, funcion CargarFormulario) — una pantalla no tocada
   ni verificada por este hotfix. Sin el prefijo la regla se fugaba tambien ahi,
   contradiciendo la justificacion de design_approval:not_applicable de este ticket
   (encontrado por /code-review, finding F-2). */
#Wizardformulario #c-form-edition {
    margin-left: auto;
    margin-right: auto;
    max-width: 100%;
    overflow-x: visible;
    display: flex;
    flex-direction: column;
    min-height: 0;
}
/* MOV-5816 (Hallazgo N, posterior al fix del Hallazgo H): un Agregador sin
   controles adentro colapsa a 0px de alto en ".form-edicion-container-control-
   aggregator-body" (sin hijos, sin ningun CSS que le de min-height). dragula
   detecta el contenedor bajo el mouse via document.elementFromPoint() en cada
   mousemove -- un elemento con height:0 nunca puede "recibir" esa posicion, asi
   que un Agregador vacio nunca aparece como destino valido del drop (aunque
   SetupPageDragula() ya lo registra bien como contenedor). Con al menos un
   control adentro el problema no se manifiesta porque los hijos le dan altura
   real. Se le da una altura minima util como zona de drop incluso vacio. */
.form-edicion-container-control-aggregator-body {
    min-height: 80px;
}
/* MOV-5816: el header del Agregador (".row.header", form_edicion_control_
   aggregator.hb) es hermano de "-body", no descendiente -- necesario para que
   el mousedown ahi siga burbujeando hasta la raiz del Agregador (el item
   arrastrable, Hallazgo H) en vez de quedar atrapado en "-body" (un
   contenedor registrado de dragula). Esto crea una "zona muerta" arriba de
   "-body" (el padding de la raiz + el alto del header) donde el cursor nunca
   resuelve a "-body" via elementFromPoint -- al arrastrar un control ya
   posicionado justo antes del Agregador, esa zona coincide con su posicion
   de origen y dragula la trata como no-op (sin placeholder visible) hasta
   saltar directo a "despues del Agregador". No se puede eliminar del todo
   sin anidar el header dentro de "-body" (lo que rompería el Hallazgo H) --
   se mitiga acotando el padding superior de la raiz (menos zona muerta antes
   de "-body") y subiendo el min-height de "-body" (mas franja real donde
   dragula SI resuelve a "-body" una vez que el cursor la alcanza). */
.form-edicion-container-control-aggregator {
    padding-top: 2px;
}
/* MOV-5816: hover consistente con ".form-edicion-container-control:hover"
   (content.css) para senializar la zona arrastrable -- pero acotado al
   header, no a la caja completa del Agregador: "-body" es el contenedor de
   drop de sus hijos (dragula), no la zona de arrastre de la raiz (Hallazgo
   H), asi que resaltar todo el Agregador induciria a error sobre donde se
   puede iniciar el drag. */
.form-edicion-container-control-aggregator > .row.header:hover {
    background-color: rgb(236, 236, 236);
    cursor: grab;
}
/* MOV-5816: limita el alto del menu "Agregar control" (pagina y Agregador,
   form_edicion_page.hb / form_edicion_control_aggregator.hb) a 50% del
   viewport. bootstrap-dropdown-helper.js ya fija overflow-y:auto por codigo
   (inline) para .dropdown-menu-overlay, asi que basta con acotar max-height
   por CSS para habilitar el scroll interno en vez de que el menu se extienda
   mas alla de la pantalla con formularios que tienen muchos tipos de control
   disponibles.
   NO se puede acotar via ancestro (p.ej. "#Wizardformulario .dropdown-menu-
   overlay"): bootstrap-dropdown-helper.js reparenta el <ul> a un wrapper que
   cuelga directo de document.body (o del .modal mas cercano) apenas se abre
   -- openMenu(), "main.appendChild(wrapper); wrapper.appendChild(dropdownMenu)"
   -- por lo que deja de ser descendiente de #Wizardformulario justo cuando el
   menu esta visible. Se usa en cambio una clase propia en el <ul>, que viaja
   con el elemento sin importar donde quede reparentado, y que solo llevan
   estos 2 templates -- no afecta los demas usos de .dropdown-menu-overlay en
   listados del modulo admin (contratos, sucursales, etc.), que son cortos y
   no lo necesitan. */
.form-edicion-dropdown-agregar-control {
    max-height: 50vh;
}
.open>.dropdown-menu {
    /*overflow-y:scroll;	*/
}
.table {
    margin-bottom: 20px !important;
}
@media (max-width:767px){.page-header.navbar{background:#E7505A !important}
.table-responsive {
overflow-y: auto !important;
}
.page-footer{
	padding:0px !important;
	height:0px !important;
}
.page-header.navbar .top-menu .navbar-nav>li.dropdown-user>.dropdown-menu {
    width: 235px !important;
}