#filtrosCollapse {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-bottom: 0; /* evitar altura extra que genera scroll innecesario */
    background: transparent;
}

/* Un solo panel: el form es el contenedor visual */
#filtrosCollapse #filtersForm {
    background: linear-gradient(180deg, #fffdf8 0%, #f3f1ea 100%);
    border: 1px solid #d8ddd2;
    border-radius: 1rem;
    padding: 0.45rem 0.62rem 0.5rem;
    box-shadow: 0 10px 22px rgba(24, 35, 27, 0.05);
}

#filtrosCollapse .filters-title {
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    line-height: 1;
    color: #6a7268;
    margin: 0;
    padding: 0;
}
#filtrosCollapse .row.g-1 { --bs-gutter-y: .05rem; }
#filtrosCollapse #filtersForm { padding-top: 2px; padding-bottom: 2px; }
#filtrosCollapse #filtersForm > [class^="col-"],
#filtrosCollapse #filtersForm > [class*=" col-"] {
    padding-top: 0;
    padding-bottom: 0;
}

#filtrosCollapse #filtersForm .filtros-head {
    padding-top: 0;
    padding-bottom: 0;
}
#filtrosCollapse .filters-fields .row { --bs-gutter-y: .2rem; }
#filtrosCollapse .filters-fields .row > [class^="col-"],
#filtrosCollapse .filters-fields .row > [class*=" col-"] {
    padding-top: 0;           /* elimina aire arriba del primer renglón */
    padding-bottom: .1rem;    /* deja un mínimo para separar del botón */
}
#filtrosCollapse .row.g-2 { --bs-gutter-y: .25rem; }
#filtrosCollapse .form-control, #filtrosCollapse .form-select { line-height: 1.05; }
/* Compactación máxima solo dentro de filtros */
#filtrosCollapse .form-control-sm, #filtrosCollapse .form-select-sm {
    padding-top: .35rem;
    padding-bottom: .35rem;
    min-height: 2.2rem;
    height: 2.2rem;
    border-radius: .75rem;
    border-color: #d5dad0;
    background: rgba(255,255,255,0.88);
}
#filtrosCollapse .form-label { margin: 0 0 .2rem 0; font-size: .78rem; line-height: 1.1; color: #5f685d; font-weight: 700; }
#filtrosCollapse .btn.btn-sm { padding-top: .35rem; padding-bottom: .35rem; border-radius: .8rem; }
body, #entidad-root {
    background: var(--gris-claro);
}

/* Permisos (roles): hacer el checkbox evidente y fácil de clickear */
.permiso-checkbox-select .permiso-item {
    cursor: pointer;
}
.permiso-checkbox-select .permiso-item {
    background: var(--bs-body-bg, #fff);
}
.permiso-checkbox-select .permiso-item input[type="checkbox"] {
    width: 1.15rem;
    height: 1.15rem;
    margin-top: .15rem;
    flex: 0 0 auto;
}
.permiso-checkbox-select .permiso-item label {
    cursor: pointer;
    user-select: none;
    flex: 1 1 auto;
}

/* Layout del listado genérico: evitar micro-scroll cuando hay pocas filas */
.entidad-page {
    min-height: 100%;
    display: flex;
    flex-direction: column;
}

#entidad-root {
    flex: 0 0 auto;
    min-height: 0;
    scroll-margin-top: .75rem;
}

/* La tabla sólo gestiona desborde horizontal; el documento conserva el scroll vertical. */
#entidadListWrapper {
    flex: 0 0 auto;
    overflow-x: auto;
    overflow-y: visible;
    background: linear-gradient(180deg, #fffdf9 0%, #f7f5ee 100%);
    border: 1px solid #d8ddd2;
    border-radius: 1rem;
    box-shadow: 0 14px 28px rgba(22, 33, 25, 0.06);
}

#entidadListFooter {
    flex: 0 0 auto;
    margin-top: .25rem !important;
}

/* Los filtros y listados extensos crecen con el documento. */
body.page-entidad-list .main-area {
    overflow-y: auto;
}
.list-title {
    font-size: clamp(1.55rem, 1.1rem + 1.1vw, 2rem);
    font-weight: 700;
    color: #243028;
    letter-spacing: -0.02em;
    margin-bottom: 0;
    line-height: 1.08;
}
.list-toolbar .badge {
    background: #f4efe1 !important;
    color: #244f2e !important;
    font-weight: 600;
}
/* Toolbar sticky */
.list-toolbar {
    position: sticky;
    top: var(--navbar-height);
    z-index: 101; /* por encima de thead sticky pero bajo la navbar/dropdowns */
    background: linear-gradient(180deg, rgba(255, 253, 248, 0.98) 0%, rgba(244, 242, 235, 0.95) 100%);
    border: 1px solid #d8ddd2;
    border-radius: 1rem;
    box-shadow: 0 12px 26px rgba(24, 35, 27, 0.06);
    padding: 0.5rem 0.62rem;
    margin-bottom: 0.3rem;
}
.list-toolbar .toolbar-actions {
    row-gap: 0.45rem;
}
.list-toolbar.is-stuck {
    box-shadow: 0 12px 24px rgba(24, 35, 27, 0.1);
    border-color: #d2d8cb;
}

.form-titlebar {
    background: linear-gradient(180deg, rgba(255, 253, 248, 0.98) 0%, rgba(244, 242, 235, 0.95) 100%);
    border: 1px solid #d8ddd2;
    border-radius: 1rem;
    box-shadow: 0 12px 26px rgba(24, 35, 27, 0.06);
    padding: 0.85rem 1rem;
}

.toolbar-actions .btn,
.toolbar-actions .search-group .form-control,
.toolbar-actions .search-group .input-group-text {
    min-height: 2.45rem;
}

.toolbar-actions .btn {
    border-radius: 0.9rem;
}

.toolbar-actions .btn-success {
    background: #d4a72c !important;
    border-color: #d4a72c !important;
    color: #243028 !important;
}

.toolbar-actions .btn-outline-secondary {
    background: rgba(255, 253, 248, 0.8);
    border-color: #d4d9cf;
    color: #566257;
}

.toolbar-actions .btn-outline-secondary:hover,
.toolbar-actions .btn-outline-secondary:focus {
    background: #f1eee6;
    border-color: #c7cec1;
    color: #243028;
}

.toolbar-actions .btn-outline-secondary:disabled,
.toolbar-actions .btn-outline-secondary[aria-disabled="true"],
.toolbar-actions .dropdown-toggle:disabled {
    opacity: 0.62;
    background: rgba(245, 242, 234, 0.9);
    border-color: #dde1d8;
    color: #8a9388;
}

.search-group {
    min-width: min(100%, 16rem);
}

.search-group .input-group-text {
    background: rgba(255, 255, 255, 0.72);
    border-color: #d5dad0;
    border-top-left-radius: 0.9rem;
    border-bottom-left-radius: 0.9rem;
}

.search-group .form-control {
    border-color: #d5dad0;
    background: rgba(255, 255, 255, 0.88);
}

.search-group .btn {
    border-top-right-radius: 0.9rem;
    border-bottom-right-radius: 0.9rem;
}
.btn-volver-dev {
    background: transparent;
    border: none;
    color: var(--verde-cana);
    font-size: 1.7rem;
    padding: 0.2rem 0.5rem;
    transition: var(--transition);
}
.btn-volver-dev:hover, .btn-volver-dev:focus {
    color: var(--verde-oscuro);
    background: var(--gris-medio);
    border-radius: 50%;
}
/* Formulario entidad compacto */
.filtro-card { padding-top: .75rem !important; padding-bottom: .85rem !important; }
.filtro-card .form-label { margin-bottom: .2rem; font-size: .9rem; font-weight: 600; }
.filtro-card .form-text { margin-top: .1rem; }
.filtro-card .form-control-sm, .filtro-card .form-select-sm { padding-top: .25rem; padding-bottom: .25rem; }

.entidad-form-card {
    background: linear-gradient(180deg, #fffdf9 0%, #f7f5ee 100%);
    border: 1px solid #d8ddd2 !important;
    border-radius: 1rem !important;
    box-shadow: 0 10px 22px rgba(22, 33, 25, 0.05) !important;
    width: 100%;
    padding: 0.8rem 1rem 0.95rem !important;
}

/* Estándar de formularios */
.form-page-main {
    --form-page-max-width: 1520px;
    max-width: var(--form-page-max-width);
    padding-left: clamp(0.25rem, .6vw, 0.65rem);
    padding-right: clamp(0.25rem, .6vw, 0.65rem);
}

.form-std { font-size: .9rem; }
/* Neutralizar estilos globales del form para que mande el padding de la card */
.form-std {
    padding: 0 !important;
    margin-bottom: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
}
.form-std .row.g-2 {
    --bs-gutter-x: .8rem;
    --bs-gutter-y: .22rem;
}
.form-std .row.g-2 > [class^="col-"],
.form-std .row.g-2 > [class*=" col-"] {
    display: flex;
    align-items: flex-start;
}
.form-std .form-field-block {
    margin-bottom: .12rem;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
}
.form-std .form-control, .form-std .form-select { font-size: .85rem; }
.form-std .form-label {
    margin-bottom: .14rem;
    font-size: .78rem;
    line-height: 1.12;
    font-weight: 600;
    color: #4f5d54;
    min-height: 1.56rem;
    display: flex;
    align-items: flex-end;
}
/* Altura y padding más contenidos para evitar scroll innecesario */
.form-std .form-control,
.form-std .form-select {
    min-height: 2rem;
    height: auto;
    padding-top: .12rem;
    padding-bottom: .12rem;
    padding-left: .58rem;
    padding-right: .58rem;
    border-radius: .72rem;
    border-color: #d5dad0;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: none;
}
.form-std .form-control:focus,
.form-std .form-select:focus {
    border-color: #7aa787;
    box-shadow: 0 0 0 0.14rem rgba(58, 108, 70, 0.12);
}
.form-std textarea.form-control {
    min-height: 4.1rem;
    padding-top: .38rem;
    padding-bottom: .38rem;
}
.form-std .form-text {
    margin-top: .1rem;
    font-size: .72rem;
    line-height: 1.2;
    color: #708076;
}
.form-std .text-danger.small {
    margin-top: .15rem;
    font-size: .72rem !important;
    line-height: 1.2;
}
.form-std input[type="date"],
.form-std input[type="datetime-local"] {
    min-width: 11.25rem;
    width: 100%;
    font-variant-numeric: tabular-nums;
    padding-right: 2rem;
}
.form-std input[type="date"]::-webkit-calendar-picker-indicator,
.form-std input[type="datetime-local"]::-webkit-calendar-picker-indicator {
    margin: 0;
    padding: 0;
    opacity: .9;
}
.form-std .form-check {
    margin-top: .35rem !important;
}
.form-std .btn-row {
    margin-top: .95rem !important;
    padding-top: .35rem;
}

@media (max-width: 767.98px) {
    .form-page-main {
        padding-left: .6rem;
        padding-right: .6rem;
    }
    .entidad-form-card {
        padding: 0.7rem 0.75rem 0.85rem !important;
    }
    .form-std .row.g-2 {
        --bs-gutter-x: .55rem;
        --bs-gutter-y: .25rem;
    }
    .form-std .form-label {
        min-height: 0;
    }
}

/* Tom Select (Bootstrap 5): evitar doble icono.
   Usamos el caret triangular nativo de Tom Select (pseudo-elemento), y anulamos
   cualquier background-image extra para que no se superpongan íconos. */
.entidad-form-card .ts-wrapper.single .ts-control {
    background-image: none !important;
}

/* Stock: desactivar flecha de Bootstrap en form-select para evitar duplicados */
.card .form-select {
    background-image: none !important;
}

.form-std .form-check-input { transform: scale(0.95); }
.form-std .btn-row { margin-top: .75rem; }
.form-std .btn-row .btn { min-width: 7.5rem; }
.form-std .btn-row .btn + .btn { margin-left: 2rem; } /* fallback si cambia layout */

/* Legajos: mantener checkbox "Eliminar archivo" alineado en la misma línea que su texto */
.form-std .file-clear .d-inline-flex {
    vertical-align: middle;
    white-space: nowrap;
}

.form-std .file-clear input[type="checkbox"] {
    margin-top: 0 !important;
    margin-bottom: 0;
}

.form-std .file-clear label {
    line-height: 1.2;
}

/* Acciones en CRUD con renglones/líneas (patrón común) */
.crud-actions-col {
    width: 130px;
    text-align: center;
}

.crud-actions-cell {
    text-align: center;
    vertical-align: middle;
}

.crud-action-btn {
    min-width: 2rem;
    min-height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: .28rem;
    border: 1px solid #d3d9ce;
    background: rgba(255,255,255,.96);
    box-shadow: none;
}

.crud-action-group {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .2rem;
}
.btn-nuevo-circular {
    background: var(--verde-cana);
    color: var(--blanco);
    border: none;
    border-radius: 50%;
    width: 2.5rem;
    height: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    transition: var(--transition);
}
.btn-nuevo-circular:hover, .btn-nuevo-circular:focus {
    background: var(--verde-oscuro);
    color: var(--blanco);
}
.filtros-bar .form-control {
    min-width: 120px;
}
/* Panel de filtros compacto */
.filters-card {
    position: relative;
    padding: 8px !important; /* mismo padding en todos los lados (base móvil) */
    border: 1px solid #d3efe0; /* borde más liviano */
    box-shadow: none;
    background: #d8f3e8; /* igual al encabezado de la tabla para cohesión */
    transition: border-color .15s ease, box-shadow .15s ease;
    margin-top: 4px !important;   /* separación superior más compacta */
    margin-bottom: 4px !important;/* separación inferior más compacta */
    border-bottom-width: 0; /* fusiona visualmente con lo de abajo sin superposición */
}

@media (min-width: 576px) {
    .filters-card {
        padding: 12px !important; /* mismo padding en todos los lados (desktop/tablet) */
    }
}
.filters-fields {
    background: #e3f2ec; /* fondo interno suave verde (anterior) */
    border: 1px solid #bfe6d6;
    border-radius: .375rem;
    padding: 6px; /* mismo padding en todos los lados (base móvil) */
}

@media (min-width: 576px) {
    .filters-fields {
        padding: 10px; /* mismo padding en todos los lados (desktop/tablet) */
    }
}
.filters-fields .form-label { margin-bottom: .1rem; font-size: .875rem; }
.filters-fields .form-control-sm { padding-top: .15rem; padding-bottom: .15rem; }
.filters-card .form-label { margin-bottom: .25rem; }
.filters-card .form-control-sm { padding-top: .25rem; padding-bottom: .25rem; }
.filters-close {
    position: absolute;
    top: .05rem; /* acompaña la reducción de padding */
    right: .5rem;
    width: .85rem;
    height: .85rem;
    background-size: .85rem .85rem;
}
/* Estado abierto: borde un poco más marcado y realce sutil */
#filtrosCollapse.show .filters-card {
    border-color: #bfe6d6; /* un poco más marcado al abrir */
    box-shadow: 0 6px 16px rgba(0,0,0,0.08); /* sombra suave solo cuando está abierto */
}
/* (limpieza) se eliminan duplicados de estilos ya definidos arriba */
.entidad-table th, .entidad-table td {
    text-align: left; /* alinear columnas a la izquierda */
    vertical-align: middle;
    white-space: normal; /* permitir salto de línea en celdas */
    overflow-wrap: anywhere; /* cortar palabras largas como emails/urls */
    word-break: break-word;
    line-height: 1.15;
}
.hyphenate-text,
.report-table th,
.report-table td {
    -webkit-hyphens: auto;
    hyphens: auto;
    overflow-wrap: break-word;
    word-break: normal;
}
/* Cabeceras: no wrap en títulos de columnas */
.entidad-table th { white-space: nowrap; overflow-wrap: normal; word-break: normal; }
.entidad-table thead tr {
    background: #f1ecd9;
}
.entidad-table th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #f1ecd9 !important;
    color: #344136;
    font-weight: 600;
    border-bottom: 1px solid #ddd4bb;
    border-top: none;
    padding-top: .36rem;
    padding-bottom: .36rem;
    font-size: .84rem;
    line-height: 1.08;
}
.entidad-table tbody tr:nth-child(even) {
    background: rgba(209, 226, 204, 1);
}
.entidad-table tbody tr:nth-child(odd) {
    background: rgba(248, 242, 228, 1);
}
.entidad-table tbody tr:hover {
    background: #eef3eb;
}
.entidad-table td {
    padding-top: .22rem;
    padding-bottom: .22rem;
    font-size: .84rem;
    border-bottom-color: #e3e7de;
}
.entidad-table .acciones-header,
.entidad-table .acciones-cell {
    padding-right: 1rem;
    width: 1%;
    min-width: 7.4rem;
}

