/* /Components/Compartido/Cubo/LIB_Cubo.razor.rz.scp.css */
/* min-width: 0 para que, con muchas columnas, se desplace la grilla y no toda la pagina. */
.cubo[b-0zktstft2g] {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  max-width: 100%;
}

/* Franjas donde se sueltan los campos (paginas arriba, columnas debajo), como en DynamiCube. */
.cubo-zona[b-0zktstft2g] {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  align-items: center;
  min-height: 30px;
  padding: 3px 4px;
  border: 1px dashed var(--sc-line);
  border-radius: 4px;
}

.cubo-campo[b-0zktstft2g] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  border: 1px solid #8a8a8a;
  border-radius: 3px;
  background: #e8e8e8;
  color: #000;
  font-size: 12px;
  font-weight: 400;
  cursor: grab;
  user-select: none;
  white-space: nowrap;
}

.cubo-filtro[b-0zktstft2g] {
  font-size: 12px;
  max-width: 180px;
}

.cubo-vacio[b-0zktstft2g] {
  color: var(--sc-muted, #888);
  font-size: 12px;
  font-style: italic;
}

.cubo-mover[b-0zktstft2g] {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  font-size: 13px;
}

.cubo-grilla[b-0zktstft2g] {
  max-width: 100%;
  overflow: auto;
  max-height: 60vh;
  border: 1px solid var(--sc-line);
}

.cubo-en-blanco[b-0zktstft2g] {
  height: 360px;
  background: #fff;
}

/* Como DynamiCube: cada columna del ancho de su contenido (no el width: 100% general de las tablas). */
.cubo-tabla[b-0zktstft2g] {
  width: auto;
  min-width: 0;
  border-collapse: collapse;
  font-size: 12px;
}

.cubo-tabla th[b-0zktstft2g],
.cubo-tabla td[b-0zktstft2g] {
  border: 1px solid #c8c8c8;
  padding: 1px 6px;
  white-space: nowrap;
}

.cubo-tabla thead th[b-0zktstft2g] {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #e8e8e8;
  color: #000;
  font-weight: 400;
  text-align: center;
}

.cubo-tabla .cubo-etiqueta[b-0zktstft2g] {
  background: #fff;
  color: #000;
  font-weight: 400;
  text-align: left;
}

.cubo-tabla td[b-0zktstft2g] {
  text-align: right;
  background: #fff;
  color: #000;
}

/* Totales en amarillo, como el cubo de FoxPro. */
.cubo-tabla .cubo-total[b-0zktstft2g] {
  background: #ffffc0;
}

.cubo-fila-total .cubo-etiqueta[b-0zktstft2g] {
  background: #fff;
}

.cubo-acciones[b-0zktstft2g] {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: center;
}

.cubo-totales[b-0zktstft2g] {
  display: inline-flex;
  gap: 4px;
  align-items: center;
  font-size: 13px;
}

/* Impresion: solo la tabla, en negro sobre blanco. En pantalla no se ve: existe solo mientras esta abierto el
   dialogo de impresion. */
@media screen {
  .cubo-impreso[b-0zktstft2g] {
    display: none;
  }
}

.cubo-impreso[b-0zktstft2g] {
  color: #000;
  background: #fff;
  font-family: "Arial Narrow", Arial, sans-serif;
}

.cubo-impreso-titulo[b-0zktstft2g] {
  text-align: center;
  font-size: 18px;
  font-weight: 700;
}

.cubo-impreso-subtitulo[b-0zktstft2g] {
  text-align: center;
  font-size: 13px;
  margin-bottom: 6px;
}

.cubo-impreso .cubo-tabla thead th[b-0zktstft2g] {
  position: static;
}

/* Boton de DynamiCube para contraer o abrir un grupo: cuadrito con borde y un - o un + al centro. */
.cubo-plegar[b-0zktstft2g] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 11px;
    height: 11px;
    margin: 0 4px 0 0;
    padding: 0;
    border: 1px solid #6b6b6b;
    border-radius: 1px;
    background: #fff;
    color: #000;
    font: 700 10px/1 Arial, sans-serif;
    /* Centrado con el texto de la etiqueta (letra de 12px de la grilla). */
    vertical-align: 3px;
    cursor: pointer;
}

.cubo-plegar:hover[b-0zktstft2g] {
    background: #e8eef7;
    border-color: #333;
}

.cubo-plegar:focus-visible[b-0zktstft2g] {
    outline: 2px solid var(--sc-accent-dark);
    outline-offset: 1px;
}


/* Flecha del campo de fila o de columna y su lista con casillas (DynamiCube: elegir los valores que se ven). */
.cubo-campo-lista[b-0zktstft2g],
.cubo-titulo-fila[b-0zktstft2g] {
    position: relative;
}

.cubo-flecha[b-0zktstft2g] {
    border: 0;
    background: none;
    padding: 0 2px;
    margin-left: 2px;
    font: inherit;
    line-height: 1;
    cursor: pointer;
    color: #000;
}

.cubo-lista[b-0zktstft2g] {
    position: absolute;
    z-index: 20;
    top: 100%;
    left: 0;
    min-width: 200px;
    max-height: 280px;
    overflow: auto;
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 8px;
    background: #fff;
    border: 1px solid var(--sc-line);
    box-shadow: 0 4px 12px rgba(24, 33, 47, 0.18);
    text-align: left;
    font-weight: 400;
    white-space: nowrap;
}

.cubo-lista label[b-0zktstft2g] {
    display: flex;
    align-items: center;
    gap: 6px;
}

/* El encabezado con la lista abierta va encima de los demas y de las filas (la lista no queda tapada). */
.cubo-tabla thead th:has(.cubo-lista)[b-0zktstft2g] {
    z-index: 5;
}

/* Cabecera de campo como en DynamiCube: celda gris plana, nombre a la izquierda sin recuadro y la flecha a la
   derecha en un botoncito propio. */
.cubo-tabla .cubo-titulo-fila[b-0zktstft2g],
.cubo-tabla .cubo-titulo-dato[b-0zktstft2g] {
    text-align: left;
}

.cubo-cabecera[b-0zktstft2g] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
}

.cubo-tabla .cubo-campo[b-0zktstft2g] {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: none;
}

.cubo-campo-lista.cubo-cabecera[b-0zktstft2g] {
    padding: 1px 1px 1px 6px;
    border: 1px solid #8a8a8a;
    background: #e8e8e8;
}

.cubo-campo-lista .cubo-campo[b-0zktstft2g] {
    padding: 0;
    border: 0;
    background: none;
}

.cubo-cabecera .cubo-flecha[b-0zktstft2g] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 14px;
    height: 14px;
    margin: 0;
    padding: 0;
    border: 1px solid #8a8a8a;
    background: #f4f4f4;
    font-size: 9px;
    line-height: 1;
}

.cubo-cabecera .cubo-flecha:hover[b-0zktstft2g] {
    background: #fff;
}


/* Filtros de arriba como en DynamiCube: caja gris con el nombre, el valor elegido y la flecha a la derecha. */
.cubo-pagina[b-0zktstft2g] {
    cursor: grab;
}

.cubo-filtro-valor[b-0zktstft2g] {
    font-weight: 600;
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cubo-opcion[b-0zktstft2g] {
    border: 0;
    background: none;
    padding: 2px 6px;
    text-align: left;
    font: inherit;
    font-size: 12px;
    cursor: pointer;
}

.cubo-opcion:hover[b-0zktstft2g] {
    background: #e8eef7;
}

.cubo-opcion.is-elegido[b-0zktstft2g] {
    background: var(--sc-accent-dark);
    color: #fff;
}

/* Franjas de filtros y columnas sin el borde punteado: la de columnas queda como un espacio para soltar. */
.cubo-zona[b-0zktstft2g] {
    border: 0;
    padding: 2px 0;
}

.cubo-columnas[b-0zktstft2g] {
    min-height: 22px;
}

/* Pestanas del PageFrame de cntcubo: "Datos" y "Grafico", cada una de la mitad del ancho. */
.cubo-pestanas[b-0zktstft2g] {
  display: flex;
  border-bottom: 1px solid #8a8a8a;
  margin-bottom: 6px;
}

.cubo-pestana[b-0zktstft2g] {
  flex: 1 1 0;
  padding: 3px 8px;
  border: 1px solid #c8c8c8;
  border-bottom: 0;
  border-radius: 3px 3px 0 0;
  background: #f0f0f0;
  color: #000;
  font-size: 12px;
}

.cubo-pestana.is-activa[b-0zktstft2g] {
  background: #fff;
  border-color: #8a8a8a;
  font-weight: 600;
}

.cubo-pestana:disabled[b-0zktstft2g] {
  color: #9a9a9a;
  cursor: default;
}

/* Pagina Grafico: el grafico a la izquierda y "Tipo de grafico:" a la derecha (cboTipoGrafico). */
.cubo-grafico[b-0zktstft2g] {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: flex-start;
}

.cubo-grafico-area[b-0zktstft2g] {
  flex: 0 1 760px;
  min-width: 0;
  border: 1px solid #c8c8c8;
  background: #fff;
}

.cubo-grafico-area[b-0zktstft2g]  svg {
  display: block;
  width: 100%;
  height: auto;
}

.cubo-grafico-opciones[b-0zktstft2g] {
  display: flex;
  flex-direction: column;
  gap: 6px;
  width: 140px;
  font-size: 12px;
  color: #004080;
}

.cubo-grafico-tipo[b-0zktstft2g] {
  font-size: 12px;
  color: #004080;
}

.cubo-grafico-aviso[b-0zktstft2g] {
  white-space: pre-line;
  color: #000;
}

/* Texto de ayuda de pagGraph (en FoxPro, con fondo gris debajo del combo). */
.cubo-grafico-ayuda[b-0zktstft2g] {
  margin-top: 4px;
  padding: 2px 4px;
  background: #ececec;
}

/* Mientras se rota el 3D con Ctrl+arrastrar. */
.cubo-grafico-area.is-girando[b-0zktstft2g] {
  cursor: move;
}
/* /Components/Compartido/Graficos/LIB_GraficoBarras.razor.rz.scp.css */
.gb[b-sj3o07wg52] {
    display: grid;
    gap: 6px;
    padding: 0 0 8px;
    border: 1px solid var(--sc-line);
    border-radius: 6px;
    background: var(--sc-panel);
    min-width: 0;
    overflow: hidden;
}

/* Cabecera con el tenue del acento del sistema, como los cuadros de indicadores. */
.gb-cab[b-sj3o07wg52] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    background: var(--sc-accent-bg);
    border-bottom: 1px solid var(--sc-accent-line);
}

.gb-titulo[b-sj3o07wg52] {
    font-size: .86rem;
    font-weight: 600;
    color: var(--sc-accent-dark);
}

.gb-sub[b-sj3o07wg52] {
    font-size: .72rem;
    color: var(--sc-muted);
}

.gb-toggle[b-sj3o07wg52] {
    flex: 0 0 auto;
    min-height: 24px;
    padding: 1px 9px;
    border: 1px solid var(--sc-accent-line);
    border-radius: 999px;
    background: var(--sc-panel);
    color: var(--sc-accent-dark);
    font: inherit;
    font-size: .72rem;
    cursor: pointer;
}

.gb-svg[b-sj3o07wg52],
.gb-leyenda[b-sj3o07wg52],
.gb-lectura[b-sj3o07wg52],
.gb-tabla-wrap[b-sj3o07wg52],
.gb-vacio[b-sj3o07wg52] {
    margin: 0 10px;
}

.gb-svg[b-sj3o07wg52] {
    max-height: 360px;
}

.gb-toggle:hover[b-sj3o07wg52] {
    background: var(--sc-hover);
    color: var(--sc-ink);
}

.gb-vacio[b-sj3o07wg52] {
    padding: 28px 0;
    text-align: center;
    color: var(--sc-muted);
    font-size: .9rem;
}

.gb-svg[b-sj3o07wg52] {
    width: 100%;
    height: auto;
    display: block;
    font-family: inherit;
}

/* Los <text> y <path> del SVG se arman con RenderTreeBuilder y no llevan el atributo del CSS
   aislado: por eso van con ::deep colgados del svg, que si lo lleva. */
.gb-svg[b-sj3o07wg52]  .gb-tick {
    font-size: 10px;
    fill: #898781;
}

.gb-svg[b-sj3o07wg52]  .gb-cat {
    font-size: 10px;
    fill: #52514e;
}

.gb-svg[b-sj3o07wg52]  .gb-valor {
    font-size: 10px;
    fill: #0b0b0b;
    font-weight: 600;
}

.gb-svg[b-sj3o07wg52]  .gb-barra {
    transition: opacity 120ms ease;
}

.gb-svg[b-sj3o07wg52]  .gb-hover .gb-barra {
    opacity: .78;
}

.gb-leyenda[b-sj3o07wg52] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
    font-size: .74rem;
    color: #52514e;
}

.gb-ley-item[b-sj3o07wg52] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.gb-ley-sw[b-sj3o07wg52] {
    width: 12px;
    height: 12px;
    border-radius: 3px;
    display: inline-block;
}

.gb-lectura[b-sj3o07wg52] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 12px;
    min-height: 20px;
    font-size: .74rem;
    color: #52514e;
    border-top: 1px solid var(--sc-line-soft);
    padding-top: 4px;
}

.gb-lectura strong[b-sj3o07wg52] {
    color: var(--sc-ink);
}

.gb-lec-item[b-sj3o07wg52] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.gb-lec-item b[b-sj3o07wg52] {
    color: var(--sc-ink);
}

.gb-lec-ayuda[b-sj3o07wg52] {
    color: var(--sc-disabled);
}

.gb-tabla-wrap[b-sj3o07wg52] {
    overflow: auto;
    max-height: 340px;
}

.gb-tabla[b-sj3o07wg52] {
    width: 100%;
    border-collapse: collapse;
    font-size: .76rem;
}

.gb-tabla th[b-sj3o07wg52],
.gb-tabla td[b-sj3o07wg52] {
    padding: 4px 8px;
    border-bottom: 1px solid var(--sc-line-soft);
    text-align: left;
    white-space: nowrap;
}

.gb-tabla th[b-sj3o07wg52] {
    background: var(--sc-surface-soft);
    color: var(--sc-ink-soft);
    position: sticky;
    top: 0;
}

.gb-tabla .num[b-sj3o07wg52] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}
/* /Components/Compartido/Graficos/LIB_GraficoKpi.razor.rz.scp.css */
/* Tarjeta de indicador. El fondo y el borde salen del acento del SISTEMA (--sc-accent-*), que
   el shell fija segun el sistema elegido en SIA; asi el cuadro cambia de color con el sistema. */
.kpi[b-v7up125bie] {
    display: grid;
    gap: 2px;
    padding: 8px 12px;
    border: 1px solid var(--sc-accent-line);
    border-left: 4px solid var(--sc-accent);
    border-radius: 6px;
    background: var(--sc-accent-bg);
    min-width: 0;
}

.kpi-etiqueta[b-v7up125bie] {
    font-size: .74rem;
    font-weight: 600;
    color: var(--sc-accent-dark);
    text-transform: uppercase;
    letter-spacing: .02em;
}

.kpi-valor[b-v7up125bie] {
    font-size: 1.3rem;
    font-weight: 600;
    line-height: 1.15;
    color: var(--sc-ink);
    overflow-wrap: anywhere;
}

.kpi-unidad[b-v7up125bie] {
    margin-left: 3px;
    font-size: .78rem;
    font-weight: 500;
    color: var(--sc-muted);
}

.kpi-detalle[b-v7up125bie] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: .74rem;
    color: #52514e;
}

.kpi-punto[b-v7up125bie] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #898781;
    flex: 0 0 auto;
}

.kpi-bueno .kpi-punto[b-v7up125bie] { background: #0ca30c; }
.kpi-alerta .kpi-punto[b-v7up125bie] { background: #fab219; }
.kpi-critico .kpi-punto[b-v7up125bie] { background: #d03b3b; }
/* /Components/Compartido/Graficos/LIB_GraficoLineas.razor.rz.scp.css */
.gl[b-uq1avcqs2n] {
    display: grid;
    gap: 6px;
    padding: 0 0 8px;
    border: 1px solid var(--sc-line);
    border-radius: 6px;
    background: var(--sc-panel);
    min-width: 0;
    overflow: hidden;
}

.gl-cab[b-uq1avcqs2n] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    background: var(--sc-accent-bg);
    border-bottom: 1px solid var(--sc-accent-line);
}

.gl-titulo[b-uq1avcqs2n] {
    font-size: .86rem;
    font-weight: 600;
    color: var(--sc-accent-dark);
}

.gl-sub[b-uq1avcqs2n] {
    font-size: .72rem;
    color: var(--sc-muted);
}

.gl-toggle[b-uq1avcqs2n] {
    flex: 0 0 auto;
    min-height: 24px;
    padding: 1px 9px;
    border: 1px solid var(--sc-accent-line);
    border-radius: 999px;
    background: var(--sc-panel);
    color: var(--sc-accent-dark);
    font: inherit;
    font-size: .72rem;
    cursor: pointer;
}

.gl-svg[b-uq1avcqs2n],
.gl-leyenda[b-uq1avcqs2n],
.gl-lectura[b-uq1avcqs2n],
.gl-tabla-wrap[b-uq1avcqs2n],
.gl-vacio[b-uq1avcqs2n] {
    margin: 0 10px;
}

.gl-svg[b-uq1avcqs2n] {
    max-height: 300px;
}

.gl-toggle:hover[b-uq1avcqs2n] {
    background: var(--sc-hover);
    color: var(--sc-ink);
}

.gl-vacio[b-uq1avcqs2n] {
    padding: 28px 0;
    text-align: center;
    color: var(--sc-muted);
    font-size: .9rem;
}

.gl-svg[b-uq1avcqs2n] {
    width: 100%;
    height: auto;
    display: block;
    font-family: inherit;
}

/* Los <text> del SVG se arman con RenderTreeBuilder y no llevan el atributo del CSS aislado. */
.gl-svg[b-uq1avcqs2n]  .gl-tick {
    font-size: 10px;
    fill: #898781;
}

.gl-svg[b-uq1avcqs2n]  .gl-cat {
    font-size: 10px;
    fill: #52514e;
}

.gl-svg[b-uq1avcqs2n]  .gl-fin {
    font-size: 10px;
    fill: #52514e;
}

.gl-leyenda[b-uq1avcqs2n] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
    font-size: .74rem;
    color: #52514e;
}

.gl-ley-item[b-uq1avcqs2n] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.gl-ley-ln[b-uq1avcqs2n] {
    width: 16px;
    height: 3px;
    border-radius: 2px;
    display: inline-block;
}

.gl-lectura[b-uq1avcqs2n] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 12px;
    min-height: 20px;
    font-size: .74rem;
    color: #52514e;
    border-top: 1px solid var(--sc-line-soft);
    padding-top: 4px;
}

.gl-lectura strong[b-uq1avcqs2n] {
    color: var(--sc-ink);
}

.gl-lec-item[b-uq1avcqs2n] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.gl-lec-item b[b-uq1avcqs2n] {
    color: var(--sc-ink);
}

.gl-lec-ayuda[b-uq1avcqs2n] {
    color: var(--sc-disabled);
}

.gl-tabla-wrap[b-uq1avcqs2n] {
    overflow: auto;
    max-height: 340px;
}

.gl-tabla[b-uq1avcqs2n] {
    width: 100%;
    border-collapse: collapse;
    font-size: .82rem;
}

.gl-tabla th[b-uq1avcqs2n],
.gl-tabla td[b-uq1avcqs2n] {
    padding: 5px 8px;
    border-bottom: 1px solid var(--sc-line-soft);
    text-align: left;
    white-space: nowrap;
}

.gl-tabla th[b-uq1avcqs2n] {
    background: var(--sc-surface-soft);
    color: var(--sc-ink-soft);
    position: sticky;
    top: 0;
}

.gl-tabla .num[b-uq1avcqs2n] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}
/* /Components/Compartido/LIB_BotonRefrescar.razor.rz.scp.css */
/* Boton de solo icono con el color de .sc-btn (es la consulta, la accion principal) y el tamano y las esquinas del boton
   estandar de los formularios (--sc-boton-alto, --sc-boton-radio de app.css), para alinear con los que tiene al lado. */
.lib-boton-refrescar[b-5judtcmy2i] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--sc-boton-alto);
    min-width: var(--sc-boton-alto);
    height: var(--sc-boton-alto);
    min-height: var(--sc-boton-alto);
    padding: 0;
    border-radius: var(--sc-boton-radio);
}

/* Mientras consulta se mantiene el color del boton (no el gris de deshabilitado) y el icono gira. */
.lib-boton-refrescar.is-ocupado:disabled[b-5judtcmy2i] {
    border-color: var(--sc-accent-deep);
    background: linear-gradient(180deg, var(--sc-accent-dark) 0%, var(--sc-accent-deep) 100%);
    cursor: progress;
}

.lib-boton-refrescar.is-ocupado[b-5judtcmy2i]  svg {
    animation: lib-boton-refrescar-giro-b-5judtcmy2i 0.9s linear infinite;
}

@keyframes lib-boton-refrescar-giro-b-5judtcmy2i {
    to {
        transform: rotate(360deg);
    }
}

@media (prefers-reduced-motion: reduce) {
    .lib-boton-refrescar.is-ocupado[b-5judtcmy2i]  svg {
        animation: none;
    }
}
/* /Components/Compartido/LIB_Buscar.razor.rz.scp.css */
/* frmBuscar: titulos subrayados en negrita, cajas de busqueda debajo y la grilla con letra chica. */
.lib-buscar[b-j2fh27bxx3] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.lib-buscar-tabla[b-j2fh27bxx3] {
    width: 100%;
    min-width: 0;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 12px;
}

.lib-buscar-tabla thead th[b-j2fh27bxx3] {
    padding: 2px 4px;
    text-align: left;
    font-weight: 700;
    text-decoration: underline;
    background: transparent;
}

.lib-buscar-caja[b-j2fh27bxx3] {
    width: 100%;
    padding: 2px 4px;
    border: 1px solid var(--sc-line);
    font-size: 12px;
}

.lib-buscar-caja.is-activa[b-j2fh27bxx3] {
    background: #d6e8ff;
}

.lib-buscar-grilla[b-j2fh27bxx3] {
    height: 300px;
    overflow: auto;
    border: 1px solid var(--sc-line);
}

.lib-buscar-tabla tbody td[b-j2fh27bxx3] {
    padding: 1px 4px;
    border: 1px solid #d0d0d0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    cursor: pointer;
}

.lib-buscar-tabla tbody tr.is-elegida td[b-j2fh27bxx3] {
    background: #dbeafe;
}

.lib-buscar-botones[b-j2fh27bxx3] {
    display: flex;
    gap: 10px;
}
/* /Components/Compartido/LIB_ColumnaOrden.razor.rz.scp.css */
/* El boton ocupa la celda y hereda su letra, color y alineacion: la cabecera se ve igual que antes. */
.lib-orden[b-e2ztsdguaz] {
    all: unset;
    box-sizing: border-box;
    display: block;
    width: 100%;
    font: inherit;
    color: inherit;
    text-align: inherit;
    white-space: inherit;
    cursor: pointer;
}

.lib-orden:hover[b-e2ztsdguaz] {
    text-decoration: underline;
}

.lib-orden:focus-visible[b-e2ztsdguaz] {
    outline: 2px solid var(--sc-accent, #2b6cb0);
    outline-offset: 1px;
}

.lib-orden-flecha[b-e2ztsdguaz] {
    margin-left: 3px;
    font-size: 0.75em;
}
/* /Components/Compartido/LIB_Mensaje.razor.rz.scp.css */
.lib-mensaje[b-qmmvntos01] {
  width: min(480px, 100%);
  margin-top: 12vh;
}

.lib-mensaje-cuerpo[b-qmmvntos01] {
  white-space: pre-line;
}

.lib-mensaje-cuerpo.is-error[b-qmmvntos01] {
  color: var(--sc-danger);
}

.lib-mensaje-botones[b-qmmvntos01] {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 12px 18px;
  border-top: 1px solid var(--sc-line);
}
/* /Components/Compartido/LIB_Paginador.razor.rz.scp.css */
.lib-paginador[b-a4u8cpq9hs] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 16px;
    font-size: 0.9rem;
    color: var(--sc-ink);
}

.lib-paginador-tamano[b-a4u8cpq9hs] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.lib-paginador-tamano select[b-a4u8cpq9hs] {
    width: auto;
}

.lib-paginador-rango[b-a4u8cpq9hs] {
    color: var(--sc-muted);
}

.lib-paginador-botones[b-a4u8cpq9hs] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.lib-paginador-botones .icon-btn[b-a4u8cpq9hs] {
    min-width: 32px;
    font-weight: 700;
}

