/* ==== FIX: el contenedor de tabs se sube y tapa la miga ==== */
/* Aplica en todas las vistas; si quieres, limítalo a INICIO con :not(.form) */
body.layout_lefttab .glpi_tabs .ui-tabs,
body.layout_lefttab .glpi_tabs .center.horizontal.ui-tabs {
  position: static !important;      /* quita el fixed */
  top: auto !important;
  left: auto !important;
  right: auto !important;
  /*margin-top: 0 !important;          anula el -30px inline */
  z-index: auto !important;
  transform: none !important;
}

/* Asegura que la barra de migas/tabs quede visible y con altura */
body.layout_lefttab .glpi_tabs,
body.layout_lefttab .breadcrumb,
body.layout_lefttab .glpi-breadcrumb {
  display: block !important;
  background: #fff !important;
  padding: 12px 20px 25px 12px !important;
  min-height: 52px !important;
  line-height: 1.25 !important;
  overflow: visible !important;
}

/* Separa el contenido por debajo (Inicio y resto) */
body.layout_lefttab #page {
  position: relative !important;
  z-index: 1 !important;
  margin-top: 56px !important;      /* sube a 60–64 si aún muerde */
  display: flow-root !important;    /* evita colapso de márgenes en Firefox */
}


body.layout_lefttab:not(.form) .glpi_tabs .ui-tabs,
body.layout_lefttab:not(.form) .glpi_tabs .center.horizontal.ui-tabs { ... }


/* 0) Espaciado entre migas y contenido (compacto) */
body.layout_lefttab.form #page { margin-top: -15px !important; }

/* 1) Tabla clásica de GLPI: etiquetas a la izquierda, campos a la derecha */
/*html body table.tab_cadre_fixe { width: 100%;}*/
html body table.tab_cadre_fixe tr.tab_bg_1 > td { padding: 8px 12px; }
html body table.tab_cadre_fixe tr > td {
  color:#111; font-weight:600; vertical-align: middle;
}
html body table.tab_cadre_fixe tr > td:last-child { width: auto; }

/* 2) Campos base (inputs / selects / textareas) */
body.layout_lefttab.form input:not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]),
body.layout_lefttab.form select,
body.layout_lefttab.form textarea {
  width: 100%;
  max-width: 100%;
  height: 42px;
  padding: 8px 12px;
  font-size: 14px;
  background: #fff;
  color: #111;
  border: 1px solid #cfd4dc;
  border-radius: 8px;
  box-shadow: inset 0 1px 2px rgba(0,0,0,.05);
  box-sizing: border-box;
  transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}



/* Textarea (altura flexible) */
body.layout_lefttab.form textarea { min-height: 44px; height: 44px; resize: none; }

body.layout_lefttab.form textarea.textarea_style { min-height: 150px; height: 150px; resize: none; } !important

/* Hover / Focus */
body.layout_lefttab.form input:hover,
body.layout_lefttab.form select:hover,
body.layout_lefttab.form textarea:hover { border-color: #9aa4b2; }

body.layout_lefttab.form input:focus,
body.layout_lefttab.form select:focus,
body.layout_lefttab.form textarea:focus {
  outline: none;
  border-color: #1d4ed8;                 /* azul corporativo */
  box-shadow: 0 0 0 3px rgba(29,78,216,.18);
}

/* Estado deshabilitado / solo lectura */
body.layout_lefttab.form input:disabled,
body.layout_lefttab.form select:disabled,
body.layout_lefttab.form textarea:disabled,
body.layout_lefttab.form input[readonly] {
  background: #f3f4f6;
  color: #6b7280;
  border-color: #e5e7eb;
  cursor: not-allowed;
}

/* 3) Select nativo con flecha moderna (no afecta Select2) */
body.layout_lefttab.form select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l5 6 5-6' stroke='%23666' stroke-width='1.6' fill='none'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 12px 8px;
  padding-right: 32px;
}

/* 4) Inputs autocompletables de GLPI (textfield_*, ui-autocomplete) */
body.layout_lefttab.form input.autocompletion-text-field,
body.layout_lefttab.form input.ui-autocomplete-input,
body.layout_lefttab.form input[id^="textfield_"] {
  height: 42px;
}

/* 5) Select2 a juego */
html body .select2-container { width: 100% !important; }
html body .select2-container .select2-selection--single {
  height: 42px;
  border: 1px solid #cfd4dc;
  border-radius: 8px;
  display: flex; align-items: center;
  box-shadow: inset 0 1px 2px rgba(0,0,0,.05);
}
html body .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 42px; }
html body .select2-container--default .select2-selection--single .select2-selection__arrow { height: 42px; }