/* Mantener visible la primera columna durante el scroll horizontal */
.entidad-table thead th:first-child,
.entidad-table tbody td:first-child {
    position: sticky;
    left: 0;
    z-index: 2;
    box-shadow: 10px 0 14px -12px rgba(38, 48, 35, 0.28);
}

.entidad-table thead th:first-child {
    z-index: 4;
    background: #f4f2eb;
}

.entidad-table tbody tr:nth-child(even) td:first-child {
    background: rgba(209, 226, 204, 1);
}

.entidad-table tbody tr:nth-child(odd) td:first-child {
    background: rgba(248, 242, 228, 1);
}

.entidad-table tbody tr:hover td:first-child {
    background: #eef3eb;
}

/* Mantener visible la columna de acciones durante el scroll horizontal */
.entidad-table .acciones-header,
.entidad-table .acciones-cell {
    position: sticky;
    right: 0;
    z-index: 3;
    box-shadow: -14px 0 18px -10px rgba(38, 48, 35, 0.42);
}

.entidad-table thead .acciones-header {
    z-index: 5;
    background: #f4f2eb;
}

.entidad-table tbody tr:nth-child(even) .acciones-cell {
    background: rgba(209, 226, 204, 1);
}

.entidad-table tbody tr:nth-child(odd) .acciones-cell {
    background: rgba(248, 242, 228, 1);
}

.entidad-table tbody tr:hover .acciones-cell {
    background: #eef3eb;
}
.entidad-table tbody tr:has(.acciones-group .dropdown.show),
.entidad-table tbody tr:has(.acciones-group [aria-expanded="true"]) {
    position: relative;
    z-index: 8;
}
.entidad-table tbody tr:has(.acciones-group .dropdown.show) .acciones-cell,
.entidad-table tbody tr:has(.acciones-group [aria-expanded="true"]) .acciones-cell {
    z-index: 9;
}
.entidad-table .acciones-group {
    display: inline-flex;
    align-items: center;
    gap: .22rem;
    padding: .14rem .18rem;
    border-radius: .32rem;
    background: rgba(255,255,255,.96);
    border: 1px solid #d3d9ce;
}
.entidad-table .acciones-group .btn {
    border-radius: .28rem;
    min-width: 1.9rem;
    min-height: 1.9rem;
    padding-left: .28rem;
    padding-right: .28rem;
}
.entidad-table tbody td[colspan] {
    background: linear-gradient(180deg, #fffdf8 0%, #f6f3eb 100%);
}
.entidad-table tbody td[colspan] .text-muted {
    max-width: 24rem;
    margin: 0 auto;
}

@media (max-width: 768px) {
    .entidad-table {
        width: 100%;
        table-layout: auto;
    }

    .entidad-table th {
        white-space: normal;
        font-size: 0.92rem;
        line-height: 1.15;
        padding-top: 0.42rem;
        padding-bottom: 0.42rem;
    }

    .entidad-table td {
        padding-top: 0.36rem;
        padding-bottom: 0.36rem;
        padding-left: 0.55rem;
        padding-right: 0.55rem;
    }

    .entidad-table .acciones-header,
    .entidad-table .acciones-cell {
        width: 96px !important;
        min-width: 96px;
        max-width: 96px;
        padding-right: 0.3rem;
        padding-left: 0.3rem;
        white-space: nowrap;
    }

    .entidad-table .acciones-group {
        gap: 0.18rem;
        padding: 0.12rem 0.16rem;
    }

    .entidad-table .acciones-group .btn {
        min-width: 1.72rem;
        min-height: 1.72rem;
        padding: 0.12rem 0.2rem;
    }
}
/* Truncado de celdas (una línea con elipsis) */
.truncate-cell {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
    max-width: 240px; /* ancho base; ajustar según necesidad */
}
@media (min-width: 992px) {
    .truncate-cell { max-width: 300px; }
}

/* Productores: evitar scroll horizontal ajustando el layout de tabla.
   - fixed layout hace que la tabla no crezca por contenidos
   - headers pueden envolver
   - el truncado toma el ancho real de la celda
*/
.page-productores-list .entidad-table {
    table-layout: fixed;
    width: 100%;
}
.page-productores-list .entidad-table th { white-space: nowrap; }

/* Productores: 1 línea por registro (ellipsis) */
.page-productores-list .truncate-cell {
    max-width: 100%;
    white-space: nowrap;
}

/* Productores: padding compacto entre columnas */
.page-productores-list .entidad-table th,
.page-productores-list .entidad-table td {
    padding: .25rem .35rem;
}

/* Productores: anchos fijos sólo en columnas "cortas".
    Evita combinaciones de % + min-width que terminan forzando overflow-x. */
.page-productores-list .col-prod-codigo { width: 10ch; }
.page-productores-list th.col-prod-codigo,
.page-productores-list td.col-prod-codigo { padding-right: .85rem !important; }
.page-productores-list .col-prod-ci { width: 11ch; }
.page-productores-list .col-prod-telefono { width: 12ch; }
.page-productores-list .col-prod-activo { width: 8ch; }

/* Productores: Correo visible pero acotado (1 línea con elipsis) */
.page-productores-list td.col-prod-correo .truncate-cell {
    max-width: 28ch;
}

.page-productores-list .ot-list-footer { height: 2.2rem; min-height: 0 !important; padding: .1rem .35rem !important; border: 0 !important; box-shadow: none !important; }
.page-productores-list .ot-list-footer .paginator-box { display: flex; align-items: center; gap: .5rem; height: 100%; margin: 0 !important; border: 0 !important; box-shadow: none !important; background: transparent !important; }
.page-productores-list .ot-list-footer .list-summary-chip { margin: 0 !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
.page-productores-list .ot-list-footer nav { margin: 0 !important; }
.page-productores-list .ot-list-footer .pagination .page-link { min-width: 1.8rem; min-height: 1.8rem; height: 1.8rem; padding: .1rem .32rem; margin: 0; border: 0 !important; border-radius: .25rem; background: transparent !important; }
.page-productores-list .ot-list-footer .pagination .page-item.active .page-link { background: #e8ece4 !important; color: #243028; }
.page-productores-list .ot-list-footer .pagination .page-item.disabled .page-link { background: transparent !important; }
/* Productores: acciones compactas */
.page-productores-list th.acciones-header,
.page-productores-list td.acciones-cell {
    width: 92px !important;
    min-width: 92px !important;
    padding-right: .35rem;
    max-width: 92px;
}
.page-productores-list .acciones-cell { white-space: nowrap; }
.page-productores-list .acciones-group { gap: .15rem; }
@media (min-width: 768px) {
    .page-productores-list .acciones-group { gap: .08rem; padding: .05rem; }
    .page-productores-list .acciones-group .btn { width: 1.5rem; min-width: 1.5rem; min-height: 1.8rem; padding: .1rem; }
}

@media (max-width: 767.98px) {
    .entidad-mobile-stacked .entidad-table-wrapper {
        overflow-x: visible;
    }
    .entidad-mobile-stacked .entidad-table,
    .entidad-mobile-stacked .entidad-table tbody {
        display: block;
        width: 100%;
    }
    .entidad-mobile-stacked .entidad-table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }
    .entidad-mobile-stacked .entidad-table tbody > tr:not(.delete-confirm-row) {
        display: block;
        margin: 0 0 0.65rem;
        padding: 0.35rem 0.65rem;
        border: 1px solid #d5ddd2;
        border-radius: 0.5rem;
        background: #fff;
        box-shadow: 0 4px 12px rgba(28, 44, 31, 0.06);
    }
    .entidad-mobile-stacked .entidad-table tbody > tr:not(.delete-confirm-row) > td {
        position: static;
        display: grid;
        grid-template-columns: minmax(6.8rem, 38%) minmax(0, 1fr);
        align-items: start;
        gap: 0.6rem;
        width: 100% !important;
        max-width: none !important;
        min-width: 0;
        padding: 0.38rem 0 !important;
        border: 0;
        border-bottom: 1px solid #edf0eb;
        background: transparent !important;
        box-shadow: none;
        text-align: left !important;
        white-space: normal;
    }
    .entidad-mobile-stacked .entidad-table tbody > tr:not(.delete-confirm-row) > td::before {
        content: attr(data-label);
        color: #667065;
        font-size: 0.78rem;
        font-weight: 600;
    }
    .entidad-mobile-stacked .entidad-table tbody > tr:not(.delete-confirm-row) > td:last-child {
        border-bottom: 0;
    }
    .entidad-mobile-stacked .truncate-cell {
        max-width: 100% !important;
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
    }
    .entidad-mobile-stacked .acciones-cell .acciones-group {
        justify-self: start;
        flex-wrap: wrap;
    }
    .entidad-mobile-stacked .acciones-cell .acciones-group .btn {
        min-width: 44px;
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
    .entidad-mobile-stacked .delete-confirm-row > td {
        display: block;
        width: 100%;
    }
}

/* Productores: juntar columnas específicas (aprox. ~6 caracteres visuales) */
.page-productores-list td.col-prod-nombre,
.page-productores-list th.col-prod-nombre {
    padding-right: .05rem !important;
}
.page-productores-list td.col-prod-apellido,
.page-productores-list th.col-prod-apellido {
    padding-left: .05rem !important;
}
.page-productores-list td.col-prod-telefono,
.page-productores-list th.col-prod-telefono {
    padding-right: .05rem !important;
}
.page-productores-list td.col-prod-correo,
.page-productores-list th.col-prod-correo {
    padding-left: .05rem !important;
}

/* Variaciones de ancho por columna (aplicar a <td> vía column_classes) */
.col-w-80 .truncate-cell { max-width: 80px; }
.col-w-120 .truncate-cell { max-width: 120px; }
.col-w-60 .truncate-cell { max-width: 60px; }
.col-w-50 .truncate-cell { max-width: 50px; }
.col-w-70 .truncate-cell { max-width: 70px; }
.col-w-110 .truncate-cell { max-width: 110px; }
.col-w-140 .truncate-cell { max-width: 140px; }
.col-w-90 .truncate-cell { max-width: 90px; }
.col-w-100 .truncate-cell { max-width: 100px; }
.col-w-160 .truncate-cell { max-width: 160px; }
.col-w-200 .truncate-cell { max-width: 200px; }
.col-w-240 .truncate-cell { max-width: 240px; }
.col-w-320 .truncate-cell { max-width: 320px; }

.page-visitas-tecnicas-list #filtersForm [name="fecha"],
.page-visitas-tecnicas-list #filtersForm [name="codigo"],
.page-visitas-tecnicas-list #filtersForm [name="estado"],
.page-visitas-tecnicas-list #filtersForm [name="activo"] {
    max-width: 170px;
}

.page-visitas-tecnicas-list #filtersForm [name="codigo"] {
    max-width: 140px;
}

.page-recepcion-cana-alur-list #filtersForm [name="anio_agricola"] {
    max-width: 14ch;
}