.lib-paginador-botones .icon-btn:disabled[b-a4u8cpq9hs] {
    opacity: 0.4;
    cursor: not-allowed;
}
/* /Components/Compartido/TreeView.razor.rz.scp.css */
.app-tree[b-8s24oj1g5a] {
    display: grid;
    gap: 1px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.app-tree-nested[b-8s24oj1g5a] {
    margin-left: 16px;
}

.app-tree-item[b-8s24oj1g5a] {
    min-width: 0;
}

.app-tree-row[b-8s24oj1g5a] {
    display: flex;
    align-items: center;
    min-height: 29px;
    border-radius: 6px;
    color: var(--sc-ink);
    transition: background-color 120ms ease, color 120ms ease;
}

.app-tree-row:hover[b-8s24oj1g5a] {
    background: var(--sc-page);
}

.app-tree-row-selected[b-8s24oj1g5a] {
    /* El acento lo pone el shell con el color del sistema que viene de SIA. */
    background: var(--sc-page);
    color: var(--sc-accent-dark);
    font-weight: 600;
    box-shadow: inset 3px 0 0 var(--sc-accent);
}

.app-tree-chevron[b-8s24oj1g5a],
.app-tree-chevron-placeholder[b-8s24oj1g5a] {
    display: inline-grid;
    width: 24px;
    min-width: 24px;
    height: 24px;
    place-items: center;
}

.app-tree-chevron[b-8s24oj1g5a] {
    border: 0;
    border-radius: 4px;
    background: transparent;
}

.app-tree-chevron:hover[b-8s24oj1g5a] {
    background: var(--sc-page);
}

.app-tree-chevron span[b-8s24oj1g5a] {
    width: 7px;
    height: 7px;
    border-right: 1.5px solid #64748b;
    border-bottom: 1.5px solid #64748b;
    transform: rotate(-45deg);
    transition: transform 120ms ease;
}

.app-tree-chevron-open span[b-8s24oj1g5a] {
    transform: rotate(45deg) translate(-1px, -1px);
}

.app-tree-icon[b-8s24oj1g5a] {
    width: 14px;
    min-width: 14px;
    height: 14px;
    margin-right: 5px;
    border: 1px solid #94a3b8;
    border-radius: 3px;
    background: #f8fafc;
}

.app-tree-icon-leaf[b-8s24oj1g5a] {
    width: 8px;
    min-width: 8px;
    height: 8px;
    margin-left: 3px;
    margin-right: 8px;
    border-radius: 50%;
    border-color: #60a5fa;
    background: #bfdbfe;
}

.app-tree-icon-machine[b-8s24oj1g5a] {
    border-radius: 50%;
    border-color: #64748b;
    background: #e2e8f0;
}

.app-tree-label[b-8s24oj1g5a] {
    min-width: 0;
    overflow: hidden;
    border: 0;
    background: transparent;
    color: inherit;
    padding: 4px 6px 4px 0;
    text-align: left;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.app-tree-label:focus-visible[b-8s24oj1g5a],
.app-tree-chevron:focus-visible[b-8s24oj1g5a] {
    outline: 2px solid var(--sc-accent);
    outline-offset: 1px;
}


/* Iconos del ctTree de FoxPro (Reporte de Operaciones): libro morado para zona y mina (abierto al desplegar) y hoja
   azul para la labor. */
.app-tree-icon-libro[b-8s24oj1g5a],
.app-tree-icon-hoja[b-8s24oj1g5a] {
    width: 16px;
    min-width: 16px;
    height: 16px;
    border: 0;
    border-radius: 0;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 2h9l1 1v10H4l-1-1z' fill='%237a2a8c' stroke='%23401050'/%3E%3Cpath d='M4 13h9v1H4z' fill='%23f2eadf' stroke='%23401050' stroke-width='.6'/%3E%3Cpath d='M5 4h6' stroke='%23d9b3e6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.app-tree-icon-libro.is-open[b-8s24oj1g5a] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 4C6 3 3 3 1 4v9c2-1 5-1 7 0z' fill='%23fff8d6' stroke='%237a2a8c'/%3E%3Cpath d='M8 4c2-1 5-1 7 0v9c-2-1-5-1-7 0z' fill='%23fff8d6' stroke='%237a2a8c'/%3E%3Cpath d='M3 6h3M3 8h3M10 6h3M10 8h3' stroke='%23b08ab8' stroke-width='.7'/%3E%3C/svg%3E");
}

.app-tree-icon-hoja[b-8s24oj1g5a] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 1h7l3 3v11H3z' fill='%23fff' stroke='%23123c9c'/%3E%3Cpath d='M5 5h6M5 7h6M5 9h6M5 11h6' stroke='%23123c9c' stroke-width='.9'/%3E%3C/svg%3E");
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
#blazor-error-ui[b-rulaaztyqs] {
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-rulaaztyqs] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Sistemas/Scomm/ComboBusqueda.razor.rz.scp.css */
/* CR-DDH-0005: combo con busqueda incremental. El desplegable se posiciona sobre el resto del
   formulario, por eso el contenedor es relativo y la lista absoluta. */

.combo-busqueda[b-4wujkud16a] {
    position: relative;
}

.combo-busqueda-lista[b-4wujkud16a] {
    position: absolute;
    z-index: 1060;
    top: calc(100% + 2px);
    left: 0;
    right: 0;
    margin: 0;
    padding: 4px 0;
    list-style: none;
    max-height: 260px;
    overflow-y: auto;
    background: #fff;
    border: 1px solid #adb5bd;
    border-radius: 3px;
    box-shadow: 0 6px 18px rgba(0, 0, 0, .18);
}

.combo-busqueda-item[b-4wujkud16a] {
    display: flex;
    gap: 10px;
    align-items: baseline;
    padding: 4px 10px;
    cursor: pointer;
    font-size: .84rem;
    line-height: 1.35;
}

.combo-busqueda-item:hover[b-4wujkud16a] {
    background: #e9f2fb;
}

.combo-busqueda-item--sel[b-4wujkud16a] {
    background: #dbe9f7;
}

.combo-busqueda-id[b-4wujkud16a] {
    flex: 0 0 auto;
    min-width: 92px;
    font-family: ui-monospace, Consolas, monospace;
    font-size: .8rem;
    font-weight: 600;
    color: #0b5a53;
}

.combo-busqueda-desc[b-4wujkud16a] {
    flex: 1 1 auto;
    color: #212529;
}

.combo-busqueda-vacio[b-4wujkud16a] {
    padding: 5px 10px;
    font-size: .78rem;
    color: #6c757d;
    font-style: italic;
}
/* /Components/Sistemas/Scomm/FRM_SCOMM_AvanceSemanal.razor.rz.scp.css */
/* Arbol de semanas: mismo diseño que el arbol de periodos de Programa Mensual de Labores (.pla-period-tree). */
.avs-period-tree[b-kv0wkx2zpt] {
  min-height: 420px;
  max-height: calc(100vh - 240px);
  overflow: auto;
  padding: 8px;
  background: #ffffff;
  border: 1px solid var(--scomm-border);
  border-radius: var(--scomm-radius-md);
  font-size: 13px;
}

.avs-tree-year[b-kv0wkx2zpt] {
  margin-bottom: 4px;
}

.avs-tree-year summary[b-kv0wkx2zpt] {
  cursor: pointer;
  font-weight: 700;
  color: var(--scomm-primary-dark);
}

.avs-tree-weeks[b-kv0wkx2zpt] {
  display: grid;
  gap: 2px;
  margin: 4px 0 8px 14px;
  padding-left: 8px;
  border-left: 1px dotted var(--scomm-border-strong);
}

.avs-week-btn[b-kv0wkx2zpt] {
  width: 100%;
  min-height: 24px;
  padding: 3px 6px;
  text-align: left;
  border: 1px solid transparent;
  border-radius: var(--scomm-radius-sm);
  background: transparent;
  color: var(--scomm-dark);
  cursor: pointer;
  white-space: nowrap;
}

.avs-week-btn:hover[b-kv0wkx2zpt],
.avs-week-btn.is-selected[b-kv0wkx2zpt] {
  border-color: #93c5fd;
  background: #eff6ff;
  color: var(--scomm-primary-dark);
  font-weight: 700;
}

/* Semana en curso: negrita morada como en FoxPro (RGB(128,0,128)). */
.avs-week-btn.is-current[b-kv0wkx2zpt] {
  color: #800080;
  font-weight: 700;
}

/* Columnas de ejecutado en amarillo, como BackColor RGB(255,255,198) de FoxPro. */
.avs-ejec[b-kv0wkx2zpt] {
  text-align: right;
  background: #ffffc6;
}

/* Fila seleccionada como en Programa Mensual de Labores (.pla-row-selected): azul claro, texto oscuro. */
.avs-row-selected td[b-kv0wkx2zpt] {
  background: #dbeafe;
  color: var(--scomm-dark);
  font-weight: 600;
}

@media (max-width: 920px) {
  .avs-period-tree[b-kv0wkx2zpt] {
    min-height: auto;
    max-height: 260px;
  }
}
/* /Components/Sistemas/Scomm/FRM_SCOMM_CabezaParcoy_Imprimir.razor.rz.scp.css */
.no-print-actions[b-dua3muxua9] {
  max-width: 900px;
}

.reporte-impresion[b-dua3muxua9] {
  width: 170mm;
  margin: 0 auto;
  color: #000;
  font-family: "Arial Narrow", Arial, sans-serif;
  font-size: 11px;
}

.print-header[b-dua3muxua9] {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.print-header-right[b-dua3muxua9] {
  text-align: right;
}

.print-title[b-dua3muxua9] {
  margin-top: 6px;
  text-align: center;
  font-size: 30px;
  font-weight: 700;
}

.print-subtitle[b-dua3muxua9] {
  margin-top: 2px;
  text-align: center;
  font-size: 22px;
  font-weight: 700;
}

.print-date[b-dua3muxua9] {
  margin-top: 3px;
  margin-bottom: 9px;
  text-align: center;
  font-size: 16px;
  font-weight: 700;
}

.turno-label[b-dua3muxua9] {
  margin-top: 8px;
  padding: 2px 4px;
  border: 1px solid #2d2d2d;
  font-size: 18px;
  font-weight: 700;
}

.print-table[b-dua3muxua9] {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  margin: 0 0 6px 0;
}

.print-table th[b-dua3muxua9],
.print-table td[b-dua3muxua9] {
  border: 1px solid #2d2d2d;
  text-align: center;
  padding: 2px 3px;
  min-height: 20px;
}

.print-table th[b-dua3muxua9] {
  font-weight: 700;
}

.print-table .row-title[b-dua3muxua9] {
  width: 56px;
}

@media print {
  .reporte-impresion[b-dua3muxua9] {
    width: 100%;
    margin: 0;
  }
}
/* /Components/Sistemas/Scomm/FRM_SCOMM_CosechaActualizacion.razor.rz.scp.css */
.ac-window[b-cem9ag4qc8] {
    max-width: 1280px;
}

.ac-header[b-cem9ag4qc8] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .75rem;
    margin-bottom: 1rem;
}

.ac-title[b-cem9ag4qc8] {
    margin: 0;
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.ac-toolbar[b-cem9ag4qc8] {
    display: flex;
    align-items: flex-end;
    gap: .75rem;
    flex-wrap: wrap;
}

.ac-fecha-field[b-cem9ag4qc8] {
    width: 180px;
}

.ac-fecha-field .form-control[b-cem9ag4qc8] {
    width: 100%;
}

.ac-table-wrap[b-cem9ag4qc8] {
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    overflow: hidden;
    background: var(--sc-panel);
}

.ac-table[b-cem9ag4qc8] {
    margin-bottom: 0;
    table-layout: fixed;
}

.ac-table thead th[b-cem9ag4qc8] {
    vertical-align: bottom;
    white-space: nowrap;
    background: var(--sc-surface-soft);
}

.ac-table tbody tr[b-cem9ag4qc8] {
    cursor: pointer;
}

.ac-row-selected[b-cem9ag4qc8] {
    outline: 2px solid var(--sc-accent-line);
    outline-offset: -2px;
}

.ac-col-hora[b-cem9ag4qc8] {
    width: 120px;
}

.ac-col-flujo[b-cem9ag4qc8],
.ac-col-ley-rica[b-cem9ag4qc8],
.ac-col-ley-barren[b-cem9ag4qc8],
.ac-col-gramos[b-cem9ag4qc8] {
    width: 110px;
}

.ac-col-codigo[b-cem9ag4qc8] {
    width: 92px;
}

.ac-col-flujo[b-cem9ag4qc8] {
    background: var(--sc-lab-flujo-bg);
}

.ac-col-ley-rica[b-cem9ag4qc8],
.ac-col-ley-barren[b-cem9ag4qc8] {
    background: var(--sc-lab-ley-bg);
}

.ac-col-gramos[b-cem9ag4qc8] {
    background: var(--sc-lab-gramos-bg);
}

.ac-col-codigo[b-cem9ag4qc8] {
    background: var(--sc-lab-codigo-bg);
}

.ac-input-text[b-cem9ag4qc8] {
    width: 100%;
    min-width: 0;
    background: var(--sc-hover);
}

.ac-hint[b-cem9ag4qc8] {
    margin-top: .75rem;
    color: var(--bs-secondary-color);
    font-size: .92rem;
}

@media (max-width: 992px) {
    .ac-header[b-cem9ag4qc8] {
        align-items: stretch;
        flex-direction: column;
    }

    .ac-toolbar[b-cem9ag4qc8] {
        width: 100%;
    }

    .ac-fecha-field[b-cem9ag4qc8] {
        flex: 1 1 180px;
    }
}
/* /Components/Sistemas/Scomm/FRM_SCOMM_CosechaLeyes.razor.rz.scp.css */
.de-window[b-n53b5rrx1j] {
    max-width: 1280px;
}

.de-header[b-n53b5rrx1j] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.de-title[b-n53b5rrx1j] {
    margin: 0;
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.de-toolbar[b-n53b5rrx1j] {
    display: flex;
    align-items: flex-end;
    gap: .75rem;
    flex-wrap: wrap;
}

.de-limit-field[b-n53b5rrx1j] {
    width: 180px;
}

.de-limit-field .form-control[b-n53b5rrx1j] {
    width: 100%;
}

.de-table-wrap[b-n53b5rrx1j] {
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    overflow: hidden;
    background: var(--sc-panel);
}

.de-table[b-n53b5rrx1j] {
    margin-bottom: 0;
    table-layout: fixed;
}

.de-table thead th[b-n53b5rrx1j] {
    vertical-align: bottom;
    white-space: nowrap;
    background: var(--sc-surface-soft);
}

.de-table tbody tr[b-n53b5rrx1j] {
    cursor: pointer;
}

.de-row-selected[b-n53b5rrx1j] {
    outline: 2px solid var(--sc-accent-line);
    outline-offset: -2px;
}

.de-col-periodo[b-n53b5rrx1j],
.de-col-cosecha[b-n53b5rrx1j],
.de-col-filtro[b-n53b5rrx1j],
.de-col-fecha[b-n53b5rrx1j],
.de-col-hora[b-n53b5rrx1j],
.de-col-numero[b-n53b5rrx1j] {
    width: 92px;
}

.de-col-fecha[b-n53b5rrx1j] {
    width: 120px;
}

.de-col-hora[b-n53b5rrx1j] {
    width: 104px;
}

.de-col-ponderado[b-n53b5rrx1j],
.de-col-rica[b-n53b5rrx1j],
.de-col-barren[b-n53b5rrx1j] {
    width: 122px;
}

.de-col-ponderado[b-n53b5rrx1j] {
    background: var(--sc-lab-gramos-bg);
}

.de-col-rica[b-n53b5rrx1j] {
    background: var(--sc-lab-ley-bg);
}

.de-col-barren[b-n53b5rrx1j] {
    background: var(--sc-lab-flujo-bg);
}

.de-col-numero[b-n53b5rrx1j] {
    background: var(--sc-lab-codigo-bg);
}

.de-input-number[b-n53b5rrx1j],
.de-input-numero[b-n53b5rrx1j],
.de-input-filtro[b-n53b5rrx1j] {
    width: 100%;
    min-width: 0;
}

.de-input-number[b-n53b5rrx1j] {
    background: var(--sc-lab-entrada-bg);
}

.de-input-filtro[b-n53b5rrx1j] {
    background: var(--sc-hover);
}

.de-footer[b-n53b5rrx1j] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    margin-top: 1rem;
}

.de-hint[b-n53b5rrx1j] {
    margin-top: .75rem;
    color: var(--bs-secondary-color);
    font-size: .92rem;
}

@media (max-width: 992px) {
    .de-header[b-n53b5rrx1j] {
        align-items: stretch;
        flex-direction: column;
    }

    .de-toolbar[b-n53b5rrx1j] {
        width: 100%;
    }

    .de-limit-field[b-n53b5rrx1j] {
        flex: 1 1 180px;
    }
}

/* /Components/Sistemas/Scomm/FRM_SCOMM_LiquidacionDdh.razor.rz.scp.css */
.ddh-shell[b-ck53vjltj5] {
    padding: 8px 2px 20px;
}

.ddh-title[b-ck53vjltj5] {
    margin: 0 0 10px;
    font-size: 1.25rem;
}

/* CR-DDH-0003: se agrego una columna para el boton Buscar, que va junto a Año y Mes porque
   consulta por ellos. Actualizar queda con el cuadro de texto, que es lo que filtra. */
.ddh-toolbar[b-ck53vjltj5] {
    display: grid;
    grid-template-columns: 140px 160px auto 160px 1fr auto;
    gap: 10px;
    align-items: end;
    margin-bottom: 12px;
}

.ddh-field-search[b-ck53vjltj5] {
    min-width: 260px;
}

.ddh-field-action[b-ck53vjltj5] {
    display: flex;
    flex-direction: column;
}

.ddh-search-row[b-ck53vjltj5] {
    display: flex;
    gap: 8px;
}

.ddh-status[b-ck53vjltj5] {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 6px;
}

.ddh-pill[b-ck53vjltj5] {
    display: inline-flex;
    align-items: center;
    padding: 6px 10px;
    border-radius: 10px;
    font-weight: 700;
    font-size: 0.85rem;
}

.ddh-pill-active[b-ck53vjltj5] {
    background: #15803d;
    color: #fff;
}

.ddh-pill-closed[b-ck53vjltj5] {
    background: #d81b1b;
    color: #fff;
}

.ddh-pill-precierre[b-ck53vjltj5] {
    background: #f59e0b;
    color: #111;
}

.ddh-pill-fallback[b-ck53vjltj5] {
    background: #7c2d12;
    color: #fff;
}

.ddh-body[b-ck53vjltj5] {
    display: grid;
    grid-template-columns: 260px 1fr 220px;
    gap: 12px;
    height: calc(100vh - 210px);
    min-height: 520px;
}

.ddh-tree[b-ck53vjltj5] {
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 10px;
    background: #fff;
    overflow: auto;
    min-height: 0;
}

.ddh-tree-title[b-ck53vjltj5] {
    font-weight: 700;
    margin-bottom: 8px;
}

.ddh-grid[b-ck53vjltj5] {
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 10px;
    background: #fff;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.ddh-grid-head[b-ck53vjltj5] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 6px;
}

.ddh-grid-title[b-ck53vjltj5] {
    font-weight: 700;
}

.ddh-table thead th[b-ck53vjltj5] {
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 1;
}

.ddh-table-wrap[b-ck53vjltj5] {
    flex: 1;
    min-height: 0;
    overflow: auto;
}

.ddh-table[b-ck53vjltj5] {
    margin-bottom: 0;
    min-width: 980px;
}

.ddh-table th[b-ck53vjltj5],
.ddh-table td[b-ck53vjltj5] {
    padding: 0.22rem 0.45rem;
    font-size: 0.85rem;
    vertical-align: top;
    white-space: nowrap;
}

.ddh-row-selected td[b-ck53vjltj5] {
    background: #eef2ff;
}

.ddh-hours-warn[b-ck53vjltj5] {
    color: #b91c1c;
    font-weight: 800;
}

.ddh-actions[b-ck53vjltj5] {
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 10px;
    background: #fff;
    display: flex;
    flex-direction: column;
    gap: 10px;
    overflow: auto;
    min-height: 0;
}

.ddh-actions-head[b-ck53vjltj5] {
    font-weight: 800;
    text-align: right;
    color: #ef4444;
}

.ddh-hours[b-ck53vjltj5] {
    border: 1px dashed var(--line);
    border-radius: 10px;
    padding: 10px;
}

.ddh-hours-label[b-ck53vjltj5] {
    font-weight: 700;
}

.ddh-hours-value[b-ck53vjltj5] {
    font-size: 1.3rem;
    font-weight: 900;
    margin-top: 4px;
}

.ddh-hours-note[b-ck53vjltj5] {
    margin-top: 6px;
    font-size: 0.8rem;
    color: #6b7280;
}

.ddh-actions-buttons[b-ck53vjltj5] {
    display: grid;
    gap: 8px;
}

/* CR-DDH-0022: linea de atajos del listado. Mismo criterio visual que la ventana de registro. */
/* El contenedor recibe el foco por teclado; no debe dibujar el anillo, que no aporta nada aca. */
.ddh-shell:focus[b-ck53vjltj5] {
    outline: none;
}

/* CR-DDH-0023: los atajos al pie, separados del contenido. */
/* CR-DDH-0027: dialogo de confirmacion de la eliminacion. Chico y centrado, con el texto del
   sistema legado. Se dibuja por encima de todo y no ocupa lugar en el layout. */
.ddh-confirm-fondo[b-ck53vjltj5] {
    position: fixed;
    inset: 0;
    background: rgba(20, 28, 34, .35);
    z-index: 1080;
}

.ddh-confirm[b-ck53vjltj5] {
    position: fixed;
    top: 26%;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1081;
    min-width: 320px;
    max-width: 92vw;
    padding: 14px 16px;
    border: 1px solid #b9c2c9;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 12px 34px rgba(0, 0, 0, .24);
    outline: none;
}

.ddh-confirm-texto[b-ck53vjltj5] {
    font-size: .95rem;
    font-weight: 600;
    color: #22303a;
}

.ddh-confirm-detalle[b-ck53vjltj5] {
    margin-top: 3px;
    font-size: .8rem;
    color: #5b6670;
}

.ddh-confirm-botones[b-ck53vjltj5] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 12px;
}

/* CR-DDH-0030 y 0031: selector de fecha como ventana modal sobre el formulario principal, del tamaño de la ventana original. */
.ddh-fecha-fondo[b-ck53vjltj5] {
    position: fixed;
    inset: 0;
    background: rgba(20, 28, 34, .35);
    z-index: 1080;
}

.ddh-fecha-modal[b-ck53vjltj5] {
    position: fixed;
    top: 22%;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1081;
    min-width: 300px;
    max-width: 92vw;
    border: 1px solid #b9c2c9;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 12px 34px rgba(0, 0, 0, .24);
    outline: none;
}

.ddh-fecha-titulo[b-ck53vjltj5] {
    padding: 8px 14px;
    border-bottom: 1px solid #dfe4e8;
    background: #f5f7f9;
    border-radius: 8px 8px 0 0;
    font-size: .9rem;
    font-weight: 700;
    color: #22303a;
}

.ddh-fecha-cuerpo[b-ck53vjltj5] {
    padding: 12px 14px 4px;
}

.ddh-fecha-aviso[b-ck53vjltj5] {
    margin-top: 8px;
    padding: 4px 8px;
    border-left: 3px solid #c0392b;
    background: #fdeceb;
    color: #7d241c;
    font-size: .8rem;
}

.ddh-fecha-botones[b-ck53vjltj5] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 12px 14px 14px;
}

/* CR-DDH-0032: el informe no se ve en pantalla, solo al imprimir. Y mientras existe, el listado
   deja de imprimirse, para que la hoja no salga con las dos cosas. */
.ddh-solo-impresion[b-ck53vjltj5] {
    display: none;
}

@media print {
    .ddh-solo-impresion[b-ck53vjltj5] {
        display: block !important;
    }

    .ddh-no-imprimir[b-ck53vjltj5] {
        display: none !important;
    }
}
/* /Components/Sistemas/Scomm/FRM_SCOMM_LiquidacionDdh_Cubo.razor.rz.scp.css */
.ddh-cubo-filter[b-dpzmoybc1v] {
    max-width: 560px;
}

.ddh-cubo-filter-head[b-dpzmoybc1v] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 14px;
}

.ddh-cubo-filter-card[b-dpzmoybc1v] {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 18px 20px;
    box-shadow: 0 10px 24px rgba(16, 24, 40, 0.05);
}

.ddh-cubo-filter-grid[b-dpzmoybc1v] {
    display: grid;
    grid-template-columns: repeat(2, minmax(150px, 180px));
    gap: 12px 16px;
    justify-content: center;
}

.ddh-cubo-field .form-control[b-dpzmoybc1v] {
    max-width: 180px;
}

.ddh-cubo-actions[b-dpzmoybc1v] {
    display: flex;
    justify-content: center;
    margin-top: 20px;
}

.ddh-cubo-validation[b-dpzmoybc1v] {
    color: #b42318;
    font-size: 0.92rem;
    margin-top: 10px;
    text-align: center;
}

@media (max-width: 640px) {
    .ddh-cubo-filter-head[b-dpzmoybc1v] {
        flex-direction: column;
    }

    .ddh-cubo-filter-grid[b-dpzmoybc1v] {
        grid-template-columns: 1fr;
        justify-items: center;
    }
}
/* /Components/Sistemas/Scomm/FRM_SCOMM_LiquidacionDdh_CuboImprimir.razor.rz.scp.css */
.ddh-cubo-print[b-s5dl1z2va6] {
    display: grid;
    gap: 12px;
}

.ddh-cubo-print-head[b-s5dl1z2va6] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
}

.ddh-cubo-print-card[b-s5dl1z2va6] {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 12px;
    overflow: auto;
}

.ddh-cubo-print-table[b-s5dl1z2va6] {
    margin-bottom: 0;
    min-width: 1100px;
}

.ddh-cubo-print-table th[b-s5dl1z2va6],
.ddh-cubo-print-table td[b-s5dl1z2va6] {
    font-size: 0.82rem;
    padding: 5px 7px;
    vertical-align: middle;
}

@media print {
    .ddh-cubo-print-head .btn[b-s5dl1z2va6] {
        display: none !important;
    }

    .ddh-cubo-print-card[b-s5dl1z2va6] {
        border: 0;
        padding: 0;
        box-shadow: none;
    }
}
/* /Components/Sistemas/Scomm/FRM_SCOMM_LiquidacionDdh_CuboTabla.razor.rz.scp.css */
.ddh-cubo-shell[b-7d7fhfa0j3] {
    display: grid;
    gap: 12px;
}

.ddh-cubo-head[b-7d7fhfa0j3] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
}

.ddh-cubo-head-actions[b-7d7fhfa0j3] {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.ddh-cubo-zones[b-7d7fhfa0j3] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.ddh-cubo-zone[b-7d7fhfa0j3],
.ddh-cubo-grid-card[b-7d7fhfa0j3] {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 10px;
}

.ddh-cubo-zone-title[b-7d7fhfa0j3] {
    font-weight: 800;
}

.ddh-cubo-zone-note[b-7d7fhfa0j3] {
    color: var(--muted);
    font-size: 0.8rem;
    margin-bottom: 6px;
    min-height: 32px;
}

.ddh-cubo-chip-list[b-7d7fhfa0j3] {
    min-height: 84px;
    display: flex;
    flex-wrap: wrap;
    align-content: flex-start;
    gap: 6px;
    padding: 8px;
    border-radius: 10px;
    background: linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
}

.ddh-cubo-drop-target[b-7d7fhfa0j3] {
    margin-top: 8px;
    min-height: 36px;
    border: 1px dashed #9fb5c7;
    border-radius: 8px;
    background: #f8fbff;
    color: #5c7086;
    font-size: 0.78rem;
    display: flex;
    align-items: center;
    justify-content: center;
    user-select: none;
}

.ddh-cubo-chip[b-7d7fhfa0j3] {
    padding: 6px 10px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid #c7d3e0;
    cursor: grab;
    font-size: 0.82rem;
    user-select: none;
}

.ddh-cubo-chip.is-measure[b-7d7fhfa0j3] {
    border-color: #1f6f8b;
    background: #edf8fb;
}

.ddh-cubo-chip.is-selected[b-7d7fhfa0j3] {
    border-color: #0b6aa2;
    box-shadow: 0 0 0 2px #d9edf9 inset;
}

.ddh-cubo-move-helper[b-7d7fhfa0j3] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    background: #fff;
    border: 1px dashed #9fb5c7;
    border-radius: 10px;
    padding: 8px 10px;
}

.ddh-cubo-move-helper-title[b-7d7fhfa0j3] {
    color: var(--muted);
    font-size: 0.82rem;
}

.ddh-cubo-move-helper-name[b-7d7fhfa0j3] {
    font-weight: 700;
    margin-right: 6px;
}

.ddh-cubo-usage-tip[b-7d7fhfa0j3] {
    margin-top: -2px;
    font-size: 0.82rem;
}

.ddh-cubo-toolbar[b-7d7fhfa0j3] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.ddh-cubo-toolbar-actions[b-7d7fhfa0j3] {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.ddh-cubo-totals-toggle[b-7d7fhfa0j3] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    white-space: nowrap;
}

.ddh-cubo-totals-toggle .form-check-input[b-7d7fhfa0j3] {
    margin-top: 0;
}

.ddh-cubo-grid-wrap[b-7d7fhfa0j3] {
    overflow: auto;
    min-height: 0;
}

.ddh-cubo-grid[b-7d7fhfa0j3] {
    margin-bottom: 0;
    min-width: 1200px;
}

.ddh-cubo-grid thead th[b-7d7fhfa0j3] {
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 1;
    white-space: nowrap;
}

.ddh-cubo-grid td[b-7d7fhfa0j3],
.ddh-cubo-grid th[b-7d7fhfa0j3] {
    font-size: 0.82rem;
    padding: 5px 7px;
    vertical-align: middle;
}

.ddh-cubo-label-cell[b-7d7fhfa0j3] {
    white-space: nowrap;
}

.ddh-cubo-label-wrap[b-7d7fhfa0j3] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.ddh-cubo-tree-toggle[b-7d7fhfa0j3],
.ddh-cubo-tree-spacer[b-7d7fhfa0j3] {
    width: 1.1rem;
    height: 1.1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 1.1rem;
}

.ddh-cubo-tree-toggle[b-7d7fhfa0j3] {
    border: 1px solid #9fb5c7;
    border-radius: 3px;
    background: #fff;
    color: #24425c;
    font-size: 0.72rem;
    line-height: 1;
    padding: 0;
}

.ddh-cubo-grid tr.is-group > td[b-7d7fhfa0j3] {
    background: #fbfcfe;
}

.ddh-cubo-grid tbody tr:nth-child(even)[b-7d7fhfa0j3] {
    background: #f8fbff;
}

@media (max-width: 1100px) {
    .ddh-cubo-zones[b-7d7fhfa0j3] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ddh-cubo-toolbar[b-7d7fhfa0j3] {
        justify-content: flex-start;
    }
}

@media (max-width: 700px) {
    .ddh-cubo-zones[b-7d7fhfa0j3] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Sistemas/Scomm/FRM_SCOMM_LiquidacionDDH_dashboard.razor.rz.scp.css */
.dash-nota[b-7ajg03lw3m] {
    align-self: center;
    font-size: .8rem;
    color: var(--sc-muted);
}

.dash-filtros[b-7ajg03lw3m] {
    display: grid;
    gap: 10px;
    margin-top: 12px;
}

.dash-presets[b-7ajg03lw3m] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.dash-chip[b-7ajg03lw3m] {
    min-height: 30px;
    padding: 4px 12px;
    border: 1px solid var(--sc-accent-line);
    border-radius: 999px;
    background: var(--sc-accent-bg);
    color: var(--sc-accent-dark);
    font: inherit;
    font-size: .8rem;
    font-weight: 600;
    cursor: pointer;
}

.dash-chip:hover:not(:disabled)[b-7ajg03lw3m] {
    background: var(--sc-accent-bg-hover);
}

.dash-chip:disabled[b-7ajg03lw3m] {
    opacity: .6;
    cursor: not-allowed;
}

.dash-filtro-grid[b-7ajg03lw3m] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px;
    align-items: end;
}

.dash-aplicar .btn[b-7ajg03lw3m] {
    width: 100%;
}

.dash-rango[b-7ajg03lw3m] {
    font-size: .85rem;
    color: var(--sc-muted);
}

.dash-rango strong[b-7ajg03lw3m] {
    color: var(--sc-ink);
}

.dash-tabs[b-7ajg03lw3m] {
    margin-top: 14px;
    flex-wrap: wrap;
}

.dash-panel[b-7ajg03lw3m] {
    position: relative;
    padding-top: 14px;
    transition: opacity 150ms ease;
}

/* Recarga: el tablero anterior queda visible, atenuado. Sin pantalla en blanco ni salto. */
.dash-cargando > :not(.dash-cargando-aviso)[b-7ajg03lw3m] {
    opacity: .45;
    pointer-events: none;
}

.dash-cargando-aviso[b-7ajg03lw3m] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    border: 1px solid var(--sc-accent-line);
    border-radius: 6px;
    background: var(--sc-accent-bg);
    color: var(--sc-accent-dark);
    font-size: .85rem;
    font-weight: 600;
}

.dash-spinner[b-7ajg03lw3m] {
    width: 14px;
    height: 14px;
    border: 2px solid var(--sc-accent-line);
    border-top-color: var(--sc-accent);
    border-radius: 50%;
    animation: dash-girar-b-7ajg03lw3m 800ms linear infinite;
}

@keyframes dash-girar-b-7ajg03lw3m {
    to { transform: rotate(360deg); }
}

.dash-kpis[b-7ajg03lw3m] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 8px;
}

/* Los graficos van en columnas para que ninguno ocupe la pantalla entera: dos desde 900 px y
   tres desde 1400 px. El de barras diarias (grid-1) usa como maximo dos tercios del ancho. */
.dash-grid-1[b-7ajg03lw3m] {
    display: grid;
    gap: 10px;
}

.dash-grid-2[b-7ajg03lw3m] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}

@media (min-width: 900px) {
    .dash-grid-2[b-7ajg03lw3m] {
        grid-template-columns: 1fr 1fr;
    }

    .dash-grid-1[b-7ajg03lw3m] {
        grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
    }

    .dash-grid-1 > :only-child[b-7ajg03lw3m] {
        grid-column: 1;
    }
}

@media (min-width: 1400px) {
    .dash-grid-2[b-7ajg03lw3m] {
        grid-template-columns: 1fr 1fr 1fr;
    }
}

.dash-tabla-wrap[b-7ajg03lw3m] {
    overflow: auto;
    max-height: 480px;
}

.dash-tabla[b-7ajg03lw3m] {
    width: 100%;
    border-collapse: collapse;
    font-size: .76rem;
}

.dash-tabla th[b-7ajg03lw3m],
.dash-tabla td[b-7ajg03lw3m] {
    padding: 4px 8px;
    border-bottom: 1px solid var(--sc-line-soft);
    text-align: left;
    white-space: nowrap;
}

.dash-tabla th[b-7ajg03lw3m] {
    background: var(--sc-surface-soft);
    color: var(--sc-ink-soft);
    position: sticky;
    top: 0;
    z-index: 1;
}

.dash-tabla .num[b-7ajg03lw3m] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.dash-muted[b-7ajg03lw3m] {
    color: var(--sc-disabled);
}

/* Medidor de avance: relleno en el acento, pista en un paso claro del mismo tono. */
.dash-meter[b-7ajg03lw3m] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 140px;
}

.dash-meter-pista[b-7ajg03lw3m] {
    flex: 1 1 auto;
    height: 8px;
    border-radius: 4px;
    background: #cde2fb;
    overflow: hidden;
}

.dash-meter-relleno[b-7ajg03lw3m] {
    height: 100%;
    border-radius: 4px;
    background: #2a78d6;
}

.dash-meter-relleno.sobre[b-7ajg03lw3m] {
    background: #ec835a;
}

.dash-meter span[b-7ajg03lw3m] {
    font-size: .78rem;
    font-variant-numeric: tabular-nums;
    color: #52514e;
    min-width: 34px;
    text-align: right;
}
/* /Components/Sistemas/Scomm/FRM_SCOMM_LiquidacionDdh_Imprimir.razor.rz.scp.css */
/* CR-DDH-0033: formato del informe, tomado del .frx legado leido campo por campo.
   Tipografia: Arial Narrow, base 8 pt; el titulo 16 pt en negrita, el subtitulo 8 pt en negrita,
   la fecha 9 pt en negrita y las observaciones 7 pt. Los anchos de columna son los del informe,
   pasados a porcentaje sobre el ancho total. */

.ddh-rep[b-b1twtg87af] {
    font-family: "Arial Narrow", "Liberation Sans Narrow", Arial, sans-serif;
    font-size: 8pt;
    color: #000;
}