/* 6) Botones principales */
button#boton_guardar, button#boton_eliminar {
  height: 40px; border-radius: 10px; padding: 0 14px;
  font-weight: 600; letter-spacing: .2px;
  border: 0; box-shadow: 0 1px 2px rgba(0,0,0,.08);
}
button#boton_guardar { background:#0D5CAB; color:#fff; }
button#boton_guardar:hover { filter: brightness(0.95); }
button#boton_eliminar { background:#D1D1D1; color:#fff; }
button#boton_eliminar:hover { filter: brightness(0.95); }

/* 7) Responsive (evitar desbordes) */
@media (max-width: 1024px) {
  html body table.tab_cadre_fixe tr > td:first-child { width: 35%; }
}

/* === Igualar altura de Select2 v3 a inputs (44px) === */
:root { --sel-h: 44px; --sel-px: 12px; }

/* Asegura ancho completo */
.select2-container { width: 100% !important; }

/* Caja visible del select2 v3 */
.select2-container .select2-choice {
  height: var(--sel-h) !important;
  line-height: var(--sel-h) !important;   /* centra el texto */
  padding: 0 calc(var(--sel-px) + 24px) 0 var(--sel-px) !important; /* hueco flecha */
  font-size: 14px !important;
  border: 1px solid #cfd4dc !important;
  border-radius: 8px !important;
  background: #fff !important;
  box-sizing: border-box !important;
}

/* Texto interno */
.select2-container .select2-choice > .select2-chosen {
  line-height: var(--sel-h) !important;
}

/* Flecha a la derecha */
.select2-container .select2-choice .select2-arrow {
  position: absolute !important;
  right: 6px; top: 0; bottom: 0;
  width: 18px !important;
  height: var(--sel-h) !important;
  background: none !important;
}

/* Dibujamos la flecha con CSS (evita sprite antiguo) */
.select2-container .select2-choice .select2-arrow b {
  display: block; width: 0; height: 0; margin: auto;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 6px solid #666;
}

/* Hover/focus como los inputs */
.select2-container .select2-choice:hover { border-color: #9aa4b2 !important; }
.select2-container-active .select2-choice,
.select2-dropdown-open .select2-choice {
  border-color: #1d4ed8 !important;
  box-shadow: 0 0 0 3px rgba(29,78,216,.18) !important;
}

/* Centrar flecha de Select2 v3 */
.select2-container .select2-choice .select2-arrow {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: var(--sel-h) !important;
}

.select2-container .select2-choice .select2-arrow b {
  margin: 0 !important;
}

/* Ajustar ancho del input de Presupuesto y espacio para el símbolo € */
td:has(input[id^="textfield_importe_proyecto"]) {
  position: relative;
}

td:has(input[id^="textfield_importe_proyecto"]) input {
  padding-right: 40px !important; /* más aire para el símbolo */
  box-sizing: border-box !important;
  width: 100% !important;
}

/* Posicionar el símbolo € de forma consistente */
td:has(input[id^="textfield_importe_proyecto"]) + td {
  position: relative;
}

/* === 1) Altura uniforme para TODOS los selects (por si acaso) === */
:root{ --h-field:44px; --px:12px; --py:10px; }
body.layout_lefttab.form select {
  height: var(--h-field) !important;
  padding: var(--py) var(--px) !important;
  box-sizing: border-box !important;
  font-size: 14px !important;
}

/* === 2) EXCEPCIÓN: selects de las fechas (mes y año)
       -> usar flecha nativa (sin nuestra imagen) y misma altura === */
table.tab_cadre_fixe tr.tab_bg_1 td select {
  -webkit-appearance: menulist !important;
  -moz-appearance: menulist !important;
  appearance: menulist !important;
  background-image: none !important;      /* quita la flecha SVG nuestra */
  background-position: initial !important;
  background-repeat: initial !important;
  background-size: initial !important;
  height: var(--h-field) !important;
  padding: var(--py) var(--px) !important; /* centra el contenido */
  line-height: normal !important;
}

/* Firefox suele ajustar 1px distinto: suaviza el centrado vertical */
@-moz-document url-prefix() {
  table.tab_cadre_fixe tr.tab_bg_1 td select {
    padding-top: 9px !important;
    padding-bottom: 9px !important;
  }
}

/* Altura estándar para mes y año (44px) */
:root { --h-field: 44px; --px: 12px; --py: 10px; }

/* AÑOS = inputs type=number que crea GLPI */
#plan_start_date_ANIO,
#plan_end_date_ANIO {
  height: var(--h-field) !important;
  min-height: var(--h-field) !important;
  padding: var(--py) var(--px) !important;
  font-size: 14px !important;
  border: 1px solid #cfd4dc !important;
  border-radius: 8px !important;
  box-sizing: border-box !important;
  line-height: normal !important;
}