.page-recepcion-cana-alur-list #filtersForm [name="cosecha"],
.page-recepcion-cana-alur-list #filtersForm [name="nro_pesaje"] {
    max-width: 11ch;
}

.page-recepcion-cana-alur-list #filtersForm [name="productor"] {
    min-width: min(100%, 26rem);
}

.page-recepcion-cana-alur-list .entidad-table {
    table-layout: fixed;
    width: 100%;
    min-width: 1060px;
    border-collapse: collapse;
}

.page-recepcion-cana-alur-list #entidadListWrapper {
    overflow-x: auto;
    overscroll-behavior-x: contain;
}

.page-recepcion-cana-alur-list .entidad-table th,
.page-recepcion-cana-alur-list .entidad-table td {
    padding-left: .06rem;
    padding-right: .06rem;
}

.page-recepcion-cana-alur-list .truncate-cell {
    max-width: 100%;
    white-space: nowrap;
}

.page-recepcion-cana-alur-list .entidad-table th {
    white-space: nowrap;
    line-height: 1.05;
}

.page-recepcion-cana-alur-list .entidad-table th.ordenable {
    overflow: hidden;
}

.page-recepcion-cana-alur-list .entidad-table th.ordenable > a {
    gap: .14em;
}

.page-recepcion-cana-alur-list .entidad-table th.ordenable .sort-neutral-icon,
.page-recepcion-cana-alur-list .entidad-table th.ordenable .bi-sort-up,
.page-recepcion-cana-alur-list .entidad-table th.ordenable .bi-sort-down {
    font-size: .78em;
}

.page-recepcion-cana-alur-list .entidad-table th.col-alur-anio,
.page-recepcion-cana-alur-list .entidad-table td.col-alur-anio { width: 9ch; min-width: 9ch; max-width: 9ch; }

.page-recepcion-cana-alur-list .entidad-table th.col-alur-pesaje,
.page-recepcion-cana-alur-list .entidad-table td.col-alur-pesaje { width: 8ch; min-width: 8ch; max-width: 8ch; }

.page-recepcion-cana-alur-list .entidad-table th.col-alur-entrada,
.page-recepcion-cana-alur-list .entidad-table td.col-alur-entrada { width: 8ch; min-width: 8ch; max-width: 8ch; }

.page-recepcion-cana-alur-list .entidad-table th.col-alur-ingreso,
.page-recepcion-cana-alur-list .entidad-table td.col-alur-ingreso { width: 9ch; min-width: 9ch; max-width: 9ch; }

.page-recepcion-cana-alur-list .entidad-table th.col-alur-camion,
.page-recepcion-cana-alur-list .entidad-table td.col-alur-camion { width: 7ch; min-width: 7ch; max-width: 7ch; }

.page-recepcion-cana-alur-list .entidad-table th.col-alur-cosecha,
.page-recepcion-cana-alur-list .entidad-table td.col-alur-cosecha { width: 8ch; min-width: 8ch; max-width: 8ch; }

.page-recepcion-cana-alur-list .entidad-table th.col-alur-kilos,
.page-recepcion-cana-alur-list .entidad-table td.col-alur-kilos { width: 8ch; min-width: 8ch; max-width: 8ch; }

.page-recepcion-cana-alur-list .entidad-table th.col-alur-productor,
.page-recepcion-cana-alur-list .entidad-table td.col-alur-productor {
    width: 24ch;
    min-width: 24ch;
    max-width: 24ch;
}

.page-recepcion-cana-alur-list .entidad-table td.col-alur-productor .truncate-cell {
    max-width: 24ch;
}

.page-recepcion-cana-alur-list .acciones-group {
    display: inline-flex;
    flex-wrap: nowrap;
    gap: .18rem;
}

.page-recepcion-cana-alur-list .acciones-group .btn {
    padding: .1rem .18rem;
}

.page-recepcion-cana-alur-list .acciones-cell {
    padding-left: .06rem !important;
    padding-right: .06rem !important;
    white-space: nowrap;
}

.page-recepcion-cana-alur-list .acciones-header,
.page-recepcion-cana-alur-list .acciones-cell {
    width: 112px !important;
    min-width: 112px;
    max-width: 112px;
}


.ordenable a {
    color: #256029;
    text-decoration: none;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 0.3em;
}

/* Ícono neutral de orden (asterisco): un poco más chico */
.ordenable a .sort-neutral-icon {
    font-size: .85em;
    line-height: 1;
}

.ordenable a:hover {
    color: var(--verde-cana);
}
.order-clear { color: #6c757d; text-decoration: none; }
.order-clear:hover { color: var(--color-danger); }
.sorted-col {
    background: #f0fff4 !important; /* leve highlight para columna ordenada */
}
.pagination .page-link {
    color: #425045;
    border-radius: 0.8rem;
    margin: 0 2px;
    border-color: #d7ddd1;
    background: rgba(255, 253, 248, 0.88);
    min-width: 2.2rem;
    min-height: 2.2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.pagination .page-link .bi { font-size: 1rem; line-height: 1; display: inline-block; }
.pagination .page-item.active .page-link {
    background: #d4a72c;
    color: #243028;
    border-color: #d4a72c;
}
.pagination .page-item.disabled .page-link {
    color: #a7b0a3;
    background: #f1f1ec;
}

/* Indicador de rango "Mostrando X–Y de Z" */
.page-range-indicator {
    background: #d8f3e8; /* mismo tono que el encabezado, más visible */
    color: #256029 !important;
    border: 1px solid #d3efe0;
    font-size: .8rem;
}
.page-range-indicator.empty {
    background: #fff3cd; /* amarillo suave para vacío */
    color: #8a6d3b !important;
    border-color: #ffe08a;
}
/* Forzar el color aunque el item esté disabled */
.pagination .page-item.disabled .page-link.page-range-indicator {
    background: #d8f3e8 !important;
    color: #256029 !important;
    border-color: #d3efe0 !important;
}

/* Spinner overlay para tablas de entidades */
.entidad-table-wrapper { position: relative; }
.entidad-table-wrapper { margin-top: 0 !important; }
#entidadListWrapper.entidad-table-wrapper-min-rows {
    min-height: 13.05rem;
}

@media (max-width: 767.98px) {
    .entidad-mobile-stacked #entidadListWrapper.entidad-table-wrapper-min-rows {
        min-height: 0;
    }
}
.entidad-spinner-overlay {
    position: absolute;
    inset: 0;
    background: rgba(255,255,255,0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
    opacity: 0;
    pointer-events: none;
    transition: opacity .15s ease;
}
.entidad-spinner-overlay.show { opacity: 1; pointer-events: auto; }

/* Acciones: sin wrap en todos los tamaños */
.acciones-cell { white-space: nowrap; overflow-wrap: normal; word-break: normal; }
/* Separación mínima entre botones de acciones */
.acciones-group {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .14rem .18rem;
    border-radius: .32rem;
    background: rgba(255,255,255,.96);
    border: 1px solid #d3d9ce;
}
.acciones-group .btn {
    border-radius: .28rem;
}
/* Optimización móvil: botones más compactos sin habilitar wrap */
@media (max-width: 576px) {
    .acciones-cell .btn {
        padding: .15rem .35rem; /* más angosto */
        line-height: 1.1;
    }
    .acciones-cell .btn .bi {
        font-size: .95rem; /* iconos un poco más chicos */
    }
    .acciones-cell .btn + .btn { margin-left: 0; }
}

/* Search group refinements */
.search-group {
    /* tamaño base del control de búsqueda (usar variable para consistencia) */
    --search-h: calc(1.5em + .5rem + 2px);
    flex-wrap: nowrap;
    align-items: stretch;
    flex: 0 1 19rem;
    min-width: 0;
    max-width: 100%;
}
.search-group .form-control { min-width: 0; height: var(--search-h); }
.search-group .input-group-text { height: var(--search-h); }
.search-group .btn {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    height: var(--search-h);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}

/* New three-part search control styles */
.search-3part {
    border: 1px solid #cfd8cf; /* defined soft border */
    border-radius: .6rem;
    overflow: hidden;
    display: inline-flex;
    align-items: center;
    background: #fff;
    box-shadow: 0 1px 0 rgba(18,24,20,0.02);
    padding-right: 2px;
}
.search-3part .search-text {
    border: 0;
    padding: .45rem .6rem;
    min-width: 12rem;
    outline: none;
    background: transparent;
}
.search-3part .search-text:focus { box-shadow: none; }
.search-3part .search-text {
    border-right: 1px solid rgba(43,52,42,0.12);
    margin-right: 2px;
}
.search-3part .search-btn,
.search-3part .clear-btn {
    width: 2.2rem;
    min-width: 2.2rem;
    height: calc(var(--search-h) - 4px);
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    position: relative;
    margin-left: 2px; /* slight gap to avoid cut borders */
    margin-top: 2px;
    margin-bottom: 2px;
    margin-right: 0;
    border-left: none;
    border-radius: .42rem;
}
.search-3part .search-btn::before,
.search-3part .clear-btn::before {
    content: '';
    position: absolute;
    left: -2px; /* place separator slightly further so it peeks between controls */
    top: 10%;
    bottom: 10%;
    width: 1px;
    background: rgba(43,52,42,0.22);
    border-radius: 1px;
    z-index: 5;
}
.search-3part .search-btn .bi,
.search-3part .clear-btn .bi { font-size: .92rem; }
.search-3part .search-btn:hover,
.search-3part .clear-btn:hover { background: #f3f4f0; border-color: #cfd8cf; }
.search-3part .search-btn:active, .search-3part .clear-btn:active { transform: translateY(0); }

@media (max-width: 575px) {
    .search-3part .search-text { min-width: 8rem; }
    .search-3part .search-btn,
    .search-3part .clear-btn {
        width: 2rem;
        min-width: 2rem;
        height: calc(var(--search-h) - 4px);
    }
    .search-3part { padding-right: 2px; }
}

/* Make the search group's parts consistent: search icon and clear button small squares, input fills remaining space */
.search-group .input-group-text {
    width: 2.2rem;
    min-width: 2.2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.search-group .form-control {
    flex: 1 1 auto;
    min-width: 0;
}
.search-group #clearSearch {
    width: 2.2rem !important;
    min-width: 2.2rem !important;
    padding: 0 !important;
}

/* Make the clear button visually minimal but with a pleasant hit area and micro-feedback */
.search-group #clearSearch {
    background: rgba(255,255,255,0.015) !important;
    border: 1px solid rgba(83,96,85,0.08) !important; /* soft neutral border */
    color: #536055 !important; /* neutral icon color */
    border-radius: 0.6rem !important;
    transition: background .14s ease, border-color .14s ease, color .12s ease, transform .06s ease;
}
.search-group #clearSearch .bi { color: inherit; transition: color .14s ease, transform .06s ease; }
.search-group #clearSearch:hover {
    background: #f3f4f0 !important; /* light pill on hover */
    border-color: #cfd8cf !important; /* stronger subtle border on hover */
    color: #284b35 !important; /* slightly stronger color on hover */
    transform: translateY(-1px);
}
.search-group #clearSearch:active { transform: translateY(0); }
.search-group #clearSearch:focus {
    outline: none !important;
    box-shadow: 0 0 0 0.18rem rgba(47, 107, 61, 0.12) !important; /* accessible focus ring */
}