.ddh-rep-tabla[b-b1twtg87af] {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

/* --- membrete: va dentro del thead para que se repita en cada hoja, igual que la banda de
       encabezado de pagina del informe original --- */
.ddh-rep-membrete th[b-b1twtg87af] {
    border: 0;
    padding: 0 2px;
    font-weight: 400;
    text-align: left;
    vertical-align: top;
}

.ddh-rep-sello[b-b1twtg87af] {
    text-align: right !important;
}

.ddh-rep-titulo[b-b1twtg87af] {
    padding-top: 4pt !important;
    font-size: 16pt !important;
    font-weight: 700 !important;
    text-align: center !important;
}

.ddh-rep-subtitulo[b-b1twtg87af] {
    font-size: 8pt !important;
    font-weight: 700 !important;
    text-align: center !important;
}

.ddh-rep-fecha[b-b1twtg87af] {
    padding-bottom: 4pt !important;
    font-size: 9pt !important;
    font-weight: 700 !important;
    text-align: center !important;
}

/* --- encabezado de columnas --- */
.ddh-rep-cab th[b-b1twtg87af] {
    border: 1px solid #000;
    padding: 1px 2px;
    font-size: 8pt;
    font-weight: 700;
    line-height: 1.05;
    text-align: left;
    vertical-align: bottom;
}

.ddh-rep-grupo[b-b1twtg87af] {
    text-align: center !important;
    vertical-align: middle !important;
}

/* La columna de contrata no lleva recuadro en el informe original. */
.ddh-rep-th-contrata[b-b1twtg87af] {
    border: 0 !important;
    border-bottom: 1px solid #000 !important;
}

/* --- detalle: las catorce columnas tienen recuadro; la de contrata no --- */
.ddh-rep-tabla tbody td[b-b1twtg87af] {
    border: 1px solid #000;
    padding: 1px 2px;
    line-height: 1.1;
    vertical-align: top;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

.ddh-rep-contrata[b-b1twtg87af] {
    border: 0 !important;
    border-left: 1px solid #000 !important;
}

/* Linea corta sobre la contrata en su primera fila: es lo que dibujaba la marca del legado. */
.ddh-rep-corte[b-b1twtg87af] {
    border-top: 1px solid #000 !important;
}

.ddh-rep-obs[b-b1twtg87af] {
    font-size: 7pt;
}

.ddh-rep-vacio[b-b1twtg87af] {
    border: 0 !important;
    padding: 8px 2px !important;
    text-align: center;
}

/* --- resumen: los totales van bajo METRAJE PERFORADO, con el rotulo a la izquierda --- */
.ddh-rep-tabla tfoot td[b-b1twtg87af] {
    padding: 1px 2px;
    border: 0;
}

.ddh-rep-total-rotulo[b-b1twtg87af] {
    font-weight: 700;
    text-align: right;
}

.ddh-rep-total-valor[b-b1twtg87af] {
    border-top: 1px solid #000 !important;
    border-bottom: 1px solid #000 !important;
    font-weight: 700;
}

.ddh-rep-sin-borde[b-b1twtg87af] {
    border: 0 !important;
}

.text-end[b-b1twtg87af] {
    text-align: right;
}

/* Al imprimir, que el encabezado se repita y que no se corten las filas. */
@media print {
    .ddh-rep-tabla thead[b-b1twtg87af] {
        display: table-header-group;
    }

    .ddh-rep-tabla tr[b-b1twtg87af] {
        page-break-inside: avoid;
    }
}
/* /Components/Sistemas/Scomm/FRM_SCOMM_LiquidacionDdh_ItemModal.razor.rz.scp.css */
/* CR-DDH-0004: modal del item de distribucion. La distribucion de campos sigue el mockup:
   datos generales en un recuadro, Perforacion y Rimado en recuadros propios con su longitud
   calculada al costado, y Stand By con Observacion al pie fuera de los recuadros. */

.ddh-modal-backdrop[b-8hwb4wvb9k] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .35);
    z-index: 1040;
}

.ddh-modal[b-8hwb4wvb9k] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(620px, calc(100vw - 24px));
    max-height: calc(100vh - 40px);
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid #adb5bd;
    border-radius: 4px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, .28);
    z-index: 1050;
}

.ddh-modal-head[b-8hwb4wvb9k] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px 10px;
    border-bottom: 1px solid #dee2e6;
}

.ddh-modal-title[b-8hwb4wvb9k] {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 600;
}

.ddh-modal-sub[b-8hwb4wvb9k] {
    font-size: .78rem;
    color: #6c757d;
}

.ddh-modal-body[b-8hwb4wvb9k] {
    padding: 12px 14px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ddh-modal-foot[b-8hwb4wvb9k] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 10px 14px 12px;
    border-top: 1px solid #dee2e6;
}

/* Recuadros del mockup */
.ddh-modal-group[b-8hwb4wvb9k] {
    border: 1px solid #495057;
    border-radius: 2px;
    padding: 10px 12px 12px;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ddh-modal-legend[b-8hwb4wvb9k] {
    float: none;
    width: auto;
    margin: 0 0 2px;
    padding: 0 4px;
    font-size: .85rem;
    font-style: italic;
    font-weight: 600;
}

.ddh-modal-ubicacion[b-8hwb4wvb9k] {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 4px;
}

.ddh-modal-ubicacion .form-check-label[b-8hwb4wvb9k] {
    font-weight: 600;
}

.ddh-modal-nota[b-8hwb4wvb9k] {
    font-size: .72rem;
    color: #6c757d;
}

/* Etiqueta a la izquierda y control a la derecha, como en el mockup */
.ddh-modal-fila[b-8hwb4wvb9k] {
    display: grid;
    grid-template-columns: 118px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
}

.ddh-modal-fila .form-label[b-8hwb4wvb9k] {
    margin: 0;
    font-weight: 600;
    font-size: .82rem;
}

.ddh-modal-fila-media > .form-select[b-8hwb4wvb9k],
.ddh-modal-fila-media > .form-control[b-8hwb4wvb9k] {
    max-width: 260px;
}

.ddh-modal-fila-corta > .form-control[b-8hwb4wvb9k],
.ddh-modal-fila-corta > .form-select[b-8hwb4wvb9k] {
    max-width: 150px;
}

/* Tramo: los dos campos a la izquierda y la longitud calculada a la derecha */
.ddh-modal-tramo[b-8hwb4wvb9k] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.ddh-modal-tramo-campos[b-8hwb4wvb9k] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ddh-modal-tramo-campos .ddh-modal-fila[b-8hwb4wvb9k] {
    grid-template-columns: 64px minmax(0, 1fr);
}

.ddh-modal-calculado[b-8hwb4wvb9k] {
    grid-template-columns: auto minmax(0, 1fr);
}

.ddh-modal-calculado .form-label[b-8hwb4wvb9k] {
    font-style: italic;
}

.ddh-modal-calculado .form-control[b-8hwb4wvb9k] {
    background: #e9ecef;
    color: #495057;
}
/* /Components/Sistemas/Scomm/FRM_SCOMM_LiquidacionDdh_Registro.razor.rz.scp.css */
.ddh-reg-panel[b-dvcrnub272] {
    padding: 10px 12px;
}

.ddh-reg-head[b-dvcrnub272] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 8px;
}

.ddh-reg-grid[b-dvcrnub272] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}

.ddh-reg-card[b-dvcrnub272] {
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 9px;
    background: #fff;
}

.ddh-reg-card-title[b-dvcrnub272] {
    font-weight: 800;
    margin-bottom: 6px;
}

.ddh-cabecera-grid .form-label[b-dvcrnub272] {
    font-size: .8rem;
    margin-bottom: .2rem;
    line-height: 1.05;
}

.ddh-reg-card .form-label[b-dvcrnub272] {
    color: #27465e;
    font-weight: 650;
    letter-spacing: .01em;
}

.ddh-cabecera-grid .form-control[b-dvcrnub272],
.ddh-cabecera-grid .form-select[b-dvcrnub272] {
    min-height: 30px;
    height: 30px;
    padding: .18rem .42rem;
    font-size: .9rem;
    border-radius: .25rem;
}

/* CR-DDH-0010: los combos de busqueda (Labor, Maquina, Taladro) los renderiza un componente hijo,
   y el CSS aislado de esta pagina no llega a su contenido. Sin ::deep quedan con el tamaño por
   defecto de Bootstrap y se ven mas altos que el resto de los controles de la cabecera. */
.ddh-cabecera-grid[b-dvcrnub272]  .form-control,
.ddh-cabecera-grid[b-dvcrnub272]  .form-select {
    min-height: 30px;
    height: 30px;
    padding: .18rem .42rem;
    font-size: .9rem;
    border-radius: .25rem;
}

.ddh-cabecera-grid textarea.form-control[b-dvcrnub272] {
    min-height: 30px;
    height: 30px;
    resize: vertical;
    line-height: 1.15;
}

/* CR-DDH-0011: Observaciones va en su propia fila y necesita alto para dos lineas. */
.ddh-cabecera-grid textarea.ddh-cab-observacion[b-dvcrnub272] {
    height: auto;
    min-height: 48px;
}

.ddh-reg-card .form-control[b-dvcrnub272],
.ddh-reg-card .form-select[b-dvcrnub272] {
    background: #f7fbff;
    border: 1px solid #9eb3c4;
    box-shadow: inset 0 1px 1px rgba(20, 46, 72, .06);
    min-height: 30px;
    height: 30px;
    padding: .18rem .42rem;
    font-size: .9rem;
    border-radius: .25rem;
    width: 100%;
}

.ddh-reg-card .form-control:focus[b-dvcrnub272],
.ddh-reg-card .form-select:focus[b-dvcrnub272] {
    border-color: #6b8ca8;
    box-shadow: 0 0 0 .16rem rgba(52, 114, 161, .2);
}

.ddh-reg-card .form-control:disabled[b-dvcrnub272],
.ddh-reg-card .form-select:disabled[b-dvcrnub272],
.ddh-reg-card textarea.form-control:disabled[b-dvcrnub272] {
    background: #e8eef4;
    border-color: #bdcbd7;
    color: #33495d;
}

/* CR-DDH-0012: en la cabecera se distingue de un vistazo que se puede escribir y que no.
   Lo editable va en blanco con borde azul; lo bloqueado, en gris mas marcado y texto apagado.
   Las variantes con ::deep son para los combos de busqueda, que los renderiza un componente
   hijo y no reciben el atributo de aislamiento de esta hoja. */
.ddh-cabecera-grid .form-control:not(:disabled)[b-dvcrnub272],
.ddh-cabecera-grid .form-select:not(:disabled)[b-dvcrnub272],
.ddh-cabecera-grid textarea.form-control:not(:disabled)[b-dvcrnub272],
.ddh-cabecera-grid[b-dvcrnub272]  .form-control:not(:disabled),
.ddh-cabecera-grid[b-dvcrnub272]  .form-select:not(:disabled) {
    background: #fff;
    border-color: #6f9fc8;
    box-shadow: inset 0 0 0 1px rgba(111, 159, 200, .22);
    color: #16232e;
}

.ddh-cabecera-grid .form-control:disabled[b-dvcrnub272],
.ddh-cabecera-grid .form-select:disabled[b-dvcrnub272],
.ddh-cabecera-grid textarea.form-control:disabled[b-dvcrnub272],
.ddh-cabecera-grid[b-dvcrnub272]  .form-control:disabled,
.ddh-cabecera-grid[b-dvcrnub272]  .form-select:disabled {
    background: #d9e2ea;
    border-color: #a6bacb;
    color: #4c5e6d;
    box-shadow: none;
    cursor: default;
}

.ddh-reg-card textarea.form-control[b-dvcrnub272] {
    min-height: 30px;
    line-height: 1.15;
}

.ddh-radio-group[b-dvcrnub272] {
    min-height: 30px;
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: 0 .25rem;
    border: 1px solid var(--line);
    border-radius: .25rem;
    background: var(--bs-secondary-bg);
}

.ddh-radio-group .form-check-input[b-dvcrnub272] {
    margin-top: 0;
}

/* CR-DDH-0008: la marca Mina/Superficie va apilada al extremo derecho de la primera fila, y la
   maquina se muestra en dos controles: codigo y descripcion. */
.ddh-radio-group--vertical[b-dvcrnub272] {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    padding: .1rem .35rem;
    background: transparent;
    border: none;
    min-height: 0;
}

.ddh-cab-maquina[b-dvcrnub272] {
    display: flex;
    gap: 4px;
}

.ddh-cab-maquina > .form-control:first-child[b-dvcrnub272] {
    flex: 0 0 78px;
}

.ddh-cab-maquina > .form-control:last-child[b-dvcrnub272] {
    flex: 1 1 auto;
    min-width: 0;
}

.ddh-radio-group .form-check-label[b-dvcrnub272] {
    font-size: .88rem;
}

.ddh-reg-table thead th[b-dvcrnub272] {
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 1;
}

.ddh-reg-table-wrap[b-dvcrnub272] {
    max-height: 340px;
    overflow: auto;
}

.ddh-reg-card .table[b-dvcrnub272] {
    margin-bottom: .2rem;
    empty-cells: show;
    table-layout: fixed;
    width: 100%;
}

.ddh-tab-content .table[b-dvcrnub272] {
    table-layout: auto;
}

/* CR-DDH-0016: el desplegable del combo es position:absolute y quedaba recortado por dos
   cajas distintas, por eso no se veia la lista de personal.
   1) .table-responsive trae overflow-x:auto de Bootstrap y, por especificacion CSS, un
      overflow-y:visible junto a un eje en auto se computa como auto: la regla anterior,
      que solo tocaba overflow-y, no tenia ningun efecto.
   2) la celda tambien recorta, por la regla de puntos suspensivos de td que sigue mas abajo.
   Se libera solo donde hay combo. Esa grilla tiene tres columnas angostas y no necesita
   scroll horizontal. */
.ddh-tab-content .ddh-tab-tabla-combo[b-dvcrnub272] {
    overflow: visible;
}

.ddh-reg-card .table tbody td.ddh-td-combo[b-dvcrnub272] {
    overflow: visible;
}

.ddh-reg-card .table > :not(caption) > * > *[b-dvcrnub272] {
    padding: .22rem .36rem;
    line-height: 1.1;
    vertical-align: middle;
    height: 40px;
}

.ddh-reg-card .table tbody td[b-dvcrnub272] {
    min-height: 38px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ddh-reg-card .table tbody tr[b-dvcrnub272] {
    height: 40px;
    display: table-row;
}

.ddh-reg-card .table tbody td:empty[b-dvcrnub272]::before {
    content: "\00a0";
}

.ddh-reg-card .table tbody tr[b-dvcrnub272] {
    cursor: pointer;
}

.ddh-reg-card .table tbody tr.ddh-row-selected > td[b-dvcrnub272] {
    background: #dbeeff !important;
    color: #0a2f57;
}

.ddh-reg-card .table tbody tr.ddh-row-editing > td[b-dvcrnub272] {
    background: #eef6ff !important;
}

.ddh-reg-card .table tbody tr.ddh-row-selected:hover > td[b-dvcrnub272] {
    background: #cfe7ff !important;
}

.ddh-avance-table[b-dvcrnub272] {
    width: auto !important;
    min-width: 420px;
    table-layout: auto;
}

.ddh-avance-table th:first-child[b-dvcrnub272],
.ddh-avance-table td:first-child[b-dvcrnub272] {
    white-space: nowrap;
}

.ddh-avance-table th:nth-child(2)[b-dvcrnub272],
.ddh-avance-table td:nth-child(2)[b-dvcrnub272] {
    width: 132px;
    min-width: 132px;
    max-width: 132px;
}

.ddh-avance-table th:last-child[b-dvcrnub272],
.ddh-avance-table td:last-child[b-dvcrnub272] {
    width: 96px;
    min-width: 96px;
}

.ddh-avance-metros-input[b-dvcrnub272] {
    width: 100%;
    max-width: 132px;
    margin-left: auto;
}

.ddh-tab-content[b-dvcrnub272] {
    border: 1px solid var(--line);
    border-top: 0;
    border-bottom-left-radius: 8px;
    border-bottom-right-radius: 8px;
    padding: 8px;
    background: #fff;
}

.ddh-detail-form .row.g-2 > .col[b-dvcrnub272],
.ddh-detail-form .row.g-2 > [class*="col-"][b-dvcrnub272] {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    align-items: center;
    column-gap: .5rem;
}

.ddh-detail-form .form-label[b-dvcrnub272] {
    margin-bottom: 0;
    font-weight: 600;
}

.ddh-detail-form .form-control[b-dvcrnub272],
.ddh-detail-form .form-select[b-dvcrnub272] {
    width: 100%;
}

@media (max-width: 992px) {
    .ddh-detail-form .row.g-2 > .col[b-dvcrnub272],
    .ddh-detail-form .row.g-2 > [class*="col-"][b-dvcrnub272] {
        grid-template-columns: 1fr;
        row-gap: .25rem;
    }

    .ddh-detail-form .form-label[b-dvcrnub272] {
        margin-bottom: .15rem;
    }
}

.ddh-reg-period-note[b-dvcrnub272] {
    margin-top: 8px;
    color: #d81b1b;
    font-weight: 700;
    font-size: .92rem;
}

/* CR-DDH-0020: aviso de valores propuestos en el alta. */
.ddh-reg-propuesta[b-dvcrnub272] {
    margin: 2px 0 6px;
    padding: 4px 8px;
    border-left: 3px solid #f0ad4e;
    background: #fff8ec;
    color: #5a4415;
    font-size: .78rem;
}

/* CR-DDH-0021: aviso de llave duplicada durante el alta. */
.ddh-reg-duplicado[b-dvcrnub272] {
    margin: 2px 0 6px;
    padding: 5px 8px;
    border-left: 3px solid #c0392b;
    background: #fdeceb;
    color: #7d241c;
    font-size: .8rem;
}

/* CR-DDH-0022: la seccion recibe el foco para que lleguen los atajos; sin anillo, porque no es
   un control y el anillo alrededor de toda la ventana solo distrae. */
.ddh-reg-panel:focus[b-dvcrnub272] {
    outline: none;
}

/* CR-DDH-0023: la referencia del reporte acompaña al titulo de la zona de detalles. */
.ddh-reg-card-title--ref[b-dvcrnub272] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 4px 12px;
}

.ddh-reg-ref[b-dvcrnub272] {
    font-weight: 600;
    font-size: .8rem;
    color: #0b5a53;
}

/* ==========================================================================================
   CR-DDH-0024: densidad compacta.
   El problema medido: en una pantalla de unos 900 px utiles, la cabecera gastaba ~230, la
   tarjeta de items ~155 y los titulos y barras del resto ~200, asi que a la grilla de la
   pestaña le quedaban unos 150 px, o sea tres filas. Se recorta alto donde se repite: alto de
   fila, botoneras, pestañas y titulos. Las fuentes bajan lo justo para no castigar la lectura
   de quien teclea todo el dia.
   ========================================================================================== */

.ddh-reg-card[b-dvcrnub272] {
    padding: 7px;
}

.ddh-reg-card-title[b-dvcrnub272] {
    font-size: .86rem;
    margin-bottom: 4px;
}

.ddh-cabecera-grid .form-label[b-dvcrnub272] {
    font-size: .74rem;
    margin-bottom: .1rem;
}

.ddh-cabecera-grid .form-control[b-dvcrnub272],
.ddh-cabecera-grid .form-select[b-dvcrnub272],
.ddh-cabecera-grid[b-dvcrnub272]  .form-control,
.ddh-cabecera-grid[b-dvcrnub272]  .form-select {
    min-height: 27px;
    height: 27px;
    font-size: .84rem;
}

.ddh-cabecera-grid textarea.ddh-cab-observacion[b-dvcrnub272] {
    min-height: 34px;
}

/* Alto de fila: es lo que mas se repite, y cada pixel aca son filas visibles de mas. */
.ddh-reg-card .table > :not(caption) > * > *[b-dvcrnub272] {
    height: 32px;
    padding: .1rem .34rem;
}

.ddh-reg-card .table tbody tr[b-dvcrnub272] {
    height: 32px;
}

.ddh-reg-card .table tbody td[b-dvcrnub272] {
    min-height: 30px;
}

.ddh-reg-card .table th[b-dvcrnub272] {
    font-size: .76rem;
}

.ddh-reg-card .table td[b-dvcrnub272] {
    font-size: .82rem;
}

.ddh-reg-card .table .form-control[b-dvcrnub272],
.ddh-reg-card .table .form-select[b-dvcrnub272],
.ddh-reg-card .table[b-dvcrnub272]  .form-control,
.ddh-reg-card .table[b-dvcrnub272]  .form-select {
    min-height: 26px;
    height: 26px;
    padding: .08rem .34rem;
    font-size: .82rem;
}

/* Botoneras de las tarjetas y de las pestañas. */
.ddh-reg-card .btn[b-dvcrnub272] {
    padding: .16rem .5rem;
    font-size: .82rem;
}

.ddh-tab-content[b-dvcrnub272],
.ddh-reg-card .nav-tabs .nav-link[b-dvcrnub272] {
    font-size: .84rem;
}

.ddh-reg-card .nav-tabs .nav-link[b-dvcrnub272] {
    padding: .2rem .6rem;
}

.ddh-tab-content[b-dvcrnub272] {
    padding: 6px;
}

/* La grilla de items no necesita 340 px: con la cabecera plegada ya hay lugar, y limitarla
   deja la zona de pestañas dentro de la pantalla. */
.ddh-reg-table-wrap[b-dvcrnub272] {
    max-height: 220px;
}

/* ==========================================================================================
   CR-DDH-0025: margenes.
   La cabecera se queda desplegada, asi que el alto se recupera recortando el espacio muerto
   del apilado vertical, que estaba repartido en muchos lugares chicos: relleno del panel,
   separacion entre tarjetas, alto de los encabezados de tarjeta, barras de botones y el
   canal entre filas de la cuadricula de la cabecera.
   ========================================================================================== */

.ddh-reg-panel[b-dvcrnub272] {
    padding: 6px 10px;
}

.ddh-reg-head[b-dvcrnub272] {
    margin-bottom: 4px;
}

.ddh-reg-grid[b-dvcrnub272] {
    gap: 6px;
}

.ddh-reg-card[b-dvcrnub272] {
    padding: 6px 7px;
}

.ddh-reg-card-title[b-dvcrnub272] {
    margin-bottom: 2px;
}

/* Encabezado de tarjeta con botones al costado: no necesita el margen de Bootstrap. */
.ddh-card-head[b-dvcrnub272] {
    margin-bottom: 4px;
}

/* Barras de botones de las tarjetas y de las pestañas. */
.ddh-reg-card .d-flex.mb-2[b-dvcrnub272],
.ddh-tab-content .d-flex.mb-2[b-dvcrnub272] {
    margin-bottom: 4px !important;
}

/* Canal vertical entre las filas de la cabecera. Bootstrap g-1 deja 4 px por fila y la
   cabecera tiene tres filas. */
.ddh-cabecera-grid[b-dvcrnub272] {
    --bs-gutter-y: 2px;
}

.ddh-cabecera-grid .form-label[b-dvcrnub272] {
    margin-bottom: .05rem;
}

.ddh-cabecera-grid textarea.ddh-cab-observacion[b-dvcrnub272] {
    min-height: 30px;
}

.ddh-tab-content[b-dvcrnub272] {
    padding: 5px;
}

/* CR-DDH-0028: estado del periodo, siempre visible. Dos estados por decision del usuario. */
.ddh-reg-periodo[b-dvcrnub272] {
    margin: 2px 0 4px;
    padding: 3px 8px;
    border-radius: 3px;
    font-size: .78rem;
    font-weight: 600;
}

.ddh-reg-periodo--abierto[b-dvcrnub272] {
    border-left: 3px solid #157347;
    background: #eaf6ef;
    color: #14512f;
}

.ddh-reg-periodo--cerrado[b-dvcrnub272] {
    border-left: 3px solid #c0392b;
    background: #fdeceb;
    color: #7d241c;
}

/* Los botones de la cabecera se alinean con los campos de su fila, no con la etiqueta. */
.ddh-cab-acciones[b-dvcrnub272] {
    align-items: center;
}

/* ==========================================================================================
   Reparto de ancho de la tabla de Distribucion.

   La tabla usa table-layout:fixed con width:100%, asi que sin anchos declarados las 11 columnas
   se reparten por igual y la descripcion se queda con 1/11 — de ahi el recorte. Se fijan las
   diez columnas de la derecha en lo que realmente necesitan sus encabezados y valores, y la
   PRIMERA se deja SIN ancho: con layout fijo, la columna sin declarar absorbe todo el resto.

   Las descripciones reales miden hasta 47 caracteres (promedio 23), unos 330 px: el min-width de
   la tabla reserva 324 px para la primera columna incluso en la pantalla mas angosta, y por
   encima de eso la columna crece sola. Si no alcanza, .table-responsive desplaza en horizontal
   en vez de comprimirla.

   El alto NO cambia: la primera celda va en una sola linea (nowrap) y sigue recortando con
   puntos suspensivos, con el texto completo en el title.
   ========================================================================================== */
.ddh-reg-table[b-dvcrnub272] {
    min-width: 1072px;
}

.ddh-reg-table th:nth-child(2)[b-dvcrnub272], .ddh-reg-table td:nth-child(2)[b-dvcrnub272],
.ddh-reg-table th:nth-child(3)[b-dvcrnub272], .ddh-reg-table td:nth-child(3)[b-dvcrnub272],
.ddh-reg-table th:first-child[b-dvcrnub272],
.ddh-reg-table td:first-child[b-dvcrnub272] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ddh-reg-table th:nth-child(2)[b-dvcrnub272],  .ddh-reg-table td:nth-child(2)[b-dvcrnub272]  { width: 50px; }
.ddh-reg-table th:nth-child(3)[b-dvcrnub272],  .ddh-reg-table td:nth-child(3)[b-dvcrnub272]  { width: 112px; }
.ddh-reg-table th:nth-child(4)[b-dvcrnub272],  .ddh-reg-table td:nth-child(4)[b-dvcrnub272]  { width: 58px; }
.ddh-reg-table th:nth-child(5)[b-dvcrnub272],  .ddh-reg-table td:nth-child(5)[b-dvcrnub272]  { width: 76px; }
.ddh-reg-table th:nth-child(6)[b-dvcrnub272],  .ddh-reg-table td:nth-child(6)[b-dvcrnub272]  { width: 76px; }
.ddh-reg-table th:nth-child(7)[b-dvcrnub272],  .ddh-reg-table td:nth-child(7)[b-dvcrnub272]  { width: 74px; }
.ddh-reg-table th:nth-child(8)[b-dvcrnub272],  .ddh-reg-table td:nth-child(8)[b-dvcrnub272]  { width: 78px; }
.ddh-reg-table th:nth-child(9)[b-dvcrnub272],  .ddh-reg-table td:nth-child(9)[b-dvcrnub272]  { width: 78px; }
.ddh-reg-table th:nth-child(10)[b-dvcrnub272], .ddh-reg-table td:nth-child(10)[b-dvcrnub272] { width: 76px; }
.ddh-reg-table th:nth-child(11)[b-dvcrnub272], .ddh-reg-table td:nth-child(11)[b-dvcrnub272] { width: 70px; }
/* /Components/Sistemas/Scomm/FRM_SCOMM_LiquidacionDdh_Valorizacion.razor.rz.scp.css */
.ddh-val-shell[b-0r191rgpct] {
    padding: 8px 2px 12px;
}

.ddh-val-head[b-0r191rgpct] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 10px;
}

.ddh-val-toolbar[b-0r191rgpct] {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: flex-end;
    margin-bottom: 12px;
}

.ddh-val-field[b-0r191rgpct] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.ddh-val-period[b-0r191rgpct] {
    display: flex;
    gap: 10px;
    align-items: flex-end;
    flex-wrap: nowrap;
}

.ddh-val-period-select[b-0r191rgpct] {
    width: 138px;
    max-width: 138px;
    min-width: 138px;
    height: 34px;
    font-size: 0.98rem;
}

/* CR-DDH-0034: Actualizar entra al grupo del periodo. Toma la misma altura y el mismo cuerpo de
   letra que los combos para que los tres controles queden alineados en una sola linea. */
.ddh-val-period-btn[b-0r191rgpct] {
    height: 34px;
    padding-top: 0;
    padding-bottom: 0;
    font-size: 0.98rem;
    white-space: nowrap;
}

.ddh-val-actions[b-0r191rgpct] {
    display: flex;
    justify-content: flex-end;
    margin-left: auto;
}

/* CR-DDH-0039: el cuerpo deja de tener una altura fija. Cuando la grilla mostraba todas las filas
   con su propio scroll, esa altura era lo que le daba el marco; desde que se pagina de a quince, el
   contenido de la derecha mide siempre mas o menos lo mismo, y forzar el alto de la ventana solo
   dejaba un vacio grande debajo de los registros. Ahora manda el contenido, y el que se acota es el
   arbol, que es el unico que puede crecer sin limite. */
/* CR-DDH-0046: franja de trabajo en curso. Va entre la barra y el cuerpo, donde el usuario ya esta
   mirando despues de pulsar, y no en una esquina. */
.ddh-val-trabajando[b-0r191rgpct] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
    padding: 7px 12px;
    border: 1px solid #b6d4fe;
    border-radius: 8px;
    background: #eff6ff;
    color: #0b4a8f;
    font-size: 13px;
}

.ddh-val-body[b-0r191rgpct] {
    min-height: 0;
}

.ddh-val-tree[b-0r191rgpct] {
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 8px;
    background: #fff;
    overflow: auto;
    min-height: 0;
    max-height: calc(100vh - 250px);
}

/* CR-DDH-0039: el arbol usa el mismo cuerpo de letra que la grilla. El titulo del panel queda
   fuera, para que siga midiendo igual que el titulo de la grilla de al lado. */
.ddh-val-tree-body[b-0r191rgpct] {
    font-size: 12px;
}

.ddh-val-tree-title[b-0r191rgpct] {
    font-weight: 800;
    margin-bottom: 8px;
}

/* CR-DDH-0039: las dos cajas de la derecha miden lo que mide su contenido. Antes la grilla se
   llevaba todo el alto sobrante y los responsables tenian 220 px fijos. */
.ddh-val-right[b-0r191rgpct] {
    display: grid;
    grid-template-rows: auto auto;
    align-content: start;
    gap: 10px;
    min-width: 0;
}

.ddh-val-grid[b-0r191rgpct],
.ddh-val-resp[b-0r191rgpct] {
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 8px;
    background: #fff;
    display: grid;
    grid-template-rows: auto 1fr;
    min-width: 0;
}

/* CR-DDH-0037: la grilla suma un pie con la paginacion, que va al final y ocupa lo que necesite.
   CR-DDH-0039: las tres filas van al alto de su contenido. La del medio era elastica y estiraba la
   caja hasta el borde de la ventana, dejando el vacio debajo de los registros. */
.ddh-val-grid[b-0r191rgpct] {
    grid-template-rows: auto auto auto;
}

.ddh-val-grid-head[b-0r191rgpct] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 4px;
    gap: 10px;
}

.ddh-val-grid-title[b-0r191rgpct] {
    font-weight: 800;
}

.ddh-table-wrap[b-0r191rgpct] {
    overflow: auto;
    min-width: 0;
    min-height: 0;
}

.ddh-val-table thead th[b-0r191rgpct] {
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 1;
    white-space: nowrap;
}

.ddh-val-table[b-0r191rgpct],
.ddh-resp-table[b-0r191rgpct] {
    margin-bottom: 0;
    min-width: 1100px;
    font-size: 13px;
}

/* CR-DDH-0037: la grilla de distribucion baja un punto respecto del resto. Es la tabla mas ancha
   de la ventana, con nueve columnas, y con esto entra sin apretar las descripciones. */
.ddh-val-table[b-0r191rgpct] {
    font-size: 12px;
}

/* CR-DDH-0038: cada registro ocupa una sola linea. Antes las columnas se repartian el ancho
   automaticamente y la descripcion, que llega a 57 caracteres, se envolvia en cuatro renglones y
   estiraba toda la fila. Con reparto fijo cada columna recibe lo que su contenido necesita y la
   descripcion se lleva el sobrante, que le alcanza para entrar entera en la gran mayoria de los
   casos; lo que igual no entre se corta con puntos suspensivos y se lee en el globo de ayuda. */
.ddh-val-table[b-0r191rgpct] {
    table-layout: fixed;
    min-width: 1200px;
}

.ddh-val-table th[b-0r191rgpct],
.ddh-val-table td[b-0r191rgpct] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Anchos tomados del largo real de cada columna en QA. La de distribucion no lleva ancho: se
   queda con lo que sobra, que es lo que mas necesita. */