/* (si tus IDs fueran otros, añade aquí esos IDs) */

/* Meses: por si acaso, asegúralos también (son <select>) */
#plan_start_date_MES,
#plan_end_date_MES {
  height: var(--h-field) !important;
  min-height: var(--h-field) !important;
  padding: var(--py) var(--px) !important;
  font-size: 14px !important;
  border: 1px solid #cfd4dc !important;
  border-radius: 8px !important;
  box-sizing: border-box !important;
  line-height: normal !important;
}

/* Ajuste de los “spin buttons” de los inputs numéricos para que no desplacen el contenido */
#plan_start_date_ANIO::-webkit-outer-spin-button,
#plan_start_date_ANIO::-webkit-inner-spin-button,
#plan_end_date_ANIO::-webkit-outer-spin-button,
#plan_end_date_ANIO::-webkit-inner-spin-button {
  margin: 0;                     /* evita que bajen el texto */
  height: var(--h-field);        /* iguala su alto al del campo */
}

#plan_start_date_ANIO {
  -moz-appearance: textfield;    /* Firefox: quita estilo raro del number */
}
#plan_end_date_ANIO {
  -moz-appearance: textfield;
}

.photo-upload {
  display: inline-block;
  vertical-align: top;
}

.photo-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 260px; /* ajusta según el diseño */
  height: 160px; /* ajusta según el diseño */
  border: 2px dashed #ccc;
  border-radius: 8px;
  background-color: #f9f9f9;
  color: #999;
  cursor: pointer;
  transition: border-color 0.3s, background-color 0.3s;
  text-align: center;
}

.photo-placeholder:hover {
  border-color: #007bff;
  background-color: #f1f8ff;
}

.photo-placeholder .camera-icon {
  font-size: 48px;
  margin-bottom: 8px;
}

.photo-placeholder .photo-text {
  font-size: 14px;
}

.photo-placeholder input[type="file"] {
  display: none; /* Ocultamos el input real */
}


/* ======== Base botones: iguales a Guardar/Eliminar ======== */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  min-width: 95px;
  height: 44px;
  padding: 0 16px;
  border-radius: 8px;
  border: 0;
  font-weight: 700;
  font-size: 14px;
  cursor: pointer;
  transition: transform .02s ease, box-shadow .2s ease, background-color .2s;
  text-decoration: none;
  user-select: none;
}
.btn:active{ transform: translateY(1px); }