/* Ensure clearSearch keeps its soft hover styling even when parent icon-action-bar applies dark hover to other buttons */
.icon-action-bar .search-group #clearSearch:hover {
    background: #f3f4f0 !important;
    border-color: #cfd8cf !important;
    color: #284b35 !important;
}

/* Ajuste específico para el botón "Limpiar" (la X) para que tenga tamaño consistente */
.search-group #clearSearch {
    box-sizing: border-box;
    padding: 0;
    width: var(--search-h);
    min-width: var(--search-h);
    height: var(--search-h);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-top-right-radius: 0.9rem;
    border-bottom-right-radius: 0.9rem;
}

/* Asegurar que el icono interno tenga tamaño y centrado adecuados */
.search-group #clearSearch .bi { font-size: 1rem; line-height: 1; }

/* Ensure the clear button doesn't overflow due to extra border or outline */
.search-group #clearSearch:focus, .search-group #clearSearch:active {
    box-shadow: none;
}

@media (max-width: 576px) {
    .search-group #clearSearch { min-width: 2rem; padding: 0 .35rem; }
}

/* Fallback for stubborn overrides: force exact square button matching the input height */
.input-group.input-group-sm.search-group > #clearSearch,
.input-group.input-group-sm.search-group > button#clearSearch {
    width: 2.2rem !important;
    min-width: 2.2rem !important;
    height: var(--search-h) !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    font-size: 1rem !important;
    line-height: 1 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Icon buttons hover: dark background with white icon/text for contrast */
.icon-action-bar .icon-btn:hover,
.icon-action-bar .icon-btn.dropdown-toggle.show,
.icon-action-bar .icon-btn:active {
    background-color: #256029 !important; /* brand green */
    color: #ffffff !important;
}
.icon-action-bar .icon-btn:hover .bi,
.icon-action-bar .icon-btn.dropdown-toggle.show .bi,
.icon-action-bar .icon-btn:active .bi {
    color: #ffffff !important;
}

/* Also ensure dropdown/action buttons like filtros/export/reporte (which may be regular .btn) get the same hover treatment when inside icon-action-bar */
.icon-action-bar > .btn:hover,
.icon-action-bar > a.btn:hover {
    background-color: #256029 !important;
    color: #ffffff !important;
}

/* Ensure export menu trigger matches other icon buttons visually */
.icon-action-bar .export-menu-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: .6rem;
    padding: .45rem;
    min-width: 2.4rem;
    height: 2.4rem;
}
.icon-action-bar .export-menu-trigger .bi { font-size: 1.05rem; }
.icon-action-bar .export-menu-trigger:hover,
.icon-action-bar .export-menu-trigger:focus,
.icon-action-bar .export-menu-trigger:active {
    background-color: #256029 !important;
    color: #ffffff !important;
}

/* Make search-3part buttons adopt the same hover style when inside icon-action-bar */
.icon-action-bar .search-3part .search-btn:hover,
.icon-action-bar .search-3part .clear-btn:hover,
.icon-action-bar .search-3part .search-btn:focus,
.icon-action-bar .search-3part .clear-btn:focus {
    background-color: #256029 !important;
    color: #ffffff !important;
}
.icon-action-bar .search-3part .search-btn:hover .bi,
.icon-action-bar .search-3part .clear-btn:hover .bi {
    color: #ffffff !important;
}

/* Make clearSearch visually minimal: remove the outline border box so only the X is prominent */
.search-group #clearSearch {
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
}

/* Botón icon-only pequeño y redondo (Refrescar) */
.btn-icon-sm {
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}
.btn-icon-sm .bi { font-size: 1.1rem; line-height: 1; }
/* Variante ancha para el botón refrescar */
.btn-icon-wide {
    min-width: 2.5rem; /* ligeramente más angosto */
    height: 2rem;
    padding-left: .5rem;
    padding-right: .5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.paginator-box {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    padding: .45rem .65rem;
    background: linear-gradient(180deg, rgba(255,253,248,.96) 0%, rgba(244,242,235,.94) 100%);
    border: 1px solid #d8ddd2;
    border-radius: 1rem;
    box-shadow: 0 10px 22px rgba(24, 35, 27, 0.05);
}

.list-summary-chip {
    display: inline-flex;
    align-items: center;
    padding: .35rem .65rem;
    border-radius: 999px;
    background: #edf0ea;
    border: 1px solid #d7ddd1;
    color: #536055;
    font-weight: 600;
}

.continuous-scroll-controls .btn {
    min-height: 2.2rem;
    border-radius: .85rem;
}

.empty-state-block {
    max-width: 24rem;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .35rem;
}

.empty-state-icon {
    color: #7e887d;
}

.empty-state-title {
    font-size: 1.05rem;
    color: #4d594f;
}

.empty-state-cta {
    margin-top: .35rem;
    border-radius: .85rem;
    padding-inline: 1rem;
}

.export-menu-trigger {
    /* Use same base visual as other icon buttons: transparent background, subtle border */
    background: transparent !important;
    border-color: #d8ddd2 !important;
    color: #344136 !important;
    box-shadow: none !important;
}

.export-menu-trigger:hover,
.export-menu-trigger:focus {
    background-color: #256029 !important;
    color: #ffffff !important;
    border-color: #1f4b2a !important;
}

.export-menu-panel {
    min-width: 14rem;
    padding: 0.28rem;
    border-radius: 1rem;
    border: 1px solid #cfd8cb;
    background: linear-gradient(180deg, #fffdf8 0%, #f3efe4 100%);
    box-shadow: 0 18px 34px rgba(24, 35, 27, 0.1);
}

.export-menu-item {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    border-radius: 0.8rem;
    padding: 0.42rem 0.62rem;
    color: #344136;
    font-weight: 400;
    font-size: 0.82rem;
    line-height: 1.15;
}

.export-menu-panel > li + li {
    margin-top: 0.08rem;
}

.export-menu-item:hover,
.export-menu-item:focus {
    background: linear-gradient(180deg, rgba(212, 167, 44, 0.14) 0%, rgba(212, 167, 44, 0.08) 100%);
    color: #243028;
}

.export-menu-panel,
.export-menu-panel.dropdown-menu,
.dropdown-menu.prefs-menu.export-menu-panel {
    font-size: 0.82rem;
    line-height: 1.15;
}

.export-menu-panel > li > .dropdown-item,
.export-menu-panel .export-menu-item {
    font-family: inherit;
}

.export-menu-item .bi {
    width: auto;
    height: auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    border-radius: 0;
    background: transparent;
    border: 0;
    font-size: 0.88rem;
}

.export-menu-item--csv .bi,
.export-action-btn--csv {
    color: #2f6b3d;
}

.export-menu-item--xlsx .bi,
.export-action-btn--xlsx {
    color: #356a39;
}

.export-menu-item--json .bi,
.export-action-btn--json {
    color: #2e6fa3;
}

.export-menu-item--pdf .bi,
.export-action-btn--pdf {
    color: #b14d3a;
}

.export-action-btn {
    min-width: 7.4rem;
}

.export-menu-item--csv .bi,
.export-menu-item--xlsx .bi,
.export-menu-item--json .bi,
.export-menu-item--pdf .bi {
    background: transparent;
    border-color: transparent;
}

@media (max-width: 768px) {
    .list-title {
        font-size: 1.45rem;
        line-height: 1.1;
    }

    .list-toolbar {
        padding: 0.7rem 0.75rem;
        gap: 0.55rem !important;
    }

    .toolbar-actions {
        width: 100%;
        gap: 0.5rem !important;
    }

    .toolbar-actions > .btn,
    .toolbar-actions > .dropdown,
    .toolbar-actions > .search-group {
        flex: 1 1 auto;
    }

    .search-group {
        flex: 1 1 100%;
        min-width: 100%;
        order: 10;
    }

    .toolbar-actions .btn {
        min-height: 2.25rem;
        font-size: 0.92rem;
    }

    .entidad-table th {
        font-size: 0.84rem;
        line-height: 1.1;
    }

    .list-summary-chip {
        width: 100%;
        justify-content: center;
    }

    .paginator-box {
        width: 100%;
        justify-content: center;
        flex-wrap: wrap;
    }

    #entidadListFooter {
        justify-content: stretch !important;
    }
}

/* Botón refrescar: verde sólido con icono blanco */
.btn-refresh {
    background-color: #2e8b57; /* verde más claro (SeaGreen) */
    color: #fff;
    border-color: #2e8b57;
}
.btn-refresh .bi {
    color: #fff;
    filter: drop-shadow(0 1px 0 rgba(0,0,0,0.2));
    font-size: 1.25rem; /* un poco más grande */
}

/* Estado activo para íconos de ayuda (tooltip/popover visible) */
.help-icon-active { color: #256029 !important; }
.btn-refresh:hover, .btn-refresh:focus {
    background-color: #28794b; /* ligeramente más oscuro que el base */
    border-color: #246f44;
    color: #fff;
}
.btn-refresh:disabled, .btn-refresh.disabled {
    background-color: #6c757d;
    border-color: #6c757d;
    color: #e9ecef;
}

/* Centrado y anchura cómoda para formularios de entidad */
.entidad-form-card {
    max-width: none;
    width: 100%;
    padding: 0.62rem 0.72rem 0.72rem !important;
    background: #f7f8f6 !important;
    border: 1px solid #cfd6cc !important;
    border-radius: 0.38rem !important;
    box-shadow: 0 3px 10px rgba(24, 35, 27, 0.045);
}

/* Mejor contraste y legibilidad dentro del form con fondo claro y cálido */
.entidad-form-card .form-label {
    color: #465249;
    font-weight: 600;
    font-size: 0.77rem;
    letter-spacing: 0;
    line-height: 1.12;
}
.entidad-form-card .form-text {
    color: #708076;
    font-size: 0.71rem;
    line-height: 1.2;
}
.entidad-form-card .form-field-block { margin-bottom: 0.08rem; }
.entidad-form-card .form-required-note {
    color: #667066;
    font-size: 0.71rem;
    line-height: 1;
}
.entidad-form-card .required-marker {
    color: #8a5a16;
    font-weight: 800;
}
.entidad-form-card .form-control,
.entidad-form-card .form-select {
    min-height: 2rem;
    height: 2rem;
    padding: 0.14rem 0.5rem;
    background: #ffffff;
    border: 1px solid #b7c0b2;
    border-radius: 0.32rem;
    color: #243028;
    box-shadow: none;
    font-size: 0.82rem;
    line-height: 1.2;
}
.entidad-form-card .form-control::placeholder { color: rgba(73, 83, 74, 0.5); }
.entidad-form-card .form-control:focus,
.entidad-form-card .form-select:focus {
    border-color: #2f6b3d;
    box-shadow: 0 0 0 0.14rem rgba(47, 107, 61, 0.12);
    background: #fff;
}
.entidad-form-card textarea.form-control {
    min-height: 3.75rem;
    height: auto;
    padding-top: 0.32rem;
    padding-bottom: 0.32rem;
    border-radius: 0.32rem;
}
/* Los valores numéricos se escriben directamente; los steppers causan cambios accidentales. */
.entidad-form-card input[type="number"]::-webkit-inner-spin-button,
.entidad-form-card input[type="number"]::-webkit-outer-spin-button {
    margin: 0;
    -webkit-appearance: none;
}
.entidad-form-card input[type="number"] {
    appearance: textfield;
    -moz-appearance: textfield;
}
.entidad-form-card .form-check {
    padding: 0.3rem 0.5rem 0.3rem 1.7rem;
    border-radius: 0.32rem;
    border: 1px solid #dde1d8;
    background: rgba(255, 255, 255, 0.72);
}
.entidad-form-card .btn-row {
    margin-top: 0.8rem;
    padding-top: 0.65rem;
    border-top: 1px solid #dddfd6;
}
.entidad-form-card .btn-row .btn {
    min-width: 8rem;
    min-height: 2.32rem;
    border-radius: 0.32rem;
    font-weight: 600;
    font-size: 0.86rem;
}
.entidad-form-card .btn-outline-secondary {
    background: rgba(255, 253, 248, 0.8);
    border-color: #cfd5c9;
    color: #5a655b;
}
.entidad-form-card .btn-outline-secondary:hover,
.entidad-form-card .btn-outline-secondary:focus {
    background: #f1eee6;
    border-color: #c3cabd;
    color: #243028;
}
.entidad-form-card .btn-success {
    background: #d4a72c !important;
    border-color: #d4a72c !important;
    color: #243028 !important;
    box-shadow: 0 6px 12px rgba(212, 167, 44, 0.14);
}
.entidad-form-card .btn-success:hover,
.entidad-form-card .btn-success:focus {
    background: #c79921 !important;
    border-color: #c79921 !important;
    color: #1f2a22 !important;
}
.entidad-form-card .text-danger.small {
    display: block;
    margin-top: 0.16rem;
    color: #b14d3a !important;
    font-weight: 600;
    font-size: 0.71rem !important;
    line-height: 1.15;
}

.recomendacion-form-page {
    --form-page-max-width: 1420px;
}

.recomendacion-meta-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.recomendacion-meta-chip {
    display: inline-flex;
    align-items: center;
    min-height: 1.85rem;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    border: 1px solid #d8ddd2;
    background: #fbfaf6;
    color: #5d675c;
    font-size: 0.76rem;
    line-height: 1.15;
}

.recomendacion-meta-chip-wide {
    max-width: 100%;
}

.recomendacion-form-card {
    max-width: none;
    padding: 0.62rem 0.72rem 0.72rem !important;
    background: #f7f8f6 !important;
    border: 1px solid #cfd6cc !important;
    border-radius: 0.38rem !important;
    box-shadow: 0 3px 10px rgba(24, 35, 27, 0.045) !important;
}

.recomendacion-form-card .form-label {
    font-size: 0.75rem;
    font-weight: 600;
    color: #4f5d54;
}

.recomendacion-form-card .form-text {
    font-size: 0.7rem;
    color: #708076;
}

.recomendacion-form-card .form-field-block {
    margin-bottom: 0.08rem;
}

.recomendacion-form-card .form-control,
.recomendacion-form-card .form-select,
.recomendacion-form-card .ts-wrapper.single .ts-control {
    min-height: 2rem;
    height: auto;
    padding: 0.16rem 0.58rem;
    border-radius: 0.28rem;
    font-size: 0.82rem;
    background: #ffffff;
    border-color: #b7c0b2;
    box-shadow: none;
}

.recomendacion-form-card textarea.form-control {
    min-height: 3.75rem;
    padding-top: 0.32rem;
    padding-bottom: 0.32rem;
    border-radius: 0.28rem;
}

.entidad-form-card .form-select,
.recomendacion-form-card .form-select {
    padding-right: 1.75rem;
    background-position: right 0.42rem center;
    background-size: 12px 10px;
}

.entidad-form-card .ts-wrapper.single .ts-control,
.recomendacion-form-card .ts-wrapper.single .ts-control {
    border-radius: 0.32rem;
    padding-right: 1.7rem;
}

.entidad-form-card .ts-wrapper.fk-select .ts-control::after,
.recomendacion-form-card .ts-wrapper.fk-select .ts-control::after {
    right: 0.4rem;
}

.entidad-form-card input[type="date"],
.entidad-form-card input[type="datetime-local"],
.recomendacion-form-card input[type="date"],
.recomendacion-form-card input[type="datetime-local"] {
    padding-right: 0.38rem;
}

.entidad-form-card input[type="date"]::-webkit-calendar-picker-indicator,
.entidad-form-card input[type="datetime-local"]::-webkit-calendar-picker-indicator,
.recomendacion-form-card input[type="date"]::-webkit-calendar-picker-indicator,
.recomendacion-form-card input[type="datetime-local"]::-webkit-calendar-picker-indicator {
    margin: 0;
    padding: 0;
    opacity: 0.9;
}

.recomendacion-form-card .text-danger.small {
    margin-top: 0.18rem;
    font-size: 0.7rem !important;
    line-height: 1.15;
}

.recomendacion-form-card h5 {
    font-size: 0.95rem;
    margin-bottom: 0.35rem !important;
}

.recomendacion-form-card .btn.btn-sm {
    min-height: 2rem;
    padding-inline: 0.68rem;
}

.recomendacion-form-card .destino-row,
.recomendacion-form-card .dosis-row {
    border: 1px solid #e0e4db;
    border-radius: 0.85rem;
    box-shadow: none;
    padding: 0.35rem 0.45rem !important;
    background: #fcfcfa;
}

.recomendacion-form-card .btn-row {
    margin-top: 0.85rem !important;
    padding-top: 0.7rem;
}

.recomendacion-form-card .btn-row .btn {
    min-width: 8.1rem;
    min-height: 2.35rem;
    border-radius: 0.82rem;
    font-size: 0.86rem;
}

@media (max-width: 767.98px) {
    .recomendacion-form-card {
        padding: 0.68rem 0.72rem 0.8rem !important;
    }
}

.page-recepcion-cana-alur-import #id_ocr_zoom.form-select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    padding-right: 2.4rem;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='square' stroke-linejoin='miter' stroke-width='3' d='m3 6 5 5 5-5'/%3e%3c/svg%3e") !important;
    background-repeat: no-repeat;
    background-position: right .7rem center;
    background-size: 16px 12px;
}

/* Menú de preferencias (engranaje) con fondo suave coherente */
.dropdown-menu.prefs-menu {
    background: linear-gradient(180deg, #fffdf8 0%, #f3efe4 100%);
    border: 1px solid #cfd8cb;
    box-shadow: 0 18px 34px rgba(24, 35, 27, 0.1);
    border-radius: 1rem;
    padding: 0.28rem;
}
.dropdown-menu.prefs-menu .dropdown-item {
    color: #344136;
    border-radius: 0.8rem;
    padding: 0.42rem 0.62rem;
    font-size: 0.82rem;
    line-height: 1.15;
}
.dropdown-menu.prefs-menu .dropdown-item:hover,
.dropdown-menu.prefs-menu .dropdown-item:focus {
    background: linear-gradient(180deg, rgba(212, 167, 44, 0.14) 0%, rgba(212, 167, 44, 0.08) 100%);
    color: #243028;
}
.dropdown-menu.prefs-menu .dropdown-header,
.dropdown-menu.prefs-menu .form-text,
.dropdown-menu.prefs-menu label {
    color: #5f685d;
}
.dropdown-menu.prefs-menu .dropdown-header {
    padding: 0.35rem 0.62rem 0.1rem;
    font-size: 0.72rem;
    line-height: 1.1;
}
.dropdown-menu.prefs-menu .dropdown-divider {
    margin: 0.28rem 0;
}
.dropdown-menu.prefs-menu .form-text {
    font-size: 0.7rem;
    line-height: 1.15;
}
.dropdown-menu.prefs-menu li.prefs-block {
    padding: 0.35rem 0.62rem;
}
.dropdown-menu.prefs-menu li.prefs-block-tight {
    padding: 0.15rem 0.62rem 0.35rem;
}
.dropdown-menu.prefs-menu .form-select,
.dropdown-menu.prefs-menu .form-control {
    background: rgba(255,255,255,.96);
    border-color: #d3d9ce;
}
#filtrosCollapse .filters-compact-form {
    --bs-gutter-y: .35rem;
}
#filtrosCollapse .filters-compact-form > .col-12.col-sm-auto {
    width: auto;
}
#filtrosCollapse .filters-compact-form .filter-primary-actions {
    min-width: max-content;
}
@media (max-width: 575.98px) {
    #filtrosCollapse .filters-compact-form > .col-12.col-sm-auto {
        width: 100%;
    }
    #filtrosCollapse .filters-compact-form .filter-primary-actions {
        min-width: 0;
    }
}
/* Alta/edición unificada de tablón: una grilla breve y uniforme. */
.tablon-short-form { max-width: 50rem; }
.tablon-known-context {
    display: flex;
    flex-wrap: wrap;
    gap: .2rem .8rem;
    margin: 0 0 .8rem;
    padding: .4rem .55rem;
    color: #526052;
    font-size: .8rem;
    background: #f7f5ee;
    border-left: 3px solid #d4a72c;
    border-radius: .2rem;
}
.tablon-known-context span { white-space: nowrap; }
.tablon-short-form > section {
    max-width: 38rem;
    margin-bottom: .8rem !important;
}
.tablon-short-form .row.g-2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .9rem;
    margin: 0;
}
.tablon-short-form .row.g-2 > [class^="col-"],
.tablon-short-form .row.g-2 > [class*=" col-"] {
    width: auto;
    padding: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    min-width: 0;
}
.tablon-short-form .form-label {
    display: block;
    min-height: 0;
    margin-bottom: .32rem;
    line-height: 1.25;
    white-space: nowrap;
}
.tablon-short-form .form-text {
    max-width: 22rem;
    margin-top: .22rem;
}
.tablon-short-form section > h3 {
    display: none;
}
.tablon-short-form [data-field-name] .form-control,
.tablon-short-form [data-field-name] .form-select,
.tablon-short-form [data-field-name] .ts-wrapper {
    width: 100%;
    max-width: none;
}
.tablon-short-form [data-field-name] .form-control,
.tablon-short-form [data-field-name] .form-select,
.tablon-short-form [data-field-name] .ts-control {
    min-height: calc(1.5em + .75rem + 2px);
}
.tablon-short-form details[data-section="tablon-mas-datos"] {
    max-width: 38rem;
    margin-top: .25rem;
}
@media (max-width: 767.98px) {
    .tablon-short-form .form-label { white-space: normal; }
    .tablon-short-form > section,
    .tablon-short-form details[data-section="tablon-mas-datos"] { max-width: none; }
    .tablon-short-form .row.g-2 { grid-template-columns: 1fr; gap: .8rem; }
    .tablon-known-context { display: grid; gap: .18rem; }
}