.ddh-val-table th:nth-child(1)[b-0r191rgpct], .ddh-val-table td:nth-child(1)[b-0r191rgpct] { width: 85px; }
.ddh-val-table th:nth-child(2)[b-0r191rgpct], .ddh-val-table td:nth-child(2)[b-0r191rgpct] { width: 130px; }
.ddh-val-table th:nth-child(3)[b-0r191rgpct], .ddh-val-table td:nth-child(3)[b-0r191rgpct] { width: 170px; }
.ddh-val-table th:nth-child(4)[b-0r191rgpct], .ddh-val-table td:nth-child(4)[b-0r191rgpct] { width: 105px; }
.ddh-val-table th:nth-child(6)[b-0r191rgpct], .ddh-val-table td:nth-child(6)[b-0r191rgpct] { width: 50px; }
.ddh-val-table th:nth-child(7)[b-0r191rgpct], .ddh-val-table td:nth-child(7)[b-0r191rgpct] { width: 85px; }
.ddh-val-table th:nth-child(8)[b-0r191rgpct], .ddh-val-table td:nth-child(8)[b-0r191rgpct] { width: 85px; }
.ddh-val-table th:nth-child(9)[b-0r191rgpct], .ddh-val-table td:nth-child(9)[b-0r191rgpct] { width: 95px; }

.ddh-resp-table[b-0r191rgpct] {
    min-width: 600px;
}

/* CR-DDH-0037: pie de paginacion. Los registros a la izquierda, los controles a la derecha. */
.ddh-val-pager[b-0r191rgpct] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
    padding-top: 6px;
    margin-top: 6px;
    border-top: 1px solid var(--line);
    font-size: 12px;
}

.ddh-val-pager-controls[b-0r191rgpct] {
    display: flex;
    align-items: center;
    gap: 4px;
}

.ddh-val-pager-controls .btn[b-0r191rgpct] {
    padding: 1px 8px;
    font-size: 12px;
    line-height: 1.5;
}

.ddh-val-pager-pos[b-0r191rgpct] {
    padding: 0 6px;
    white-space: nowrap;
}

.ddh-val-table th[b-0r191rgpct],
.ddh-val-table td[b-0r191rgpct],
.ddh-resp-table th[b-0r191rgpct],
.ddh-resp-table td[b-0r191rgpct] {
    padding: 4px 6px;
    vertical-align: middle;
}

.ddh-row-sondaje-a[b-0r191rgpct] {
    background: #eef8ff;
}

.ddh-row-sondaje-b[b-0r191rgpct] {
    background: #ffffff;
}

.ddh-resp-wrap[b-0r191rgpct] {
    max-height: 180px;
}

.ddh-resp-table thead th[b-0r191rgpct] {
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 1;
}

.ddh-val-resp-actions[b-0r191rgpct] {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) auto auto auto;
    gap: 8px;
    align-items: center;
    margin-bottom: 6px;
}

.ddh-row-selected[b-0r191rgpct] {
    background: #e9f3ff;
}

@media (max-width: 980px) {
    .ddh-val-period[b-0r191rgpct] {
        flex-wrap: wrap;
    }

    .ddh-val-period-select[b-0r191rgpct] {
        width: 170px;
        max-width: 100%;
        min-width: 0;
    }

    /* CR-DDH-0039: en pantalla angosta el arbol se acota mas, para que no empuje la grilla tan
       abajo cuando las dos cajas quedan una debajo de la otra. */
    .ddh-val-tree[b-0r191rgpct] {
        max-height: 320px;
    }

    .ddh-resp-table[b-0r191rgpct] {
        min-width: 0;
    }

    /* CR-DDH-0038: en pantalla angosta la grilla conserva su ancho y se desplaza en horizontal.
       Dejarla encoger comprimiria las nueve columnas hasta que casi todo quedara en puntos
       suspensivos, que se lee peor que arrastrar la tabla. */
    .ddh-val-table[b-0r191rgpct] {
        min-width: 1200px;
    }
}
/* /Components/Sistemas/Scomm/FRM_SCOMM_LiquidacionDdh_ValorizacionDetalle.razor.rz.scp.css */
.ddh-valdet-panel[b-73zxhv97he] {
    padding: 14px;
}

.ddh-valdet-head[b-73zxhv97he] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 10px;
}

.ddh-valdet-layout[b-73zxhv97he] {
    display: grid;
    grid-template-columns: 1fr 260px;
    gap: 12px;
}

.ddh-valdet-gridwrap[b-73zxhv97he] {
    border: 1px solid #d0d7de;
    border-radius: 6px;
    max-height: 460px;
    overflow: auto;
}

.ddh-valdet-side[b-73zxhv97he] {
    border: 1px solid #d0d7de;
    border-radius: 6px;
    padding: 10px;
    display: grid;
    gap: 12px;
    align-content: start;
}

.ddh-valdet-context[b-73zxhv97he] {
    font-size: .9rem;
    color: #374151;
    display: grid;
    gap: 2px;
}

.ddh-valdet-range[b-73zxhv97he] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 4px;
}

.ddh-valdet-table thead th[b-73zxhv97he] {
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 1;
}

.ddh-row-selected[b-73zxhv97he] {
    background: #e9f3ff;
}

@media (max-width: 992px) {
    .ddh-valdet-layout[b-73zxhv97he] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Sistemas/Scomm/FRM_SCOMM_LiquidacionDdh_ValorizacionImprimir.razor.rz.scp.css */
/* CR-DDH-0040: formato del informe de valorizacion, tomado de
   geo_liquidacion_perforaciondiamantina_valorizacion.frx leido campo por campo.

   El original mide 79479 unidades de ancho, que son 7.95 pulgadas, y su configuracion guardada es
   A4 en vertical: entra en la hoja sin cambiar la orientacion. Los anchos de columna de abajo son
   los del informe, pasados a porcentaje de ese ancho total, y salen de las posiciones de las
   lineas separadoras del encabezado. */

.ddh-val-print[b-60hlavv1ao] {
    padding: 10px 12px 24px;
    /* La tipografia del informe es Arial Narrow en todas sus bandas. */
    font-family: "Arial Narrow", "Liberation Sans Narrow", Arial, sans-serif;
    color: #000;
    /* CR-DDH-0041: fondo neutro detras de la hoja, para que se vea donde empieza y donde termina
       el papel. Es lo unico de esta pantalla que no forma parte del informe. */
    background: #e9ecef;
    min-height: 100vh;
    /* La hoja mide 210 mm; si la ventana es mas angosta, se puede desplazar hasta ella. */
    overflow-x: auto;
}

/* Las acciones se alinean con la hoja, no con la ventana. */
.ddh-val-print-actions[b-60hlavv1ao] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 210mm;
    margin: 0 auto 10px;
}

/* CR-DDH-0041: la hoja. En pantalla mide exactamente lo que mide el papel util, A4 vertical menos
   los margenes de impresion declarados mas abajo, y lleva ese mismo margen como relleno. Con eso
   el ancho disponible para el informe es el mismo en pantalla que en el PDF, y como los tamaños
   de letra estan en puntos, la proporcion entre columnas y texto tambien coincide: lo que se ve
   es lo que sale. Antes el informe se estiraba al ancho de la ventana y se veia otra cosa. */
/* CR-DDH-0046: aviso de que el informe se esta armando. */
.ddh-val-print-cargando[b-60hlavv1ao] {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 210mm;
    margin: 0 auto;
}

.ddh-frx-hoja[b-60hlavv1ao] {
    width: 210mm;
    margin: 0 auto;
    padding: 8mm;
    background: #fff;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.18);
}

.ddh-frx[b-60hlavv1ao] {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

/* --- encabezado de pagina ------------------------------------------------------------------ */

.ddh-frx-cab[b-60hlavv1ao] {
    padding: 0 0 6px;
    border: 0;
    font-weight: normal;
    text-align: left;
}

.ddh-frx-membrete[b-60hlavv1ao] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    font-size: 8pt;
}

.ddh-frx-membrete-der[b-60hlavv1ao] {
    text-align: right;
}

/* Titulo: 15 puntos, negrita y subrayado en el original. */
.ddh-frx-titulo[b-60hlavv1ao] {
    margin: 6px 0 8px;
    text-align: center;
    font-size: 15pt;
    font-weight: bold;
    text-decoration: underline;
}

/* Los cuatro datos de cabecera van en dos filas de dos: contrata y empresa arriba, periodo y CDR
   debajo, con el rotulo en 9 puntos y el valor en 10, ambos en negrita. */
.ddh-frx-datos[b-60hlavv1ao] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2px 0;
    margin-bottom: 6px;
}

.ddh-frx-rotulo[b-60hlavv1ao] {
    font-size: 9pt;
    font-weight: bold;
}

.ddh-frx-valor[b-60hlavv1ao] {
    font-size: 10pt;
    font-weight: bold;
    margin-left: 6px;
}

/* --- encabezado de columnas ---------------------------------------------------------------- */

.ddh-frx-cols th[b-60hlavv1ao] {
    border: 1px solid #000;
    padding: 2px 3px;
    font-size: 8pt;
    font-weight: bold;
    text-align: center;
    vertical-align: middle;
}

/* Las tres columnas de dinero llevan "( $ )" en una segunda linea, como en el original. */
.ddh-frx-cols th span[b-60hlavv1ao] {
    display: block;
    font-weight: bold;
}

/* Anchos del informe, en porcentaje del ancho total. */
.c1[b-60hlavv1ao] { width: 20.45%; }
.c2[b-60hlavv1ao] { width: 9.57%; }
.c3[b-60hlavv1ao] { width: 34.34%; }
.c4[b-60hlavv1ao] { width: 3.93%; }
.c5[b-60hlavv1ao] { width: 6.81%; }
.c6[b-60hlavv1ao] { width: 7.21%; }
.c7[b-60hlavv1ao] { width: 8.91%; }
.c8[b-60hlavv1ao] { width: 8.78%; }

/* --- detalle ------------------------------------------------------------------------------- */

.ddh-frx tbody td[b-60hlavv1ao] {
    padding: 1px 3px;
    /* El detalle del original va en 7 puntos. CR-DDH-0057: se baja medio punto para que la
       maquina, que es el texto mas largo de la fila, quepa en su columna sin partirse en dos
       renglones en los casos normales. */
    font-size: 6.5pt;
    vertical-align: top;
    /* Las descripciones son largas y en el informe pueden ocupar mas de un renglon. */
    word-wrap: break-word;
    /* CR-DDH-0057: la hoja global (app.css) pone white-space: nowrap a TODO td de la aplicacion,
       pensado para las grillas de mantenimiento. Aqui eso impedia el salto de linea y la maquina
       se desbordaba sobre la columna del sondaje. Se devuelve el comportamiento normal: lo que
       no cabe baja de renglon dentro de su celda. Los numeros conservan su nowrap mas abajo. */
    white-space: normal;
    overflow-wrap: anywhere;
}

.ddh-frx tbody td.num[b-60hlavv1ao] {
    text-align: right;
    white-space: nowrap;
}

/* Recuadro de la fila de resumen general, que en el original es un rectangulo alrededor de la
   descripcion. */
.ddh-frx-recuadro[b-60hlavv1ao] {
    border: 1px solid #000;
    font-weight: bold;
}

/* Cierre de grupo de sondaje: en el original es una linea horizontal fina. */
.ddh-frx-fin-sondaje td[b-60hlavv1ao] {
    border-bottom: 1px solid #000;
}

/* Linea de ancho completo sobre el grupo de alquiler. */
.ddh-frx-corte td[b-60hlavv1ao] {
    border-top: 1px solid #000;
    padding: 0;
    height: 3px;
}

/* Pie de grupo: rotulo y suma en 7 puntos, negrita y subrayado, como el original. */
.ddh-frx-total td[b-60hlavv1ao] {
    padding-top: 3px;
    font-size: 7pt;
    font-weight: bold;
    text-decoration: underline;
}

.ddh-frx-total td.rotulo[b-60hlavv1ao] {
    text-align: right;
    white-space: nowrap;
}

/* --- resumen ------------------------------------------------------------------------------- */

/* Total general: en el original es un rectangulo centrado bajo la tabla, con el rotulo a la
   izquierda y el valor a la derecha. */
.ddh-frx-general[b-60hlavv1ao] {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    width: 25.16%;
    margin: 14px auto 0 50%;
    padding: 2px 5px;
    border: 1px solid #000;
    font-size: 7pt;
    font-weight: bold;
}

/* --- firmas -------------------------------------------------------------------------------- */

/* Diez posiciones en una grilla de cuatro columnas: cuatro, cuatro y dos. */
.ddh-frx-firmas[b-60hlavv1ao] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 22px 12px;
    margin-top: 40px;
    font-size: 7pt;
    /* Las firmas no deben partirse entre dos hojas. */
    break-inside: avoid;
    page-break-inside: avoid;
}

.ddh-frx-firma-linea[b-60hlavv1ao] {
    border-top: 1px solid #000;
    margin-bottom: 2px;
}

.ddh-frx-firma-nombre[b-60hlavv1ao] {
    line-height: 1.3;
}

.ddh-frx-firma-cargo[b-60hlavv1ao] {
    line-height: 1.3;
}

/* --- impresion ----------------------------------------------------------------------------- */

@media print {
    .ddh-val-print[b-60hlavv1ao] {
        padding: 0;
        background: #fff;
        min-height: 0;
        overflow-x: visible;
    }

    /* Al imprimir, el margen y el ancho los pone la regla de pagina: la hoja deja de simularlos
       para no sumarlos dos veces. */
    .ddh-frx-hoja[b-60hlavv1ao] {
        width: auto;
        margin: 0;
        padding: 0;
        box-shadow: none;
    }

    /* El encabezado se repite en cada hoja, igual que la banda de encabezado de pagina del
       informe original. */
    .ddh-frx thead[b-60hlavv1ao] {
        display: table-header-group;
    }

    .ddh-frx tbody tr[b-60hlavv1ao] {
        break-inside: avoid;
        page-break-inside: avoid;
    }
}

/* El informe entra en A4 vertical, que es lo que declara el original. La regla vive en el
   componente, asi que solo aplica mientras se imprime este informe. */
@page {
    size: A4 portrait;
    margin: 8mm;
}
/* /Components/Sistemas/Scomm/FRM_SCOMM_MantenimientoObras.razor.rz.scp.css */
/* OC_PSP_BUSCAR_PROYECTO ("Administración de Obras") con las mismas posiciones que FoxPro: Estado arriba; la grilla con los
   iconos Nuevo, Quitar y Excel en columna a su derecha; las cajas de filtro debajo de Codigo, Descripcion y CDR; Aceptar
   abajo a la derecha. La grilla usa todo el ancho y alto disponibles (a pedido del usuario, 27/10/2026), con los titulos
   fijos arriba y Tipo Gasto, Codigo y Descripcion fijos a la izquierda al desplazarse. Fondo y colores de la grilla del
   portal (cabecera, lineas, fila elegida), a pedido del usuario; botones e iconos de FoxPro. */
.mob-marco[b-l9uluzdn4y] {
    display: grid;
    gap: 6px;
    padding: 8px 10px;
    background: var(--sc-panel);
    border: 1px solid var(--sc-line);
    border-radius: 8px;
    min-width: 0;
}

.mob-estado[b-l9uluzdn4y] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.mob-combo[b-l9uluzdn4y] {
    width: 150px;
    color: #004080;
}

.mob-cuerpo[b-l9uluzdn4y] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px;
    align-items: start;
}

.mob-izquierda[b-l9uluzdn4y] {
    display: grid;
    gap: 6px;
    min-width: 0;
}

/* Alto: lo que queda de la ventana bajo el encabezado del portal, con un minimo para pantallas bajas. */
.mob-grilla[b-l9uluzdn4y] {
    height: calc(100vh - 360px);
    min-height: 320px;
    overflow: auto;
    border: 1px solid var(--sc-line);
    border-radius: 6px;
    background: var(--sc-panel);
}

/* En la ventana de seleccion de obra de Admin. Presupuestos Base: la grilla con el alto que deja la ventana. */
.mob-en-ventana .mob-grilla[b-l9uluzdn4y] {
    height: min(420px, calc(100vh - 300px));
    min-height: 220px;
}

/* Ancho: toda la grilla; la Descripcion toma el espacio que sobra y las demas columnas conservan su ancho
   (suman 1518px; con la Descripcion, minimo 1800px). */
.mob-tabla[b-l9uluzdn4y] {
    table-layout: fixed;
    width: 100%;
    min-width: 1800px;
}

.mob-tabla col.c-gasto[b-l9uluzdn4y] { width: 72px; }
.mob-tabla col.c-codigo[b-l9uluzdn4y] { width: 120px; }
.mob-tabla col.c-desc[b-l9uluzdn4y] { width: auto; }

.mob-tabla tbody tr[b-l9uluzdn4y] {
    cursor: pointer;
}

.mob-tabla td.pre[b-l9uluzdn4y] {
    white-space: pre;
}

/* Colores de las tablas del portal: cabecera tenue, lineas suaves, realce al pasar el mouse y la fila elegida en el
   azul del sistema con letra blanca. */
.mob-tabla th[b-l9uluzdn4y] {
    background: var(--sc-surface-soft);
    color: var(--sc-ink-soft);
    border: 0;
    border-bottom: 1px solid var(--sc-line);
    border-right: 1px solid var(--sc-line-soft);
    padding: 6px 6px;
}

.mob-tabla td[b-l9uluzdn4y] {
    color: var(--sc-ink);
    border: 0;
    border-bottom: 1px solid var(--sc-line-soft);
    border-right: 1px solid var(--sc-line-soft);
    padding: 3px 6px;
}

.mob-tabla tbody tr:hover[b-l9uluzdn4y],
.mob-tabla tbody tr:hover td.fijo[b-l9uluzdn4y] {
    background: var(--sc-hover);
}

.mob-tabla tbody tr.is-selected[b-l9uluzdn4y],
.mob-tabla tbody tr.is-selected td.fijo[b-l9uluzdn4y] {
    background: var(--sc-accent) !important;
}

.mob-tabla tbody tr.is-selected td[b-l9uluzdn4y] {
    color: #fff;
}

/* Tipo Gasto, Codigo y Descripcion fijos a la izquierda al desplazarse a la derecha. */
.mob-tabla .fijo[b-l9uluzdn4y] {
    position: sticky;
    z-index: 1;
    background: var(--sc-panel);
}

.mob-tabla thead th[b-l9uluzdn4y] {
    z-index: 2;
}

.mob-tabla thead .fijo[b-l9uluzdn4y] {
    z-index: 3;
    background: var(--sc-surface-soft);
}

.mob-tabla .f1[b-l9uluzdn4y] { left: 0; }
.mob-tabla .f2[b-l9uluzdn4y] { left: 72px; }
.mob-tabla .f3[b-l9uluzdn4y] {
    left: 192px;
    box-shadow: 2px 0 0 var(--sc-line);
}

/* Iconos a la derecha de la grilla, como en FoxPro. */
.mob-iconos[b-l9uluzdn4y] {
    display: grid;
    gap: 2px;
    padding-top: 2px;
}

/* Excel (Top 129): con el espacio que deja el boton Grabar oculto. */
.mob-excel[b-l9uluzdn4y] {
    margin-top: 36px;
}

/* Filtros debajo de su columna: los mismos anchos que la grilla (la Descripcion, el ancho que le queda; 15px de la barra
   de desplazamiento vertical). */
.mob-filtros[b-l9uluzdn4y] {
    display: grid;
    grid-template-columns: 72px 120px calc(max(100% - 15px, 1800px) - 1518px) 348px 48px;
    align-items: center;
    overflow: hidden;
}

.mob-filtro-icono[b-l9uluzdn4y] {
    justify-self: end;
    margin-right: 4px;
}

.mob-filtros .cmh-input[b-l9uluzdn4y] {
    width: 100%;
    height: 24px;
    min-height: 24px;
    padding: 1px 4px;
}

.mob-botones[b-l9uluzdn4y] {
    display: flex;
    justify-content: flex-end;
    padding-right: 34px;
}

.mob-input[b-l9uluzdn4y] {
    display: grid;
    gap: 8px;
}

.mob-input-botones[b-l9uluzdn4y] {
    display: flex;
    justify-content: flex-end;
    gap: 6px;
}

/* Pantallas angostas: la Descripcion deja de estar fija (solo Tipo Gasto y Codigo) y la grilla se acorta. */
@media (max-width: 900px) {
    .mob-tabla .f3[b-l9uluzdn4y] {
        position: static;
        box-shadow: none;
    }

    .mob-grilla[b-l9uluzdn4y] {
        height: calc(100vh - 300px);
        min-height: 260px;
    }
}

/* Celulares: ninguna columna fija, para que la grilla tenga lugar. */
@media (max-width: 600px) {
    .mob-tabla .fijo[b-l9uluzdn4y] {
        position: static;
        box-shadow: none;
    }
}
/* /Components/Sistemas/Scomm/FRM_SCOMM_MerrillCroweLosZambos_Imprimir.razor.rz.scp.css */
.no-print-actions[b-towtwafbvt] {
  max-width: 900px;
}

.reporte-impresion[b-towtwafbvt] {
  width: 170mm;
  margin: 0 auto;
  color: #000;
  font-family: "Arial Narrow", Arial, sans-serif;
  font-size: 11px;
}

.print-header[b-towtwafbvt] {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.print-header-right[b-towtwafbvt] {
  text-align: right;
}

.print-title[b-towtwafbvt] {
  margin-top: 6px;
  text-align: center;
  font-size: 30px;
  font-weight: 700;
}

.print-subtitle[b-towtwafbvt] {
  margin-top: 2px;
  text-align: center;
  font-size: 22px;
  font-weight: 700;
}

.print-date[b-towtwafbvt] {
  margin-top: 3px;
  margin-bottom: 9px;
  text-align: center;
  font-size: 16px;
  font-weight: 700;
}

.print-table[b-towtwafbvt] {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  margin: 0 0 10px 0;
}

.print-table th[b-towtwafbvt],
.print-table td[b-towtwafbvt] {
  border: 1px solid #2d2d2d;
  text-align: center;
  padding: 2px 3px;
  min-height: 20px;
}

.print-table th[b-towtwafbvt] {
  font-weight: 700;
}

.print-table .row-title[b-towtwafbvt] {
  width: 56px;
}

.print-turno-table .turno-head[b-towtwafbvt] {
  text-align: left;
  padding: 3px 6px;
  background: #d7d7d7;
  font-size: 16px;
}

.print-turno-table .turno-gap td[b-towtwafbvt] {
  height: 42px;
  background: #fff;
}

.print-turno-table .block-head th[b-towtwafbvt] {
  font-weight: 700;
}

@media print {
  .reporte-impresion[b-towtwafbvt] {
    width: 100%;
    margin: 0;
  }
}

/* /Components/Sistemas/Scomm/FRM_SCOMM_MerrillCroweParcoy_Imprimir.razor.rz.scp.css */
.no-print-actions[b-6jvfjn1ej6] {
  max-width: 900px;
}

.reporte-impresion[b-6jvfjn1ej6] {
  width: 170mm;
  margin: 0 auto;
  color: #000;
  font-family: "Arial Narrow", Arial, sans-serif;
  font-size: 11px;
}

.print-header[b-6jvfjn1ej6] {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.print-header-right[b-6jvfjn1ej6] {
  text-align: right;
}

.print-title[b-6jvfjn1ej6] {
  margin-top: 6px;
  text-align: center;
  font-size: 30px;
  font-weight: 700;
}

.print-subtitle[b-6jvfjn1ej6] {
  margin-top: 2px;
  text-align: center;
  font-size: 22px;
  font-weight: 700;
}

.print-date[b-6jvfjn1ej6] {
  margin-top: 3px;
  margin-bottom: 9px;
  text-align: center;
  font-size: 16px;
  font-weight: 700;
}

.turno-label[b-6jvfjn1ej6] {
  margin-top: 8px;
  padding: 2px 4px;
  border: 1px solid #2d2d2d;
  font-size: 18px;
  font-weight: 700;
}

.print-table[b-6jvfjn1ej6] {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  margin: 0 0 6px 0;
}

.print-table th[b-6jvfjn1ej6],
.print-table td[b-6jvfjn1ej6] {
  border: 1px solid #2d2d2d;
  text-align: center;
  padding: 2px 3px;
  min-height: 20px;
}

.print-table th[b-6jvfjn1ej6] {
  font-weight: 700;
}

.print-table .row-title[b-6jvfjn1ej6] {
  width: 56px;
}

@media print {
  .reporte-impresion[b-6jvfjn1ej6] {
    width: 100%;
    margin: 0;
  }
}
/* /Components/Sistemas/Scomm/FRM_SCOMM_PresupuestosValorizaciones.razor.rz.scp.css */
/* oc_psp_main: formulario angosto (293) con los botones de 255 x 37 uno debajo de otro, en el orden y con el dibujo de
   FoxPro. Fondo y botones con el estilo del portal (27/10/2026, a pedido del usuario): marco blanco con borde suave,
   botones blancos con esquinas redondeadas, texto en el color de acento y realce tenue al pasar el mouse; los que aun no
   se migran, en gris tenue. */
.psv-menu[b-mxcv3u280f] {
    display: grid;
    gap: 6px;
    width: 280px;
    padding: 12px;
    background: var(--sc-panel);
    border: 1px solid var(--sc-line);
    border-radius: 8px;
    box-shadow: 0 1px 3px rgba(24, 33, 47, .06);
}

/* Botones: el estandar del portal (.vfp-btn.vfp-portal de app.css; los pendientes de migrar salen deshabilitados) con
   el ancho de FoxPro y el dibujo a la izquierda. Menos relleno lateral para que "Reporte de Presupuestos Valorizado"
   entre en una linea en los 255 px. */
.psv-boton[b-mxcv3u280f] {
    width: 255px;
    justify-content: flex-start;
    padding-inline: 6px;
}

.psv-boton span[b-mxcv3u280f] {
    flex: 1;
    text-align: center;
}

.psv-volver[b-mxcv3u280f] {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 6px;
}
/* /Components/Sistemas/Scomm/FRM_SCOMM_RellenoHidraulico.razor.rz.scp.css */
/* serv_relleno_trabajos: recuadro de Fecha y Turno arriba, pestañas y grillas de FoxPro (letra chica, cuadricula gris,
   columnas que no se editan en amarillo claro y Volumen en azul). */
/* Ocupa todo el ancho, como las demas pantallas de Servicios y Operacion Mina. */
.rh-form[b-5pdb61jnoz] {
    min-width: 0;
}

.rh-cabecera[b-5pdb61jnoz] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
    padding: 8px 12px;
    border: 1px solid var(--sc-line);
    border-radius: 6px;
    align-self: flex-start;
    justify-self: start;
    width: fit-content;
}

[b-5pdb61jnoz] .rh-etiqueta {
    font-weight: 700;
    color: var(--sc-accent-dark);
    font-size: .85rem;
}

.rh-turno[b-5pdb61jnoz] {
    width: 170px;
}

.rh-pestanas[b-5pdb61jnoz] {
    display: flex;
    border-bottom: 1px solid var(--sc-line);
}

.rh-pestanas button[b-5pdb61jnoz] {
    flex: 1 1 0;
    padding: 6px 10px;
    border: 1px solid var(--sc-line);
    border-bottom: none;
    background: var(--sc-surface-soft);
    color: var(--sc-ink-soft);
    font-size: .85rem;
    cursor: pointer;
}

.rh-pestanas button.is-activa[b-5pdb61jnoz] {
    background: var(--sc-panel);
    color: var(--sc-accent-dark);
    font-weight: 600;
}

.rh-pagina[b-5pdb61jnoz] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 8px 0;
}

[b-5pdb61jnoz] .rh-bloque {
    display: flex;
    gap: 8px;
    align-items: flex-end;
    min-width: 0;
}

[b-5pdb61jnoz] .rh-grilla {
    flex: 1 1 auto;
    min-width: 0;
    overflow: auto;
    border: 1px solid #a0a0a0;
    background: #fff;
}

[b-5pdb61jnoz] .rh-grilla-relleno {
    height: 230px;
}

[b-5pdb61jnoz] .rh-grilla-obs {
    height: 140px;
}

[b-5pdb61jnoz] .rh-grilla-trabajos {
    height: 400px;
}

[b-5pdb61jnoz] .rh-grilla-personal {
    height: 130px;
}

[b-5pdb61jnoz] .rh-grilla-lista {
    height: 220px;
}

[b-5pdb61jnoz] .rh-tabla {
    width: 100%;
    min-width: 0;
    border-collapse: collapse;
    font-size: 12px;
}

[b-5pdb61jnoz] .rh-tabla th {
    position: sticky;
    top: 0;
    z-index: 1;
    padding: 1px 3px;
    border: 1px solid #c8c8c8;
    background: #fff;
    font-weight: 700;
    text-align: center;
    white-space: nowrap;
}

[b-5pdb61jnoz] .rh-tabla td {
    padding: 0;
    border: 1px solid #d4d4d4;
    white-space: nowrap;
}

[b-5pdb61jnoz] .rh-tabla tr.is-sel td {
    background: #dbeafe;
}

[b-5pdb61jnoz] .rh-celda {
    width: 100%;
    min-width: 0;
    padding: 1px 3px;
    border: none;
    background: transparent;
    font-size: 12px;
    color: #00008b;
}

[b-5pdb61jnoz] select.rh-celda {
    padding: 0 1px;
}

[b-5pdb61jnoz] .rh-hora {
    text-align: left;
}

[b-5pdb61jnoz] .rh-num {
    text-align: right;
}

[b-5pdb61jnoz] .rh-ro {
    padding: 1px 3px !important;
    color: #00008b;
}

[b-5pdb61jnoz] .rh-volumen {
    padding: 1px 3px !important;
    background: #8ec5ff;
    color: #00008b;
}

[b-5pdb61jnoz] .rh-centro {
    text-align: center;
}

[b-5pdb61jnoz] .rh-botones {
    display: grid;
    gap: 6px;
    justify-items: start;
}

[b-5pdb61jnoz] .rh-subtitulo {
    font-weight: 700;
    color: var(--sc-accent-dark);
    font-size: .85rem;
}

[b-5pdb61jnoz] .rh-operador {
    display: flex;
    align-items: flex-end;
    gap: 12px;
}

[b-5pdb61jnoz] .rh-operativo {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: .8rem;
    color: var(--sc-accent-dark);
}