.btn-primary{
  background: #0D5CAB;      /* mismo azul que Guardar */
  color: #fff;
  box-shadow: 0 2px 0 rgba(0,0,0,.06);
}
.btn-primary:hover{ background:#0b4f96; }

.btn-secondary{
  background: #D1D1D1;      /* mismo gris que Eliminar */
  color: #fff;
  box-shadow: 0 2px 0 rgba(0,0,0,.06);
}
.btn-secondary:hover{ background:#bdbdbd; }


.bovis-upload__dropzone{
  border: 2px dashed #cfd4dc;
  border-radius: 12px;
  background: #f7f9fc;
  padding: 28px 24px;
  text-align: center;
  color: #475569;
  transition: border-color .2s, background-color .2s, box-shadow .2s;
}

/* Resalte al pasar por encima (si luego añades JS para dragover/enter añade la clase .is-dragover) */
.bovis-upload__dropzone:hover,
.bovis-upload__dropzone.is-dragover{
  border-color: #1d4ed8;
  background: #eef5ff;
  box-shadow: 0 0 0 3px rgba(29,78,216,.12);
}

.bovis-upload__dropzone .dz-title{
  font-size: 16px;
  font-weight: 600;
  margin: 0 0 6px;
}

.bovis-upload__dropzone .dz-or{
  margin: 8px 0 16px;
  color: #64748b;
  font-size: 13px;
}
.bovis-upload__dropzone .dz-or span{
  display:inline-block;
  position:relative;
  padding: 0 10px;
}
.bovis-upload__dropzone .dz-or span::before,
.bovis-upload__dropzone .dz-or span::after{
  content:"";
  position:absolute; top:50%;
  width: 120px; height:1px;
  background: #e5e7eb;
}
.bovis-upload__dropzone .dz-or span::before{ right:100%; margin-right:10px; }
.bovis-upload__dropzone .dz-or span::after { left:100%;  margin-left:10px; }

.bovis-upload__dropzone .dz-hint{
  margin-top: 12px;
  color:#7a8699;
  font-size: 12px;
}

/* Oculta el input real: clic en la etiqueta actúa como botón */
.bovis-upload input[type="file"]{
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: 0;
  overflow: hidden; clip: rect(0,0,0,0);
  border: 0;
}

/* Lista de archivos (opcional) */
.bovis-upload__list{
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
  color: #374151;
  font-size: 14px;
}
.bovis-upload__list li{
  padding: 6px 0;
  border-bottom: 1px solid #eef2f7;
}

table-column, table-row, table-column-group, table-row-group o table-footer-group {
  padding: 300px; /* Relleno para las celdas */
}

/* 1) Cargar Lato desde tu propio servidor */
@font-face{
  font-family: "Lato";
  src: url("/bovis/fonts/lato-Variable.woff2") format("woff2-variations");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
/* Si no tienes variable, usa pesos fijos como fallback */
@font-face{
  font-family: "Lato";
  src: url("/bovis/fonts/lato-regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
/* (opcional) bold */
@font-face{
  font-family: "Lato";
  src: url("/bovis/fonts/lato-bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* 2) Forzar Lato en TODO el formulario (selector que ya te funcionó) */
:root { --ui-font: "Lato", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; }

html:not(#_) { font-family: var(--ui-font) !important; }
body:not(#_) { font-family: var(--ui-font) !important; }

/* evita cambiar iconos fontawesome */
body *:not(i):not([class*="fa"]) {
  font-family: var(--ui-font) !important;
}

/* asegurar que los controles de formulario y Select2 heredan */
select, input, textarea, button,
.select2-container .select2-choice,
.select2-container .select2-chosen {
  font-family: var(--ui-font) !important;
}

table tbody tr td {
  padding: 3px 6px !important;
  vertical-align: middle; /* para que el texto no se pegue arriba */
}

.search_page {
  background: #F7F6F6;
  /*padding: 30px;*/
  margin: 0px 10px;   /* margen superior/inferior */
  max-width: 95%;      /* opcional: que no se pegue a los lados */
}


/* Nada de huecos extra abajo */
#footer, footer {
  margin: 0 !important;        /* sin hueco blanco externo */
  background: #e9ecef;         /* el gris del bloque, si no lo tienes ya */
  min-height: 36px;            /* alto mínimo cómodo */
  line-height: 1;            /* texto más “alto” dentro */
  z-index: 1;
  text-align: center;
}

/* Si el footer lleva un contenedor interno, lo subimos aún más */
#footer .inner, 
#footer .container, 
#footer .copyright {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

#footer td.left,
#footer td.copyright,
#footer td.right {
  padding: 8px 16px !important;
}

/* Nos aseguramos de que el scroll horizontal no sea global */
/*html, body { overflow-x: hidden; }*/

/* El scroll va dentro del área de la tabla (ajusta al contenedor real) */
.search_page, .table-wrapper, .resultadoBusqueda {
  /*overflow-x: auto;*/
  padding-bottom: 12px;   /* para que la barra no toque el texto del footer */
}

#cuadroBusquedaProveedores .tab_cadre_fixe {
  width: 100% !important;
  max-width: 100% !important;
}

/* El td que contiene el panel */
tr.tabsNav_tab_bg_1_left > td.tab {
  position: relative;
  overflow: visible !important;         /* que no recorte el panel */
}

/* El contenedor del panel dentro del td (el azul claro de tu captura) */
tr.tabsNav_tab_bg_1_left > td.tab > div {
  box-sizing: border-box;
  width: 200% !important;               /* 2 columnas */
  margin-left: -100% !important;        /* desplazar para empezar en el borde izquierdo de la tabla */
}

html {
   overflow-y: hidden !important;
}

/* 1) Quitar el borde inferior del contenedor del tab activo */
.tabsNav .tab input:checked ~ div {
  border-bottom: 0 !important;
  box-shadow: none !important;   /* por si una sombra te hace otra “línea” */
}

/* 2) Eliminar cualquier borde inferior de la tabla y de sus filas/celdas */
.tabsNav .tab input:checked ~ div table.tab_cadre_fixe,
.tabsNav .tab input:checked ~ div table.tab_cadre_fixe tr,
.tabsNav .tab input:checked ~ div table.tab_cadre_fixe td {
  border-bottom: 0 !important;
  border: 0 !important;          /* mata todos los bordes residuales */
  border-collapse: collapse !important;
}

/* 3) Si hubiese una <hr> de separación al final del bloque */
.tabsNav .tab input:checked ~ div hr {
  display: none !important;
}

/* Mantener marco del cuadro y quitar los bordes internos */
.cuadro_busqueda { border: 1px solid #D7D7DA !important; }  /* el que quieras */
.tabsNav .tab input:checked ~ div { border-color: transparent !important; }







/************************************************************
 * SOLO el título azul del cuadro de filtros
 ************************************************************/

/* Encabezado azul con más altura */
table.tabla-filtros-derecha thead tr.titulo_tabla th {
  background-color: #0e52a0 !important;
  color: #fff !important;
  font-weight: bold !important;
  text-align: center;
  padding: 14px 10px !important;   /* más padding vertical para dar altura */
  border: none !important;
  border-top-left-radius: 4px !important;
  border-top-right-radius: 4px !important;
  font-size: 15px;                 /* opcional: letra un pelín mayor */
}

/* Quitar bordes internos de tbody */
table.tabla-filtros-derecha tbody td,
table.tabla-filtros-derecha tbody th {
  border: none !important;
  background: #fff !important;
  vertical-align: top !important;  /* alinear arriba contenido */
  padding: 6px 8px !important;
}

/* Asegurar que el marco exterior se vea */
table.tabla-filtros-derecha {
  border: 1px solid #D7D7DA !important;
  border-radius: 4px !important;
  background: #fff !important;
  border-collapse: separate !important;
  overflow: hidden;
}



#tablaFiltros_info .select-info,
#tablaFiltros_info .select-item {
  display: none !important;
}


.footerRow {
  background-color: #F1F1F1 !important; /* gris claro */
  color: #333;                          /* texto gris oscuro para contraste */
  font-weight: normal;
}

#t1:checked ~ #contenedorResultados {
  display: none !important;
}

/* Cuando está seleccionada la pestaña "Búsqueda por nombre",
   mostrarlo (por si lo habías ocultado antes) */
#tab_nombre:checked ~ #contenedorResultados {
  display: block !important;
}

/* margen interno para todo el contenido */
#mainformtable.tab_cadre_fixe td,
#mainformtable.tab_cadre_fixe th {
  padding: 12px 18px !important;
}

/* si quieres más aire solo en el borde del recuadro */
//#mainformtable.tab_cadre_fixe tr:first-child td { padding-top: 20px !important; }
//#mainformtable.tab_cadre_fixe tr:last-child  td { padding-bottom: 20px !important; }
//#mainformtable.tab_cadre_fixe td:first-child  { padding-left: 24px !important; }
//#mainformtable.tab_cadre_fixe td:last-child   { padding-right: 40px !important; }








/* Input de búsqueda */
.search_page span[id^="spansearchtypecriteria"] {
    display: inline-block !important;
    width: 260px !important;
}

.search_page span[id^="spansearchtypecriteria"] input[type="text"] {
    width: 250px !important;
    min-width: 250px !important;
}

/* Alinear el + y "Elementos mostrados" en la misma línea */
.search_page table[id^="criteriatable"] tr[id^="searchrow"] td.left {
    white-space: nowrap !important;
    width: 370px !important;
    min-width: 370px !important;
}

.search_page img[id^="addsearchcriteria"],
.search_page div[id^="s2id_dropdown_criteria_0_field"] {
    display: inline-block !important;
    vertical-align: middle !important;
}

.search_page div[id^="s2id_dropdown_criteria_0_field"] {
    width: 280px !important;
    min-width: 280px !important;
    margin-left: 15px !important;
}

/* Separar contiene e input */
.search_page table[id^="criteriatable"] tr[id^="searchrow"] td:nth-child(3),
.search_page table[id^="criteriatable"] tr[id^="searchrow"] td:nth-child(4) {
    padding-left: 25px !important;
}

.search_page div[id^="s2id_dropdown_criteria_0_field"] {
    width: 280px !important;
    min-width: 280px !important;
    margin-left: 15px !important;
}

/* Separar contiene del input Carlos */
.search_page span[id^="spansearchtypecriteria"] {
    margin-left: 20px !important;
}

.search_page div[id^="s2id_dropdown_criteria_0_searchtype"] {
    margin-left: 35px !important;
}

div[id^="s2id_dropdown_criteria_0_searchtype"] {
    position: relative !important;
    left: 50px !important;
}

/* Mover la celda donde está "contiene" */
.search_page tr[id^="searchrow"] td.left + td.left {
    padding-left: 40px !important;
}