/* Campo: árbol territorial compacto. Los estilos quedan aislados de los CRUD. */
.campo-tree {
    max-width: 64rem;
}
.campo-tree .campo-section {
    margin: 0 0 .55rem;
}
.campo-tree .campo-section-header {
    min-height: 1.65rem;
    margin-bottom: .08rem;
}
.campo-tree .campo-section-header .h6 {
    font-weight: 700;
    color: #344136;
}
.campo-tree .campo-section-header .btn {
    padding: .18rem .48rem;
    border-color: #a9b9a7;
    color: #2f6b3d;
    background: transparent;
}
.campo-tree .campo-section-header .btn:hover,
.campo-tree .campo-section-header .btn:focus-visible {
    color: #fff;
    background: #2f6b3d;
    border-color: #2f6b3d;
}
.campo-tree .campo-chacras,
.campo-tree .campo-lotes,
.campo-tree .campo-tablones {
    padding-left: 0;
    border-left: 0;
}
.campo-tree .campo-chacras { margin-left: 1rem; }
.campo-tree .campo-lotes { margin-left: 2rem; }
.campo-tree .campo-tablones { margin-left: 3rem; }
.campo-tree .campo-productor-context .campo-section-header {
    justify-content: flex-end;
}
.campo-tree .campo-productor-context .campo-section-header .h6 {
    display: none;
}
.campo-tree .list-group {
    border-radius: 0;
}
.campo-tree .campo-row-link,
.campo-tree .list-group > .list-group-item {
    min-height: 2.45rem;
    padding-top: .16rem;
    padding-bottom: .16rem;
    background: transparent;
    border-width: 0;
}
.campo-tree .campo-row-link:hover,
.campo-tree .campo-row-link:focus-visible {
    background: #f3f6ef;
    color: #243028;
}
.campo-tree .campo-row:last-child .campo-row-link,
.campo-tree .list-group > .list-group-item:last-child {
    border-bottom-width: 0;
}
.campo-tree .campo-chacras .campo-row-link {
    min-height: 3.1rem;
}
.campo-tree .campo-edit-action {
    z-index: 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    color: #2f6b3d;
    background: #fffdf8;
    border: 1px solid #a9b9a7;
    border-radius: .65rem;
    pointer-events: auto;
}
.campo-tree .campo-edit-action:hover,
.campo-tree .campo-edit-action:focus-visible {
    z-index: 4;
    color: #fff;
    background: #2f6b3d;
    border-color: #2f6b3d;
    outline: 0;
    box-shadow: 0 0 0 .18rem rgba(47, 107, 61, .22);
}
@media (max-width: 575.98px) {
    .campo-tree .campo-chacras { margin-left: .5rem; }
    .campo-tree .campo-lotes { margin-left: 1rem; }
    .campo-tree .campo-tablones { margin-left: 1.5rem; }
}