[b-5pdb61jnoz] .rh-operador-campo {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

[b-5pdb61jnoz] .rh-operador-titulo {
    display: flex;
    align-items: center;
    gap: 8px;
}

[b-5pdb61jnoz] .rh-operador-nombre {
    width: 450px;
    max-width: 100%;
    background: #e8e8dd;
}

[b-5pdb61jnoz] .rh-trabajos {
    display: flex;
    gap: 10px;
    align-items: stretch;
}

[b-5pdb61jnoz] .rh-trabajos > .rh-bloque {
    flex: 1 1 auto;
}

[b-5pdb61jnoz] .rh-personal {
    display: flex;
    flex-direction: column;
    gap: 6px;
    width: 220px;
}

[b-5pdb61jnoz] .rh-espacio {
    flex: 1 1 auto;
}

[b-5pdb61jnoz] .rh-personal-ventana {
    display: flex;
    gap: 8px;
    flex-direction: column;
}

[b-5pdb61jnoz] .rh-personal-botones {
    display: flex;
    gap: 6px;
}

/* Personal del trabajo: columnas fijas (Personal 171 y Selec 25 en FoxPro); el nombre largo se recorta. */
[b-5pdb61jnoz] .rh-grilla-personal .rh-tabla {
    table-layout: fixed;
}

[b-5pdb61jnoz] .rh-grilla-personal .rh-tabla td {
    padding: 1px 3px;
    overflow: hidden;
    text-overflow: ellipsis;
}
/* /Components/Sistemas/Scomm/FRM_SCOMM_ReporteEficiencias.razor.rz.scp.css */
/* Ancho minimo de los botones de FoxPro (cmdprevio y cmdcubo de controls.vcx: 84; Sostenimiento y Perforadora: 99);
   el estilo es el comun .vfp-portal de app.css. */
.vfp-btn.efi-boton[b-y28yzjrevx] {
    min-width: 84px;
}

.vfp-btn.efi-boton-ancho[b-y28yzjrevx] {
    min-width: 99px;
}

/* Pestanas AVANCE / EXTRACCION / SERVICIOS: botones estandar; la elegida con .is-activo. */
.efi-tipos[b-y28yzjrevx] {
    display: flex;
    gap: 4px;
    border-top: 1px solid var(--sc-line);
    padding-top: 6px;
}
/* /Components/Sistemas/Scomm/FRM_SCOMM_ReporteEficiencias_Imprimir.razor.rz.scp.css */
.efi-acciones[b-di74lezyw8] {
  max-width: 900px;
}

/* Hoja vertical como los FRX (carta, Arial Narrow; detalle a 7 pt y totales a 9 pt en negrita). */
.efi-reporte[b-di74lezyw8] {
  width: 200mm;
  margin: 0 auto;
  color: #000;
  background: #fff;
  font-family: "Arial Narrow", Arial, sans-serif;
  font-size: 10px;
}

.efi-tabla[b-di74lezyw8] {
  width: 100%;
  border-collapse: collapse;
}

/* El estilo general de las tablas pinta el th; en el papel va en blanco como el FRX. */
.efi-tabla th[b-di74lezyw8] {
  background: #fff;
  color: #000;
}

.efi-col-clave[b-di74lezyw8] {
  width: 13%;
}

.efi-cabecera[b-di74lezyw8] {
  font-weight: 400;
  text-align: left;
  padding-bottom: 6px;
}

.efi-titulo[b-di74lezyw8] {
  text-align: center;
  font-size: 20px;
  font-weight: 700;
}

.efi-periodo[b-di74lezyw8] {
  text-align: center;
  font-size: 17px;
  font-weight: 700;
}

.efi-grupo th[b-di74lezyw8] {
  border: 1px solid #2d2d2d;
  font-size: 12px;
  font-weight: 700;
  text-align: center;
  padding: 1px 3px;
}

.efi-tabla td[b-di74lezyw8] {
  border-left: 1px solid #2d2d2d;
  border-right: 1px solid #2d2d2d;
  padding: 0 3px;
  white-space: nowrap;
}

.efi-tabla td.num[b-di74lezyw8] {
  text-align: right;
}

.efi-detalle td[b-di74lezyw8] {
  font-size: 10px;
}

.efi-total td[b-di74lezyw8] {
  border-top: 1px solid #2d2d2d;
  border-bottom: 1px solid #2d2d2d;
  font-size: 12px;
  font-weight: 700;
}

.efi-general td[b-di74lezyw8] {
  border: 1px solid #2d2d2d;
}

@media print {
  .efi-reporte[b-di74lezyw8] {
    width: 100%;
    margin: 0;
  }
}
/* /Components/Sistemas/Scomm/FRM_SCOMM_ReporteOperaciones.razor.rz.scp.css */
/* Disposicion de min_reporteoperaciones: arbol a la izquierda, filtros y grilla al medio, botones a la derecha. */
.rop-layout[b-hcx5ea1a6c] {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: start;
}

.rop-tree[b-hcx5ea1a6c] {
  min-height: 460px;
  max-height: calc(100vh - 220px);
  overflow: auto;
  padding: 8px;
  background: #ffffff;
  border: 1px solid var(--scomm-border);
  border-radius: var(--scomm-radius-md);
  font-size: 13px;
}

.rop-centro[b-hcx5ea1a6c] {
  min-width: 0;
  display: grid;
  gap: 8px;
}

.rop-filtros[b-hcx5ea1a6c] {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: flex-end;
}

.rop-campo[b-hcx5ea1a6c] {
  display: grid;
  gap: 2px;
}

.rop-buscar[b-hcx5ea1a6c] {
  width: 140px;
}

.rop-grilla[b-hcx5ea1a6c] {
  min-height: 400px;
  max-height: calc(100vh - 300px);
  overflow: auto;
}

/* Fila seleccionada como en las demas pantallas de Operacion Mina: azul claro, texto oscuro. */
.rop-row-selected td[b-hcx5ea1a6c] {
  background: #dbeafe;
  color: var(--scomm-dark);
  font-weight: 600;
}

.rop-botones[b-hcx5ea1a6c] {
  display: grid;
  gap: 8px;
  min-width: 100px;
}

.rop-separador[b-hcx5ea1a6c] {
  height: 16px;
}

@media (max-width: 920px) {
  .rop-layout[b-hcx5ea1a6c] {
    grid-template-columns: 1fr;
  }

  .rop-tree[b-hcx5ea1a6c] {
    min-height: auto;
    max-height: 260px;
  }
}
/* /Components/Sistemas/Scomm/FRM_SCOMM_ReportesServicios.razor.rz.scp.css */
/* serv_reportes: dos recuadros (Shpbase1 y Shpbase2) uno debajo del otro, del mismo ancho, con su titulo en
   negrita sobre el borde (Lblbase3 "VENTILACION" y el de "RELLENO HIDRAULICO"). */
.srv-reportes[b-pn7d91t8rr] {
    display: flex;
    flex-direction: column;
    gap: 18px;
    max-width: 780px;
}

.srv-grupo[b-pn7d91t8rr] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 8px 10px;
    margin: 0;
    padding: 10px 14px 12px;
    border: 1px solid var(--sc-line);
    border-radius: 6px;
}

.srv-grupo legend[b-pn7d91t8rr] {
    width: auto;
    margin: 0;
    padding: 0 10px;
    float: none;
    font-size: .85rem;
    font-weight: 700;
    color: var(--sc-accent-dark);
    background: var(--sc-surface-soft);
}

.srv-grupo > .cmh-label[b-pn7d91t8rr] {
    align-self: center;
}

.srv-anio[b-pn7d91t8rr] {
    width: 90px;
}

.srv-mes[b-pn7d91t8rr] {
    width: 140px;
}

.srv-fecha[b-pn7d91t8rr] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}

.srv-fecha .cmh-label[b-pn7d91t8rr] {
    font-weight: 700;
}

.srv-espacio[b-pn7d91t8rr] {
    flex: 1 1 12px;
}

.vfp-btn.srv-boton[b-pn7d91t8rr] {
    min-width: 118px;
}
/* /Components/Sistemas/Scomm/FRM_SCOMM_ValorizacionOocc.razor.rz.scp.css */
/* oc_psp_valorizar_presupuesto: Periodo y Superficie / Interior Mina en una fila; tres grillas una debajo de otra con
   su titulo en negrita, y los botones (122 de ancho) a la derecha de cada grilla. Mismas posiciones que FoxPro con el
   diseño del portal (27/10/2026, a pedido del usuario): marco, cabeceras, lineas y fila elegida con los colores del
   portal, y las grillas a todo el ancho (las Descripciones toman el espacio que sobra). Botones de FoxPro (.vfp-btn). */
.voc-marco[b-8sv8t3tviq] {
    display: grid;
    gap: 6px;
    padding: 8px 10px;
    background: var(--sc-panel);
    border: 1px solid var(--sc-line);
    border-radius: 8px;
    min-width: 0;
}

.voc-filtros[b-8sv8t3tviq] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 8px;
}

.b[b-8sv8t3tviq] {
    font-weight: 700;
}

.voc-anio[b-8sv8t3tviq],
.voc-mes[b-8sv8t3tviq] {
    color: #004080;
}

.voc-anio[b-8sv8t3tviq] {
    width: 80px;
}

.voc-mes[b-8sv8t3tviq] {
    width: 140px;
}

.voc-opciones[b-8sv8t3tviq] {
    display: flex;
    gap: 14px;
    margin-left: 8px;
    font-weight: 700;
}

.voc-opciones label[b-8sv8t3tviq] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
}

.voc-cuerpo[b-8sv8t3tviq] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 150px;
    gap: 6px 8px;
    align-items: start;
}

.voc-bloque[b-8sv8t3tviq] {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.voc-grilla[b-8sv8t3tviq] {
    height: max(220px, calc((100vh - 430px) / 3));
    overflow: auto;
    border: 1px solid var(--sc-line);
    border-radius: 6px;
    background: var(--sc-panel);
}

/* Ancho: toda la grilla; la Descripcion toma lo que sobra (con un minimo para que no se corte). */
.voc-tabla[b-8sv8t3tviq] {
    table-layout: fixed;
    width: 100%;
    min-width: 780px;
}

.voc-tabla col.c-desc[b-8sv8t3tviq] {
    width: auto;
}

/* Cabeceras, lineas y fila elegida con los colores de las tablas del portal. */
.cmh-table.voc-tabla th[b-8sv8t3tviq] {
    background: var(--sc-surface-soft);
    color: var(--sc-ink-soft);
    border-color: var(--sc-line-soft);
    border-bottom-color: var(--sc-line);
}

.cmh-table.voc-tabla td[b-8sv8t3tviq] {
    border-color: var(--sc-line-soft);
}

.cmh-table.voc-tabla tbody tr:hover[b-8sv8t3tviq] {
    background: var(--sc-hover);
}

.cmh-table.voc-tabla tbody tr.is-selected[b-8sv8t3tviq] {
    background: var(--sc-accent) !important;
}

.voc-tabla td.num[b-8sv8t3tviq] {
    text-align: right;
}

/* Descripciones con su sangria, como la grilla de FoxPro. */
.voc-tabla td.pre[b-8sv8t3tviq] {
    white-space: pre;
}

.voc-tabla tbody tr[b-8sv8t3tviq] {
    cursor: pointer;
}

.voc-botones[b-8sv8t3tviq] {
    display: flex;
}

/* Consolidado Total (Top 69) y Valorizado (Top 259) a la altura de la segunda fila de su grilla; Cubo de
   Presupuestos (Top 462) un poco mas abajo en la de detalle. */
.voc-b1[b-8sv8t3tviq] {
    padding-top: 30px;
}

.voc-b3[b-8sv8t3tviq] {
    padding-top: 46px;
}

/* Botones: el estandar del portal (.vfp-btn.vfp-portal de app.css) con el ancho de su columna y el dibujo a la
   izquierda, como en FoxPro. Cubo de Presupuestos lleva el texto centrado a la derecha del dibujo (PicturePosition 1). */
.voc-boton[b-8sv8t3tviq] {
    width: 100%;
    justify-content: flex-start;
}

/* "Cubo de Presupuestos" no entra en una linea en los 150 px (en FoxPro va en dos): dos lineas apretadas dentro del alto
   estandar del boton. */
.voc-boton-cubo[b-8sv8t3tviq] {
    white-space: normal;
    padding-block: 2px;
    line-height: 1.05;
}

.voc-boton-cubo span[b-8sv8t3tviq] {
    flex: 1;
    text-align: center;
}

@media (max-width: 1100px) {
    .voc-cuerpo[b-8sv8t3tviq] {
        grid-template-columns: minmax(0, 1fr);
    }

    .voc-b1[b-8sv8t3tviq],
    .voc-b3[b-8sv8t3tviq] {
        padding-top: 0;
    }
}
/* /Components/Sistemas/Scomm/MantenimientoObras/NuevaObra.razor.rz.scp.css */
/* oc_psp_proyectomantenimiento (Nueva Obra): Codigo y Descripcion con etiqueta en negrita; las listas de 400 de ancho
   con su etiqueta azul alineada a la derecha; Fecha Inicio / Fecha Final, Estado y Proyecto Pique (en rojo oscuro);
   Grabar y Cancelar abajo a la derecha. El fondo es el del portal (no el gris 214,214,214 de FoxPro). */
.no-marco[b-gbb8yckw48] {
    display: grid;
    gap: 5px;
}

.no-fila[b-gbb8yckw48] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.no-fila .cmh-input[b-gbb8yckw48] {
    min-height: 26px;
    height: 26px;
    padding: 1px 6px;
    color: #004080;
}

.no-etq[b-gbb8yckw48],
.no-etq-b[b-gbb8yckw48] {
    width: 140px;
    flex: none;
    text-align: right;
    font-size: .82rem;
    color: #004080;
}

.no-etq-b[b-gbb8yckw48] {
    width: 90px;
}

.no-codigo[b-gbb8yckw48] {
    width: 130px;
    background: #e6ead8;
}

.no-desc[b-gbb8yckw48] {
    flex: 1;
    min-width: 0;
    text-transform: uppercase;
}

.no-combo[b-gbb8yckw48] {
    width: 400px;
    max-width: 100%;
}

.no-ubicacion label[b-gbb8yckw48] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: .82rem;
    margin-right: 24px;
}

.no-fecha[b-gbb8yckw48] {
    width: 140px;
}

.no-etq-final[b-gbb8yckw48] {
    margin-left: 18px;
    font-size: .82rem;
    color: #004080;
}

.no-estado[b-gbb8yckw48] {
    width: 170px;
}

.no-pique[b-gbb8yckw48] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-left: 40px;
    font-size: .82rem;
    color: #800000;
}

.no-linea[b-gbb8yckw48] {
    margin: 4px 0;
    border: 0;
    border-top: 1px solid var(--sc-line);
}

.no-botones[b-gbb8yckw48] {
    display: flex;
    justify-content: flex-end;
    gap: 6px;
}

.no-botones .vfp-btn[b-gbb8yckw48] {
    min-width: 85px;
}
/* /Components/Sistemas/Scomm/PresupuestosValorizaciones/BuscarContrata.razor.rz.scp.css */
/* oc_psp_buscar_contrata: las opciones Contratas / Comunidades encima de la grilla (el resto es ListaCodigoDescripcion). */
.bc-tipo[b-g2x308onrm] {
    display: flex;
    gap: 14px;
    font-weight: 700;
    font-size: .85rem;
    margin-bottom: 6px;
}

.bc-tipo label[b-g2x308onrm] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
}
/* /Components/Sistemas/Scomm/PresupuestosValorizaciones/BuscarPartida.razor.rz.scp.css */
/* oc_Psp_Buscar_SubTitulo y oc_Psp_Buscar_Alterno: arriba los niveles elegidos, la opcion Subtitulo/Partida (solo en el
   nivel 3) con los filtros, la grilla Codigo, Descripcion, Und. y P.U.; al pie Aceptar y Cancelar. */
.bp-contexto[b-jmhp3i41hz] {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr);
    align-items: center;
    gap: 2px 4px;
    margin-bottom: 4px;
}

.bp-etq[b-jmhp3i41hz] {
    text-align: right;
}

.bp-filtros[b-jmhp3i41hz] {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-bottom: 4px;
}

.bp-opcion[b-jmhp3i41hz] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: .8rem;
    margin-right: 8px;
}

.bp-codigo[b-jmhp3i41hz] {
    width: 100px;
}

.bp-desc[b-jmhp3i41hz] {
    flex: 1;
    min-width: 0;
}

.bp-grilla[b-jmhp3i41hz] {
    height: 400px;
    overflow: auto;
    background: var(--sc-panel);
    border: 1px solid var(--sc-line);
    border-radius: 6px;
}

/* Cabecera, lineas y fila elegida con los colores de las tablas del portal. */
.cmh-table.bp-tabla th[b-jmhp3i41hz] {
    background: var(--sc-surface-soft);
    color: var(--sc-ink-soft);
    border-color: var(--sc-line-soft);
    border-bottom-color: var(--sc-line);
}

.cmh-table.bp-tabla td[b-jmhp3i41hz] {
    border-color: var(--sc-line-soft);
}

.cmh-table.bp-tabla tbody tr:hover[b-jmhp3i41hz] {
    background: var(--sc-hover);
}

.cmh-table.bp-tabla tbody tr.is-selected[b-jmhp3i41hz] {
    background: var(--sc-accent) !important;
}

.bp-tabla[b-jmhp3i41hz] {
    table-layout: fixed;
    width: 100%;
}

.bp-tabla td.num[b-jmhp3i41hz] {
    text-align: right;
}

.bp-botones[b-jmhp3i41hz] {
    display: flex;
    justify-content: flex-end;
    gap: 4px;
    margin-top: 6px;
}

/* /Components/Sistemas/Scomm/PresupuestosValorizaciones/BuscarPresupuesto.razor.rz.scp.css */
/* oc_psp_buscar ("Buscar Presupuesto"): la grilla con Codigo y Descripcion (letra azul), las dos cajas de filtro debajo
   y Aceptar / Cancelar abajo a la derecha. */
.bp-grilla[b-wsdhx53d5i] {
    height: 420px;
    overflow: auto;
    border: 1px solid var(--sc-line);
    border-radius: 6px;
    background: var(--sc-panel);
}

/* Cabecera, lineas y fila elegida con los colores de las tablas del portal. */
.cmh-table.bp-tabla th[b-wsdhx53d5i] {
    background: var(--sc-surface-soft);
    color: var(--sc-ink-soft);
    border-color: var(--sc-line-soft);
    border-bottom-color: var(--sc-line);
}

.cmh-table.bp-tabla td[b-wsdhx53d5i] {
    border-color: var(--sc-line-soft);
}

.cmh-table.bp-tabla tbody tr:hover[b-wsdhx53d5i] {
    background: var(--sc-hover);
}


.bp-tabla[b-wsdhx53d5i] {
    table-layout: fixed;
    width: 100%;
}

.bp-tabla tbody tr[b-wsdhx53d5i] {
    cursor: pointer;
}

.bp-tabla tbody tr:not(.is-selected) td[b-wsdhx53d5i] {
    color: #004080;
}

.bp-filtros[b-wsdhx53d5i] {
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr);
    gap: 6px;
    margin-top: 6px;
}

.bp-botones[b-wsdhx53d5i] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 8px;
}

/* Fila actual en azul con letra blanca, como se ve la grilla de esta ventana en FoxPro. */
.bp-tabla tbody tr.is-selected[b-wsdhx53d5i] {
    background: var(--sc-accent) !important;
}

/* /Components/Sistemas/Scomm/PresupuestosValorizaciones/BuscarPresupuestoBase.razor.rz.scp.css */
/* oc_psp_buscar_presupuesto_base ("Buscar PRESUPUESTO"): la misma disposicion que la busqueda de valorizaciones, de la que
   sale este estilo: el recuadro de filtros de tres filas (Periodo y Estado; Contrata y Presupuesto con su "..." y su boton
   para limpiar), Buscar a la derecha de la ultima y Eliminar Presupuesto a la derecha del recuadro; las grillas "Cabecera
   de Presupuesto" y "Detalle de Presupuesto" a lo ancho; Aceptar y Cancelar abajo a la derecha. Se conservan los colores
   de titulos, sub titulos y partidas. */
.bv-filtros[b-nr0fvyklf2] {
    display: grid;
    gap: 2px;
}

.bv-caja[b-nr0fvyklf2] {
    max-width: 640px;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 6px;
    background: var(--sc-surface-soft);
    border: 1px solid var(--sc-line-soft);
    border-radius: 6px;
}

.bv-oscura[b-nr0fvyklf2] {
    background: var(--sc-accent-bg);
    border-color: var(--sc-accent-line);
}

.bv-etq-blanca[b-nr0fvyklf2] {
    font-weight: 700;
    font-size: .8rem;
    color: var(--sc-ink-soft);
    min-width: 82px;
    text-align: center;
}

.bv-estado-etq[b-nr0fvyklf2] {
    min-width: 0;
    margin-left: 10px;
}

.bv-etq[b-nr0fvyklf2] {
    min-width: 82px;
    text-align: right;
}

.bv-anio[b-nr0fvyklf2] {
    width: 88px;
    color: #004080;
}

.bv-mes[b-nr0fvyklf2] {
    width: 130px;
    color: #004080;
}

.bv-estado[b-nr0fvyklf2] {
    width: 112px;
    color: #004080;
}

.bv-puntos[b-nr0fvyklf2] {
    min-height: 24px;
    width: 28px;
    padding: 0;
}

.bv-desc[b-nr0fvyklf2] {
    flex: 1;
    min-width: 0;
    background: var(--sc-surface-soft);
}

.bv-limpiar[b-nr0fvyklf2] {
    border: 0;
    padding: 0;
    background: transparent;
    cursor: pointer;
    display: inline-flex;
}

.bv-buscar[b-nr0fvyklf2] {
    margin-left: 8px;
    min-width: 88px;
}

.bv-titulo-cab[b-nr0fvyklf2] {
    font-weight: 700;
    font-size: .8rem;
    color: #800000;
}

.bv-grilla[b-nr0fvyklf2] {
    overflow: auto;
    border: 1px solid var(--sc-line);
    border-radius: 6px;
    background: var(--sc-panel);
}

.cmh-table.bv-tabla th[b-nr0fvyklf2] {
    background: var(--sc-surface-soft);
    color: var(--sc-ink-soft);
    border-color: var(--sc-line-soft);
    border-bottom-color: var(--sc-line);
}

.cmh-table.bv-tabla td[b-nr0fvyklf2] {
    border-color: var(--sc-line-soft);
}

.cmh-table.bv-tabla tbody tr.is-selected[b-nr0fvyklf2] {
    background: var(--sc-accent) !important;
}

.bv-grilla-cab[b-nr0fvyklf2] {
    height: 190px;
}

.bv-grilla-det[b-nr0fvyklf2] {
    height: 340px;
}

.bv-tabla[b-nr0fvyklf2] {
    table-layout: fixed;
    width: max-content;
    min-width: 100%;
}

.bv-tabla tbody tr[b-nr0fvyklf2] {
    cursor: pointer;
}

.bv-tabla td.num[b-nr0fvyklf2] {
    text-align: right;
}

.bv-tabla td.pre[b-nr0fvyklf2] {
    white-space: pre;
}