/* Explorador territorial: ramas contraíbles, filas cortas y acciones contextuales. */
.campo-view-switch .btn {
    min-width: 5.25rem;
    padding: .35rem .65rem;
}
.campo-view-switch .campo-view-option {
    min-height: 2.5rem;
    font-weight: 600;
    border-width: 2px;
}
.campo-view-switch .campo-view-option:not(.is-active) {
    color: var(--verde-oscuro) !important;
    background: #fff !important;
    border-color: var(--verde-cana) !important;
}
.campo-view-switch .campo-view-option:not(.is-active):hover {
    color: #fff !important;
    background: var(--verde-cana) !important;
    border-color: var(--verde-cana) !important;
}
.campo-view-switch .campo-view-option.is-active {
    color: #fff !important;
    background: var(--verde-oscuro) !important;
    border-color: var(--verde-oscuro) !important;
    font-weight: 700;
    box-shadow: inset 0 -3px 0 rgba(255, 255, 255, .82);
}
.campo-view-switch .campo-view-option.is-active:hover {
    color: #fff !important;
    background: var(--verde-oscuro) !important;
    border-color: var(--verde-oscuro) !important;
}
.campo-view-switch .campo-view-option:focus-visible {
    position: relative;
    z-index: 2;
    outline: 3px solid rgba(47, 107, 61, .35);
    outline-offset: 2px;
}
.administrar-campo-tree .administrar-disclosure {
    position: relative;
    border: 0;
    border-radius: .375rem;
}
.administrar-campo-tree .administrar-disclosure > summary {
    list-style: none;
    cursor: pointer;
}
.administrar-campo-tree .administrar-disclosure > summary::-webkit-details-marker { display: none; }
.administrar-campo-tree .administrar-disclosure-head {
    display: flex;
    align-items: center;
    min-height: 2.25rem;
    padding: .45rem 15rem .45rem .1rem;
}
.administrar-campo-tree .administrar-disclosure-label {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
}
.administrar-campo-tree .administrar-disclosure-indicator {
    display: inline-grid;
    place-items: center;
    width: 1.15rem;
    height: 1.15rem;
    flex: 0 0 1.15rem;
    color: var(--verde-oscuro);
    border: 1px solid var(--verde-cana);
    border-radius: .18rem;
    font-size: .95rem;
    font-weight: 700;
    line-height: 1;
}
.administrar-campo-tree .administrar-disclosure-indicator::before { content: '+'; }
.administrar-campo-tree details[open] > summary .administrar-disclosure-indicator::before { content: '−'; }
.administrar-campo-tree .administrar-disclosure > summary:focus-visible {
    outline: 3px solid rgba(47, 107, 61, .35);
    outline-offset: 2px;
}
.administrar-campo-tree .administrar-disclosure-actions {
    position: absolute;
    top: .25rem;
    right: .1rem;
    padding: .2rem 0;
    text-align: right;
    white-space: nowrap;
}
.administrar-campo-tree .administrar-disclosure-body {
    margin-top: .05rem;
}
.administrar-campo-tree .administrar-lotes {
    border-left: 1px solid #d9dfd5;
}
.administrar-campo-tree .administrar-lote {
    margin-left: 0;
    border-top: 1px solid #edf0eb;
    background: #fafcf9;
}
.administrar-campo-tree .administrar-lote .administrar-disclosure-head { padding-left: .45rem; }
.administrar-campo-tree .administrar-disclosure-content {
    margin-top: .05rem;
    padding: .1rem 0 .35rem .7rem;
    border-left: 1px solid #e2e8df;
}
.administrar-campo-tree .administrar-tablon-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    min-height: 2rem;
    padding: .2rem .45rem;
    font-size: .875rem;
}
.administrar-campo-tree .administrar-alta-lote { margin: .5rem 0 .15rem 1.1rem; }
@media (max-width: 575.98px) {
    .administrar-campo-tree .administrar-disclosure-head { padding-right: .1rem; }
    .administrar-campo-tree .administrar-disclosure-actions {
        position: static;
        padding: 0 .1rem .45rem 1.6rem;
        text-align: left;
        white-space: normal;
    }
    .administrar-campo-tree .administrar-disclosure-body { padding-left: .7rem !important; }
}
.territorial-explorer {
    max-width: 68rem;
    color: #243028;
}
.territorial-root { max-width: 48rem; }
.explorer-root-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    min-height: 2.25rem;
    border-bottom: 1px solid #d9dfd5;
}
.explorer-root-header .h6 {
    font-weight: 700;
    color: #344136;
}
.explorer-root-list { margin-top: .18rem; }
.explorer-root-row { padding-right: 0; }
.explorer-root-marker {
    flex: 0 0 1.25rem;
    width: 1.25rem;
    color: #687468;
    text-align: center;
}
.explorer-root-select {
    display: flex;
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
}
.explorer-root-submit {
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    text-align: left;
}
.explorer-global-action {
    display: flex;
    justify-content: flex-end;
    min-height: 1.25rem;
    margin-bottom: .1rem;
}
.explorer-producer-row,
.explorer-row {
    display: flex;
    align-items: center;
    gap: .35rem;
    min-height: 2.55rem;
}
.explorer-producer-row {
    padding: .3rem 0 .38rem;
    border-bottom: 1px solid #d9dfd5;
}
.explorer-producer-name {
    flex: 1 1 auto;
    font-size: 1rem;
}
.explorer-row-actions {
    display: inline-flex;
    gap: .2rem;
}
.explorer-nodes {
    margin-top: .18rem;
}
.explorer-node {
    margin: 0;
}
.explorer-branch {
    margin-left: 1.15rem;
}
.explorer-lote > .explorer-branch {
    margin-left: 1.35rem;
}
.explorer-row {
    padding: .1rem 0;
}
.explorer-row:hover {
    background: #f5f7f1;
}
.explorer-toggle,
.explorer-icon-action {
    flex: 0 0 2.15rem;
    width: 2.15rem;
    height: 2.15rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid transparent;
    border-radius: .55rem;
    color: #2f6b3d;
    background: transparent;
}
.explorer-toggle:hover,
.explorer-toggle:focus-visible,
.explorer-icon-action:hover,
.explorer-icon-action:focus-visible {
    color: #fff;
    border-color: #2f6b3d;
    background: #2f6b3d;
    outline: 0;
    box-shadow: 0 0 0 .16rem rgba(47, 107, 61, .2);
}
.explorer-label {
    min-width: 0;
    flex: 1 1 auto;
    color: #243028;
    text-decoration: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.explorer-label:hover,
.explorer-label:focus-visible {
    color: #244f2e;
    text-decoration: underline;
    outline: 0;
}
.explorer-label span,
.explorer-meta,
.explorer-empty {
    color: #687468;
    font-size: .84rem;
}
.explorer-meta {
    flex: 0 1 13rem;
    text-align: right;
    white-space: nowrap;
}
.explorer-text-action {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    min-height: 2rem;
    padding: .15rem .35rem;
    color: #2f6b3d;
    font-size: .84rem;
    font-weight: 600;
    text-decoration: none;
}
.explorer-text-action:hover,
.explorer-text-action:focus-visible {
    color: #244f2e;
    text-decoration: underline;
    outline: 0;
}
.explorer-empty {
    margin: .2rem 0 .35rem;
}

/* Trabajos: bandeja diaria sin herramientas administrativas del CRUD genérico. */
.trabajos-inbox .icon-action-bar > :not(:first-child) {
    display: none !important;
}
.campo-selection {
    max-width: 68rem;
    background: #f8fbf6;
}
.campo-selection-items {
    display: grid;
    gap: .2rem;
}
.explorer-selection-control,
.campo-selection-control {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 2rem;
    width: 2rem;
    min-height: 2rem;
    cursor: pointer;
}
.campo-selection-input {
    width: 1.1rem;
    height: 1.1rem;
    accent-color: #2f6b3d;
    cursor: pointer;
}
.explorer-row.is-selected,
.campo-row.is-selected .campo-row-link {
    background: #e9f3e7;
}
@media (max-width: 575.98px) {
    .campo-view-switch { display: flex; width: 100%; }
    .campo-view-switch .btn { flex: 1 1 50%; }
    .explorer-branch { margin-left: .65rem; }
    .explorer-lote > .explorer-branch { margin-left: .8rem; }
    .explorer-meta { flex-basis: auto; font-size: .76rem; }
    .explorer-tablon-row .explorer-label { white-space: normal; }
}

/* Menú de cuenta del navbar: independiente de los dropdowns de preferencias. */
.dropdown-menu.user-menu {
    width: min(17rem, calc(100vw - 1.5rem));
    padding: 0.3rem;
    border: 1px solid #cfd8cb;
    border-radius: 0.8rem;
    box-shadow: 0 14px 28px rgba(24, 35, 27, 0.14);
}
.dropdown-menu.user-menu .dropdown-item {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.5rem 0.6rem;
    border-radius: 0.55rem;
    color: #344136;
    font-size: 0.9rem;
}
.dropdown-menu.user-menu .user-menu-icon { width: 1rem; text-align: center; }
.dropdown-menu.user-menu .dropdown-item:hover,
.dropdown-menu.user-menu .dropdown-item:focus { background: #edf5eb; color: #243028; }
.dropdown-menu.user-menu .dropdown-item:focus-visible { outline: 2px solid #5c9460; outline-offset: -2px; }
.dropdown-menu.user-menu .dropdown-divider { margin: 0.3rem 0; border-color: #dde5da; }

/* Modal de configuración PDF con el mismo look de entidad-form-card */
.modal-content.entidad-modal-card {
    background: linear-gradient(180deg, #fffdf8 0%, #f3efe4 100%);
    border: 1px solid #cfd8cb;
    border-radius: 1rem;
    box-shadow: 0 18px 34px rgba(24, 35, 27, 0.1);
}
.modal-content.entidad-modal-card .modal-header {
    border-bottom: 1px solid #dde1d8;
}
.modal-content.entidad-modal-card .modal-footer {
    border-top: 1px solid #dde1d8;
}
.modal-content.entidad-modal-card .modal-title,
.modal-content.entidad-modal-card label,
.modal-content.entidad-modal-card .form-text {
    color: #5f685d;
}
.modal-content.entidad-modal-card .form-select,
.modal-content.entidad-modal-card .form-control {
    background: rgba(255,255,255,.96);
    border-color: #d3d9ce;
}

/* Variante compacta reutilizable */
.form-compact .row { --bs-gutter-y: .5rem; }
.form-compact .form-label { margin-bottom: .25rem; }
.form-compact .form-control,
.form-compact .form-select { height: calc(1.5em + .45rem + 2px); }
.form-compact .form-text { margin-top: .2rem; }
.form-compact .text-danger[role="alert"] { margin-top: .2rem; }
.form-compact .btn-row { margin-top: .75rem; }

/* Ajuste fino para formulario Editar Perfil (usa compact) */
.perfil-form .row { --bs-gutter-y: .5rem; }
.perfil-form .form-label { margin-bottom: .25rem; }
.perfil-form .form-control,
.perfil-form .form-select { height: calc(1.5em + .45rem + 2px); }
.perfil-form .form-text { margin-top: .2rem; }
.perfil-form .text-danger[role="alert"] { margin-top: .2rem; }
.perfil-form .btn-row { margin-top: .75rem; }

/* --- Confirmación en línea de eliminación --- */
.entidad-table tr.row-confirming {
    background-color: var(--bs-warning-bg-subtle);
    outline: 2px solid var(--bs-warning-border-subtle);
    outline-offset: -2px;
    transition: background-color 120ms ease, outline-color 120ms ease;
}

.entidad-table .delete-confirm-row .alert {
    animation: entidad-slide-fade-in 160ms ease-out both;
    border-color: var(--bs-warning-border-subtle) !important;
}

@keyframes entidad-slide-fade-in {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Normalización de botones en confirmación en línea */
.entidad-table .delete-confirm-row .delete-confirm-form { margin: 0; display: inline; }
.entidad-table .delete-confirm-row .btn {
    display: inline-flex;
    align-items: center;
    font-size: .875rem; /* mismo que btn-sm */
    padding: .2rem .5rem; /* compacto y consistente */
    height: auto; /* evitar que se vea más alto */
}
.entidad-table .delete-confirm-row .btn-danger { box-shadow: none; }
.entidad-table .delete-confirm-row .btn .bi { line-height: 1; }

/* Barra de iconos en listados */
.icon-action-bar {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .28rem .34rem;
    border: 1px solid #d3d9ce;
    border-radius: .32rem;
    background: rgba(255,255,255,.9);
}
.icon-action-bar .icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: .28rem;
    padding: .34rem;
    min-width: 2.08rem;
    height: 2.08rem;
    border-color: #d3d9ce;
    background: rgba(255,255,255,.96);
    box-shadow: none;
}
.icon-action-bar .icon-btn .bi { font-size: 1.05rem; }
.icon-action-bar .icon-btn[aria-disabled="true"] { opacity: .6; }

/* Alineamiento: mover el search-inline al final en pantallas chicas */
.icon-action-bar .search-inline { margin-left: .5rem; }

/* Botón nuevo: texto oculto en pantallas chicas */
.btn-nuevo {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    border-radius: .32rem;
    min-height: 2.08rem;
    padding-inline: .72rem;
    box-shadow: none !important;
}
.btn-nuevo .bi { font-size: 1.05rem; }

@media (max-width: 575px) {
    .icon-action-bar { gap: .35rem; }
    .icon-action-bar .icon-btn { padding: .3rem; min-width: 1.92rem; height: 1.92rem; }
    .search-inline { display: none !important; }
    .btn-nuevo span.d-none.d-md-inline { display: none !important; }
}

/* Cuando el icono de búsqueda revela el input en pantallas chicas */
.search-inline.visible-by-icon {
    display: flex !important;
    flex: 1 1 100% !important;
    min-width: 0;
}
.search-inline.visible-by-icon .search-group { width: 100%; }

@media (min-width: 576px) {
    .icon-action-bar .ms-auto { margin-left: auto; }
}

/* Visual focus para icon buttons */
.icon-action-bar .icon-btn:focus {
    box-shadow: 0 0 0 0.18rem rgba(47, 107, 61, 0.12);
    outline: none;
}

/* Documentos de stock: modo compacto para maximizar renglones visibles */
.entidad-page.page-stock-doc-list {
    padding-top: .35rem !important;
}

.entidad-page.page-stock-doc-list .list-toolbar {
    padding: .55rem .75rem;
    margin-bottom: .35rem;
}

.entidad-page.page-stock-doc-list .list-title {
    font-size: clamp(1.2rem, 1rem + .7vw, 1.55rem);
    line-height: 1.02;
}

.entidad-page.page-stock-doc-list #filtrosCollapse #filtersForm {
    padding: .45rem .65rem .55rem;
}

.entidad-page.page-stock-doc-list #entidadListWrapper {
    border-radius: .7rem;
}

.entidad-page.page-stock-doc-list .entidad-table thead th {
    padding-top: .38rem;
    padding-bottom: .38rem;
    font-size: .79rem;
}

.entidad-page.page-stock-doc-list .entidad-table tbody td {
    padding-top: .22rem;
    padding-bottom: .22rem;
    font-size: .83rem;
    line-height: 1.15;
}

.entidad-page.page-stock-doc-list .truncate-cell {
    line-height: 1.1;
}

.entidad-page.page-stock-doc-list .btn.btn-sm,
.entidad-page.page-stock-doc-list .icon-action-bar .icon-btn {
    min-height: 1.85rem;
    height: 1.85rem;
}

/* Campo: imagen de croquis y polígonos SVG se escalan siempre juntos. */
.campo-croquis-frame {
    position: relative;
    width: min(100%, 70rem);
    overflow: hidden;
    border: 1px solid #d3d9ce;
    border-radius: .45rem;
    background: #f8f5eb;
}

.campo-croquis-frame > img {
    display: block;
    width: 100%;
    height: auto;
}

.campo-croquis-svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: visible;
}

.campo-croquis-empty {
    position: absolute;
    right: .5rem;
    bottom: .5rem;
    margin: 0;
    padding: .2rem .4rem;
    border-radius: .2rem;
    background: rgba(255, 255, 255, .82);
    color: #495057;
    font-size: .78rem;
}

.campo-demo-notice {
  color: #6b5a18;
  font-size: .75rem;
  font-weight: 600;
  white-space: nowrap;
}

.campo-map-polygon-area {
  fill: #ffffff;
  font-size: 18px;
  font-weight: 600;
  paint-order: stroke;
  stroke: rgba(35, 62, 43, .85);
  stroke-width: 4px;
  pointer-events: none;
}

.campo-map-polygon {
    fill: rgba(47, 107, 61, .20);
    stroke: #2f6b3d;
    stroke-width: 2;
    vector-effect: non-scaling-stroke;
    cursor: pointer;
}

.campo-map-polygon:hover,
.campo-map-polygon:focus {
    fill: rgba(47, 107, 61, .36);
    outline: none;
}

.campo-map-polygon:focus { stroke: #244f2e; stroke-width: 3; }
.campo-map-polygon.is-selected { fill: rgba(191, 143, 35, .45); stroke: #8b6615; }
.campo-map-polygon.is-neutral { fill: rgba(108, 117, 125, .23); stroke: #6c757d; cursor: default; }

.campo-tablon-ficha {
    width: min(100%, 70rem);
    margin-top: .75rem;
    padding: .7rem .85rem;
    border: 1px solid #d3d9ce;
    border-radius: .45rem;
    background: #fff;
}

.campo-tablon-ficha-datos {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem 1.25rem;
}

.campo-tablon-ficha-datos > div { display: flex; gap: .3rem; }
.campo-tablon-ficha-datos dt { color: #6c757d; font-weight: 600; }
.campo-tablon-ficha-datos dd { margin: 0; }

.campo-map-polygon-label {
    fill: #1f3323;
    font-size: 22px;
    font-weight: 700;
    pointer-events: none;
    paint-order: stroke;
    stroke: rgba(255, 255, 255, .85);
    stroke-width: 4px;
}

.campo-croquis-editor-frame {
    position: relative;
    width: min(100%, 78rem);
    border: 1px solid #d3d9ce;
    border-radius: .45rem;
    max-height: 72vh;
    overflow: auto;
    background: #f8f5eb;
}

.campo-croquis-editor-canvas {
    position: relative;
    width: 100%;
    min-width: 100%;
}

.campo-croquis-editor-canvas > img {
    display: block;
    width: 100%;
    height: auto;
}

#croquis-editor-svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    cursor: crosshair;
    touch-action: none;
}

#croquis-editor-svg.is-moving { cursor: grab; }
#croquis-editor-svg.is-moving:active { cursor: grabbing; }

.campo-editor-viewport-tools {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem;
    margin-bottom: .5rem;
}

.campo-editor-viewport-tools .btn { min-height: 2.25rem; }
.campo-editor-zoom-level { min-width: 3.8rem; text-align: center; font-weight: 600; }

.campo-editor-polygon {
    fill: rgba(47, 107, 61, .16);
    stroke: #2f6b3d;
    stroke-width: 2;
    vector-effect: non-scaling-stroke;
}

.campo-editor-polygon-label {
    fill: #1f3323;
    font-size: 22px;
    font-weight: 700;
    pointer-events: none;
    paint-order: stroke;
    stroke: rgba(255, 255, 255, .9);
    stroke-width: 4px;
}

.campo-editor-draft-fill { fill: rgba(191, 143, 35, .25); stroke: none; pointer-events: none; }
.campo-editor-draft-line { fill: none; stroke: #8b6615; stroke-width: 3; vector-effect: non-scaling-stroke; pointer-events: none; }
.campo-editor-draft-point { fill: #8b6615; stroke: #fff; stroke-width: 2; vector-effect: non-scaling-stroke; pointer-events: none; }

/* Riego: las acciones de cada Vuelta deben superponerse a la tabla. */
.riego-vueltas-table-responsive {
    overflow: visible;
}

@media (max-width: 767.98px) {
    .riego-vueltas-table-responsive {
        overflow: visible;
    }
}

/* Selector operativo de chacras: una fila compacta y claramente accionable. */
.campo-chacra-selector .campo-chacra-choice {
  position: relative;
  display: block;
  margin-bottom: .5rem;
  padding: .75rem 2.5rem .75rem .875rem;
  border: 1px solid rgba(0, 0, 0, .14);
  border-radius: .5rem !important;
  cursor: pointer;
  transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.campo-chacra-selector .campo-chacra-choice:hover {
  background-color: rgba(13, 110, 253, .05);
  border-color: rgba(13, 110, 253, .45);
}
.campo-chacra-selector .campo-chacra-choice:focus-visible {
  outline: 0;
  border-color: #0d6efd;
  box-shadow: 0 0 0 .2rem rgba(13, 110, 253, .25);
}
.campo-chacra-selector .campo-chacra-choice::after {
  content: '›';
  position: absolute;
  top: 50%;
  right: 1rem;
  color: #6c757d;
  font-size: 1.5rem;
  line-height: 1;
  transform: translateY(-50%);
}

/* O.T.: toolbar compacto con una ?nica fila de escritorio. */
.list-toolbar-compact {
    display: block;
    width: 100%;
    padding: .35rem .5rem;
}
.list-toolbar-compact .ot-list-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: .75rem;
    width: 100%;
}
.list-toolbar-compact .ot-list-header-actions { display: flex; align-items: center; gap: .25rem; }
.list-toolbar-compact .ot-search-anchor { position: relative; }
.list-toolbar-compact .ot-search-inline {
    position: absolute;
    top: calc(100% + .3rem);
    right: 0;
    z-index: 1070;
    width: min(25rem, calc(100vw - 2rem));
    padding: .2rem;
    border: 1px solid #d8ddd2;
    border-radius: .4rem;
    background: #fff;
    box-shadow: 0 .3rem .8rem rgba(24,35,27,.12);
}
.list-toolbar-compact .ot-search-inline .search-3part { display: flex; width: 100%; height: 2rem; min-height: 2rem; padding-right: 0; overflow: visible; }
.list-toolbar-compact .ot-search-inline .search-text { flex: 1 1 auto; min-width: 0; width: 1%; height: 100%; }
.list-toolbar-compact .ot-search-inline .search-btn,
.list-toolbar-compact .ot-search-inline .clear-btn {
    box-sizing: border-box;
    flex: 0 0 2rem;
    width: 2rem;
    min-height: 0;
    height: auto;
    margin: .14rem .14rem .14rem 0;
    padding: 0;
    border: 1px solid #b8cfb9 !important;
    border-radius: .3rem;
    background: #e5f0e3;
    color: #285c34;
}
.list-toolbar-compact .ot-search-inline .search-btn:hover,
.list-toolbar-compact .ot-search-inline .clear-btn:hover { background: #cfe4cb !important; color: #173d27 !important; }
.list-toolbar-compact .ot-search-inline .search-btn:focus-visible,
.list-toolbar-compact .ot-search-inline .clear-btn:focus-visible { outline: 2px solid #2f6b3d; outline-offset: 1px; box-shadow: none; }
.list-toolbar-compact .ot-search-inline .search-btn::before,
.list-toolbar-compact .ot-search-inline .clear-btn::before { display: none; }
.list-toolbar-compact .ot-search-inline .search-text,
.list-toolbar-compact .ot-search-inline .search-btn,
.list-toolbar-compact .ot-search-inline .clear-btn { font-size: .84rem; }
.list-toolbar-compact .ot-list-header .ot-toolbar-icon { position: relative; }
.trabajos-inbox .ot-list-header .icon-btn { width: 2rem; height: 2rem; min-width: 2rem; padding: .3rem; position: relative; }
.trabajos-inbox .filter-active-dot,
.trabajos-inbox .search-active-dot { position: absolute; width: .38rem; height: .38rem; border-radius: 50%; background: #198754; right: .2rem; top: .2rem; }
.trabajos-inbox .list-title { font-size: 1.3rem; white-space: nowrap; }
.trabajos-inbox .entidad-table-wrapper-scroll-region { max-height: calc(100vh - var(--navbar-height) - 10rem); overflow: auto; }
.trabajos-inbox .entidad-table { width: 100%; table-layout: fixed; }
.trabajos-inbox .entidad-table th, .trabajos-inbox .entidad-table td { padding: .25rem .35rem; }
.trabajos-inbox .ot-col-number { width: 7%; }.trabajos-inbox .ot-col-date { width: 9%; }.trabajos-inbox .ot-col-task { width: 17%; }.trabajos-inbox .ot-col-location { width: 24%; }.trabajos-inbox .ot-col-producer { width: 21%; }.trabajos-inbox .ot-col-status { width: 13%; white-space: normal; }.trabajos-inbox .acciones-header, .trabajos-inbox .acciones-cell { width: 9%; min-width: 5.25rem; }
.trabajos-inbox .ot-col-status .truncate-cell { white-space: normal; overflow: visible; text-overflow: clip; }
.trabajos-inbox #entidadListFooter { margin-top: .2rem !important; min-height: 2rem; }
@media (max-width: 991px) { .trabajos-inbox .entidad-table-wrapper-scroll-region { max-height: none; overflow-x: auto; overflow-y: visible; } }
@media (max-width: 575px) { .trabajos-inbox .list-title { font-size: 1.08rem; }.trabajos-inbox .ot-list-header { grid-template-columns: 1fr; gap: .25rem; }.trabajos-inbox .ot-list-header-actions { flex-wrap: wrap; } }

/* Patr?n integral O.T. */
.page-productores-list .ot-toolbar-icon{width:2.35rem;height:2.35rem;min-width:2.35rem;padding:0;border:0!important;background:transparent!important;color:#31443a;display:inline-grid;place-items:center;border-radius:.5rem}.page-productores-list .ot-toolbar-icon .bi,.page-productores-list .ot-toolbar-icon span{font-size:1.2rem;font-weight:700}.page-productores-list .ot-toolbar-icon:hover{background:#e9eee6!important;color:#173d27}.page-productores-list .ot-toolbar-icon:focus-visible{outline:2px solid #2f6b3d;outline-offset:2px}.page-productores-list .ot-toolbar-icon--create{background:#d4a72c!important;color:#243028}.page-productores-list .ot-toolbar-icon--create:hover{background:#c39720!important}.page-productores-list .filter-active-dot,.page-productores-list .search-active-dot{position:absolute;width:.38rem;height:.38rem;border-radius:50%;background:#198754;right:.2rem;top:.2rem}.page-productores-list .ot-list-header .list-title{font-size:1.3rem;white-space:nowrap}
.trabajos-inbox .ot-toolbar-icon{width:2.35rem;height:2.35rem;min-width:2.35rem;padding:0;border:0!important;background:transparent!important;color:#31443a;display:inline-grid;place-items:center;border-radius:.5rem}.trabajos-inbox .ot-toolbar-icon .bi,.trabajos-inbox .ot-toolbar-icon span{font-size:1.2rem;font-weight:700}.trabajos-inbox .ot-toolbar-icon:hover{background:#e9eee6!important;color:#173d27}.trabajos-inbox .ot-toolbar-icon:focus-visible{outline:2px solid #2f6b3d;outline-offset:2px}.trabajos-inbox .ot-toolbar-icon--create{background:#d4a72c!important;color:#243028}.trabajos-inbox .ot-toolbar-icon--create:hover{background:#c39720!important}
.trabajos-inbox #filtrosCollapse #filtersForm{padding:.35rem .55rem;border:0;border-bottom:1px solid #d8ddd2;border-radius:0;box-shadow:none;background:#f8f8f3}.trabajos-inbox #filtrosCollapse .filters-card{border:0;box-shadow:none}.trabajos-inbox .entidad-table{table-layout:fixed}.trabajos-inbox .ot-col-number{width:6%}.trabajos-inbox .ot-col-date{width:9%}.trabajos-inbox .ot-col-task{width:18%}.trabajos-inbox .ot-col-location{width:22%}.trabajos-inbox .ot-col-producer{width:18%}.trabajos-inbox .ot-col-status{width:13%}.trabajos-inbox .acciones-header,.trabajos-inbox .acciones-cell{width:10%!important;min-width:7rem!important;white-space:nowrap}.trabajos-inbox .ot-list-footer{min-height:0!important;padding:.25rem .5rem;border-top:1px solid #d8ddd2;background:transparent}.trabajos-inbox .ot-paginator-inline{padding:0!important;border:0!important;box-shadow:none!important;background:transparent!important}.trabajos-inbox .paginator-box{border:0!important;box-shadow:none!important;background:transparent!important}.trabajos-inbox .pagination .page-link{min-height:1.9rem;padding:.2rem .45rem}

.cosecha-list .ot-list-header .list-title { white-space: normal; }
.cosecha-list .entidad-table { table-layout: auto; }
.cosecha-list .cosecha-col-status { white-space: nowrap; }
.cosecha-list .cosecha-col-status .truncate-cell { overflow: visible; }
@media (max-width: 575px) {
    .cosecha-list .entidad-table-wrapper { overflow-x: hidden; }
    .cosecha-list .ot-list-footer { height: auto; min-height: 2.2rem; }
}

/* O.T. etapa tabla: reserva real para imprimir, editar y m?s. */
@media (min-width: 992px){.trabajos-inbox .entidad-table{table-layout:fixed}.trabajos-inbox .ot-col-number{width:6%!important}.trabajos-inbox .ot-col-date{width:8%!important}.trabajos-inbox .ot-col-task{width:17%!important}.trabajos-inbox .ot-col-location{width:22%!important}.trabajos-inbox .ot-col-producer{width:17%!important}.trabajos-inbox .ot-col-status{width:12%!important}.trabajos-inbox .acciones-header,.trabajos-inbox .acciones-cell{width:12%!important;min-width:8.1rem!important;padding:.2rem .35rem!important}.trabajos-inbox .acciones-group{gap:.12rem;padding:.08rem;background:transparent;border:0}.trabajos-inbox .acciones-group .btn{width:2rem;min-width:2rem;min-height:2rem;padding:.2rem;border-radius:.35rem}.trabajos-inbox .acciones-cell{overflow:visible}.trabajos-inbox .entidad-table-wrapper-scroll-region{overflow-x:hidden}}

/* O.T. etapa filtros y paginaci?n: franja liviana, sin tarjetas. */
.trabajos-inbox #filtrosCollapse{margin:0!important;padding:0}.trabajos-inbox #filtrosCollapse #filtersForm{margin:0!important;padding:.25rem .45rem!important;border:0!important;border-bottom:1px solid #d8ddd2!important;border-radius:0!important;box-shadow:none!important;background:#f7f8f4!important;gap:.35rem!important}.trabajos-inbox #filtrosCollapse .form-control-sm,.trabajos-inbox #filtrosCollapse .form-select-sm{height:2rem;min-height:2rem;padding:.22rem .45rem;border-radius:.35rem}.trabajos-inbox #filtrosCollapse .form-label{font-size:.72rem;margin:0 .15rem 0 0;align-self:center}.trabajos-inbox #filtrosCollapse .btn.btn-sm{height:2rem;padding:.22rem .5rem;border-radius:.35rem}.trabajos-inbox #filtrosCollapse .filter-primary-actions{gap:.25rem}.trabajos-inbox .ot-list-footer{height:2.2rem;min-height:2.2rem!important;padding:.1rem .35rem!important;border:0!important;box-shadow:none!important}.trabajos-inbox .ot-list-footer .paginator-box{display:flex;align-items:center;gap:.5rem;height:100%;margin:0!important}.trabajos-inbox .ot-list-footer .list-summary-chip{margin:0!important;padding:0!important;background:transparent!important;border:0!important}.trabajos-inbox .ot-list-footer nav{margin:0!important}.trabajos-inbox .ot-list-footer .pagination .page-link{min-width:1.8rem;min-height:1.8rem;height:1.8rem;padding:.1rem .32rem;margin:0;border:0!important;background:transparent!important;border-radius:.25rem}.trabajos-inbox .ot-list-footer .pagination .page-item.active .page-link{background:#e8ece4!important;color:#243028}.trabajos-inbox .ot-list-footer .pagination .page-item.disabled .page-link{background:transparent!important}.trabajos-inbox #entidadListWrapper.entidad-table-wrapper-min-rows{min-height:0}

/* O.T. ajustes finales de filtros y men? de fila. */
.trabajos-inbox #filtersClearBtn{border:0!important;background:transparent!important;color:#5d6a61;padding:.22rem .38rem!important}.trabajos-inbox #filtersClearBtn:hover{background:#e9eee6!important;color:#234b31}.trabajos-inbox .acciones-group .dropdown-toggle::after{margin-left:.08rem;transform:translateX(-.22rem)}

/* Submen?s reales del men? compacto O.T. */
/* Submen?s del men? M?s: el men? principal est? alineado a la derecha; abrir el segundo nivel hacia el interior evita que quede fuera del viewport. */
.compact-more-menu{--bs-dropdown-link-hover-color:#274A32;--bs-dropdown-link-color:#274A32}.compact-more-menu .dropdown-submenu{position:relative}
.compact-more-menu .dropdown-submenu>.dropdown-menu{display:none;top:-.35rem;right:100%;left:auto;margin:0 .1rem 0 0;z-index:1080}
.compact-more-menu .dropdown-submenu.is-open>.dropdown-menu{display:block}
.compact-more-menu .dropdown-submenu>.dropdown-toggle::after{float:right;margin-top:.45rem;transform:rotate(-90deg)}
body .compact-more-menu .dropdown-item:hover,body .compact-more-menu .dropdown-item:focus{background:#E8E9D7!important;color:#274A32!important}
body .compact-more-menu .dropdown-submenu.is-open>.dropdown-toggle{background:#E8E9D7!important;color:#274A32!important}
.compact-more-menu .dropdown-item:focus-visible{outline:2px solid #274A32;outline-offset:-2px}
@media(max-width:575px){.compact-more-menu .dropdown-submenu>.dropdown-menu{position:static;float:none;margin:.15rem 0 0 .75rem;border:0;box-shadow:none}.compact-more-menu{max-width:calc(100vw - 1rem)}.list-toolbar-compact .ot-search-inline{position:fixed;top:auto;right:.5rem;left:.5rem;bottom:.4rem;width:auto;max-width:none}.list-toolbar-compact .ot-search-inline .search-3part,.list-toolbar-compact .ot-search-inline .search-text,.list-toolbar-compact .ot-search-inline .search-btn,.list-toolbar-compact .ot-search-inline .clear-btn{min-height:2.25rem;height:2.25rem}}
@media(max-width:575px){.list-toolbar-compact .ot-search-inline .search-3part,.list-toolbar-compact .ot-search-inline .search-text{min-height:2.45rem;height:2.45rem}.list-toolbar-compact .ot-search-inline .search-btn,.list-toolbar-compact .ot-search-inline .clear-btn{min-height:0;height:auto}}

/* Mini formulario compartido de preferencias: compacto y utilizable en escritorio y movil. */
.dropdown-menu.list-preferences-menu{width:15.75rem;min-width:15.75rem;max-width:calc(100vw - 1rem);padding:.16rem;border-radius:.45rem;background:#fff;box-shadow:0 .4rem 1rem rgba(24,35,27,.14)}
.list-preferences-menu .list-preferences-heading{display:flex;align-items:center;justify-content:space-between;padding:.25rem .45rem;font-size:.78rem;font-weight:600;color:#344136}
.list-preferences-reset-icon{width:1.8rem;height:1.8rem;padding:0;border:0;color:#657065}.list-preferences-reset-icon:hover{background:#edf1e9;color:#315b40}
.list-preferences-menu .list-preferences-page-size{display:flex;align-items:center;justify-content:space-between;gap:.35rem;padding:.22rem .45rem}.list-preferences-menu .list-preferences-label{margin:0;color:#5f685d;font-size:.73rem;white-space:nowrap}.list-preferences-menu .list-preferences-select{width:4.15rem;min-height:1.75rem;padding:.1rem 1.35rem .1rem .35rem;font-size:.76rem}
.list-preferences-menu .list-preferences-pdf{display:grid;gap:.24rem;padding:.28rem .45rem;border-top:1px solid #e4e8e1}.pdf-orientation-buttons{display:grid;grid-template-columns:1fr 1fr;gap:.22rem}.pdf-orientation-button,.pdf-number-position{border:1px solid #d7ded3;background:#fff;color:#526052;border-radius:.3rem;min-height:1.75rem;font-size:.7rem}.pdf-orientation-button{display:flex;align-items:center;justify-content:center;gap:.22rem}.pdf-orientation-button .bi{font-size:.84rem}.pdf-orientation-button.is-selected,.pdf-number-position.is-selected{border-color:#79966c;background:#edf4e9;color:#234b31;box-shadow:inset 0 0 0 1px #79966c}.pdf-numbering-toggle{display:flex;align-items:center;justify-content:space-between;font-size:.73rem}.pdf-numbering-toggle input{width:1.75rem;height:.9rem}.pdf-number-grid-wrap{display:grid;gap:.18rem}.pdf-number-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.16rem}.pdf-number-position{height:1.58rem;min-height:1.58rem}.pdf-number-position span{opacity:0}.pdf-number-position.is-selected span{opacity:1;font-weight:700}.list-preferences-menu [hidden]{display:none!important}
@media(max-width:575px){.dropdown-menu.list-preferences-menu{width:min(15.75rem,calc(100vw - 1rem));min-width:0}.list-preferences-menu .list-preferences-page-size{padding:.26rem .45rem}.pdf-orientation-button,.pdf-number-position{min-height:1.9rem}.pdf-number-position{height:1.75rem}}

/* Acciones explícitas del buscador compacto O.T. */
.list-toolbar-compact .ot-search-utility{display:flex;align-items:center;gap:.2rem;min-height:1.55rem;padding:.08rem .08rem 0}.list-toolbar-compact .ot-search-status{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;color:#5b695d}.list-toolbar-compact .ot-search-utility .btn{min-height:1.5rem;padding:.08rem .28rem;font-size:.72rem;color:#285c34;text-decoration:none}.list-toolbar-compact .ot-search-utility .btn:hover,.list-toolbar-compact .ot-search-utility .btn:focus-visible{background:#e5f0e3;color:#173d27;text-decoration:none;border-radius:.25rem}.list-toolbar-compact .ot-search-utility .btn:focus-visible{outline:2px solid #2f6b3d;outline-offset:1px}
/* Ajustes compartidos para las listas homologadas y controles territoriales. */
body .trabajos-inbox .compact-more-menu .dropdown-item:active {
    background: #E8E9D7 !important;
    color: #274A32 !important;
}
.explorer-toggle:not(:hover):not(:focus-visible) .bi-plus-square {
    color: #A65F00;
}
.page-riego-list .entidad-table {
    table-layout: fixed;
}
.page-riego-list .entidad-table th:nth-child(1) { width: 20%; }
.page-riego-list .entidad-table th:nth-child(2) { width: 12%; }
.page-riego-list .entidad-table th:nth-child(3) { width: 10%; }
.page-riego-list .entidad-table th:nth-child(4) { width: 12%; }
.page-riego-list .entidad-table th:nth-child(5) { width: 34%; }
.page-riego-list .entidad-table th:nth-child(6) { width: 12%; }
.page-riego-list #entidadListWrapper { overflow: visible; }
.page-tablones-list #entidadListWrapper { max-height: none; overflow: visible; }
.page-riego-list .acciones-header,
.page-riego-list .acciones-cell {
    width: 12% !important;
    min-width: 8.1rem !important;
    padding: .2rem .35rem !important;
    white-space: nowrap;
}
.page-riego-list .acciones-group {
    gap: .12rem;
    padding: .08rem;
    border: 0;
    background: transparent;
}
.page-riego-list .acciones-group .btn {
    width: 2rem;
    min-width: 2rem;
    min-height: 2rem;
    padding: .2rem;
    border-radius: .35rem;
}
.page-riego-list .acciones-group .riego-primary-action {
    width: auto;
    min-width: 5rem;
    padding: .25rem .45rem;
}
@media (max-width: 575px) {
    .page-riego-list .entidad-table th { width: auto; }
}