/* Columnas de colores del detalle (BackColor de cada columna). */
.bv-detalle td.c-base[b-nr0fvyklf2] { background: #f0e1ff; }
.bv-detalle td.c-acum[b-nr0fvyklf2] { background: #ffffca; }
.bv-detalle td.c-ejec[b-nr0fvyklf2] { background: #37beff; }
.bv-detalle td.c-cant[b-nr0fvyklf2] { background: #bfffdf; }
.bv-detalle td.c-saldo[b-nr0fvyklf2] { background: #ffe1c4; }
.bv-detalle td.c-exc[b-nr0fvyklf2] { background: #ffb9b9; }

/* DynamicForeColor / DynamicFontBold: titulo rojo en negrita, subtitulo verde azulado en negrita, partida azul. */
.bv-detalle tr.e-titulo td[b-nr0fvyklf2] { color: #ff2f2f; font-weight: 700; }
.bv-detalle tr.e-subtitulo td[b-nr0fvyklf2] { color: #008080; font-weight: 700; }
.bv-detalle tr.e-partida td[b-nr0fvyklf2] { color: #006b9f; }

/* Fila actual del detalle: HighlightBackColor 128,191,255 con letra blanca en toda la fila. */
.bv-detalle tr.is-actual td[b-nr0fvyklf2] {
    background: var(--sc-accent);
    color: #fff;
}

.bv-botones[b-nr0fvyklf2] {
    display: flex;
    justify-content: flex-end;
    gap: 4px;
}

.bv-boton[b-nr0fvyklf2] {
    min-width: 120px;
}

.bv-filtros[b-nr0fvyklf2] {
    position: relative;
}

.bv-eliminar[b-nr0fvyklf2] {
    position: absolute;
    right: 0;
    bottom: 0;
    min-width: 151px;
}

.bv-titulo[b-nr0fvyklf2] {
    font-weight: 700;
    font-size: .8rem;
    color: #800000;
}

.bv-grilla-cab[b-nr0fvyklf2] {
    height: 160px;
}

.bv-grilla-det[b-nr0fvyklf2] {
    height: 290px;
}

/* /Components/Sistemas/Scomm/PresupuestosValorizaciones/BuscarTitulo.razor.rz.scp.css */
/* oc_Psp_Buscar_Titulo: filtros por codigo y descripcion, la grilla de titulos y al pie Nuevo, Modificar, Quitar, Excel,
   Aceptar y Cancelar; oc_psp_TituloMantenimiento: codigo y descripcion. */
.bt-filtros[b-7w99c0e5v2] {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-bottom: 4px;
}

.bt-codigo[b-7w99c0e5v2] {
    width: 94px;
}

.bt-desc[b-7w99c0e5v2] {
    flex: 1;
    min-width: 0;
}

.bt-mayus[b-7w99c0e5v2] {
    text-transform: uppercase;
}

.bt-grilla[b-7w99c0e5v2] {
    height: 420px;
    overflow: auto;
    background: var(--sc-panel);
    border: 1px solid var(--sc-line);
    border-radius: 6px;
}

/* Cabecera, lineas y fila elegida con los colores de las tablas del portal. */
.cmh-table.bt-tabla th[b-7w99c0e5v2] {
    background: var(--sc-surface-soft);
    color: var(--sc-ink-soft);
    border-color: var(--sc-line-soft);
    border-bottom-color: var(--sc-line);
}

.cmh-table.bt-tabla td[b-7w99c0e5v2] {
    border-color: var(--sc-line-soft);
}

.cmh-table.bt-tabla tbody tr:hover[b-7w99c0e5v2] {
    background: var(--sc-hover);
}

.cmh-table.bt-tabla tbody tr.is-selected[b-7w99c0e5v2] {
    background: var(--sc-accent) !important;
}

.bt-tabla[b-7w99c0e5v2] {
    table-layout: fixed;
    width: 100%;
}

.bt-botones[b-7w99c0e5v2] {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-top: 6px;
}

.bt-icono[b-7w99c0e5v2] {
    width: 27px;
    min-height: 27px;
    padding: 0;
    justify-content: center;
}

.bt-espacio[b-7w99c0e5v2] {
    flex: 1;
}

.bt-fin[b-7w99c0e5v2] {
    justify-content: flex-end;
}

.bt-mant[b-7w99c0e5v2] {
    display: grid;
    grid-template-columns: 90px minmax(0, 1fr);
    align-items: center;
    gap: 4px;
}

/* /Components/Sistemas/Scomm/PresupuestosValorizaciones/BuscarValorizaciones.razor.rz.scp.css */
/* oc_psp_buscar_valorizaciones: el recuadro de filtros de tres filas (Periodo y Estado sobre gris oscuro con letra
   blanca; Contrata y Presupuesto con su etiqueta azul), Buscar a la derecha de la ultima y Eliminar Presupuesto a la
   derecha del recuadro; las dos grillas a lo ancho (cabecera de 141 y detalle de 268 de alto); Aceptar y Cancelar
   abajo a la derecha. Mismas posiciones que FoxPro con el diseño del portal (recuadros, cabeceras y fila elegida); se
   conservan las columnas de colores y los colores de titulos, sub titulos y partidas. */
.bv-filtros[b-xw2rmeo1sh] {
    display: grid;
    gap: 2px;
}

.bv-caja[b-xw2rmeo1sh] {
    max-width: 640px;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 6px;
    background: var(--sc-surface-soft);
    border: 1px solid var(--sc-line-soft);
    border-radius: 6px;
}

.bv-oscura[b-xw2rmeo1sh] {
    background: var(--sc-accent-bg);
    border-color: var(--sc-accent-line);
}

.bv-etq-blanca[b-xw2rmeo1sh] {
    font-weight: 700;
    font-size: .8rem;
    color: var(--sc-ink-soft);
    min-width: 82px;
    text-align: center;
}

.bv-estado-etq[b-xw2rmeo1sh] {
    min-width: 0;
    margin-left: 10px;
}

.bv-etq[b-xw2rmeo1sh] {
    min-width: 82px;
    text-align: right;
}

.bv-anio[b-xw2rmeo1sh] {
    width: 88px;
    color: #004080;
}

.bv-mes[b-xw2rmeo1sh] {
    width: 130px;
    color: #004080;
}

.bv-estado[b-xw2rmeo1sh] {
    width: 112px;
    color: #004080;
}

.bv-puntos[b-xw2rmeo1sh] {
    min-height: 24px;
    width: 28px;
    padding: 0;
}

.bv-desc[b-xw2rmeo1sh] {
    flex: 1;
    min-width: 0;
    background: var(--sc-surface-soft);
}

.bv-limpiar[b-xw2rmeo1sh] {
    border: 0;
    padding: 0;
    background: transparent;
    cursor: pointer;
    display: inline-flex;
}

.bv-buscar[b-xw2rmeo1sh] {
    margin-left: 8px;
    min-width: 88px;
}

.bv-titulo-cab[b-xw2rmeo1sh] {
    font-weight: 700;
    font-size: .8rem;
    color: #800000;
}

.bv-grilla[b-xw2rmeo1sh] {
    overflow: auto;
    border: 1px solid var(--sc-line);
    border-radius: 6px;
    background: var(--sc-panel);
}

.cmh-table.bv-tabla th[b-xw2rmeo1sh] {
    background: var(--sc-surface-soft);
    color: var(--sc-ink-soft);
    border-color: var(--sc-line-soft);
    border-bottom-color: var(--sc-line);
}

.cmh-table.bv-tabla td[b-xw2rmeo1sh] {
    border-color: var(--sc-line-soft);
}

.cmh-table.bv-tabla tbody tr.is-selected[b-xw2rmeo1sh] {
    background: var(--sc-accent) !important;
}

.bv-grilla-cab[b-xw2rmeo1sh] {
    height: 190px;
}

.bv-grilla-det[b-xw2rmeo1sh] {
    height: 340px;
}

.bv-tabla[b-xw2rmeo1sh] {
    table-layout: fixed;
    width: max-content;
    min-width: 100%;
}

.bv-tabla tbody tr[b-xw2rmeo1sh] {
    cursor: pointer;
}

.bv-tabla td.num[b-xw2rmeo1sh] {
    text-align: right;
}

.bv-tabla td.pre[b-xw2rmeo1sh] {
    white-space: pre;
}

/* Columnas de colores del detalle (BackColor de cada columna). */
.bv-detalle td.c-base[b-xw2rmeo1sh] { background: #f0e1ff; }
.bv-detalle td.c-acum[b-xw2rmeo1sh] { background: #ffffca; }
.bv-detalle td.c-ejec[b-xw2rmeo1sh] { background: #37beff; }
.bv-detalle td.c-cant[b-xw2rmeo1sh] { background: #bfffdf; }
.bv-detalle td.c-saldo[b-xw2rmeo1sh] { background: #ffe1c4; }
.bv-detalle td.c-exc[b-xw2rmeo1sh] { background: #ffb9b9; }

/* DynamicForeColor / DynamicFontBold: titulo rojo en negrita, subtitulo verde azulado en negrita, partida azul. */
.bv-detalle tr.e-titulo td[b-xw2rmeo1sh] { color: #ff2f2f; font-weight: 700; }
.bv-detalle tr.e-subtitulo td[b-xw2rmeo1sh] { color: #008080; font-weight: 700; }
.bv-detalle tr.e-partida td[b-xw2rmeo1sh] { color: #006b9f; }

/* Fila actual del detalle: HighlightBackColor 128,191,255 con letra blanca en toda la fila. */
.bv-detalle tr.is-actual td[b-xw2rmeo1sh] {
    background: var(--sc-accent);
    color: #fff;
}

.bv-botones[b-xw2rmeo1sh] {
    display: flex;
    justify-content: flex-end;
    gap: 4px;
}

.bv-boton[b-xw2rmeo1sh] {
    min-width: 120px;
}

.bv-filtros[b-xw2rmeo1sh] {
    position: relative;
}

.bv-eliminar[b-xw2rmeo1sh] {
    position: absolute;
    right: 0;
    bottom: 0;
    min-width: 151px;
}

.bv-titulo[b-xw2rmeo1sh] {
    font-weight: 700;
    font-size: .8rem;
    color: #800000;
}

.bv-grilla-cab[b-xw2rmeo1sh] {
    height: 160px;
}

.bv-grilla-det[b-xw2rmeo1sh] {
    height: 290px;
}

/* /Components/Sistemas/Scomm/PresupuestosValorizaciones/ComponenteEdicion.razor.rz.scp.css */
/* Lienzo con los controles en la posicion (Top, Left) y el tamaño de FoxPro, como en el formulario original; grilla,
   recuadros y botones con los colores del portal. (Mismo bloque en ComponentesObras, ComponenteEdicion y MigrarPartidas.) */
.mc-lienzo[b-2kd4ys1p31] {
    position: relative;
    width: 612px;
    height: 620px;
}

.mc-ctl[b-2kd4ys1p31],
.mc-etq[b-2kd4ys1p31],
.mc-grilla[b-2kd4ys1p31],
.mc-marco[b-2kd4ys1p31],
.mc-estado[b-2kd4ys1p31],
.mc-filtros[b-2kd4ys1p31],
.mc-icono[b-2kd4ys1p31] {
    position: absolute;
}

.mc-ctl.cmh-input[b-2kd4ys1p31] {
    height: 21px;
    min-height: 21px;
    padding: 0 4px;
    font-size: .8rem;
}

.mc-etq[b-2kd4ys1p31] {
    font-size: .8rem;
    white-space: nowrap;
    color: var(--sc-ink);
}

.mc-negrita[b-2kd4ys1p31] {
    font-weight: 700;
}

.mc-casilla[b-2kd4ys1p31] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
}

.mc-mayus[b-2kd4ys1p31] {
    text-transform: uppercase;
}

.mc-marco[b-2kd4ys1p31] {
    border: 1px solid var(--sc-line);
    border-radius: 6px;
    pointer-events: none;
}

.mc-estado[b-2kd4ys1p31] {
    display: flex;
    align-items: center;
    gap: 14px;
    height: 24px;
    padding: 0 6px;
    font-size: .8rem;
    border: 1px solid var(--sc-line-soft);
    border-radius: 6px;
}

.mc-estado label[b-2kd4ys1p31] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
}

.mc-filtros[b-2kd4ys1p31] {
    display: flex;
    gap: 3px;
}

.mc-filtros .cmh-input[b-2kd4ys1p31] {
    height: 21px;
    min-height: 21px;
    padding: 0 4px;
    font-size: .8rem;
}

.mc-grilla[b-2kd4ys1p31] {
    overflow: auto;
    background: var(--sc-panel);
    border: 1px solid var(--sc-line);
    border-radius: 6px;
}

.mc-icono[b-2kd4ys1p31] {
    width: 25px;
    height: 27px;
    min-height: 27px;
    padding: 0;
    justify-content: center;
}

.mc-boton[b-2kd4ys1p31] {
    width: 85px;
    height: 27px;
    min-height: 27px;
    padding: 0 6px;
    gap: 4px;
    justify-content: center;
}

.mc-tabla[b-2kd4ys1p31] {
    table-layout: fixed;
    width: 100%;
}

.mc-tabla td[b-2kd4ys1p31] {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.mc-tabla tbody tr[b-2kd4ys1p31] {
    cursor: pointer;
}

.mc-centro[b-2kd4ys1p31] {
    text-align: center;
}

/* Cabecera, lineas y fila elegida con los colores de las tablas del portal. */
.cmh-table.mc-tabla th[b-2kd4ys1p31] {
    background: var(--sc-surface-soft);
    color: var(--sc-ink-soft);
    border-color: var(--sc-line-soft);
    border-bottom-color: var(--sc-line);
}

.cmh-table.mc-tabla td[b-2kd4ys1p31] {
    border-color: var(--sc-line-soft);
}

.cmh-table.mc-tabla tbody tr:hover[b-2kd4ys1p31] {
    background: var(--sc-hover);
}

.cmh-table.mc-tabla tbody tr.is-selected[b-2kd4ys1p31] {
    background: var(--sc-accent) !important;
}

/* /Components/Sistemas/Scomm/PresupuestosValorizaciones/ComponentesObras.razor.rz.scp.css */
/* Lienzo con los controles en la posicion (Top, Left) y el tamaño de FoxPro, como en el formulario original; grilla,
   recuadros y botones con los colores del portal. (Mismo bloque en ComponentesObras, ComponenteEdicion y MigrarPartidas.) */
.mc-lienzo[b-enxhkaruft] {
    position: relative;
    width: 612px;
    height: 620px;
}

.mc-ctl[b-enxhkaruft],
.mc-etq[b-enxhkaruft],
.mc-grilla[b-enxhkaruft],
.mc-marco[b-enxhkaruft],
.mc-estado[b-enxhkaruft],
.mc-filtros[b-enxhkaruft],
.mc-icono[b-enxhkaruft] {
    position: absolute;
}

.mc-ctl.cmh-input[b-enxhkaruft] {
    height: 21px;
    min-height: 21px;
    padding: 0 4px;
    font-size: .8rem;
}

.mc-etq[b-enxhkaruft] {
    font-size: .8rem;
    white-space: nowrap;
    color: var(--sc-ink);
}

.mc-negrita[b-enxhkaruft] {
    font-weight: 700;
}

.mc-casilla[b-enxhkaruft] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
}

.mc-mayus[b-enxhkaruft] {
    text-transform: uppercase;
}

.mc-marco[b-enxhkaruft] {
    border: 1px solid var(--sc-line);
    border-radius: 6px;
    pointer-events: none;
}

.mc-estado[b-enxhkaruft] {
    display: flex;
    align-items: center;
    gap: 14px;
    height: 24px;
    padding: 0 6px;
    font-size: .8rem;
    border: 1px solid var(--sc-line-soft);
    border-radius: 6px;
}

.mc-estado label[b-enxhkaruft] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
}

.mc-filtros[b-enxhkaruft] {
    display: flex;
    gap: 3px;
}

.mc-filtros .cmh-input[b-enxhkaruft] {
    height: 21px;
    min-height: 21px;
    padding: 0 4px;
    font-size: .8rem;
}

.mc-grilla[b-enxhkaruft] {
    overflow: auto;
    background: var(--sc-panel);
    border: 1px solid var(--sc-line);
    border-radius: 6px;
}

.mc-icono[b-enxhkaruft] {
    width: 25px;
    height: 27px;
    min-height: 27px;
    padding: 0;
    justify-content: center;
}

.mc-boton[b-enxhkaruft] {
    width: 85px;
    height: 27px;
    min-height: 27px;
    padding: 0 6px;
    gap: 4px;
    justify-content: center;
}

.mc-tabla[b-enxhkaruft] {
    table-layout: fixed;
    width: 100%;
}

.mc-tabla td[b-enxhkaruft] {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.mc-tabla tbody tr[b-enxhkaruft] {
    cursor: pointer;
}

.mc-centro[b-enxhkaruft] {
    text-align: center;
}

/* Cabecera, lineas y fila elegida con los colores de las tablas del portal. */
.cmh-table.mc-tabla th[b-enxhkaruft] {
    background: var(--sc-surface-soft);
    color: var(--sc-ink-soft);
    border-color: var(--sc-line-soft);
    border-bottom-color: var(--sc-line);
}

.cmh-table.mc-tabla td[b-enxhkaruft] {
    border-color: var(--sc-line-soft);
}

.cmh-table.mc-tabla tbody tr:hover[b-enxhkaruft] {
    background: var(--sc-hover);
}

.cmh-table.mc-tabla tbody tr.is-selected[b-enxhkaruft] {
    background: var(--sc-accent) !important;
}

/* /Components/Sistemas/Scomm/PresupuestosValorizaciones/CopiarEstructuraPartida.razor.rz.scp.css */
/* Niveles y Partidas (oc_psp_buscar_niveles) y su ventana Copiar Estructura: los controles en la posicion (Top, Left) y el
   tamaño de FoxPro; grillas, recuadros y botones con los colores del portal. Se conservan los colores que marcan datos:
   titulos de tipo en granate y negrita, Cuadrilla y Cantidad en celeste, etiquetas en azul. (Mismo bloque en
   NivelesPartidas y CopiarEstructuraPartida.) */
.np-lienzo[b-3174aujn2o] {
    position: relative;
}

.np-ctl[b-3174aujn2o],
.np-etq[b-3174aujn2o],
.np-grilla[b-3174aujn2o],
.np-marco[b-3174aujn2o],
.np-linea[b-3174aujn2o],
.np-filtros[b-3174aujn2o],
.np-arbol[b-3174aujn2o] {
    position: absolute;
}

.np-ctl.cmh-input[b-3174aujn2o] {
    height: 21px;
    min-height: 21px;
    padding: 0 3px;
    font-size: .7rem;
}

.np-nivel.cmh-input[b-3174aujn2o] {
    height: 19px;
    min-height: 19px;
}

.np-etq[b-3174aujn2o] {
    font-size: .7rem;
    line-height: 1.2;
    white-space: nowrap;
    color: var(--sc-ink);
}

.np-negrita[b-3174aujn2o] {
    font-weight: 700;
}

/* Etiquetas de la partida en azul, como en FoxPro. */
.np-azul[b-3174aujn2o] {
    font-weight: 700;
    color: #1f3f8f;
}

.np-total[b-3174aujn2o] {
    font-weight: 700;
    color: #1f3f8f;
}

.np-mayus[b-3174aujn2o] {
    text-transform: uppercase;
}

.np-marco[b-3174aujn2o] {
    border: 1px solid var(--sc-line);
    border-radius: 6px;
    pointer-events: none;
}

.np-linea[b-3174aujn2o] {
    background: var(--sc-line);
    pointer-events: none;
}

.np-filtros[b-3174aujn2o] {
    display: flex;
    gap: 2px;
}

.np-filtros .cmh-input[b-3174aujn2o] {
    height: 21px;
    min-height: 21px;
    padding: 0 3px;
    font-size: .7rem;
}

.np-buscar[b-3174aujn2o] {
    border-color: #f0a050;
}

.np-grilla[b-3174aujn2o] {
    overflow: auto;
    background: var(--sc-panel);
    border: 1px solid var(--sc-line);
    border-radius: 6px;
}

/* Sin editar, la grilla queda en gris claro (BackColor 230 de FoxPro). */
.np-grilla.np-gris[b-3174aujn2o] {
    background: var(--sc-surface-soft);
}

.np-tabla[b-3174aujn2o] {
    table-layout: fixed;
    width: max-content;
    min-width: 100%;
    font-size: .7rem;
}

.np-tabla th[b-3174aujn2o],
.np-tabla td[b-3174aujn2o] {
    padding: 1px 4px;
}

.np-tabla.np-componentes[b-3174aujn2o] {
    width: 100%;
}

.np-tabla td[b-3174aujn2o] {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.np-tabla tbody tr[b-3174aujn2o] {
    cursor: pointer;
}

.np-tabla td.num[b-3174aujn2o],
.np-ctl.num[b-3174aujn2o],
.np-celda.num[b-3174aujn2o] {
    text-align: right;
}

.np-orden[b-3174aujn2o] {
    cursor: pointer;
}

.np-componentes td.np-celeste[b-3174aujn2o] {
    background: #d7e8f4;
}

.np-componentes tr.np-titulo td[b-3174aujn2o] {
    color: #800000;
    font-weight: 700;
}

.np-celda[b-3174aujn2o] {
    width: 100%;
    height: 18px;
    border: 1px solid var(--sc-line-soft);
    border-radius: 3px;
    padding: 0 3px;
    font-size: .7rem;
    background: var(--sc-panel);
}

.np-icono[b-3174aujn2o] {
    width: 25px;
    height: 27px;
    min-height: 27px;
    padding: 0;
    justify-content: center;
}

.np-boton[b-3174aujn2o],
.np-reporte[b-3174aujn2o] {
    height: 27px;
    min-height: 26px;
    padding: 0 6px;
    gap: 4px;
    justify-content: center;
    white-space: nowrap;
}

.np-reporte[b-3174aujn2o] {
    font-size: .72rem;
}

.np-comentario.cmh-input[b-3174aujn2o] {
    resize: none;
    padding: 2px 4px;
}

.np-arbol[b-3174aujn2o] {
    display: grid;
    align-content: start;
    overflow: auto;
    padding: 2px;
    background: var(--sc-panel);
    border: 1px solid var(--sc-line);
    border-radius: 6px;
}

.np-arbol.np-apagado[b-3174aujn2o] {
    opacity: .75;
}

.np-nodo[b-3174aujn2o] {
    border: 0;
    background: none;
    text-align: left;
    padding: 0 4px;
    font: inherit;
    font-size: .7rem;
    color: var(--sc-ink);
    white-space: nowrap;
    cursor: pointer;
}

.np-nodo.np-hijo[b-3174aujn2o] {
    padding-left: 16px;
    color: #1f3f8f;
}

.np-nodo small[b-3174aujn2o] {
    color: var(--sc-disabled);
}

.np-nodo.is-selected[b-3174aujn2o] {
    background: var(--sc-accent);
    color: #fff;
}

/* Cabecera, lineas y fila elegida con los colores de las tablas del portal. */
.cmh-table.np-tabla th[b-3174aujn2o] {
    background: var(--sc-surface-soft);
    color: var(--sc-ink-soft);
    border-color: var(--sc-line-soft);
    border-bottom-color: var(--sc-line);
}

.cmh-table.np-tabla td[b-3174aujn2o] {
    border-color: var(--sc-line-soft);
}

.cmh-table.np-tabla tbody tr:hover[b-3174aujn2o] {
    background: var(--sc-hover);
}

.cmh-table.np-tabla tbody tr.is-selected[b-3174aujn2o] {
    background: var(--sc-accent) !important;
}

.cmh-table.np-tabla tbody tr.is-selected td[b-3174aujn2o] {
    color: #fff;
}

/* /Components/Sistemas/Scomm/PresupuestosValorizaciones/ListaCodigoDescripcion.razor.rz.scp.css */
/* Lista de codigo y descripcion (oc_psp_buscar_contrata / oc_psp_buscar_obras): la grilla con los iconos en columna a su
   derecha, los filtros debajo (codigo angosta, descripcion ancha) y Aceptar / Cancelar al pie, alineados con la grilla. */
.lcd-cuerpo[b-liriip5jx1] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 27px;
    gap: 6px;
    align-items: start;
}

.lcd-grilla[b-liriip5jx1] {
    height: 420px;
    overflow: auto;
    background: var(--sc-panel);
    border: 1px solid var(--sc-line);
    border-radius: 6px;
}

/* Los iconos empiezan a la altura de la primera fila, como en FoxPro (T 54 / 34 con la grilla en T 38 / 14). */
.lcd-iconos[b-liriip5jx1] {
    display: grid;
    gap: 1px;
    margin-top: 18px;
}

.lcd-icono[b-liriip5jx1] {
    width: 27px;
    min-height: 27px;
    padding: 0;
    justify-content: center;
}

.lcd-filtros[b-liriip5jx1] {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-top: 4px;
    margin-right: 33px;
}

.lcd-desc[b-liriip5jx1] {
    flex: 1;
    min-width: 0;
}

.lcd-botones[b-liriip5jx1] {
    display: flex;
    justify-content: flex-end;
    gap: 6px;
    margin-top: 6px;
    margin-right: 33px;
}

.lcd-mant[b-liriip5jx1] {
    display: grid;
    grid-template-columns: 90px minmax(0, 1fr);
    align-items: center;
    gap: 4px;
}

.lcd-mant + .lcd-botones[b-liriip5jx1] {
    margin-right: 0;
}

.lcd-codigo[b-liriip5jx1] {
    width: 94px;
}

.lcd-mayus[b-liriip5jx1] {
    text-transform: uppercase;
}

/* Cabecera, lineas y fila elegida con los colores de las tablas del portal. */
.cmh-table.lcd-tabla th[b-liriip5jx1] {
    background: var(--sc-surface-soft);
    color: var(--sc-ink-soft);
    border-color: var(--sc-line-soft);
    border-bottom-color: var(--sc-line);
}

.cmh-table.lcd-tabla td[b-liriip5jx1] {
    border-color: var(--sc-line-soft);
}

.cmh-table.lcd-tabla tbody tr:hover[b-liriip5jx1] {
    background: var(--sc-hover);
}

.cmh-table.lcd-tabla tbody tr.is-selected[b-liriip5jx1] {
    background: var(--sc-accent) !important;
}

.lcd-tabla[b-liriip5jx1] {
    table-layout: fixed;
    width: 100%;
}

.lcd-tabla tbody tr[b-liriip5jx1] {
    cursor: pointer;
}

/* /Components/Sistemas/Scomm/PresupuestosValorizaciones/MantenimientoTablas.razor.rz.scp.css */
/* oc_psp_mantenimientotablas: formulario de 408 x 313 con los botones en su posicion de FoxPro (sin la franja de titulo,
   que va como encabezado del portal), la linea en Top 271, la casilla en 285 y Salir en 280 (menos 29). Marco y botones
   con el estilo del portal, como el menu de Presupuestos y Valorizaciones. Alto 292: Salir, con el alto estandar del
   boton (--sc-boton-alto), cabe con margen debajo. */
.mt-lienzo[b-9ijv59jr5m] {
    position: relative;
    width: 408px;
    height: 292px;
    max-width: 100%;
    background: var(--sc-panel);
    border: 1px solid var(--sc-line);
    border-radius: 8px;
    box-shadow: 0 1px 3px rgba(24, 33, 47, .06);
}

.vfp-btn.mt-boton[b-9ijv59jr5m] {
    position: absolute;
    justify-content: flex-start;
    gap: 4px;
    padding: 2px 4px;
    white-space: nowrap;
    font-size: .7rem; /* "Componentes de Obras Civiles" entra en los 187 px del boton, como en FoxPro */
}

.mt-boton span[b-9ijv59jr5m] {
    flex: 1;
    text-align: center;
}

.mt-linea[b-9ijv59jr5m] {
    position: absolute;
    top: 242px;
    left: 0;
    width: 100%;
    margin: 0;
    border: 0;
    border-top: 1px solid var(--sc-line);
}

.mt-casilla[b-9ijv59jr5m] {
    position: absolute;
    top: 256px;
    left: 13px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: .78rem;
    color: var(--sc-disabled);
}

.vfp-btn.mt-salir[b-9ijv59jr5m] {
    position: absolute;
    top: 251px;
    left: 311px;
    width: 84px;
    justify-content: center;
}

.psv-volver[b-9ijv59jr5m] {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 6px;
}
/* /Components/Sistemas/Scomm/PresupuestosValorizaciones/MigrarPartidas.razor.rz.scp.css */
/* Lienzo con los controles en la posicion (Top, Left) y el tamaño de FoxPro, como en el formulario original; grilla,
   recuadros y botones con los colores del portal. (Mismo bloque en ComponentesObras, ComponenteEdicion y MigrarPartidas.) */
.mc-lienzo[b-s06ujyejwh] {
    position: relative;
    width: 612px;
    height: 620px;
}

.mc-ctl[b-s06ujyejwh],
.mc-etq[b-s06ujyejwh],
.mc-grilla[b-s06ujyejwh],
.mc-marco[b-s06ujyejwh],
.mc-estado[b-s06ujyejwh],
.mc-filtros[b-s06ujyejwh],
.mc-icono[b-s06ujyejwh] {
    position: absolute;
}

.mc-ctl.cmh-input[b-s06ujyejwh] {
    height: 21px;
    min-height: 21px;
    padding: 0 4px;
    font-size: .8rem;
}

.mc-etq[b-s06ujyejwh] {
    font-size: .8rem;
    white-space: nowrap;
    color: var(--sc-ink);
}

.mc-negrita[b-s06ujyejwh] {
    font-weight: 700;
}

.mc-casilla[b-s06ujyejwh] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
}

.mc-mayus[b-s06ujyejwh] {
    text-transform: uppercase;
}

.mc-marco[b-s06ujyejwh] {
    border: 1px solid var(--sc-line);
    border-radius: 6px;
    pointer-events: none;
}

.mc-estado[b-s06ujyejwh] {
    display: flex;
    align-items: center;
    gap: 14px;
    height: 24px;
    padding: 0 6px;
    font-size: .8rem;
    border: 1px solid var(--sc-line-soft);
    border-radius: 6px;
}

.mc-estado label[b-s06ujyejwh] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
}

.mc-filtros[b-s06ujyejwh] {
    display: flex;
    gap: 3px;
}

.mc-filtros .cmh-input[b-s06ujyejwh] {
    height: 21px;
    min-height: 21px;
    padding: 0 4px;
    font-size: .8rem;
}

.mc-grilla[b-s06ujyejwh] {
    overflow: auto;
    background: var(--sc-panel);
    border: 1px solid var(--sc-line);
    border-radius: 6px;
}

.mc-icono[b-s06ujyejwh] {
    width: 25px;
    height: 27px;
    min-height: 27px;
    padding: 0;
    justify-content: center;
}

.mc-boton[b-s06ujyejwh] {
    width: 85px;
    height: 27px;
    min-height: 27px;
    padding: 0 6px;
    gap: 4px;
    justify-content: center;
}

.mc-tabla[b-s06ujyejwh] {
    table-layout: fixed;
    width: 100%;
}

.mc-tabla td[b-s06ujyejwh] {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.mc-tabla tbody tr[b-s06ujyejwh] {
    cursor: pointer;
}

.mc-centro[b-s06ujyejwh] {
    text-align: center;
}

/* Cabecera, lineas y fila elegida con los colores de las tablas del portal. */
.cmh-table.mc-tabla th[b-s06ujyejwh] {
    background: var(--sc-surface-soft);
    color: var(--sc-ink-soft);
    border-color: var(--sc-line-soft);
    border-bottom-color: var(--sc-line);
}

.cmh-table.mc-tabla td[b-s06ujyejwh] {
    border-color: var(--sc-line-soft);
}

.cmh-table.mc-tabla tbody tr:hover[b-s06ujyejwh] {
    background: var(--sc-hover);
}

.cmh-table.mc-tabla tbody tr.is-selected[b-s06ujyejwh] {
    background: var(--sc-accent) !important;
}

/* /Components/Sistemas/Scomm/PresupuestosValorizaciones/NivelesPartidas.razor.rz.scp.css */
/* Niveles y Partidas (oc_psp_buscar_niveles) y su ventana Copiar Estructura: los controles en la posicion (Top, Left) y el
   tamaño de FoxPro; grillas, recuadros y botones con los colores del portal. Se conservan los colores que marcan datos:
   titulos de tipo en granate y negrita, Cuadrilla y Cantidad en celeste, etiquetas en azul. (Mismo bloque en
   NivelesPartidas y CopiarEstructuraPartida.) */
.np-lienzo[b-gw6isib8w5] {
    position: relative;
}

.np-ctl[b-gw6isib8w5],
.np-etq[b-gw6isib8w5],
.np-grilla[b-gw6isib8w5],
.np-marco[b-gw6isib8w5],
.np-linea[b-gw6isib8w5],
.np-filtros[b-gw6isib8w5],
.np-arbol[b-gw6isib8w5] {
    position: absolute;
}

.np-ctl.cmh-input[b-gw6isib8w5] {
    height: 21px;
    min-height: 21px;
    padding: 0 3px;
    font-size: .7rem;
}

.np-nivel.cmh-input[b-gw6isib8w5] {
    height: 19px;
    min-height: 19px;
}

.np-etq[b-gw6isib8w5] {
    font-size: .7rem;
    line-height: 1.2;
    white-space: nowrap;
    color: var(--sc-ink);
}

.np-negrita[b-gw6isib8w5] {
    font-weight: 700;
}

/* Etiquetas de la partida en azul, como en FoxPro. */
.np-azul[b-gw6isib8w5] {
    font-weight: 700;
    color: #1f3f8f;
}

.np-total[b-gw6isib8w5] {
    font-weight: 700;
    color: #1f3f8f;
}

.np-mayus[b-gw6isib8w5] {
    text-transform: uppercase;
}

.np-marco[b-gw6isib8w5] {
    border: 1px solid var(--sc-line);
    border-radius: 6px;
    pointer-events: none;
}

.np-linea[b-gw6isib8w5] {
    background: var(--sc-line);
    pointer-events: none;
}

.np-filtros[b-gw6isib8w5] {
    display: flex;
    gap: 2px;
}

.np-filtros .cmh-input[b-gw6isib8w5] {
    height: 21px;
    min-height: 21px;
    padding: 0 3px;
    font-size: .7rem;
}

.np-buscar[b-gw6isib8w5] {
    border-color: #f0a050;
}

.np-grilla[b-gw6isib8w5] {
    overflow: auto;
    background: var(--sc-panel);
    border: 1px solid var(--sc-line);
    border-radius: 6px;
}

/* Sin editar, la grilla queda en gris claro (BackColor 230 de FoxPro). */
.np-grilla.np-gris[b-gw6isib8w5] {
    background: var(--sc-surface-soft);
}

.np-tabla[b-gw6isib8w5] {
    table-layout: fixed;
    width: max-content;
    min-width: 100%;
    font-size: .7rem;
}

.np-tabla th[b-gw6isib8w5],
.np-tabla td[b-gw6isib8w5] {
    padding: 1px 4px;
}

.np-tabla.np-componentes[b-gw6isib8w5] {
    width: 100%;
}

.np-tabla td[b-gw6isib8w5] {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.np-tabla tbody tr[b-gw6isib8w5] {
    cursor: pointer;
}

.np-tabla td.num[b-gw6isib8w5],
.np-ctl.num[b-gw6isib8w5],
.np-celda.num[b-gw6isib8w5] {
    text-align: right;
}

.np-orden[b-gw6isib8w5] {
    cursor: pointer;
}

.np-componentes td.np-celeste[b-gw6isib8w5] {
    background: #d7e8f4;
}

.np-componentes tr.np-titulo td[b-gw6isib8w5] {
    color: #800000;
    font-weight: 700;
}

.np-celda[b-gw6isib8w5] {
    width: 100%;
    height: 18px;
    border: 1px solid var(--sc-line-soft);
    border-radius: 3px;
    padding: 0 3px;
    font-size: .7rem;
    background: var(--sc-panel);
}

.np-icono[b-gw6isib8w5] {
    width: 25px;
    height: 27px;
    min-height: 27px;
    padding: 0;
    justify-content: center;
}

.np-boton[b-gw6isib8w5],
.np-reporte[b-gw6isib8w5] {
    height: 27px;
    min-height: 26px;
    padding: 0 6px;
    gap: 4px;
    justify-content: center;
    white-space: nowrap;
}

.np-reporte[b-gw6isib8w5] {
    font-size: .72rem;
}

.np-comentario.cmh-input[b-gw6isib8w5] {
    resize: none;
    padding: 2px 4px;
}

.np-arbol[b-gw6isib8w5] {
    display: grid;
    align-content: start;
    overflow: auto;
    padding: 2px;
    background: var(--sc-panel);
    border: 1px solid var(--sc-line);
    border-radius: 6px;
}

.np-arbol.np-apagado[b-gw6isib8w5] {
    opacity: .75;
}

.np-nodo[b-gw6isib8w5] {
    border: 0;
    background: none;
    text-align: left;
    padding: 0 4px;
    font: inherit;
    font-size: .7rem;
    color: var(--sc-ink);
    white-space: nowrap;
    cursor: pointer;
}

.np-nodo.np-hijo[b-gw6isib8w5] {
    padding-left: 16px;
    color: #1f3f8f;
}

.np-nodo small[b-gw6isib8w5] {
    color: var(--sc-disabled);
}

.np-nodo.is-selected[b-gw6isib8w5] {
    background: var(--sc-accent);
    color: #fff;
}

/* Cabecera, lineas y fila elegida con los colores de las tablas del portal. */
.cmh-table.np-tabla th[b-gw6isib8w5] {
    background: var(--sc-surface-soft);
    color: var(--sc-ink-soft);
    border-color: var(--sc-line-soft);
    border-bottom-color: var(--sc-line);
}

.cmh-table.np-tabla td[b-gw6isib8w5] {
    border-color: var(--sc-line-soft);
}

.cmh-table.np-tabla tbody tr:hover[b-gw6isib8w5] {
    background: var(--sc-hover);
}

.cmh-table.np-tabla tbody tr.is-selected[b-gw6isib8w5] {
    background: var(--sc-accent) !important;
}

.cmh-table.np-tabla tbody tr.is-selected td[b-gw6isib8w5] {
    color: #fff;
}

/* /Components/Sistemas/Scomm/PresupuestosValorizaciones/PresupuestoBase.razor.rz.scp.css */
/* oc_psp_presupuesto_base ("Registro de Presupuesto"): la misma disposicion que el Registro de Valorizacion, de la que sale
   este estilo: arriba los botones de la izquierda (Nuevo, Buscar, Cerrar y Abrir Presupuesto), la cabecera con su banda
   (presupuesto, fecha y periodo), los datos de la contrata y la obra, y a la derecha el saldo en dolares y la detraccion;
   abajo los cuatro niveles con sus opciones (sin la flecha que los oculta: la pantalla de FoxPro no la tiene), la grilla
   "Registro de Presupuesto" con la Cantidad en celeste y los costos indirectos con los totales; al pie Activar, Cancelar
   operacion, Grabar, Imprimir y Salir. Mismas posiciones que FoxPro con el diseño del portal. */
.rv-marco[b-ylrr1vi3m7] {
    display: grid;
    gap: 6px;
    padding: 8px 10px;
    background: var(--sc-panel);
    border: 1px solid var(--sc-line);
    border-radius: 8px;
}

.rv-arriba[b-ylrr1vi3m7] {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr) 150px;
    gap: 8px;
}

.rv-acciones[b-ylrr1vi3m7] {
    display: grid;
    align-content: start;
    gap: 4px;
}

.rv-accion[b-ylrr1vi3m7] {
    justify-content: flex-start;
}

.rv-separado[b-ylrr1vi3m7] {
    margin-top: 26px;
}

.rv-rojo[b-ylrr1vi3m7] {
    color: #ff0000;
    font-weight: 700;
    font-size: .8rem;
}

.rv-cerrada[b-ylrr1vi3m7] {
    margin-top: 40px;
}

.rv-cabecera[b-ylrr1vi3m7] {
    display: grid;
    gap: 3px;
}

.rv-banda[b-ylrr1vi3m7] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 3px 6px;
    background: var(--sc-accent-bg);
    border: 1px solid var(--sc-accent-line);
    border-radius: 6px;
}

.rv-etq-banda[b-ylrr1vi3m7] {
    font-weight: 700;
    font-size: .8rem;
    color: #00008b;
}

.rv-etq-banda-blanca[b-ylrr1vi3m7] {
    font-weight: 700;
    font-size: .8rem;
    color: var(--sc-ink-soft);
}

.rv-espacio[b-ylrr1vi3m7] {
    flex: 1;
}

.rv-codigo[b-ylrr1vi3m7] {
    width: 180px;
}

.rv-desc-presupuesto[b-ylrr1vi3m7] {
    flex: 1;
    min-width: 0;
}

.rv-fecha[b-ylrr1vi3m7] {
    width: 140px;
}

.rv-anio[b-ylrr1vi3m7] {
    width: 64px;
}

.rv-mes[b-ylrr1vi3m7] {
    width: 100px;
}

.rv-cabecera .cmh-input[b-ylrr1vi3m7] {
    min-height: 22px;
    height: 22px;
    padding: 1px 4px;
    font-size: .8rem;
    color: #004080;
}

.rv-cabecera input[readonly][b-ylrr1vi3m7] {
    background: var(--sc-surface-soft);
}

.rv-datos[b-ylrr1vi3m7] {
    display: grid;
    gap: 2px;
}

.rv-fila[b-ylrr1vi3m7] {
    display: flex;
    align-items: center;
    gap: 4px;
}

.rv-etq[b-ylrr1vi3m7] {
    width: 110px;
    flex: none;
    text-align: right;
    font-size: .8rem;
}

.rv-etq-obra[b-ylrr1vi3m7] {
    color: #800000;
}

.rv-cod[b-ylrr1vi3m7] {
    width: 110px !important;
}

.rv-des[b-ylrr1vi3m7] {
    flex: 1;
    min-width: 0;
}

.rv-gasto[b-ylrr1vi3m7] {
    width: 90px;
}

.rv-radio[b-ylrr1vi3m7] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-weight: 700;
    font-size: .8rem;
}

.rv-sap[b-ylrr1vi3m7] {
    display: grid;
    gap: 2px;
    margin-left: 110px;
    padding: 4px;
    background: var(--sc-surface-soft);
    border: 1px solid var(--sc-line-soft);
    border-radius: 6px;
    min-height: 90px;
}

.rv-des-sap[b-ylrr1vi3m7] {
    flex: 1;
    min-width: 0;
}

.rv-derecha[b-ylrr1vi3m7] {
    display: grid;
    align-content: start;
    gap: 4px;
}

.rv-base[b-ylrr1vi3m7] {
    display: grid;
    border: 1px solid var(--sc-line);
    border-radius: 6px;
    padding: 4px;
    background: var(--sc-panel);
}

.rv-base-etq[b-ylrr1vi3m7] {
    color: #800000;
    font-weight: 700;
    font-size: .8rem;
}

.rv-base-valor[b-ylrr1vi3m7] {
    text-align: right;
    min-height: 1.2em;
    font-size: .8rem;
}

.rv-detraccion[b-ylrr1vi3m7] {
    display: grid;
    font-weight: 700;
    font-size: .8rem;
}

.rv-abajo[b-ylrr1vi3m7] {
    display: grid;
    grid-template-columns: 370px auto minmax(0, 1fr);
    gap: 4px;
    align-items: start;
}

.rv-abajo.rv-sin-arbol[b-ylrr1vi3m7] {
    grid-template-columns: auto minmax(0, 1fr);
}

.rv-arbol[b-ylrr1vi3m7] {
    display: grid;
    gap: 3px;
    padding: 4px;
    background: var(--sc-surface-soft);
    border: 1px solid var(--sc-line);
    border-radius: 6px;
}

/* Con el detalle activo (FoxPro lo oscurecia): el tono de acento del portal. */
.rv-arbol.rv-activo[b-ylrr1vi3m7] {
    background: var(--sc-accent-bg);
    border-color: var(--sc-accent-line);
}

.rv-nivel[b-ylrr1vi3m7] {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: 3px;
    align-items: start;
}

.rv-grilla-nivel[b-ylrr1vi3m7] {
    height: 82px;
    overflow: auto;
    background: var(--sc-panel);
    border: 1px solid var(--sc-line);
    border-radius: 4px;
}

.rv-tabla-nivel[b-ylrr1vi3m7],
.rv-tabla-ci[b-ylrr1vi3m7] {
    table-layout: fixed;
    width: 100%;
    min-width: 0;
}

.rv-tabla-nivel tbody tr[b-ylrr1vi3m7] {
    cursor: pointer;
}

.rv-iconos-nivel[b-ylrr1vi3m7] {
    display: flex;
    gap: 2px;
    padding-left: 30px;
}

.rv-flecha[b-ylrr1vi3m7] {
    width: 18px;
    min-height: 250px;
    padding: 0;
    color: #800000;
}

.rv-registro[b-ylrr1vi3m7] {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.rv-titulo-grilla[b-ylrr1vi3m7] {
    font-weight: 700;
    font-size: .8rem;
    color: #004080;
}

/* Alto: el de FoxPro; crece solo si la ventana tiene lugar de sobra (el pie y los botones siguen a la vista). */
.rv-grilla[b-ylrr1vi3m7] {
    height: max(260px, calc(100vh - 760px));
    overflow: auto;
    border: 1px solid var(--sc-line);
    border-radius: 6px;
    background: var(--sc-panel);
}

/* Ancho: toda la grilla; la Descripcion de Partida (295 en FoxPro) toma el espacio que sobra. */
.rv-tabla[b-ylrr1vi3m7] {
    table-layout: fixed;
    width: 100%;
    min-width: 1047px;
}

.rv-tabla col.c-desc[b-ylrr1vi3m7] {
    width: auto;
}

.rv-tabla td.num[b-ylrr1vi3m7] {
    text-align: right;
}

.rv-tabla td.pre[b-ylrr1vi3m7] {
    white-space: pre;
}

/* Columnas de colores (BackColor de cada columna) y colores por nivel, como el Reporte de Presupuestos Valorizado. */
.rv-tabla td.c-base[b-ylrr1vi3m7] { background: #f0e1ff; }
.rv-tabla td.c-acum[b-ylrr1vi3m7] { background: #ffffca; }
.rv-tabla td.c-ejec[b-ylrr1vi3m7] { background: #37beff; }
.rv-tabla td.c-cant[b-ylrr1vi3m7] { background: #bfffdf; }
.rv-tabla td.c-saldo[b-ylrr1vi3m7] { background: #ffe1c4; }
.rv-tabla td.c-exc[b-ylrr1vi3m7] { background: #ffb9b9; }
.rv-tabla tr.e-titulo td[b-ylrr1vi3m7] { color: #ff2f2f; font-weight: 700; }
.rv-tabla tr.e-subtitulo td[b-ylrr1vi3m7] { color: #008080; font-weight: 700; }
.rv-tabla tr.e-partida td[b-ylrr1vi3m7] { color: #006b9f; }
.rv-tabla tr.is-actual td[b-ylrr1vi3m7] { background: var(--sc-accent); color: #fff; }

/* Cabeceras y lineas de las grillas con los colores de las tablas del portal; fila elegida de los niveles en el azul
   del sistema (FoxPro la pintaba de negro). */
.cmh-table.rv-tabla th[b-ylrr1vi3m7],
.cmh-table.rv-tabla-nivel th[b-ylrr1vi3m7],
.cmh-table.rv-tabla-ci th[b-ylrr1vi3m7] {
    background: var(--sc-surface-soft);
    color: var(--sc-ink-soft);
    border-color: var(--sc-line-soft);
    border-bottom-color: var(--sc-line);
}

.cmh-table.rv-tabla td[b-ylrr1vi3m7],
.cmh-table.rv-tabla-nivel td[b-ylrr1vi3m7],
.cmh-table.rv-tabla-ci td[b-ylrr1vi3m7] {
    border-color: var(--sc-line-soft);
}

.cmh-table.rv-tabla-nivel tbody tr:hover[b-ylrr1vi3m7] {
    background: var(--sc-hover);
}

.cmh-table.rv-tabla-nivel tbody tr.is-selected[b-ylrr1vi3m7] {
    background: var(--sc-accent) !important;
}

.rv-ejecutada[b-ylrr1vi3m7] {
    width: 100%;
    border: 0;
    background: #fff;
    text-align: right;
    font-size: .8rem;
    padding: 0 2px;
}

.rv-pie[b-ylrr1vi3m7] {
    display: grid;
    grid-template-columns: 380px 100px minmax(0, 1fr);
    gap: 6px;
    align-items: end;
}

.rv-indirectos[b-ylrr1vi3m7] {
    display: grid;
    gap: 2px;
}

.rv-grilla-ci[b-ylrr1vi3m7] {
    height: 78px;
    overflow: auto;
    border: 1px solid var(--sc-line);
    border-radius: 6px;
    background: var(--sc-panel);
}


.rv-tabla-ci td.num[b-ylrr1vi3m7] {
    text-align: right;
}

.rv-totales-der[b-ylrr1vi3m7] {
    display: grid;
    justify-items: end;
    gap: 6px;
}

.rv-total[b-ylrr1vi3m7] {
    display: grid;
    width: 100px;
    border: 1px solid var(--sc-line);
    border-radius: 6px;
    overflow: hidden;
    background: var(--sc-panel);
}

.rv-total-etq[b-ylrr1vi3m7] {
    background: var(--sc-surface-soft);
    color: #004080;
    font-weight: 700;
    font-size: .72rem;
    text-align: center;
}

.rv-naranja[b-ylrr1vi3m7] {
    color: #ff8000;
}

.rv-negro[b-ylrr1vi3m7] {
    color: #000;
}

.rv-total-valor[b-ylrr1vi3m7] {
    text-align: right;
    font-weight: 700;
    color: #004080;
    padding: 2px 4px;
}

.rv-botones[b-ylrr1vi3m7] {
    display: flex;
    gap: 4px;
}

.rv-activar[b-ylrr1vi3m7] {
    min-width: 360px;
}

.rv-boton[b-ylrr1vi3m7] {
    min-width: 100px;
}

.rv-opciones[b-ylrr1vi3m7] {
    display: grid;
    gap: 4px;
}

.rv-opcion-desc[b-ylrr1vi3m7] {
    margin-left: 22px;
    font-size: .8rem;
}

.rv-opciones-botones[b-ylrr1vi3m7] {
    display: flex;
    justify-content: flex-end;
    gap: 6px;
    margin-top: 6px;
}

.rv-sub-desc[b-ylrr1vi3m7] {
    width: 100%;
    border: 0;
    background: #fff;
    font-size: .8rem;
    padding: 0 2px;
    text-transform: uppercase;
}

/* cmd_BuscarContrata, cmd_BuscarTituloTrabajo y cmd_BuscarObra: en FoxPro solo se habilitan tras Abrir Valorizacion. */
.rv-lupa[b-ylrr1vi3m7] {
    width: 25px;
    min-height: 22px;
    height: 22px;
    padding: 0;
    justify-content: center;
    flex: none;
}

/* Sin la flecha de los niveles: los niveles y la grilla. */
.pb-abajo[b-ylrr1vi3m7] {
    grid-template-columns: 370px minmax(0, 1fr);
}

/* La grilla de FoxPro tiene 7 columnas (682 de ancho); la Descripcion de Partida toma lo que sobra. */
.pb-tabla[b-ylrr1vi3m7] {
    min-width: 640px;
}

/* Column10 (Cantidad): BackColor 149,221,255. */
.rv-tabla.pb-tabla td.c-cantidad[b-ylrr1vi3m7] { background: #95ddff; }

/* Label26 "Detraccion :": azul 0,107,159. */
.pb-detraccion-etq[b-ylrr1vi3m7] {
    color: #006b9f;
    font-weight: 700;
    font-size: .8rem;
}
/* /Components/Sistemas/Scomm/PresupuestosValorizaciones/PresupuestoBaseImprimir.razor.rz.scp.css */
.pbi-acciones[b-ref5fvrcwa] {
  max-width: 900px;
}

/* Hoja A4 vertical como los FRX (el @page va en el componente): textos en Arial Narrow 8 y 10, detalle Arial 7 y 8. */
.pbi-reporte[b-ref5fvrcwa] {
  width: 194mm;
  margin: 0 auto;
  color: #000;
  background: #fff;
  font-family: "Arial Narrow", Arial, sans-serif;
  font-size: 11px;
}

/* La cabecera de pagina va en el thead: se repite en cada hoja impresa. */
.pbi-hoja[b-ref5fvrcwa] {
  width: 100%;
  border-collapse: collapse;
}

.pbi-hoja > thead th[b-ref5fvrcwa],
.pbi-hoja > tbody > tr > td[b-ref5fvrcwa] {
  background: #fff;
  color: #000;
  font-weight: 400;
  text-align: left;
  padding: 0;
}

.pbi-cabecera[b-ref5fvrcwa] {
  padding-bottom: 8px !important;
}

.pbi-titulo[b-ref5fvrcwa] {
  text-align: center;
  font-size: 21px;
  font-weight: 700;
  margin: 0 0 8px;
}

.pbi-datos[b-ref5fvrcwa] {
  display: grid;
  grid-template-columns: 22fr 46fr 10fr 22fr;
  gap: 1px 6px;
  font-size: 13px;
}

.pbi-ancho[b-ref5fvrcwa] {
  grid-column: span 3;
}

.b[b-ref5fvrcwa] {
  font-weight: 700;
}

.num[b-ref5fvrcwa] {
  text-align: right;
  white-space: nowrap;
}

.centro[b-ref5fvrcwa] {
  text-align: center;
}

.pre[b-ref5fvrcwa] {
  white-space: pre;
}

.etq[b-ref5fvrcwa] {
  text-align: right;
  font-weight: 700;
}

.pbi-grupo[b-ref5fvrcwa],
.pbi-partida[b-ref5fvrcwa] {
  display: grid;
  gap: 2px;
  margin: 8px 0 4px;
}

.pbi-par[b-ref5fvrcwa] {
  display: flex;
  gap: 10px;
}

.pbi-etq[b-ref5fvrcwa] {
  min-width: 90px;
}

.pbi-sub[b-ref5fvrcwa] {
  margin: 6px 0;
  font-size: 13px;
}

.pbi-partida[b-ref5fvrcwa] {
  border-top: 2px solid #000;
  padding-top: 4px;
}

.pbi-rend[b-ref5fvrcwa] {
  display: grid;
  grid-template-columns: 14fr 4fr 9fr 4fr 9fr 22fr 6fr 10fr;
  gap: 4px;
  border-bottom: 1px solid #000;
  padding-bottom: 2px;
}

.pbi-cab-recursos[b-ref5fvrcwa] {
  grid-template-columns: 16fr 50fr 8fr 26fr;
  border-bottom: 2px solid #000;
  padding-bottom: 4px;
}

.pbi-tabla[b-ref5fvrcwa] {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font-family: "Arial Narrow", Arial, sans-serif;
  font-size: 11px;
}

.pbi-tabla th[b-ref5fvrcwa],
.pbi-tabla td[b-ref5fvrcwa] {
  padding: 1px 3px;
  background: #fff;
  color: #000;
}

.pbi-columnas th[b-ref5fvrcwa] {
  font-weight: 700;
  border-bottom: 1px solid #000;
  border-left: 1px solid #000;
}

.pbi-columnas th:first-child[b-ref5fvrcwa] {
  border-left: 0;
}

.pbi-tipo[b-ref5fvrcwa] {
  text-align: center;
  font-family: Arial, sans-serif;
  font-size: 11px;
  font-weight: 700;
  padding-top: 4px !important;
}

.pbi-suma td[b-ref5fvrcwa] {
  padding-bottom: 4px;
}

.p-cod[b-ref5fvrcwa] { width: 10%; }
.p-desc[b-ref5fvrcwa] { width: 38%; }
.r-desc[b-ref5fvrcwa] { width: 46%; }
.p-und[b-ref5fvrcwa] { width: 6%; }
.p-num[b-ref5fvrcwa] { width: 11%; }
.r-num[b-ref5fvrcwa] { width: 15%; }

/* Reporte Presupuesto: el recuadro de columnas, las lineas verticales y el detalle en Arial 7. */
.pbi-presupuesto[b-ref5fvrcwa] {
  border: 1px solid #000;
  margin-bottom: 6px;
}

.pbi-presupuesto td[b-ref5fvrcwa] {
  border-left: 1px solid #000;
  border-bottom: 1px solid #000;
  font-family: Arial, sans-serif;
  font-size: 9px;
}

.pbi-recuadro th[b-ref5fvrcwa] {
  border: 1px solid #000;
  font-weight: 700;
  font-size: 12px;
}

.pbi-obra td[b-ref5fvrcwa] {
  font-family: Arial, sans-serif;
  font-size: 12px !important;
  font-weight: 700;
}

.pbi-subtotal td[b-ref5fvrcwa] {
  font-weight: 700;
}

.pbi-subtotal td.num[b-ref5fvrcwa] {
  border: 1px solid #000;
}

.q-desc[b-ref5fvrcwa] { width: 66%; }
.q-und[b-ref5fvrcwa] { width: 5%; }
.q-num[b-ref5fvrcwa] { width: 9.66%; }

.pbi-resumen[b-ref5fvrcwa] {
  display: grid;
  grid-template-columns: 1fr 36px 100px;
  gap: 2px 6px;
  justify-items: end;
  margin-top: 8px;
  padding: 6px 8px;
  border: 1px solid #000;
}

@media print {
  .pbi-reporte[b-ref5fvrcwa] {
    width: auto;
  }
}
/* /Components/Sistemas/Scomm/PresupuestosValorizaciones/PresupuestoBaseReportes.razor.rz.scp.css */
/* oc_psp_presupuesto_reportes_base: tres botones de 216 x 48 con el dibujo a la izquierda, uno debajo del otro, y Salir
   (116 x 34) centrado debajo; con el estilo de botones del portal. */
.pr-menu[b-kli50h4bx5] {
    display: grid;
    justify-items: center;
    gap: 1px;
    padding: 6px 0 2px;
}

.pr-boton[b-kli50h4bx5] {
    width: 216px;
    min-height: 48px;
    justify-content: flex-start;
    gap: 10px;
}

.pr-salir[b-kli50h4bx5] {
    width: 116px;
    min-height: 34px;
    margin-top: 10px;
    justify-content: center;
}

/* /Components/Sistemas/Scomm/PresupuestosValorizaciones/RegistroValorizacion.razor.rz.scp.css */
/* oc_psp_presupuesto_valorizacion: arriba los botones de la izquierda, la cabecera con su banda gris (presupuesto, fecha y
   periodo), los datos de la contrata y la obra, y a la derecha el presupuesto base y la detraccion; abajo los cuatro
   niveles con sus opciones, la flecha que los oculta, la grilla "Registro de Presupuesto" y los costos indirectos con los
   totales; al pie Activar, Cancelar operacion, Grabar, Imprimir y Salir. Mismas posiciones que FoxPro con el diseño del
   portal (bandas, recuadros, cabeceras de grilla y fila elegida); se conservan los colores que marcan datos: columnas de
   colores, titulos/sub titulos/partidas, etiquetas en rojo, granate y naranja. Usa todo el ancho de la pantalla: crecen
   la parte central de la cabecera, la grilla (la Descripcion toma lo que sobra; el alto sigue a la ventana) y el espacio
   entre los costos indirectos y los totales; las columnas de la izquierda y la derecha conservan su lugar y tamaño. */
.rv-marco[b-5ca5dypk8n] {
    display: grid;
    gap: 6px;
    padding: 8px 10px;
    background: var(--sc-panel);
    border: 1px solid var(--sc-line);
    border-radius: 8px;
}

.rv-arriba[b-5ca5dypk8n] {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr) 150px;
    gap: 8px;
}

.rv-acciones[b-5ca5dypk8n] {
    display: grid;
    align-content: start;
    gap: 4px;
}

.rv-accion[b-5ca5dypk8n] {
    justify-content: flex-start;
}

.rv-separado[b-5ca5dypk8n] {
    margin-top: 26px;
}

.rv-rojo[b-5ca5dypk8n] {
    color: #ff0000;
    font-weight: 700;
    font-size: .8rem;
}

.rv-cerrada[b-5ca5dypk8n] {
    margin-top: 40px;
}

.rv-cabecera[b-5ca5dypk8n] {
    display: grid;
    gap: 3px;
}

.rv-banda[b-5ca5dypk8n] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 3px 6px;
    background: var(--sc-accent-bg);
    border: 1px solid var(--sc-accent-line);
    border-radius: 6px;
}

.rv-etq-banda[b-5ca5dypk8n] {
    font-weight: 700;
    font-size: .8rem;
    color: #00008b;
}

.rv-etq-banda-blanca[b-5ca5dypk8n] {
    font-weight: 700;
    font-size: .8rem;
    color: var(--sc-ink-soft);
}

.rv-espacio[b-5ca5dypk8n] {
    flex: 1;
}

.rv-codigo[b-5ca5dypk8n] {
    width: 180px;
}

.rv-desc-presupuesto[b-5ca5dypk8n] {
    flex: 1;
    min-width: 0;
}

.rv-fecha[b-5ca5dypk8n] {
    width: 140px;
}

.rv-anio[b-5ca5dypk8n] {
    width: 64px;
}

.rv-mes[b-5ca5dypk8n] {
    width: 100px;
}

.rv-cabecera .cmh-input[b-5ca5dypk8n] {
    min-height: 22px;
    height: 22px;
    padding: 1px 4px;
    font-size: .8rem;
    color: #004080;
}

.rv-cabecera input[readonly][b-5ca5dypk8n] {
    background: var(--sc-surface-soft);
}

.rv-datos[b-5ca5dypk8n] {
    display: grid;
    gap: 2px;
}

.rv-fila[b-5ca5dypk8n] {
    display: flex;
    align-items: center;
    gap: 4px;
}

.rv-etq[b-5ca5dypk8n] {
    width: 110px;
    flex: none;
    text-align: right;
    font-size: .8rem;
}

.rv-etq-obra[b-5ca5dypk8n] {
    color: #800000;
}

.rv-cod[b-5ca5dypk8n] {
    width: 110px !important;
}

.rv-des[b-5ca5dypk8n] {
    flex: 1;
    min-width: 0;
}

.rv-gasto[b-5ca5dypk8n] {
    width: 90px;
}

.rv-radio[b-5ca5dypk8n] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-weight: 700;
    font-size: .8rem;
}

.rv-sap[b-5ca5dypk8n] {
    display: grid;
    gap: 2px;
    margin-left: 110px;
    padding: 4px;
    background: var(--sc-surface-soft);
    border: 1px solid var(--sc-line-soft);
    border-radius: 6px;
    min-height: 90px;
}

.rv-des-sap[b-5ca5dypk8n] {
    flex: 1;
    min-width: 0;
}

.rv-derecha[b-5ca5dypk8n] {
    display: grid;
    align-content: start;
    gap: 4px;
}

.rv-base[b-5ca5dypk8n] {
    display: grid;
    border: 1px solid var(--sc-line);
    border-radius: 6px;
    padding: 4px;
    background: var(--sc-panel);
}

.rv-base-etq[b-5ca5dypk8n] {
    color: #800000;
    font-weight: 700;
    font-size: .8rem;
}

.rv-base-valor[b-5ca5dypk8n] {
    text-align: right;
    min-height: 1.2em;
    font-size: .8rem;
}

.rv-detraccion[b-5ca5dypk8n] {
    display: grid;
    font-weight: 700;
    font-size: .8rem;
}

.rv-abajo[b-5ca5dypk8n] {
    display: grid;
    grid-template-columns: 370px auto minmax(0, 1fr);
    gap: 4px;
    align-items: start;
}

.rv-abajo.rv-sin-arbol[b-5ca5dypk8n] {
    grid-template-columns: auto minmax(0, 1fr);
}

.rv-arbol[b-5ca5dypk8n] {
    display: grid;
    gap: 3px;
    padding: 4px;
    background: var(--sc-surface-soft);
    border: 1px solid var(--sc-line);
    border-radius: 6px;
}

/* Con el detalle activo (FoxPro lo oscurecia): el tono de acento del portal. */
.rv-arbol.rv-activo[b-5ca5dypk8n] {
    background: var(--sc-accent-bg);
    border-color: var(--sc-accent-line);
}

.rv-nivel[b-5ca5dypk8n] {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: 3px;
    align-items: start;
}

.rv-grilla-nivel[b-5ca5dypk8n] {
    height: 82px;
    overflow: auto;
    background: var(--sc-panel);
    border: 1px solid var(--sc-line);
    border-radius: 4px;
}

.rv-tabla-nivel[b-5ca5dypk8n],
.rv-tabla-ci[b-5ca5dypk8n] {
    table-layout: fixed;
    width: 100%;
    min-width: 0;
}

.rv-tabla-nivel tbody tr[b-5ca5dypk8n] {
    cursor: pointer;
}

.rv-iconos-nivel[b-5ca5dypk8n] {
    display: flex;
    gap: 2px;
    padding-left: 30px;
}

.rv-flecha[b-5ca5dypk8n] {
    width: 18px;
    min-height: 250px;
    padding: 0;
    color: #800000;
}

.rv-registro[b-5ca5dypk8n] {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.rv-titulo-grilla[b-5ca5dypk8n] {
    font-weight: 700;
    font-size: .8rem;
    color: #004080;
}

/* Alto: el de FoxPro; crece solo si la ventana tiene lugar de sobra (el pie y los botones siguen a la vista). */
.rv-grilla[b-5ca5dypk8n] {
    height: max(260px, calc(100vh - 760px));
    overflow: auto;
    border: 1px solid var(--sc-line);
    border-radius: 6px;
    background: var(--sc-panel);
}

/* Ancho: toda la grilla; la Descripcion de Partida (295 en FoxPro) toma el espacio que sobra. */
.rv-tabla[b-5ca5dypk8n] {
    table-layout: fixed;
    width: 100%;
    min-width: 1047px;
}

.rv-tabla col.c-desc[b-5ca5dypk8n] {
    width: auto;
}

.rv-tabla td.num[b-5ca5dypk8n] {
    text-align: right;
}

.rv-tabla td.pre[b-5ca5dypk8n] {
    white-space: pre;
}

/* Columnas de colores (BackColor de cada columna) y colores por nivel, como el Reporte de Presupuestos Valorizado. */
.rv-tabla td.c-base[b-5ca5dypk8n] { background: #f0e1ff; }
.rv-tabla td.c-acum[b-5ca5dypk8n] { background: #ffffca; }
.rv-tabla td.c-ejec[b-5ca5dypk8n] { background: #37beff; }
.rv-tabla td.c-cant[b-5ca5dypk8n] { background: #bfffdf; }
.rv-tabla td.c-saldo[b-5ca5dypk8n] { background: #ffe1c4; }
.rv-tabla td.c-exc[b-5ca5dypk8n] { background: #ffb9b9; }
.rv-tabla tr.e-titulo td[b-5ca5dypk8n] { color: #ff2f2f; font-weight: 700; }
.rv-tabla tr.e-subtitulo td[b-5ca5dypk8n] { color: #008080; font-weight: 700; }
.rv-tabla tr.e-partida td[b-5ca5dypk8n] { color: #006b9f; }
.rv-tabla tr.is-actual td[b-5ca5dypk8n] { background: var(--sc-accent); color: #fff; }

/* Cabeceras y lineas de las grillas con los colores de las tablas del portal; fila elegida de los niveles en el azul
   del sistema (FoxPro la pintaba de negro). */
.cmh-table.rv-tabla th[b-5ca5dypk8n],
.cmh-table.rv-tabla-nivel th[b-5ca5dypk8n],
.cmh-table.rv-tabla-ci th[b-5ca5dypk8n] {
    background: var(--sc-surface-soft);
    color: var(--sc-ink-soft);
    border-color: var(--sc-line-soft);
    border-bottom-color: var(--sc-line);
}

.cmh-table.rv-tabla td[b-5ca5dypk8n],
.cmh-table.rv-tabla-nivel td[b-5ca5dypk8n],
.cmh-table.rv-tabla-ci td[b-5ca5dypk8n] {
    border-color: var(--sc-line-soft);
}

.cmh-table.rv-tabla-nivel tbody tr:hover[b-5ca5dypk8n] {
    background: var(--sc-hover);
}

.cmh-table.rv-tabla-nivel tbody tr.is-selected[b-5ca5dypk8n] {
    background: var(--sc-accent) !important;
}

.rv-ejecutada[b-5ca5dypk8n] {
    width: 100%;
    border: 0;
    background: #fff;
    text-align: right;
    font-size: .8rem;
    padding: 0 2px;
}

.rv-pie[b-5ca5dypk8n] {
    display: grid;
    grid-template-columns: 380px 100px minmax(0, 1fr);
    gap: 6px;
    align-items: end;
}

.rv-indirectos[b-5ca5dypk8n] {
    display: grid;
    gap: 2px;
}

.rv-grilla-ci[b-5ca5dypk8n] {
    height: 78px;
    overflow: auto;
    border: 1px solid var(--sc-line);
    border-radius: 6px;
    background: var(--sc-panel);
}


.rv-tabla-ci td.num[b-5ca5dypk8n] {
    text-align: right;
}

.rv-totales-der[b-5ca5dypk8n] {
    display: grid;
    justify-items: end;
    gap: 6px;
}

.rv-total[b-5ca5dypk8n] {
    display: grid;
    width: 100px;
    border: 1px solid var(--sc-line);
    border-radius: 6px;
    overflow: hidden;
    background: var(--sc-panel);
}

.rv-total-etq[b-5ca5dypk8n] {
    background: var(--sc-surface-soft);
    color: #004080;
    font-weight: 700;
    font-size: .72rem;
    text-align: center;
}

.rv-naranja[b-5ca5dypk8n] {
    color: #ff8000;
}

.rv-negro[b-5ca5dypk8n] {
    color: #000;
}

.rv-total-valor[b-5ca5dypk8n] {
    text-align: right;
    font-weight: 700;
    color: #004080;
    padding: 2px 4px;
}

.rv-botones[b-5ca5dypk8n] {
    display: flex;
    gap: 4px;
}

.rv-activar[b-5ca5dypk8n] {
    min-width: 360px;
}

.rv-boton[b-5ca5dypk8n] {
    min-width: 100px;
}

.rv-opciones[b-5ca5dypk8n] {
    display: grid;
    gap: 4px;
}

.rv-opcion-desc[b-5ca5dypk8n] {
    margin-left: 22px;
    font-size: .8rem;
}

.rv-opciones-botones[b-5ca5dypk8n] {
    display: flex;
    justify-content: flex-end;
    gap: 6px;
    margin-top: 6px;
}

.rv-sub-desc[b-5ca5dypk8n] {
    width: 100%;
    border: 0;
    background: #fff;
    font-size: .8rem;
    padding: 0 2px;
    text-transform: uppercase;
}

/* cmd_BuscarContrata, cmd_BuscarTituloTrabajo y cmd_BuscarObra: en FoxPro solo se habilitan tras Abrir Valorizacion. */
.rv-lupa[b-5ca5dypk8n] {
    width: 25px;
    min-height: 22px;
    height: 22px;
    padding: 0;
    justify-content: center;
    flex: none;
}

/* /Components/Sistemas/Scomm/PresupuestosValorizaciones/RegistroValorizacionImprimir.razor.rz.scp.css */
.val-acciones[b-qyfbty18h8] {
  max-width: 900px;
}

/* Hoja A4 horizontal como el FRX (el @page va en el componente): detalle Arial 7 pt, titulos Arial Narrow. */
.val-reporte[b-qyfbty18h8] {
  width: 275mm;
  margin: 0 auto;
  color: #000;
  background: #fff;
  font-family: Arial, sans-serif;
  font-size: 9px;
}

.val-tabla[b-qyfbty18h8] {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.c-item[b-qyfbty18h8] { width: 4%; }
.c-desc[b-qyfbty18h8] { width: 24%; }
.c-und[b-qyfbty18h8] { width: 3%; }
.c-pu[b-qyfbty18h8] { width: 5%; }
.c-num[b-qyfbty18h8] { width: 6%; }

.val-tabla th[b-qyfbty18h8] {
  background: #fff;
  color: #000;
}

.val-cabecera[b-qyfbty18h8] {
  font-family: "Arial Narrow", Arial, sans-serif;
  font-weight: 400;
  text-align: left;
  font-size: 11px;
  padding-bottom: 8px;
}

.val-titulo[b-qyfbty18h8] {
  text-align: center;
  font-size: 24px;
  font-weight: 700;
  margin: 2px 0 6px;
}

.val-datos[b-qyfbty18h8] {
  display: flex;
  gap: 40px;
}

.val-datos-izq[b-qyfbty18h8],
.val-datos-der[b-qyfbty18h8] {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1px 6px;
}

.val-datos-izq[b-qyfbty18h8] {
  width: 28%;
}

.val-datos-der[b-qyfbty18h8] {
  flex: 1;
}

.b[b-qyfbty18h8] {
  font-weight: 700;
}

.val-grupo th[b-qyfbty18h8] {
  border: 1px solid #000;
  background: #d9d9d9;
  font-family: "Arial Narrow", Arial, sans-serif;
  font-size: 12px;
  font-weight: 700;
  text-align: center;
  padding: 1px 2px;
  white-space: nowrap;
}

.val-grupo th.sin-borde[b-qyfbty18h8] {
  border: 0;
  background: #fff;
}

.mon[b-qyfbty18h8] {
  font-size: 11px;
}

.val-tabla td[b-qyfbty18h8] {
  border-left: 1px solid #000;
  border-right: 1px solid #000;
  border-bottom: 1px solid #000;
  padding: 0 2px;
  white-space: nowrap;
  overflow: hidden;
}

.val-tabla td.desc[b-qyfbty18h8] {
  white-space: pre;
  text-overflow: clip;
}

.val-tabla td.num[b-qyfbty18h8] {
  text-align: right;
}

.val-tabla td.centro[b-qyfbty18h8] {
  text-align: center;
}

/* Partidas de primer nivel: el recuadro gris del FRX desde la descripcion hasta el final. */
.val-nivel1 td:not(:first-child)[b-qyfbty18h8] {
  background: #d9d9d9;
}

.val-totales td[b-qyfbty18h8] {
  font-weight: 700;
  border: 1px solid #000;
  background: #d9d9d9;
}

.val-totales td.sin-borde[b-qyfbty18h8] {
  border: 0;
  background: #fff;
}

/* Recuadro de COSTO DIRECTO / costos indirectos / VALORIZADO (Arial Narrow 8; los importes en Arial 8 negrita). */
.val-costos[b-qyfbty18h8] {
  display: grid;
  grid-template-columns: 1fr auto 70px;
  gap: 6px 6px;
  width: 28%;
  margin-top: 10px;
  padding: 8px 6px;
  font-family: "Arial Narrow", Arial, sans-serif;
  font-size: 11px;
  border: 1px solid transparent;
}

.val-costos.con-recuadro[b-qyfbty18h8] {
  border-color: #000;
}

.val-costos .num[b-qyfbty18h8] {
  text-align: right;
  font-family: Arial, sans-serif;
}

.val-costos .etq[b-qyfbty18h8] {
  text-align: right;
}

@media print {
  .val-reporte[b-qyfbty18h8] {
    width: 100%;
    margin: 0;
  }

  .val-tabla thead[b-qyfbty18h8] {
    display: table-header-group;
  }

  .val-tabla tbody tr[b-qyfbty18h8] {
    break-inside: avoid;
  }
}
/* /Components/Sistemas/Scomm/PresupuestosValorizaciones/ReportePresupuestosValorizado.razor.rz.scp.css */
/* oc_psp_reportevalorizado: recuadro de filtros de tres filas (Periodo y Estado sobre gris oscuro 144,144,144 con
   letra blanca; Contrata y Presupuesto con su etiqueta azul) y Buscar a la derecha de la ultima; las dos grillas a lo
   ancho (cabecera de 141 y detalle de 268 de alto); Imprimir y Cancelar abajo a la derecha. Mismas posiciones que
   FoxPro con el diseño del portal (27/10/2026, a pedido del usuario): marco, recuadros, cabeceras, fila elegida y botones
   con los colores del portal y las grillas a todo el ancho (la Descripcion toma el espacio que sobra); se conservan las
   columnas de colores y los colores de titulos, sub titulos y partidas. */
.rpv-marco[b-lnowm1zlo8] {
    display: grid;
    gap: 6px;
    padding: 8px 10px;
    background: var(--sc-panel);
    border: 1px solid var(--sc-line);
    border-radius: 8px;
    min-width: 0;
}

.rpv-filtros[b-lnowm1zlo8] {
    display: grid;
    gap: 2px;
    max-width: 640px;
}

.rpv-caja[b-lnowm1zlo8] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 6px;
    background: var(--sc-surface-soft);
    border: 1px solid var(--sc-line-soft);
    border-radius: 6px;
}

.rpv-oscura[b-lnowm1zlo8] {
    background: var(--sc-accent-bg);
    border-color: var(--sc-accent-line);
}

.rpv-etq-blanca[b-lnowm1zlo8] {
    font-weight: 700;
    font-size: .8rem;
    color: var(--sc-ink-soft);
    min-width: 82px;
    text-align: center;
}

.rpv-estado-etq[b-lnowm1zlo8] {
    min-width: 0;
    margin-left: 10px;
}

.rpv-etq[b-lnowm1zlo8] {
    min-width: 82px;
    text-align: right;
}

.rpv-anio[b-lnowm1zlo8] {
    width: 88px;
    color: #004080;
}

.rpv-mes[b-lnowm1zlo8] {
    width: 130px;
    color: #004080;
}

.rpv-estado[b-lnowm1zlo8] {
    width: 112px;
    color: #004080;
}

.rpv-puntos[b-lnowm1zlo8] {
    min-height: 24px;
    width: 28px;
    padding: 0;
}

.rpv-desc[b-lnowm1zlo8] {
    flex: 1;
    min-width: 0;
    background: var(--sc-surface-soft);
}

.rpv-limpiar[b-lnowm1zlo8] {
    border: 0;
    padding: 0;
    background: transparent;
    cursor: pointer;
    display: inline-flex;
}

.rpv-buscar[b-lnowm1zlo8] {
    margin-left: 8px;
    min-width: 88px;
}

.rpv-titulo-cab[b-lnowm1zlo8] {
    font-weight: 700;
    font-size: .8rem;
    color: #800000;
}

.rpv-grilla[b-lnowm1zlo8] {
    overflow: auto;
    border: 1px solid var(--sc-line);
    border-radius: 6px;
    background: var(--sc-panel);
}

.rpv-grilla-cab[b-lnowm1zlo8] {
    height: 190px;
}

.rpv-grilla-det[b-lnowm1zlo8] {
    height: max(340px, calc(100vh - 690px));
}

/* Ancho: toda la grilla; la Descripcion toma el espacio que sobra. */
.rpv-tabla[b-lnowm1zlo8] {
    table-layout: fixed;
    width: 100%;
    min-width: 760px;
}

.rpv-detalle[b-lnowm1zlo8] {
    min-width: 1047px;
}

.rpv-tabla col.c-desc[b-lnowm1zlo8] {
    width: auto;
}

/* Cabecera, lineas y fila elegida con los colores de las tablas del portal. */
.cmh-table.rpv-tabla th[b-lnowm1zlo8] {
    background: var(--sc-surface-soft);
    color: var(--sc-ink-soft);
    border-color: var(--sc-line-soft);
    border-bottom-color: var(--sc-line);
}

.cmh-table.rpv-tabla td[b-lnowm1zlo8] {
    border-color: var(--sc-line-soft);
}

.cmh-table.rpv-tabla tbody tr:hover[b-lnowm1zlo8] {
    background: var(--sc-hover);
}

.cmh-table.rpv-tabla tbody tr.is-selected[b-lnowm1zlo8] {
    background: var(--sc-accent) !important;
}

.rpv-tabla tbody tr[b-lnowm1zlo8] {
    cursor: pointer;
}

.rpv-tabla td.num[b-lnowm1zlo8] {
    text-align: right;
}

.rpv-tabla td.pre[b-lnowm1zlo8] {
    white-space: pre;
}

/* Columnas de colores del detalle (BackColor de cada columna). */
.rpv-detalle td.c-base[b-lnowm1zlo8] { background: #f0e1ff; }
.rpv-detalle td.c-acum[b-lnowm1zlo8] { background: #ffffca; }
.rpv-detalle td.c-ejec[b-lnowm1zlo8] { background: #37beff; }
.rpv-detalle td.c-cant[b-lnowm1zlo8] { background: #bfffdf; }
.rpv-detalle td.c-saldo[b-lnowm1zlo8] { background: #ffe1c4; }
.rpv-detalle td.c-exc[b-lnowm1zlo8] { background: #ffb9b9; }

/* DynamicForeColor / DynamicFontBold: titulo rojo en negrita, subtitulo verde azulado en negrita, partida azul. */
.rpv-detalle tr.e-titulo td[b-lnowm1zlo8] { color: #ff2f2f; font-weight: 700; }
.rpv-detalle tr.e-subtitulo td[b-lnowm1zlo8] { color: #008080; font-weight: 700; }
.rpv-detalle tr.e-partida td[b-lnowm1zlo8] { color: #006b9f; }

/* Fila actual del detalle: HighlightBackColor 128,191,255 con letra blanca en toda la fila. */
.rpv-detalle tr.is-actual td[b-lnowm1zlo8] {
    background: var(--sc-accent);
    color: #fff;
}

.rpv-botones[b-lnowm1zlo8] {
    display: flex;
    justify-content: flex-end;
    gap: 4px;
}

.rpv-boton[b-lnowm1zlo8] {
    min-width: 120px;
}

/* /Components/Sistemas/Scomm/ReporteOperaciones/RopCuboFiltro.razor.rz.scp.css */
/* Filtro - Cubo de Tareos, con la disposicion de FoxPro: Desde y Hasta en una linea, Tipo Reporte debajo y los dos
   botones con icono al pie. */
.rcf-form[b-3mjw6ip6vw] {
  display: grid;
  gap: 12px;
}

.rcf-fila[b-3mjw6ip6vw] {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Etiquetas en negrita y azul oscuro, como los lblbase de FoxPro. */
.rcf-etiqueta[b-3mjw6ip6vw] {
  font-weight: 700;
  color: rgb(0, 64, 128);
  white-space: nowrap;
}

.rcf-hasta[b-3mjw6ip6vw] {
  margin-left: 8px;
}

.rcf-fila[b-3mjw6ip6vw]  .rcf-fecha {
  width: 140px;
}

.rcf-tipo[b-3mjw6ip6vw] {
  flex: 1 1 auto;
  min-width: 0;
}

.rcf-pie[b-3mjw6ip6vw] {
  display: flex;
  justify-content: center;
  gap: 24px;
  margin-top: 16px;
}

/* /Components/Sistemas/Scomm/ReporteOperaciones/RopEscaneo.razor.rz.scp.css */
/* El selector de archivos va escondido dentro del boton: al pulsarlo se abre la ventana para elegir la imagen. */
.rop-escaneo[b-jr8ib0ycp8] {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
}

.rop-escaneo[b-jr8ib0ycp8]  input[type="file"] {
  display: none;
}

.rop-escaneo.is-disabled[b-jr8ib0ycp8] {
  opacity: .55;
  pointer-events: none;
}
/* /Components/Sistemas/Scomm/ReporteOperaciones/RopRegistro.razor.rz.scp.css */
/* Registro de Reporte de Operaciones: disposicion de min_reporteoperaciones_detalle. Las pestañas y los campos con
   sugerencias son componentes hijos: sus clases se alcanzan con ::deep. */
.rop-registro[b-wms2lddd0b] {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.rop-reg-arriba[b-wms2lddd0b] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.rop-fase[b-wms2lddd0b] {
  width: 260px;
}

.rop-periodo[b-wms2lddd0b] {
  width: 330px;
}

.rop-modos[b-wms2lddd0b] {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 0 0 0 auto;
  padding: 4px 10px;
  border: 1px solid var(--scomm-border);
  border-radius: var(--scomm-radius-sm);
}

.rop-modo[b-wms2lddd0b] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
}

.rop-reg-fila[b-wms2lddd0b] {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 8px;
}

.rop-campo[b-wms2lddd0b] {
  display: grid;
  gap: 2px;
}

.rop-numero[b-wms2lddd0b] { width: 150px; }
.rop-aux[b-wms2lddd0b] { width: 120px; }
.rop-zona[b-wms2lddd0b] { width: 105px; }
.rop-mina[b-wms2lddd0b] { width: 140px; }
.rop-ctta[b-wms2lddd0b] { width: 230px; }
.rop-turno[b-wms2lddd0b] { width: 165px; }
.rop-nombres[b-wms2lddd0b] { width: 270px; }

.rop-registro[b-wms2lddd0b]  .rop-labor { width: 110px; }
.rop-registro[b-wms2lddd0b]  .rop-dni { width: 92px; }
.rop-registro[b-wms2lddd0b]  .rop-hora,
.rop-hora[b-wms2lddd0b] { width: 64px; }

.rop-responsable[b-wms2lddd0b] {
  display: flex;
  gap: 6px;
}

.rop-al-pie[b-wms2lddd0b] {
  align-self: flex-end;
}

.rop-subtitulo[b-wms2lddd0b] {
  font-size: 13px;
  color: var(--scomm-primary-dark);
}

.rop-ciclos[b-wms2lddd0b] {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.rop-ciclo[b-wms2lddd0b] {
  display: grid;
  gap: 2px;
  padding: 4px 6px;
  border: 1px solid var(--scomm-border);
  border-radius: var(--scomm-radius-sm);
  text-align: center;
  font-size: 12px;
}

.rop-ciclo > div[b-wms2lddd0b] {
  display: flex;
  justify-content: space-around;
  gap: 4px;
}

.rop-tabs[b-wms2lddd0b] {
  display: flex;
  flex-wrap: wrap;
  gap: 2px;
  border-bottom: 1px solid var(--scomm-border-strong);
}

.rop-tab[b-wms2lddd0b] {
  padding: 6px 12px;
  border: 1px solid var(--scomm-border);
  border-bottom: none;
  border-radius: var(--scomm-radius-sm) var(--scomm-radius-sm) 0 0;
  background: var(--sc-page);
  color: var(--scomm-dark);
  cursor: pointer;
  font-size: 13px;
}

.rop-tab.is-active[b-wms2lddd0b] {
  background: #ffffff;
  color: var(--scomm-primary-dark);
  font-weight: 700;
}

.rop-tab:disabled[b-wms2lddd0b] {
  color: var(--sc-muted);
  cursor: not-allowed;
}

.rop-tab-cuerpo[b-wms2lddd0b] {
  min-height: 230px;
  padding: 8px 0;
}

.rop-reg-pie[b-wms2lddd0b] {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: end;
}

.rop-comentarios[b-wms2lddd0b] {
  display: grid;
  gap: 4px;
}

.rop-avisos[b-wms2lddd0b] {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

.rop-aviso[b-wms2lddd0b] {
  color: var(--sc-danger);
  font-weight: 600;
  font-size: 13px;
}

.rop-reg-botones[b-wms2lddd0b] {
  display: grid;
  gap: 8px;
  min-width: 110px;
}

/* ----- Grillas de las pestañas y del tareo ----- */
.rop-registro[b-wms2lddd0b]  .rop-bloque {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.rop-registro[b-wms2lddd0b]  .rop-bloque-titulo {
  font-size: 13px;
  text-align: center;
}

.rop-registro[b-wms2lddd0b]  .rop-bloque-cuerpo {
  display: flex;
  gap: 6px;
  align-items: flex-start;
  min-width: 0;
}

.rop-registro[b-wms2lddd0b]  .rop-grid {
  max-height: 220px;
  overflow: auto;
  min-width: 0;
}

.rop-registro[b-wms2lddd0b]  .rop-grid-ancha {
  flex: 1 1 auto;
}

.rop-registro[b-wms2lddd0b]  .rop-grid-tareo {
  max-height: 180px;
  flex: 1 1 auto;
}

.rop-registro[b-wms2lddd0b]  .rop-grid td {
  padding: 2px 4px;
}

.rop-registro[b-wms2lddd0b]  .rop-celda {
  width: 100%;
  min-width: 60px;
  padding: 2px 4px;
  border: 1px solid var(--scomm-border);
  border-radius: 4px;
  font-size: 13px;
  background: #ffffff;
}

.rop-registro[b-wms2lddd0b]  .rop-num {
  text-align: right;
  min-width: 70px;
}

.rop-registro[b-wms2lddd0b]  .rop-corto {
  min-width: 52px;
  width: 58px;
}

.rop-registro[b-wms2lddd0b]  .rop-chk {
  text-align: center;
}

.rop-registro[b-wms2lddd0b]  .rop-ro {
  background: #ffffbf;
}

.rop-registro[b-wms2lddd0b]  .rop-fila-sel td {
  background: #dbeafe;
}

.rop-registro[b-wms2lddd0b]  .rop-grid-botones {
  display: grid;
  gap: 6px;
  padding-top: 24px;
}

.rop-registro[b-wms2lddd0b]  .rop-tareo {
  display: flex;
  gap: 8px;
  align-items: flex-start;
}

.rop-registro[b-wms2lddd0b]  .rop-tareo-botones {
  display: grid;
  gap: 6px;
  align-content: start;
}

.rop-registro[b-wms2lddd0b]  .rop-explosivos,
.rop-sostenimiento[b-wms2lddd0b] {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: flex-start;
}

.rop-registro[b-wms2lddd0b]  .rop-disparos {
  display: grid;
  gap: 2px;
  min-width: 90px;
  padding: 4px;
  border: 1px solid var(--scomm-border);
  border-radius: var(--scomm-radius-sm);
}

.rop-registro[b-wms2lddd0b]  .rop-disparo {
  padding: 3px 6px;
  border: 1px solid transparent;
  border-radius: 4px;
  background: transparent;
  text-align: left;
  cursor: pointer;
  font-size: 13px;
}

.rop-registro[b-wms2lddd0b]  .rop-disparo.is-selected {
  border-color: #93c5fd;
  background: #eff6ff;
  font-weight: 700;
}

.rop-registro[b-wms2lddd0b]  .rop-administrar {
  margin-top: 12px;
}

/* ----- Mantenimientos "Administrar" (ventanas encima del registro) ----- */
.rop-registro[b-wms2lddd0b]  .rop-adm {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: start;
}

.rop-registro[b-wms2lddd0b]  .rop-adm.rop-adm-con-arbol {
  grid-template-columns: 180px minmax(0, 1fr) auto;
}

.rop-registro[b-wms2lddd0b]  .rop-adm-arbol {
  display: grid;
  align-content: start;
  gap: 2px;
  padding: 6px;
  border: 1px solid var(--scomm-border);
  border-radius: var(--scomm-radius-sm);
}

.rop-registro[b-wms2lddd0b]  .rop-adm-nodo {
  padding: 4px 6px;
  border: 1px solid transparent;
  border-radius: 4px;
  background: transparent;
  text-align: left;
  font-size: 13px;
  cursor: pointer;
}

.rop-registro[b-wms2lddd0b]  .rop-adm-nodo.is-selected {
  border-color: #93c5fd;
  background: #eff6ff;
  font-weight: 700;
}

.rop-registro[b-wms2lddd0b]  .rop-adm-grid {
  max-height: 320px;
  overflow: auto;
}

/* La tabla comun pide 520px de ancho minimo; en estas ventanas la grilla se ajusta a su columna. */
.rop-registro[b-wms2lddd0b]  .rop-adm-grid .cmh-table {
  min-width: 0;
}

.rop-registro[b-wms2lddd0b]  .rop-adm-sel td {
  background: #dbeafe;
}

.rop-registro[b-wms2lddd0b]  .rop-adm-celda {
  width: 100%;
  padding: 2px 4px;
  border: 1px solid var(--scomm-border);
  border-radius: 4px;
  font-size: 13px;
}

.rop-registro[b-wms2lddd0b]  .rop-adm-botones {
  display: grid;
  gap: 6px;
  min-width: 100px;
}

.rop-registro[b-wms2lddd0b]  .rop-adm-espacio {
  height: 24px;
}

.rop-registro[b-wms2lddd0b]  .rop-adm-form {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 8px 10px;
  align-items: center;
}

.rop-registro[b-wms2lddd0b]  .rop-adm-pie {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 14px;
}
/* /Components/Sistemas/Scomm/ReporteOperaciones/RopTareos.razor.rz.scp.css */
/* Tareos (min_reportediariofrenteturno_tareos): arbol a la izquierda, fechas y grilla al medio, botones a la derecha. */
.rtar[b-94lus2g9o9] {
  display: grid;
  grid-template-columns: 200px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: stretch;
}

.rtar-arbol[b-94lus2g9o9] {
  min-height: 460px;
  max-height: calc(100vh - 220px);
  overflow: auto;
  padding: 8px;
  background: #ffffff;
  border: 1px solid var(--scomm-border);
  border-radius: var(--scomm-radius-md);
  font-size: 13px;
}

.rtar-centro[b-94lus2g9o9] {
  min-width: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 8px;
}

.rtar-fechas[b-94lus2g9o9] {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: flex-end;
}

.rtar-campo[b-94lus2g9o9] {
  display: grid;
  gap: 2px;
}

.rtar-grid[b-94lus2g9o9] {
  min-height: 420px;
  max-height: calc(100vh - 280px);
  overflow: auto;
}

.rtar-grid td[b-94lus2g9o9] {
  white-space: nowrap;
}

.rtar-botones[b-94lus2g9o9] {
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: 8px;
  min-width: 90px;
  padding-top: 46px;
}

@media (max-width: 900px) {
  .rtar[b-94lus2g9o9] {
    grid-template-columns: 1fr;
  }

  .rtar-arbol[b-94lus2g9o9] {
    min-height: auto;
    max-height: 260px;
  }

  .rtar-botones[b-94lus2g9o9] {
    display: flex;
    padding-top: 0;
  }
}
/* /Components/Sistemas/Scomm/ValorizacionOocc/ConsolidadoImprimir.razor.rz.scp.css */
.con-acciones[b-hmeectrmrl] {
  max-width: 900px;
}

/* Hoja vertical como el FRX (8 pulgadas de ancho): detalle Arial 7 pt, titulos Arial Narrow. */
.con-reporte[b-hmeectrmrl] {
  width: 200mm;
  margin: 0 auto;
  color: #000;
  background: #fff;
  font-family: Arial, sans-serif;
  font-size: 9px;
}

.con-tabla[b-hmeectrmrl] {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.c-pres[b-hmeectrmrl] { width: 66%; }
.c-und[b-hmeectrmrl] { width: 5%; }
.c-met[b-hmeectrmrl] { width: 9%; }
.c-pre[b-hmeectrmrl] { width: 9%; }
.c-tot[b-hmeectrmrl] { width: 11%; }

.con-tabla th[b-hmeectrmrl] {
  background: #fff;
  color: #000;
}

.con-cabecera[b-hmeectrmrl] {
  font-family: "Arial Narrow", Arial, sans-serif;
  font-weight: 400;
  text-align: left;
  font-size: 11px;
  padding-bottom: 8px;
}

.con-titulo[b-hmeectrmrl] {
  text-align: center;
  font-size: 21px;
  font-weight: 700;
  margin-top: 4px;
}

.con-periodo[b-hmeectrmrl] {
  text-align: center;
  font-size: 16px;
  font-weight: 700;
}

.con-proveedor[b-hmeectrmrl] {
  font-size: 14px;
  margin-top: 4px;
}

.b[b-hmeectrmrl] {
  font-weight: 700;
}

.mon[b-hmeectrmrl] {
  font-family: "Arial Narrow", Arial, sans-serif;
  font-size: 11px;
  font-weight: 700;
}

.con-detraccion td[b-hmeectrmrl] {
  border-bottom: 1px solid #000;
  padding: 6px 2px 2px;
  font-size: 9px;
}

.con-trabajo th[b-hmeectrmrl] {
  background: #d9d9d9;
  border-top: 1px solid #000;
  border-bottom: 1px solid #000;
  border-left: 1px solid #000;
  border-right: 1px solid #000;
  font-family: "Arial Narrow", Arial, sans-serif;
  font-size: 12px;
  font-weight: 700;
  text-align: center;
  padding: 2px;
}

.con-tabla td[b-hmeectrmrl] {
  border-left: 1px solid #000;
  border-right: 1px solid #000;
  border-bottom: 1px solid #000;
  padding: 1px 3px;
  white-space: nowrap;
  overflow: hidden;
}

.con-tabla td.desc[b-hmeectrmrl] {
  white-space: pre;
}

.con-tabla td.num[b-hmeectrmrl] {
  text-align: right;
}

.con-tabla .centro[b-hmeectrmrl] {
  text-align: center;
}

/* Fila C: el presupuesto en negrita a 9 pt; si no entra, cortado con puntos suspensivos como el FRX. */
.con-c td.desc[b-hmeectrmrl] {
  font-weight: 700;
  font-size: 12px;
  white-space: nowrap;
  text-overflow: ellipsis;
}

/* Fila T: Sub Total en recuadro sobre Precio y TOTAL. */
.con-t td.subtotal-etq[b-hmeectrmrl] {
  font-family: "Arial Narrow", Arial, sans-serif;
  font-size: 11px;
  font-weight: 700;
  text-align: right;
  border-top: 1px solid #000;
  background: #d9d9d9;
}

.con-t td.num[b-hmeectrmrl] {
  border-top: 1px solid #000;
  background: #d9d9d9;
}

.con-pie td[b-hmeectrmrl] {
  border: 0;
  padding: 4px 3px;
}

.con-pie td.etq[b-hmeectrmrl] {
  font-family: "Arial Narrow", Arial, sans-serif;
  font-size: 11px;
  font-weight: 700;
  text-align: right;
  overflow: visible;
}

.con-pie td.num[b-hmeectrmrl] {
  font-size: 11px;
}

.con-pie-detraccion td[b-hmeectrmrl] {
  border-top: 1px solid #000;
}

/* Resumen: COSTO DIRECTO, costos indirectos y TOTAL GENERAL en el recuadro de la banda de resumen. */
.con-resumen[b-hmeectrmrl] {
  display: grid;
  grid-template-columns: 1fr auto 100px;
  gap: 6px;
  margin-top: 10px;
  padding: 8px 6px;
  border: 1px solid #000;
  font-family: "Arial Narrow", Arial, sans-serif;
  font-size: 11px;
}

.con-resumen .etq[b-hmeectrmrl] {
  text-align: right;
  font-weight: 700;
}

.con-resumen .num[b-hmeectrmrl] {
  text-align: right;
  font-family: Arial, sans-serif;
}

@media print {
  .con-reporte[b-hmeectrmrl] {
    width: 100%;
    margin: 0;
  }

  .con-tabla thead[b-hmeectrmrl] {
    display: table-header-group;
  }

  .con-tabla tbody tr[b-hmeectrmrl] {
    break-inside: avoid;
  }
}
/* /Components/Sistemas/Scomm/ValorizacionOocc/ValorizadoImprimir.razor.rz.scp.css */
.val-acciones[b-cbckxzd86o] {
  max-width: 900px;
}

/* Hoja A4 horizontal como el FRX (el @page va en el componente): detalle Arial 7 pt, titulos Arial Narrow. */
.val-reporte[b-cbckxzd86o] {
  width: 275mm;
  margin: 0 auto;
  color: #000;
  background: #fff;
  font-family: Arial, sans-serif;
  font-size: 9px;
}

.val-tabla[b-cbckxzd86o] {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.c-item[b-cbckxzd86o] { width: 4%; }
.c-desc[b-cbckxzd86o] { width: 24%; }
.c-und[b-cbckxzd86o] { width: 3%; }
.c-pu[b-cbckxzd86o] { width: 5%; }
.c-num[b-cbckxzd86o] { width: 6%; }

.val-tabla th[b-cbckxzd86o] {
  background: #fff;
  color: #000;
}

.val-cabecera[b-cbckxzd86o] {
  font-family: "Arial Narrow", Arial, sans-serif;
  font-weight: 400;
  text-align: left;
  font-size: 11px;
  padding-bottom: 8px;
}

.val-titulo[b-cbckxzd86o] {
  text-align: center;
  font-size: 24px;
  font-weight: 700;
  margin: 2px 0 6px;
}

.val-datos[b-cbckxzd86o] {
  display: flex;
  gap: 40px;
}

.val-datos-izq[b-cbckxzd86o],
.val-datos-der[b-cbckxzd86o] {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1px 6px;
}

.val-datos-izq[b-cbckxzd86o] {
  width: 28%;
}

.val-datos-der[b-cbckxzd86o] {
  flex: 1;
}

.b[b-cbckxzd86o] {
  font-weight: 700;
}

.val-grupo th[b-cbckxzd86o] {
  border: 1px solid #000;
  background: #d9d9d9;
  font-family: "Arial Narrow", Arial, sans-serif;
  font-size: 12px;
  font-weight: 700;
  text-align: center;
  padding: 1px 2px;
  white-space: nowrap;
}

.val-grupo th.sin-borde[b-cbckxzd86o] {
  border: 0;
  background: #fff;
}

.mon[b-cbckxzd86o] {
  font-size: 11px;
}

.val-tabla td[b-cbckxzd86o] {
  border-left: 1px solid #000;
  border-right: 1px solid #000;
  border-bottom: 1px solid #000;
  padding: 0 2px;
  white-space: nowrap;
  overflow: hidden;
}

.val-tabla td.desc[b-cbckxzd86o] {
  white-space: pre;
  text-overflow: clip;
}

.val-tabla td.num[b-cbckxzd86o] {
  text-align: right;
}

.val-tabla td.centro[b-cbckxzd86o] {
  text-align: center;
}

/* Partidas de primer nivel: el recuadro gris del FRX desde la descripcion hasta el final. */
.val-nivel1 td:not(:first-child)[b-cbckxzd86o] {
  background: #d9d9d9;
}

.val-totales td[b-cbckxzd86o] {
  font-weight: 700;
  border: 1px solid #000;
  background: #d9d9d9;
}

.val-totales td.sin-borde[b-cbckxzd86o] {
  border: 0;
  background: #fff;
}

/* Recuadro de COSTO DIRECTO / costos indirectos / VALORIZADO (Arial Narrow 8; los importes en Arial 8 negrita). */
.val-costos[b-cbckxzd86o] {
  display: grid;
  grid-template-columns: 1fr auto 70px;
  gap: 6px 6px;
  width: 28%;
  margin-top: 10px;
  padding: 8px 6px;
  font-family: "Arial Narrow", Arial, sans-serif;
  font-size: 11px;
  border: 1px solid transparent;
}

.val-costos.con-recuadro[b-cbckxzd86o] {
  border-color: #000;
}

.val-costos .num[b-cbckxzd86o] {
  text-align: right;
  font-family: Arial, sans-serif;
}

.val-costos .etq[b-cbckxzd86o] {
  text-align: right;
}

@media print {
  .val-reporte[b-cbckxzd86o] {
    width: 100%;
    margin: 0;
  }

  .val-tabla thead[b-cbckxzd86o] {
    display: table-header-group;
  }

  .val-tabla tbody tr[b-cbckxzd86o] {
    break-inside: avoid;
  }
}
