﻿/* Temas completos de los controles Provis. Las medidas son independientes del color.
   Inherit no redefine variables: conserva el contenedor más próximo; el fallback raíz es claro. */
@font-face {
    font-family: "Material Symbols";
    src: url("../../Radzen.Blazor/fonts/MaterialSymbolsOutlined.woff2") format("woff2");
    font-style: normal;
    font-weight: 100 700;
    font-display: block;
}

/* RadzenIcon sin cargar un tema global de Radzen. Los iconos fuera de componentes
   compartidos optan por la clase prv-material-icon. */
.rzi.prv-material-icon,
.prv-radzen-tabs .rzi,
.prv-radzen-calendar-selector-button .rzi,
.prv-month-step .rzi,
.prv-chart-export-trigger .rzi {
    display: inline-block;
    font-family: "Material Symbols";
    font-feature-settings: "liga";
    font-size: 16px;
    font-style: normal;
    font-weight: normal;
    line-height: 1;
    white-space: nowrap;
    -webkit-font-smoothing: antialiased;
}

:where(:root) {
    --prv-tabs-host-border-width: 1px;
    --prv-tabs-host-padding: 3px 8px 0;
    --prv-toolbar-item-gap: .65rem;
    --prv-checkbox-field-height: 20px;
    --prv-checkbox-field-margin-left: 0;
    --prv-checkbox-field-padding-top: 0;
    --prv-checkbox-field-label-font-size: inherit;
    --prv-checkbox-field-label-line-height: 20px;
    --prv-checkbox-field-label-margin-left: 6px;
    --prv-mask-focus-shadow-size: .15rem;
    --prv-mask-height-xs: 24px;
    --prv-mask-height-sm: 27px;
    --prv-mask-height-md: 30px;
    --prv-mask-height-lg: 38px;
    --prv-mask-height-xl: 44px;
    --prv-mask-padding-xs: .1rem .3rem;
    --prv-mask-padding-sm: .15rem .35rem;
    --prv-mask-padding-md: .2rem .45rem;
    --prv-mask-padding-lg: .35rem .6rem;
    --prv-mask-padding-xl: .45rem .7rem;
    --prv-control-border-radius: .2rem;
    --prv-tabs-selected-border-width: 2px;
    --prv-tabs-font-size-xs: 11px;
    --prv-tabs-font-size-sm: 12px;
    --prv-tabs-font-size-md: 12px;
    --prv-tabs-font-size-lg: 14px;
    --prv-tabs-font-size-xl: 16px;
    --prv-tabs-line-height-xs: 16px;
    --prv-tabs-line-height-sm: 18px;
    --prv-tabs-line-height-md: 18px;
    --prv-tabs-line-height-lg: 20px;
    --prv-tabs-line-height-xl: 22px;
    --prv-tabs-padding-xs: 4px 8px;
    --prv-tabs-padding-sm: 5px 10px;
    --prv-tabs-padding-md: 6px 12px;
    --prv-tabs-padding-lg: 8px 14px;
    --prv-tabs-padding-xl: 10px 16px;
    --prv-calendar-trigger-focus-shadow-size: .15rem;
    --prv-calendar-selector-margin-left: 0;
    --prv-calendar-trigger-size-xs: 24px;
    --prv-calendar-trigger-size-sm: 27px;
    --prv-calendar-trigger-size-md: 30px;
    --prv-calendar-trigger-size-lg: 36px;
    --prv-calendar-trigger-size-xl: 42px;
    --prv-calendar-popup-left: 0;
    --prv-calendar-popup-margin-top: .3rem;
    --prv-calendar-popup-padding: .35rem;
    --prv-calendar-popup-top: 100%;
    --prv-calendar-popup-z-index: 2000;
    --prv-calendar-font-size: .8rem;
    --prv-calendar-min-width: 270px;
    --prv-calendar-header-min-height: 34px;
    --prv-calendar-header-padding: 0 .25rem;
    --prv-calendar-title-font-weight: 600;
    --prv-calendar-title-gap: .25rem;
    --prv-calendar-navigation-size: 28px;
    --prv-calendar-navigation-font-size: 1.8rem;
    --prv-calendar-weekday-font-size: .7rem;
    --prv-calendar-weekday-font-weight: 500;
    --prv-calendar-weekday-height: 30px;
    --prv-calendar-day-border-radius: .2rem;
    --prv-calendar-day-height: 32px;
    --prv-calendar-other-month-opacity: .45;
    --prv-calendar-active-day-line-height: 28px;
    --prv-calendar-active-day-min-width: 28px;
    --prv-calendar-footer-padding-top: .25rem;
    --prv-calendar-footer-button-margin: 0 0 .15rem;
    --prv-calendar-footer-button-min-height: 28px;
    --prv-calendar-footer-button-padding: 0 .8rem;
    --prv-calendar-footer-button-focus-shadow-size: .12rem;
    --prv-calendar-month-panel-min-width: 8.5rem;
    --prv-calendar-year-panel-min-width: 5.5rem;
    --prv-calendar-dropdown-items-padding: .2rem 0;
    --prv-calendar-dropdown-item-padding: .25rem .5rem;
    --prv-string-select-disabled-opacity: .65;
    --prv-string-select-font-size: 12px;
    --prv-string-select-focus-shadow-size: 2px;
    --prv-string-select-height-xs: 22px;
    --prv-string-select-height-sm: 24px;
    --prv-string-select-height-md: 26px;
    --prv-string-select-height-lg: 32px;
    --prv-string-select-height-xl: 38px;
    --prv-string-select-padding-xs: 1px 22px 1px 6px;
    --prv-string-select-padding-sm: 1px 24px 1px 7px;
    --prv-string-select-padding-md: 2px 26px 2px 8px;
    --prv-string-select-padding-lg: 4px 30px 4px 10px;
    --prv-string-select-padding-xl: 5px 34px 5px 12px;
    --prv-checkbox-size-xs: 12px;
    --prv-checkbox-size-sm: 14px;
    --prv-checkbox-size-md: 16px;
    --prv-checkbox-size-lg: 20px;
    --prv-checkbox-size-xl: 24px;
    --prv-checkbox-icon-size-xs: 9px;
    --prv-checkbox-icon-size-sm: 10px;
    --prv-checkbox-icon-size-md: 12px;
    --prv-checkbox-icon-size-lg: 14px;
    --prv-checkbox-icon-size-xl: 16px;
    --prv-grid-border-width: 1px;
    --prv-grid-header-font-size: 12px;
    --prv-grid-header-font-weight: 400;
    --prv-grid-header-padding: 2px 4px;
    --prv-grid-header-height: 31px;
    --prv-grid-cell-font-size: 12px;
    --prv-grid-cell-font-weight: 100;
    --prv-grid-cell-padding: 2px 5px;
    --prv-grid-footer-font-weight: 700;
    --prv-grid-font-size: 12px;
    --prv-grid-sort-icon-margin-left: 5px;
    --prv-grid-sort-icon-width: 10px;
    --prv-grid-sort-icon-font-family: Arial, sans-serif;
    --prv-grid-sort-icon-font-size: 11px;
    --prv-grid-column-resizer-right: -6px;
    --prv-grid-column-resizer-width: 12px;
    --prv-grid-column-resizer-z-index: 2;
    --prv-grid-column-resizer-guide-dash: 2px;
    --prv-grid-column-resizer-guide-gap: 4px;
    --prv-grid-column-resizer-guide-height: 10px;
    --prv-grid-column-resizer-guide-width: 2px;
    --prv-button-font-size: .875rem;
    --prv-button-font-size-sm: .75rem;
    --prv-switch-width-xs: 24px;
    --prv-switch-height-xs: 14px;
    --prv-switch-width-sm: 28px;
    --prv-switch-height-sm: 16px;
    --prv-switch-width-md: 36px;
    --prv-switch-height-md: 20px;
    --prv-switch-width-lg: 44px;
    --prv-switch-height-lg: 24px;
    --prv-switch-width-xl: 52px;
    --prv-switch-height-xl: 28px;
    --prv-switch-label-gap: 6px;
    --prv-calendar-period-cell-height: 42px;
}
:where(:root), .prv-theme-light {
    --prv-select-surface: #ffffff;
    --prv-select-text: #212529;
    --prv-select-border: #adb5bd;
    --prv-select-hover: #e9ecef;
    --prv-tabs-surface: #f1f3f5;
    --prv-toolbar-surface: #f1f3f5;
    --prv-toolbar-text: #212529;
    --prv-toolbar-separator: #adb5bd;
    --prv-tabs-border: #adb5bd;
    --prv-tabs-separator: rgb(0 0 0 / 6%);
    --prv-tabs-text: #212529;
    --prv-tabs-muted-text: #6c757d;
    --prv-mask-surface: #ffffff;
    --prv-mask-text: #212529;
    --prv-mask-border: #adb5bd;
    --prv-mask-focus-border: var(--prv-color-accent);
    --prv-mask-focus-shadow: var(--prv-color-accent-focus);
    --prv-color-accent: #5f368d;
    --prv-color-accent-contrast: #ffffff;
    --prv-color-accent-focus: rgba(95, 54, 141, .25);
    --prv-calendar-trigger-surface: #d7d7d7;
    --prv-calendar-trigger-border: #adb5bd;
    --prv-calendar-trigger-text: #212529;
    --prv-calendar-trigger-hover-surface: #c7c7c7;
    --prv-calendar-popup-surface: #ffffff;
    --prv-calendar-popup-border: #adb5bd;
    --prv-calendar-popup-shadow: 0 .5rem 1rem rgba(0, 0, 0, .2);
    --prv-calendar-surface: #ffffff;
    --prv-calendar-surface-muted: #f1f3f5;
    --prv-calendar-border: #adb5bd;
    --prv-calendar-text: #212529;
    --prv-calendar-text-muted: #6c757d;
    --prv-calendar-primary: var(--prv-color-accent);
    --prv-calendar-primary-text: #ffffff;
    --prv-calendar-day-hover-surface: var(--prv-calendar-surface-muted);
    --prv-calendar-footer-button-surface: var(--prv-calendar-surface-muted);
    --prv-calendar-footer-button-border: var(--prv-calendar-border);
    --prv-calendar-footer-button-text: var(--prv-calendar-text);
    --prv-calendar-dropdown-surface: #ffffff;
    --prv-calendar-dropdown-border: #adb5bd;
    --prv-calendar-dropdown-shadow: var(--prv-calendar-popup-shadow);
    --prv-calendar-dropdown-text: #212529;
    --prv-calendar-dropdown-item-highlight-surface: #f1f3f5;
    --prv-string-select-surface: #ffffff;
    --prv-string-select-border: #adb5bd;
    --prv-string-select-text: #212529;
    --prv-string-select-disabled-text: #6c757d;
    --prv-checkbox-surface: #ffffff;
    --prv-checkbox-border: #adb5bd;
    --prv-grid-border: #adb5bd;
    --prv-grid-header: rgba(12, 70, 99, .83);
    --prv-grid-header-text: #ffffff;
    --prv-grid-row: #ffffff;
    --prv-grid-row-alternate: #f8f9fa;
    --prv-grid-footer-surface: #c5c5c5;
    --prv-grid-footer-border: #000000;
    --prv-grid-text: #212529;
    --prv-grid-header-bottom-border: #adb5bd;
    --prv-grid-sortable-hover-surface: #416b81;
    --prv-grid-sort-icon-color: #ffffff;
    --prv-grid-sort-icon-active-color: #e1c5ff;
    --prv-grid-sort-icon-active-shadow: none;
    --prv-grid-column-resizer-guide-color: #adb5bd;
    --prv-grid-column-resizer-hover-surface: #e9ecef;
    --prv-grid-column-resizer-hover-guide-color: #5f368d;
    --prv-grid-column-resizer-hover-guide-shadow: none;
    --prv-button-success: #198754;
    --prv-button-primary: #5f368d;
    --prv-button-danger: #dc3545;
    --prv-button-info: #0dcaf0;
    --prv-switch-off-surface: #6c757d;
    --prv-switch-border: #adb5bd;
    --prv-switch-thumb-surface: #ffffff;
    --prv-calendar-period-selected-surface: #e1d8ec;
    --prv-calendar-period-selected-text: #212529;
}
.prv-theme-dark {
    --prv-select-surface: #343a40;
    --prv-select-text: #f8f9fa;
    --prv-select-border: #6c757d;
    --prv-select-hover: #495057;
    --prv-tabs-surface: #343a40;
    --prv-toolbar-surface: #000000;
    --prv-toolbar-text: #ffffff;
    --prv-toolbar-separator: #4d4d53;
    --prv-tabs-border: #4d4d53;
    --prv-tabs-separator: rgb(255 255 255 / 6%);
    --prv-tabs-text: #f8f9fa;
    --prv-tabs-muted-text: #b9b9be;
    --prv-mask-surface: #343a40;
    --prv-mask-text: #f8f9fa;
    --prv-mask-border: #6c757d;
    --prv-mask-focus-border: var(--prv-color-accent);
    --prv-mask-focus-shadow: var(--prv-color-accent-focus);
    --prv-color-accent: #9c27e8;
    --prv-color-accent-contrast: #ffffff;
    --prv-color-accent-focus: rgba(156, 39, 232, .35);
    --prv-calendar-trigger-surface: #343a40;
    --prv-calendar-trigger-border: #8fcae7;
    --prv-calendar-trigger-text: #f8f9fa;
    --prv-calendar-trigger-hover-surface: #495057;
    --prv-calendar-popup-surface: #343a40;
    --prv-calendar-popup-border: #64646b;
    --prv-calendar-popup-shadow: 0 .5rem 1rem rgba(0, 0, 0, .35);
    --prv-calendar-surface: #343a40;
    --prv-calendar-surface-muted: #424247;
    --prv-calendar-border: #64646b;
    --prv-calendar-text: #f8f9fa;
    --prv-calendar-text-muted: #b7b7bd;
    --prv-calendar-primary: #9a31d1;
    --prv-calendar-primary-text: #ffffff;
    --prv-calendar-day-hover-surface: var(--prv-calendar-surface-muted);
    --prv-calendar-footer-button-surface: var(--prv-calendar-surface-muted);
    --prv-calendar-footer-button-border: var(--prv-calendar-border);
    --prv-calendar-footer-button-text: var(--prv-calendar-text);
    --prv-calendar-dropdown-surface: #343a40;
    --prv-calendar-dropdown-border: #64646b;
    --prv-calendar-dropdown-shadow: 0 .5rem 1rem rgba(0, 0, 0, .35);
    --prv-calendar-dropdown-text: #f8f9fa;
    --prv-calendar-dropdown-item-highlight-surface: #424247;
    --prv-string-select-surface: #2b2a31;
    --prv-string-select-border: #6b6873;
    --prv-string-select-text: #f8f9fa;
    --prv-string-select-disabled-text: #8e8b95;
    --prv-checkbox-surface: #212529;
    --prv-checkbox-border: #6c757d;
    --prv-grid-border: #4d4d53;
    --prv-grid-header: #343a40;
    --prv-grid-header-text: #f8f9fa;
    --prv-grid-row: #212529;
    --prv-grid-row-alternate: #000000;
    --prv-grid-footer-surface: #495057;
    --prv-grid-footer-border: #adb5bd;
    --prv-grid-text: #f8f9fa;
    --prv-grid-header-bottom-border: #ffffff;
    --prv-grid-sortable-hover-surface: #3d4753;
    --prv-grid-sort-icon-color: rgba(184, 204, 223, .55);
    --prv-grid-sort-icon-active-color: #73c8ff;
    --prv-grid-sort-icon-active-shadow: 0 0 4px rgba(115, 200, 255, .65);
    --prv-grid-column-resizer-guide-color: rgba(151, 172, 194, .55);
    --prv-grid-column-resizer-hover-surface: rgba(74, 166, 231, .12);
    --prv-grid-column-resizer-hover-guide-color: #73c8ff;
    --prv-grid-column-resizer-hover-guide-shadow: 0 0 4px rgba(115, 200, 255, .8);
    --prv-button-success: #198754;
    --prv-button-primary: var(--prv-color-accent);
    --prv-button-danger: #dc3545;
    --prv-button-info: #0dcaf0;
    --prv-switch-off-surface: #6c757d;
    --prv-switch-border: #adb5bd;
    --prv-switch-thumb-surface: #ffffff;
    --prv-calendar-period-selected-surface: #533166;
    --prv-calendar-period-selected-text: #f8f9fa;
}

/*
   Base visual de los controles Prv: estructura y puntos de tema, sin decidir colores ni medidas.
   Los temas están centralizados aquí; las aplicaciones pueden ajustar medidas y distribución.
*/
.prv-button {
    align-items: center;
    background: var(--prv-button-color, var(--prv-color-accent));
    border: 1px solid var(--prv-button-color, var(--prv-color-accent));
    border-radius: var(--prv-control-border-radius, .25rem);
    color: var(--prv-button-contrast, #ffffff);
    cursor: pointer;
    display: inline-flex;
    font-family: inherit;
    font-size: var(--prv-button-font-size, 1rem);
    font-weight: 400;
    gap: var(--prv-button-gap, .375rem);
    justify-content: center;
    line-height: 1.5;
    padding: var(--prv-button-padding, .375rem .75rem);
    text-transform: none;
    vertical-align: middle;
    white-space: nowrap;
}

.prv-button .rz-button-box { align-items: center; display: inline-flex; gap: var(--prv-button-gap, .375rem); }
.prv-dropdown, .prv-dropdown-popup { background: var(--prv-select-surface); color: var(--prv-select-text); border: 1px solid var(--prv-select-border); font-size: 12px; }
/* Estructura autónoma: no requiere cargar un tema global de Radzen en la aplicación. */
.prv-dropdown { display: inline-flex; position: relative; align-items: center; box-sizing: border-box; height: 27px; min-height: 27px; width: 100%; cursor: pointer; text-align: start; }
.prv-dropdown .rz-helper-hidden-accessible { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.prv-dropdown .rz-dropdown-label { display: block; flex: 1; min-width: 0; padding: 3px 6px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; line-height: 19px; color: inherit; background: transparent; }
.prv-dropdown.rz-clear .rz-dropdown-label { padding-inline-end: 25px; }
.prv-dropdown .rz-dropdown-trigger { display: flex; align-items: center; justify-content: center; flex: 0 0 25px; align-self: stretch; color: inherit; }
.prv-dropdown .rz-dropdown-trigger-icon { display: inline-block; width: 0; height: 0; border-inline: 4px solid transparent; border-top: 5px solid currentColor; }
.prv-dropdown .rz-dropdown-trigger-icon::before { content: none; }
.prv-dropdown .rz-dropdown-clear-icon { position: absolute; inset-inline-end: 27px; top: 50%; transform: translateY(-50%); padding: 0; width: 20px; height: 20px; border: 0; background: transparent; color: inherit; cursor: pointer; }
.prv-dropdown .rz-dropdown-clear-icon::before { content: "\00d7"; font: 18px/20px Arial, sans-serif; }
.prv-dropdown.rz-state-disabled { opacity: .6; cursor: default; }
.prv-dropdown:focus-visible { outline: 2px solid #60348e; outline-offset: 1px; }
.prv-dropdown > .rz-dropdown-panel, .prv-dropdown-popup { position: absolute; z-index: 2000; box-sizing: border-box; overflow: hidden; box-shadow: 0 3px 8px #0003; }
/* Sustituye el máximo inline de Radzen; nunca fuerza una altura a listas cortas. */
.prv-dropdown-popup .rz-dropdown-items-wrapper { overflow: auto; height: auto; max-height: var(--prv-dropdown-list-max-height, none) !important; }
.prv-dropdown-popup .rz-dropdown-items { list-style: none; padding: 0; margin: 0; }
.prv-dropdown-popup .rz-dropdown-item { display: block; box-sizing: border-box; padding: 3px 8px; min-height: 22px; line-height: 16px; cursor: pointer; color: var(--prv-select-text); background: var(--prv-select-surface); }
.prv-dropdown-popup .rz-dropdown-item:hover, .prv-dropdown-popup .rz-dropdown-item.rz-state-highlight { background: var(--prv-select-hover); }
.prv-dropdown-popup .rz-dropdown-item.rz-state-active { background: #60348e; color: #ffffff; }
.prv-dropdown-popup .rz-dropdown-filter-container { position: relative; box-sizing: border-box; padding: 5px; background: var(--prv-select-surface); color: var(--prv-select-text); border-bottom: 1px solid var(--prv-select-border); }
.prv-dropdown-popup .rz-dropdown-filter { box-sizing: border-box; width: 100%; height: 27px; padding: 3px 6px; font: inherit; background: var(--prv-select-surface); color: var(--prv-select-text); border: 1px solid var(--prv-select-border); }
.prv-dropdown-popup .rz-dropdown-filter-icon { display: none; }
.prv-button-xs { --prv-button-font-size: var(--prv-button-font-size-xs, .6875rem); --prv-button-padding: .125rem .375rem; }
.prv-toolbar { display: flex; flex-wrap: wrap; align-items: center; column-gap: var(--prv-toolbar-item-gap); row-gap: .35rem; min-height: 33px; box-sizing: border-box; padding: 2px; padding-inline-start: 5px; font-size: 12px; color: var(--prv-toolbar-text); background: var(--prv-toolbar-surface); }
.prv-toolbar-item { display: flex; align-items: center; gap: .35rem; min-width: 0; }
/* Solo el primer item derecho visible consume el espacio libre; los demás quedan juntos. */
.prv-toolbar-item-right { order: 1; margin-inline-start: auto; }
.prv-toolbar-item-right ~ .prv-toolbar-item-right { margin-inline-start: 0; }
.prv-toolbar-item-group:not(:first-child) { border-inline-start: 1px solid var(--prv-toolbar-separator); padding-inline-start: var(--prv-toolbar-item-gap); }
/* Las etiquetas de un item se centran sin heredar márgenes de formularios de la aplicación. */
.prv-toolbar-item > label { display: inline-flex; align-items: center; margin: 0; line-height: normal; color: inherit; }
.prv-button-sm { --prv-button-font-size: var(--prv-button-font-size-sm, .75rem); --prv-button-padding: .25rem .5rem; }
.prv-button-lg { --prv-button-font-size: var(--prv-button-font-size-lg, 1.125rem); --prv-button-padding: .5rem 1rem; }
.prv-button-xl { --prv-button-font-size: var(--prv-button-font-size-xl, 1.25rem); --prv-button-padding: .625rem 1.25rem; }
.prv-button-primary { --prv-button-color: var(--prv-button-primary, var(--prv-color-accent, #0d6efd)); }
.prv-button-secondary { --prv-button-color: var(--prv-button-secondary, #6c757d); }
.prv-button-success { --prv-button-color: var(--prv-button-success, #198754); }
.prv-button-info { --prv-button-color: var(--prv-button-info, #087990); }
.prv-button-danger { --prv-button-color: var(--prv-button-danger, #dc3545); }
.prv-button-outlined { background: transparent; color: var(--prv-button-color); }
.prv-button:not(:disabled):hover { filter: brightness(.9); }
.prv-button:focus-visible { outline: 2px solid var(--prv-button-color); outline-offset: 2px; }
.prv-button:disabled { cursor: default; opacity: .55; }

.prv-radzen-checkbox {
    --prv-checkbox-size: var(--prv-checkbox-size-md);
    --prv-checkbox-icon-size: var(--prv-checkbox-icon-size-md);
    align-items: center;
    cursor: pointer;
    display: inline-flex;
    flex: 0 0 var(--prv-checkbox-size);
    height: var(--prv-checkbox-size);
    justify-content: center;
    vertical-align: middle;
    width: var(--prv-checkbox-size);
}

.prv-radzen-checkbox-xs { --prv-checkbox-size: var(--prv-checkbox-size-xs); --prv-checkbox-icon-size: var(--prv-checkbox-icon-size-xs); }
.prv-radzen-checkbox-sm { --prv-checkbox-size: var(--prv-checkbox-size-sm); --prv-checkbox-icon-size: var(--prv-checkbox-icon-size-sm); }
.prv-radzen-checkbox-lg { --prv-checkbox-size: var(--prv-checkbox-size-lg); --prv-checkbox-icon-size: var(--prv-checkbox-icon-size-lg); }
.prv-radzen-checkbox-xl { --prv-checkbox-size: var(--prv-checkbox-size-xl); --prv-checkbox-icon-size: var(--prv-checkbox-icon-size-xl); }

.prv-radzen-checkbox .rz-chkbox-box {
    align-items: center;
    background-color: var(--prv-checkbox-surface);
    border: 1px solid var(--prv-checkbox-border);
    border-radius: var(--prv-control-border-radius);
    box-sizing: border-box;
    display: flex;
    flex: 0 0 var(--prv-checkbox-size);
    height: var(--prv-checkbox-size);
    justify-content: center;
    width: var(--prv-checkbox-size);
}

.prv-radzen-checkbox .rz-helper-hidden-accessible {
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

.prv-radzen-checkbox[aria-checked="true"] .rz-chkbox-box {
    background-color: var(--prv-color-accent);
    border-color: var(--prv-color-accent);
}

.prv-radzen-checkbox[aria-checked="true"] .rz-chkbox-icon::before {
    color: var(--prv-color-accent-contrast);
    content: "✓";
    font-size: var(--prv-checkbox-icon-size);
    font-weight: bold;
    line-height: 1;
}

.prv-checkbox-field {
    align-items: center;
    display: inline-flex;
    height: var(--prv-checkbox-field-height);
    margin-left: var(--prv-checkbox-field-margin-left);
    padding-top: var(--prv-checkbox-field-padding-top);
    vertical-align: middle;
}

.prv-checkbox-field-label {
    cursor: pointer;
    font-size: var(--prv-checkbox-field-label-font-size);
    line-height: var(--prv-checkbox-field-label-line-height);
    margin-left: var(--prv-checkbox-field-label-margin-left);
}

.prv-switch-field {
    --prv-switch-width: var(--prv-switch-width-md);
    --prv-switch-height: var(--prv-switch-height-md);
    align-items: center;
    display: inline-flex;
    gap: var(--prv-switch-label-gap);
    vertical-align: middle;
}

.prv-switch-field-xs { --prv-switch-width: var(--prv-switch-width-xs); --prv-switch-height: var(--prv-switch-height-xs); }
.prv-switch-field-sm { --prv-switch-width: var(--prv-switch-width-sm); --prv-switch-height: var(--prv-switch-height-sm); }
.prv-switch-field-lg { --prv-switch-width: var(--prv-switch-width-lg); --prv-switch-height: var(--prv-switch-height-lg); }
.prv-switch-field-xl { --prv-switch-width: var(--prv-switch-width-xl); --prv-switch-height: var(--prv-switch-height-xl); }

.prv-radzen-switch {
    background: var(--prv-switch-off-surface);
    border: 1px solid var(--prv-switch-border);
    border-radius: 999px;
    box-sizing: border-box;
    cursor: pointer;
    display: inline-block;
    flex: 0 0 var(--prv-switch-width);
    height: var(--prv-switch-height);
    position: relative;
    width: var(--prv-switch-width);
}

.prv-radzen-switch.rz-switch-checked {
    background: var(--prv-color-accent);
    border-color: var(--prv-color-accent);
}

.prv-radzen-switch .rz-hidden-accessible {
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

.prv-radzen-switch .rz-switch-circle {
    background: var(--prv-switch-thumb-surface);
    border-radius: 50%;
    height: calc(var(--prv-switch-height) - 6px);
    left: 2px;
    pointer-events: none;
    position: absolute;
    top: 2px;
    transition: transform .15s ease;
    width: calc(var(--prv-switch-height) - 6px);
}

.prv-radzen-switch.rz-switch-checked .rz-switch-circle {
    transform: translateX(calc(var(--prv-switch-width) - var(--prv-switch-height)));
}

.prv-radzen-switch:has(input:focus-visible) {
    outline: 2px solid var(--prv-color-accent);
    outline-offset: 2px;
}

.prv-switch-field-label {
    cursor: pointer;
    font-size: inherit;
    font-weight: inherit;
    margin: 0;
}

.prv-switch-field:has(input:disabled) {
    cursor: default;
    opacity: .55;
}

.prv-switch-field:has(input:disabled) .prv-switch-field-label,
.prv-switch-field:has(input:disabled) .prv-radzen-switch {
    cursor: default;
}

@media (prefers-reduced-motion: reduce) {
    .prv-radzen-switch .rz-switch-circle { transition: none; }
}

.prv-radzen-mask {
    background-color: var(--prv-mask-surface);
    border: 1px solid var(--prv-mask-border);
    border-radius: var(--prv-control-border-radius);
    box-sizing: border-box;
    color: var(--prv-mask-text);
    min-height: var(--prv-mask-height);
    padding: var(--prv-mask-padding);
}

.prv-radzen-mask:focus {
    background-color: var(--prv-mask-surface);
    border-color: var(--prv-mask-focus-border);
    box-shadow: 0 0 0 var(--prv-mask-focus-shadow-size) var(--prv-mask-focus-shadow);
    color: var(--prv-mask-text);
}

.prv-radzen-mask-xs { --prv-mask-height: var(--prv-mask-height-xs); --prv-mask-padding: var(--prv-mask-padding-xs); }
.prv-radzen-mask-sm { --prv-mask-height: var(--prv-mask-height-sm); --prv-mask-padding: var(--prv-mask-padding-sm); }
.prv-radzen-mask-md { --prv-mask-height: var(--prv-mask-height-md); --prv-mask-padding: var(--prv-mask-padding-md); }
.prv-radzen-mask-lg { --prv-mask-height: var(--prv-mask-height-lg); --prv-mask-padding: var(--prv-mask-padding-lg); }
.prv-radzen-mask-xl { --prv-mask-height: var(--prv-mask-height-xl); --prv-mask-padding: var(--prv-mask-padding-xl); }

.prv-string-select {
    background: var(--prv-string-select-surface);
    border: 1px solid var(--prv-string-select-border);
    border-radius: var(--prv-control-border-radius);
    color: var(--prv-string-select-text);
    font-size: var(--prv-string-select-font-size);
    height: var(--prv-string-select-height);
    min-width: 0;
    padding: var(--prv-string-select-padding);
    width: 100%;
}

.prv-string-select:focus {
    border-color: var(--prv-color-accent);
    box-shadow: 0 0 0 var(--prv-string-select-focus-shadow-size) var(--prv-color-accent-focus);
    outline: 0;
}

.prv-string-select:disabled { color: var(--prv-string-select-disabled-text); opacity: var(--prv-string-select-disabled-opacity); }

.prv-string-select-xs { --prv-string-select-height: var(--prv-string-select-height-xs); --prv-string-select-padding: var(--prv-string-select-padding-xs); }
.prv-string-select-sm { --prv-string-select-height: var(--prv-string-select-height-sm); --prv-string-select-padding: var(--prv-string-select-padding-sm); }
.prv-string-select-md { --prv-string-select-height: var(--prv-string-select-height-md); --prv-string-select-padding: var(--prv-string-select-padding-md); }
.prv-string-select-lg { --prv-string-select-height: var(--prv-string-select-height-lg); --prv-string-select-padding: var(--prv-string-select-padding-lg); }
.prv-string-select-xl { --prv-string-select-height: var(--prv-string-select-height-xl); --prv-string-select-padding: var(--prv-string-select-padding-xl); }

.prv-radzen-tabs .rz-tabview-nav {
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    margin: 0;
    padding: 0;
}

.prv-radzen-tabs .rz-tabview-nav > li > button {
    align-items: center;
    appearance: none;
    background-color: var(--prv-tabs-surface) !important;
    border: 0 !important;
    border-bottom: var(--prv-tabs-selected-border-width) solid transparent !important;
    border-right: 1px solid var(--prv-tabs-separator) !important;
    color: var(--prv-tabs-text) !important;
    cursor: pointer;
    display: inline-flex;
    font-size: var(--prv-tabs-font-size) !important;
    line-height: var(--prv-tabs-line-height) !important;
    padding: var(--prv-tabs-padding) !important;
    white-space: nowrap;
}

.prv-splitbutton { display: inline-flex; align-items: stretch; }
/* Estructura de gráficos aislada: no requiere cargar un tema global de Radzen. */
.prv-chart { min-width: 0; color: var(--prv-select-text); background: var(--prv-select-surface); }
.prv-chart-actions { display: grid; grid-template-columns: 36px minmax(0, 1fr) 36px; align-items: center; padding: 4px 8px; gap: 8px; }
.prv-chart-actions > .prv-chart-export { grid-column: 1; grid-row: 1; justify-self: start; }
.prv-chart-actions > .prv-chart-maximize { grid-column: 3; grid-row: 1; justify-self: end; }
.prv-chart-export-trigger { display: inline-flex; align-items: center; justify-content: center; color: var(--prv-select-text); background: var(--prv-select-surface); border: 1px solid var(--prv-select-border); border-radius: .2rem; padding: 5px 8px; min-height: 28px; cursor: pointer; }
.prv-chart-export-trigger:hover { background: var(--prv-select-hover); }
.prv-chart-export-trigger:disabled { opacity: .65; cursor: default; }
.prv-chart-export-menu { position: fixed; inset: auto; margin: 0; padding: 4px; min-width: 100px; border: 1px solid var(--prv-select-border); border-radius: .2rem; background: var(--prv-select-surface); color: var(--prv-select-text); box-shadow: 0 3px 8px #0003; font-size: 12px; }
.prv-chart-export-menu > button { display: block; width: 100%; padding: 6px 12px; border: 0; background: transparent; color: inherit; text-align: left; font: inherit; cursor: pointer; }
.prv-chart-export-menu > button:hover, .prv-chart-export-menu > button:focus-visible { background: var(--prv-select-hover); }
.prv-chart-maximize { margin-left: auto; color: var(--prv-select-text); background: transparent; border: 1px solid var(--prv-select-border); border-radius: 3px; padding: 2px 8px; cursor: pointer; font-size: 18px; }
.prv-chart-maximize:hover { background: var(--prv-select-hover); }
.prv-chart-maximized { position: fixed; inset: 8px; z-index: 1500; overflow: auto; padding: 8px; box-shadow: 0 0 0 100vmax #0009; }
.prv-chart-error { padding: 8px; color: var(--prv-select-text); border: 1px solid #dc3545; }
.prv-chart-title { grid-column: 2; grid-row: 1; min-width: 0; overflow-wrap: anywhere; text-align: center; text-transform: uppercase; font-size: 18px; line-height: 1.4; padding: 4px 0; }
.prv-chart-subtitle { color: var(--prv-select-text); font-size: 11px; font-weight: 600; text-align: center; text-transform: uppercase; margin: 0 8px 2px; }
.prv-chart .rz-chart { position: relative; min-width: 0; font-size: 12px; }
.prv-chart .rz-chart-series-hover :is(.rz-column-series, .rz-bar-series) { transition: opacity .2s, filter .2s; cursor: pointer; }
.prv-chart .rz-chart-series-hover :is(.rz-column-series, .rz-bar-series):is(:hover, .rz-state-hover, .prv-chart-series-highlighted) { filter: brightness(1.1) drop-shadow(0 0 3px #0003); }
.prv-chart .rz-chart-series-hover svg:has(> g > :is(.rz-state-hover, .prv-chart-series-highlighted, .rz-column-series:hover, .rz-bar-series:hover)) :is(.rz-column-series, .rz-bar-series) { opacity: .4; }
.prv-chart .rz-chart-series-hover svg:has(> g > :is(.rz-state-hover, .prv-chart-series-highlighted, .rz-column-series:hover, .rz-bar-series:hover)) :is(.rz-column-series, .rz-bar-series):is(:hover, .rz-state-hover, .prv-chart-series-highlighted) { opacity: 1; }
.prv-chart :is(.rz-column-series, .rz-bar-series) > path:hover { filter: brightness(1.15); }
.prv-chart .rz-full-stacked-bar-series { transition: opacity .2s, filter .2s; cursor: pointer; }
.prv-chart svg:has(.rz-full-stacked-bar-series:is(:hover, .prv-chart-series-highlighted)) .rz-full-stacked-bar-series { opacity: .4; }
.prv-chart svg .rz-full-stacked-bar-series:is(:hover, .prv-chart-series-highlighted) { opacity: 1; filter: brightness(1.15); }
.prv-chart .rz-pie-series > g { transition: opacity .15s, filter .15s; cursor: pointer; }
/* La selección persiste; el hover tiene prioridad para identificar un único sector. */
.prv-chart .rz-pie-series:has(.prv-chart-point-selected) > g { opacity: .3; }
.prv-chart .rz-pie-series > g:has(.prv-chart-point-selected) { opacity: 1; }
.prv-chart .rz-pie-series:has(> g:hover, > .prv-chart-series-highlighted) > g { opacity: .2; }
.prv-chart .rz-pie-series:has(> g:hover, > .prv-chart-series-highlighted) > g:is(:hover, .prv-chart-series-highlighted) { opacity: 1; filter: brightness(1.15); }
/* Radzen escribe stroke-width en el propio path: el contorno debe prevalecer. */
.prv-chart .rz-pie-series > g:is(:hover, .prv-chart-series-highlighted) > path,
.prv-chart .rz-pie-series > g > path.prv-chart-point-selected { stroke: var(--prv-select-text) !important; stroke-width: 3px !important; stroke-linejoin: round; paint-order: stroke; }
.prv-chart .prv-chart-point-selected { stroke: var(--prv-select-text); stroke-width: 2px; stroke-dasharray: 3 2; paint-order: stroke; }
.prv-chart .rz-legend-item:hover { background: var(--prv-select-hover); border-radius: 3px; }
.prv-chart .rz-axis { stroke: var(--prv-select-border); font-size: var(--prv-chart-axis-font-size, 12px); }
.prv-chart .rz-axis .rz-grid-line { stroke: var(--prv-select-border); opacity: .4; }
.prv-chart .rz-tick-text { stroke: none; fill: var(--prv-chart-axis-text, var(--prv-select-text)); font-size: var(--prv-chart-axis-font-size, 12px); font-variant-numeric: tabular-nums; }
.prv-chart .rz-value-axis .rz-tick-text { text-anchor: end; }
.prv-chart .rz-axis-title { stroke: none; fill: var(--prv-select-text); text-anchor: middle; }
.prv-chart .rz-series-data-label { fill: var(--prv-select-text); font-size: 12px; font-weight: 600; font-variant-numeric: tabular-nums; dominant-baseline: central; }
.prv-chart.prv-chart-outlined-data-labels .rz-series-data-label { stroke: #111; stroke-width: 2px; stroke-linejoin: round; paint-order: stroke fill; }
.prv-chart .rz-column-series path { stroke: #eef8ee !important; stroke-width: 1.2px !important; stroke-linejoin: round; }
.prv-chart .rz-legend { position: absolute; display: flex; font-size: 10px; }
.prv-chart .rz-legend-bottom { bottom: var(--prv-chart-legend-bottom-gap, 0px); left: 0; right: 0; justify-content: center; }
.prv-chart .rz-legend-top { top: 0; left: 0; right: 0; justify-content: center; }
.prv-chart .rz-legend-left { left: 0; top: 0; bottom: 0; align-items: center; }
.prv-chart .rz-legend-right { right: 0; top: 0; bottom: 0; align-items: center; }
.prv-chart .rz-legend-items { margin: 0; padding: 0; max-height: 100%; overflow: auto; }
.prv-chart.prv-chart-reverse-legend .rz-legend-bottom .rz-legend-items { display: flex; flex-direction: row-reverse; }
.prv-chart .rz-legend-item { display: flex; align-items: center; gap: 3px; margin: 0; padding: 2px 3px; line-height: 1; cursor: pointer; }
.prv-chart .rz-legend-item[aria-disabled="true"] { cursor: default; }
.prv-chart .rz-legend-top .rz-legend-item, .prv-chart .rz-legend-bottom .rz-legend-item { display: inline-flex; margin-inline: 3px; }
.prv-chart .rz-chart-tooltip { position: absolute; top: 0; left: 0; width: max-content; max-width: min(30rem, 90vw); pointer-events: none; z-index: 1; }
.prv-chart .rz-chart-tooltip-left .rz-chart-tooltip { left: auto; right: 0; }
.prv-chart .rz-top-chart-tooltip { transform: translate(-50%, -100%); }
.prv-chart .rz-bottom-chart-tooltip { transform: translate(-50%, 0); }
.prv-chart .rz-chart-tooltip-content { background: var(--prv-select-surface); color: var(--prv-select-text); border: 1px solid var(--prv-select-border); border-radius: 3px; padding: 8px; font-size: 12px; box-shadow: 0 2px 8px #0003; }
.prv-chart .rz-chart-tooltip-title { font-weight: 700; }
.prv-chart .rz-chart-tooltip-item-value { font-weight: 600; text-align: end; }
.prv-chart .rz-chart-tooltip-item-content { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 2px 8px; }
.prv-form-layout { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 12px; width: 100%; box-sizing: border-box; padding: 8px; }
.prv-form-layout-item { display: flex; flex-direction: column; gap: 4px; flex: 1 1 calc(50% - 6px); min-width: 0; box-sizing: border-box; color: var(--prv-select-text); }
.prv-form-layout-caption { margin: 0; line-height: 1.4; }
.prv-form-layout-item > input { width: 100%; min-width: 0; box-sizing: border-box; }
@media (max-width: 575.98px) {
    .prv-form-layout-item { flex-basis: 100%; }
}
.prv-listbox { display: flex; flex-direction: column; min-width: 0; min-height: 0; overflow: hidden; border: 1px solid var(--prv-select-border); border-radius: .2rem; background: var(--prv-select-surface); color: var(--prv-select-text); font-size: 12px; }
.prv-listbox .rz-helper-hidden-accessible { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.prv-listbox .rz-listbox-list-wrapper { flex: 1; min-height: 0; overflow: auto; }
.prv-listbox .rz-listbox-list { list-style: none; margin: 0; padding: 2px; outline: none; }
.prv-listbox .rz-listbox-empty-message { padding: 5px 7px; }
.prv-listbox .rz-listbox-empty-message p { margin: 0; }
.prv-listbox .rz-multiselect-item { display: flex; align-items: center; gap: 6px; padding: 3px 5px; min-height: 24px; cursor: pointer; }
.prv-listbox .rz-multiselect-item-content { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.prv-listbox .rz-multiselect-item:hover:not(.rz-state-disabled) { background: var(--prv-select-hover); }
.prv-listbox .rz-multiselect-item.rz-state-highlight { background: var(--prv-select-hover); }
.prv-listbox .rz-listbox-list:focus-visible { outline: 2px solid var(--prv-color-accent); outline-offset: -2px; }
.prv-listbox .rz-chkbox { display: inline-flex; flex-shrink: 0; }
.prv-listbox .rz-chkbox-box { display: flex; align-items: center; justify-content: center; width: 14px; height: 14px; border: 1px solid var(--prv-select-border); border-radius: 2px; }
.prv-listbox .rz-chkbox-box.rz-state-active { background: var(--prv-color-accent); border-color: var(--prv-color-accent); color: white; }
.prv-listbox .rz-chkbox-icon { font-size: 0; }
.prv-listbox .rz-chkbox-box.rz-state-active .rz-chkbox-icon::before { content: "✓"; font-family: sans-serif; font-size: 12px; }
.prv-listbox .rz-state-disabled { opacity: .65; cursor: default; }
.prv-listbox .rz-listbox-header { display: flex; align-items: center; gap: 6px; padding: 5px; border-bottom: 1px solid var(--prv-select-border); }
.prv-listbox .rz-listbox-filter-container { flex: 1; min-width: 0; }
.prv-listbox .rz-listbox-filter-container input { box-sizing: border-box; width: 100%; background: var(--prv-select-surface); color: var(--prv-select-text); border: 1px solid var(--prv-select-border); }
.prv-listbox .rz-listbox-filter-icon { display: none; }
.prv-message-box {
    box-sizing: border-box;
    width: 440px;
    max-width: calc(100vw - 32px);
    max-height: calc(100dvh - 32px);
    margin: auto;
    padding: 0;
    overflow: auto;
    border: 1px solid var(--prv-select-border);
    border-radius: .3rem;
    background: var(--prv-select-surface);
    color: var(--prv-select-text);
    box-shadow: 0 8px 28px rgb(0 0 0 / 25%);
    font-family: inherit;
    font-size: 14px;
    text-align: start;
}
.prv-message-box:not([open]) { display: none; }
.prv-message-box-lg { width: 640px; }
.prv-message-box::backdrop { background: rgb(0 0 0 / 45%); }
.prv-message-box-header { display: flex; align-items: center; gap: 16px; padding: 14px 18px; border-bottom: 1px solid var(--prv-select-border); }
.prv-message-box-header h2 { flex: 1; margin: 0; font-size: 18px; font-weight: 600; }
.prv-message-box-close { border: 0; background: transparent; color: inherit; cursor: pointer; font-size: 24px; line-height: 1; padding: 2px 4px; }
.prv-message-box-body { display: flex; align-items: flex-start; gap: 14px; padding: 22px 18px; }
.prv-message-box-body p { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.prv-message-box-success { flex-shrink: 0; color: var(--prv-button-success); font-size: 28px; line-height: 1; }
.prv-message-box-footer { display: flex; justify-content: flex-end; padding: 12px 18px; border-top: 1px solid var(--prv-select-border); }
.prv-message-box-ok { border: 1px solid var(--prv-button-success); border-radius: .2rem; background: var(--prv-button-success); color: white; padding: 6px 18px; cursor: pointer; font: inherit; }
.prv-message-box-ok:hover { filter: brightness(.92); }
.prv-message-box button:focus-visible { outline: 2px solid var(--prv-color-accent); outline-offset: 2px; }
.prv-message-box button:disabled { opacity: .65; cursor: default; }
.prv-splitbutton .rz-button-box { display: inline-flex; align-items: center; gap: 6px; }
.prv-splitbutton > button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    padding: 3px 8px;
    border: 1px solid var(--prv-select-border);
    background: var(--prv-select-surface);
    color: var(--prv-select-text);
    font: inherit;
    font-size: 12px;
    cursor: pointer;
}
.prv-splitbutton > button:first-child { border-radius: .2rem 0 0 .2rem; }
.prv-splitbutton > .rz-splitbutton-menubutton { border-left: 0; border-radius: 0 .2rem .2rem 0; padding-inline: 6px; }
.prv-splitbutton > button:hover:not(:disabled) { background: var(--prv-select-hover); }
.prv-splitbutton > button:focus-visible { outline: 2px solid var(--prv-color-accent); outline-offset: 1px; }
.prv-splitbutton > button:disabled { opacity: .65; cursor: default; }
.prv-splitbutton > .rz-splitbutton-menubutton .rzi { font-size: 0; }
.prv-splitbutton > .rz-splitbutton-menubutton .rzi::before { content: ""; display: block; border: 4px solid transparent; border-bottom: 0; border-top-color: currentColor; }
.prv-splitbutton > .rz-splitbutton-menu { display: none; }
.prv-splitbutton-popup {
    display: none;
    position: absolute;
    z-index: 2000;
    min-width: 100px;
    border: 1px solid var(--prv-select-border);
    border-radius: .2rem;
    background: var(--prv-select-surface);
    color: var(--prv-select-text);
    box-shadow: 0 3px 8px rgb(0 0 0 / 20%);
    font-size: 12px;
}
.prv-splitbutton-popup .rz-menu-list { list-style: none; margin: 0; padding: 3px 0; outline: none; }
.prv-splitbutton-popup .rz-menuitem-link { display: flex; align-items: center; gap: 6px; padding: 6px 12px; color: inherit; white-space: nowrap; }
.prv-splitbutton-popup .rz-menuitem { cursor: pointer; }
.prv-splitbutton-popup .rz-menuitem:hover:not(.rz-state-disabled),
.prv-splitbutton-popup .rz-menuitem.rz-state-highlight { background: var(--prv-select-hover); }
.prv-splitbutton-popup .rz-state-disabled { opacity: .65; cursor: default; }

.prv-radzen-tabs .rz-tabview-nav > li.rz-tabview-selected > button { border-bottom-color: var(--prv-color-accent) !important; }
.prv-radzen-tabs .rz-tabview-nav > li > button i { margin-inline-end: 5px; }

.prv-radzen-tabs {
    background-color: var(--prv-tabs-surface);
    border-bottom: var(--prv-tabs-host-border-width) solid var(--prv-tabs-border);
    padding: var(--prv-tabs-host-padding);
}

.prv-radzen-tabs-xs { --prv-tabs-font-size: var(--prv-tabs-font-size-xs); --prv-tabs-line-height: var(--prv-tabs-line-height-xs); --prv-tabs-padding: var(--prv-tabs-padding-xs); }
.prv-radzen-tabs-sm { --prv-tabs-font-size: var(--prv-tabs-font-size-sm); --prv-tabs-line-height: var(--prv-tabs-line-height-sm); --prv-tabs-padding: var(--prv-tabs-padding-sm); }
.prv-radzen-tabs-md { --prv-tabs-font-size: var(--prv-tabs-font-size-md); --prv-tabs-line-height: var(--prv-tabs-line-height-md); --prv-tabs-padding: var(--prv-tabs-padding-md); }
.prv-radzen-tabs-lg { --prv-tabs-font-size: var(--prv-tabs-font-size-lg); --prv-tabs-line-height: var(--prv-tabs-line-height-lg); --prv-tabs-padding: var(--prv-tabs-padding-lg); }
.prv-radzen-tabs-xl { --prv-tabs-font-size: var(--prv-tabs-font-size-xl); --prv-tabs-line-height: var(--prv-tabs-line-height-xl); --prv-tabs-padding: var(--prv-tabs-padding-xl); }

.prv-radzen-calendar-selector-button {
    align-items: center;
    background-color: var(--prv-calendar-trigger-surface);
    border: 1px solid var(--prv-calendar-trigger-border);
    border-radius: var(--prv-control-border-radius);
    color: var(--prv-calendar-trigger-text);
    display: inline-flex;
    height: var(--prv-calendar-trigger-size);
    justify-content: center;
    padding: 0;
    width: var(--prv-calendar-trigger-size);
}

.prv-radzen-calendar-selector-button:hover { background-color: var(--prv-calendar-trigger-hover-surface); }

.prv-radzen-calendar-selector-button:focus {
    background-color: var(--prv-calendar-trigger-hover-surface);
    border-color: var(--prv-color-accent);
    box-shadow: 0 0 0 var(--prv-calendar-trigger-focus-shadow-size) var(--prv-color-accent-focus);
    outline: 0;
}

.prv-radzen-calendar-selector-button-xs { --prv-calendar-trigger-size: var(--prv-calendar-trigger-size-xs); }
.prv-radzen-calendar-selector-button-sm { --prv-calendar-trigger-size: var(--prv-calendar-trigger-size-sm); }
.prv-radzen-calendar-selector-button-md { --prv-calendar-trigger-size: var(--prv-calendar-trigger-size-md); }
.prv-radzen-calendar-selector-button-lg { --prv-calendar-trigger-size: var(--prv-calendar-trigger-size-lg); }
.prv-radzen-calendar-selector-button-xl { --prv-calendar-trigger-size: var(--prv-calendar-trigger-size-xl); }

.prv-radzen-calendar-selector {
    display: inline-block;
    margin-left: var(--prv-calendar-selector-margin-left);
    position: relative;
    vertical-align: middle;
}

.prv-radzen-calendar-selector-popup {
    background-color: var(--prv-calendar-popup-surface);
    border: 1px solid var(--prv-calendar-popup-border);
    box-shadow: var(--prv-calendar-popup-shadow);
    left: var(--prv-calendar-popup-left);
    margin-top: var(--prv-calendar-popup-margin-top);
    padding: var(--prv-calendar-popup-padding);
    position: absolute;
    top: var(--prv-calendar-popup-top);
    z-index: var(--prv-calendar-popup-z-index);
}

.prv-month-selector {
    font-size: var(--prv-month-control-font-size, 13px);
    align-items: center;
    display: inline-flex;
    gap: var(--prv-month-control-gap, 2px);
    min-height: var(--prv-month-control-height, 29px);
    white-space: nowrap;
}

.prv-month-value {
    background: var(--prv-calendar-trigger-surface);
    border: 1px solid var(--prv-calendar-trigger-border);
    color: var(--prv-calendar-text);
    align-items: center;
    box-sizing: border-box;
    display: inline-flex;
    height: var(--prv-month-control-height, 29px);
    justify-content: center;
    min-width: var(--prv-month-label-width, 140px);
    padding: 0 8px;
    text-align: center;
}

.prv-month-step {
    background: var(--prv-calendar-trigger-surface);
    border: 1px solid var(--prv-calendar-trigger-border);
    color: var(--prv-calendar-text);
    cursor: pointer;
    font: inherit;
    align-items: center;
    box-sizing: border-box;
    display: inline-flex;
    flex-shrink: 0;
    height: var(--prv-month-control-height, 29px);
    justify-content: center;
    margin: 0;
    padding: 0;
    width: 26px;
}

.prv-month-step .rzi { font-size: 20px; }

.prv-month-selector > .prv-radzen-calendar-selector {
    display: inline-flex;
    flex-shrink: 0;
    margin-left: 0;
}

.prv-month-selector > .prv-radzen-calendar-selector > .prv-radzen-calendar-selector-button {
    height: var(--prv-month-control-height, 29px);
    width: var(--prv-month-control-height, 29px);
}

.prv-month-selector > .prv-month-step:first-child { border-radius: 5px 0 0 5px; }
.prv-month-selector > .prv-month-step:last-child { border-radius: 0 5px 5px 0; }

.prv-month-popup {
    box-sizing: border-box;
    max-width: calc(100vw - 2rem);
    width: var(--prv-calendar-range-width, 270px);
}

.prv-month-header { display: grid; grid-template-columns: 28px minmax(0, 1fr) 28px; }
.prv-month-grid { display: grid; gap: .25rem; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: .5rem .25rem; }
.prv-month-header button,
.prv-month-grid button {
    background: transparent;
    border: 0;
    border-radius: var(--prv-calendar-day-border-radius);
    color: var(--prv-calendar-text);
    cursor: pointer;
    font: inherit;
    padding: .25rem;
}
.prv-month-header button { min-height: 28px; }
.prv-month-grid button { min-height: var(--prv-calendar-period-cell-height, 42px); }
.prv-month-grid button[aria-current="true"] { background: var(--prv-calendar-period-selected-surface, var(--prv-calendar-primary)); color: var(--prv-calendar-period-selected-text, var(--prv-calendar-primary-text)); }
.prv-month-header button:not(:disabled):hover,
.prv-month-grid button:hover,
.prv-month-step:not(:disabled):hover,
.prv-month-selector > .prv-radzen-calendar-selector > .prv-radzen-calendar-selector-button:not(:disabled):hover { background: var(--prv-calendar-day-hover-surface); }
.prv-month-selector button:focus-visible { outline: 2px solid var(--prv-color-accent); outline-offset: -2px; }
.prv-month-selector button:disabled { cursor: default; opacity: .45; }

.prv-date-range-selector {
    align-items: center;
    display: inline-flex;
    gap: 5px;
}

.prv-date-range-value {
    align-items: center;
    background: var(--prv-calendar-trigger-surface);
    border: 1px solid var(--prv-calendar-trigger-border);
    border-radius: var(--prv-calendar-day-border-radius);
    color: var(--prv-calendar-trigger-text);
    display: inline-flex;
    font-size: var(--prv-calendar-font-size);
    justify-content: center;
    min-height: var(--prv-calendar-trigger-size-sm, 27px);
    padding: 0 5px;
    white-space: nowrap;
    width: 90px;
}

.prv-date-range-popup {
    box-sizing: border-box;
    max-width: calc(100vw - 2rem);
    /* Ancho explícito: max-content con tablas al 100% y columnas fr puede crecer sin límite. */
    width: calc(2 * var(--prv-calendar-range-width, 270px) + 1.5rem);
}
.prv-date-range-calendars { display: grid; gap: .5rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.prv-date-range-calendar {
    background: var(--prv-calendar-surface);
    border: 1px solid var(--prv-calendar-border);
    border-radius: var(--prv-calendar-day-border-radius);
    box-sizing: border-box;
    min-width: 0;
}
.prv-date-range-popup .prv-date-range-calendar .rz-calendar { min-width: 0; width: 100%; }
.prv-date-range-calendar .rz-calendar-header { background: var(--prv-calendar-surface-muted); }
.prv-date-range-caption {
    background: var(--prv-calendar-surface-muted);
    border-bottom: 1px solid var(--prv-calendar-border);
    color: var(--prv-calendar-text);
    font-weight: 600;
    padding: .25rem;
    text-align: center;
}
.prv-date-range-calendar .prv-radzen-calendar-footer { background: var(--prv-calendar-surface-muted); }
.prv-date-range-actions { display: flex; gap: .5rem; justify-content: center; padding: .5rem 0 .25rem; }
.prv-date-range-actions .prv-button { min-width: 100px; }

@media (max-width: 600px) {
    .prv-date-range-popup { width: calc(var(--prv-calendar-range-width, 270px) + 1rem); }
    .prv-date-range-calendars { grid-template-columns: minmax(0, 1fr); }
}

.prv-radzen-calendar-selector-popup .rz-calendar {
    color: var(--prv-calendar-text);
    font-size: var(--prv-calendar-font-size);
    min-width: var(--prv-calendar-min-width);
}

.prv-radzen-calendar-selector-popup .rz-calendar-header {
    align-items: center;
    border-bottom: 1px solid var(--prv-calendar-border);
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    min-height: var(--prv-calendar-header-min-height);
    padding: var(--prv-calendar-header-padding);
}

.prv-radzen-calendar-selector-popup .rz-calendar-prev { grid-column: 1; grid-row: 1; }
.prv-radzen-calendar-selector-popup .rz-calendar-next { grid-column: 3; grid-row: 1; }

.prv-radzen-calendar-selector-popup .rz-calendar-title {
    align-items: center;
    display: inline-flex;
    font-weight: var(--prv-calendar-title-font-weight);
    gap: var(--prv-calendar-title-gap);
    grid-column: 2;
    grid-row: 1;
    justify-content: center;
}

.prv-radzen-calendar-selector-popup .rz-calendar-title-button {
    background: transparent;
    border: 0;
    border-radius: var(--prv-calendar-day-border-radius);
    color: var(--prv-calendar-text);
    cursor: pointer;
    font: inherit;
    font-weight: var(--prv-calendar-title-font-weight);
    padding: .25rem .5rem;
}

.prv-radzen-calendar-selector-popup .rz-calendar-title-icon { display: none; }

/* Radzen desplaza tres posiciones con las flechas arriba/abajo en estas vistas.
   Tres columnas mantienen alineadas la cuadrícula visual y la navegación de teclado. */
.prv-radzen-calendar-selector-popup .rz-calendar-months,
.prv-radzen-calendar-selector-popup .rz-calendar-years {
    display: grid;
    gap: .25rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    padding: .5rem .25rem;
}

.prv-radzen-calendar-selector-popup .rz-calendar-month-cell,
.prv-radzen-calendar-selector-popup .rz-calendar-year-cell {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: var(--prv-calendar-day-border-radius);
    color: var(--prv-calendar-text);
    cursor: pointer;
    display: flex;
    font: inherit;
    justify-content: center;
    line-height: 1.5;
    min-height: var(--prv-calendar-period-cell-height, 42px);
    min-width: 0;
    padding: .25rem;
    width: 100%;
}

.prv-radzen-calendar-selector-popup .rz-calendar-month-cell:not(:disabled):hover,
.prv-radzen-calendar-selector-popup .rz-calendar-year-cell:not(:disabled):hover {
    background: var(--prv-calendar-day-hover-surface);
}

.prv-radzen-calendar-selector-popup .rz-calendar-month-cell.rz-state-active,
.prv-radzen-calendar-selector-popup .rz-calendar-year-cell.rz-state-active {
    background: var(--prv-calendar-period-selected-surface, var(--prv-calendar-primary));
    color: var(--prv-calendar-period-selected-text, var(--prv-calendar-primary-text));
    display: flex;
    line-height: 1.5;
    min-width: 0;
}

.prv-radzen-calendar-selector-popup .rz-calendar-title-button:focus-visible,
.prv-radzen-calendar-selector-popup .rz-calendar-month-cell:focus-visible,
.prv-radzen-calendar-selector-popup .rz-calendar-year-cell:focus-visible {
    outline: 2px solid var(--prv-color-accent);
    outline-offset: -2px;
}

.prv-radzen-calendar-selector-popup .rz-calendar-month-cell:disabled,
.prv-radzen-calendar-selector-popup .rz-calendar-year-cell:disabled {
    cursor: default;
    opacity: .45;
}

.prv-radzen-calendar-selector-popup .rz-dropdown {
    display: inline-flex;
    position: relative;
}

.prv-radzen-calendar-selector-popup .rz-helper-hidden-accessible,
.prv-radzen-calendar-selector-popup .rz-dropdown-trigger,
.prv-radzen-calendar-selector-popup .rz-dropdown-panel {
    display: none !important;
}

.prv-radzen-calendar-selector-popup .rz-calendar-prev,
.prv-radzen-calendar-selector-popup .rz-calendar-next {
    background: transparent;
    border: 0;
    color: var(--prv-calendar-text);
    cursor: pointer;
    font: inherit;
    min-height: var(--prv-calendar-navigation-size);
    min-width: var(--prv-calendar-navigation-size);
}

.prv-radzen-calendar-selector-popup .rz-calendar-prev:focus,
.prv-radzen-calendar-selector-popup .rz-calendar-next:focus {
    outline: 1px solid var(--prv-color-accent);
    outline-offset: -2px;
}

.prv-radzen-calendar-selector-popup .rz-calendar-prev-icon,
.prv-radzen-calendar-selector-popup .rz-calendar-next-icon {
    display: none;
}

.prv-radzen-calendar-selector-popup .rz-calendar-prev::before { content: "‹"; font-size: var(--prv-calendar-navigation-font-size); }
.prv-radzen-calendar-selector-popup .rz-calendar-next::before { content: "›"; font-size: var(--prv-calendar-navigation-font-size); }

.prv-radzen-calendar-selector-popup .rz-calendar-view {
    border-collapse: collapse;
    table-layout: fixed;
    width: 100%;
}

.prv-radzen-calendar-selector-popup .rz-calendar-view th {
    color: var(--prv-calendar-text-muted);
    font-size: var(--prv-calendar-weekday-font-size);
    font-weight: var(--prv-calendar-weekday-font-weight);
    height: var(--prv-calendar-weekday-height);
    text-align: center;
}

.prv-radzen-calendar-selector-popup .rz-calendar-view td {
    border-radius: var(--prv-calendar-day-border-radius);
    cursor: pointer;
    height: var(--prv-calendar-day-height);
    padding: 0;
    text-align: center;
}

.prv-radzen-calendar-selector-popup .rz-calendar-view td:hover { background-color: var(--prv-calendar-day-hover-surface); }

.prv-radzen-calendar-selector-popup .rz-calendar-other-month {
    color: var(--prv-calendar-text-muted);
    opacity: var(--prv-calendar-other-month-opacity);
}

.prv-radzen-calendar-selector-popup .rz-state-active {
    background-color: var(--prv-calendar-primary);
    border-radius: var(--prv-calendar-day-border-radius);
    color: var(--prv-calendar-primary-text);
    display: inline-block;
    line-height: var(--prv-calendar-active-day-line-height);
    min-width: var(--prv-calendar-active-day-min-width);
}

.prv-radzen-calendar-selector-popup .rz-calendar-footer,
.prv-radzen-calendar-footer {
    border-top: 1px solid var(--prv-calendar-border);
    padding-top: var(--prv-calendar-footer-padding-top);
    text-align: center;
}

.prv-radzen-calendar-selector-popup .rz-calendar-footer button,
.prv-radzen-calendar-footer button {
    background-color: var(--prv-calendar-footer-button-surface);
    border: 1px solid var(--prv-calendar-footer-button-border);
    border-radius: var(--prv-calendar-day-border-radius);
    color: var(--prv-calendar-footer-button-text);
    cursor: pointer;
    font: inherit;
    margin: var(--prv-calendar-footer-button-margin);
    min-height: var(--prv-calendar-footer-button-min-height);
    padding: var(--prv-calendar-footer-button-padding);
}

.prv-radzen-calendar-selector-popup .rz-calendar-footer button:focus,
.prv-radzen-calendar-footer button:focus {
    border-color: var(--prv-color-accent);
    box-shadow: 0 0 0 var(--prv-calendar-footer-button-focus-shadow-size) var(--prv-color-accent-focus);
    outline: 0;
}

.prv-radzen-calendar-dropdown-panel {
    z-index: calc(var(--prv-calendar-popup-z-index, 2000) + 1) !important;
    background-color: var(--prv-calendar-dropdown-surface);
    border: 1px solid var(--prv-calendar-dropdown-border);
    box-shadow: var(--prv-calendar-dropdown-shadow);
    color: var(--prv-calendar-dropdown-text);
    left: var(--prv-calendar-dropdown-left) !important;
    position: absolute;
    top: var(--prv-calendar-dropdown-top) !important;
}

.prv-radzen-calendar-dropdown-panel.prv-radzen-calendar-month-panel { min-width: var(--prv-calendar-month-panel-min-width) !important; }
.prv-radzen-calendar-dropdown-panel.prv-radzen-calendar-year-panel { min-width: var(--prv-calendar-year-panel-min-width) !important; }

.prv-radzen-calendar-selector-popup .rz-calendar-title .rz-dropdown,
.prv-radzen-calendar-selector-popup .rz-calendar-title .rz-dropdown * { cursor: pointer; }

.prv-radzen-calendar-dropdown-panel .rz-dropdown-items {
    list-style: none;
    margin: 0;
    padding: var(--prv-calendar-dropdown-items-padding);
}

.prv-radzen-calendar-dropdown-panel.prv-radzen-calendar-month-panel .rz-dropdown-items-wrapper {
    max-height: none !important;
    overflow: visible !important;
}

.prv-radzen-calendar-dropdown-panel .rz-dropdown-item {
    cursor: pointer;
    padding: var(--prv-calendar-dropdown-item-padding);
}

.prv-radzen-calendar-dropdown-panel .rz-dropdown-item:hover,
.prv-radzen-calendar-dropdown-panel .rz-dropdown-item.rz-state-highlight {
    background-color: var(--prv-calendar-dropdown-item-highlight-surface);
}

.prv-radzen-pivot-grid {
    background-color: var(--prv-grid-row);
    color: var(--prv-grid-text);
    font-size: var(--prv-grid-font-size);
    max-width: 100%;
    --prv-pivot-grand-total-surface: #8bb48a;
    --prv-pivot-header-surface: #ffffff;
    --prv-pivot-header-text: #212529;
    --prv-pivot-total-surface: #c5c5c5;
    --prv-pivot-total-text: #212529;
    --prv-pivot-subtotal-surface: #f1d9bd;
    --prv-pivot-subtotal-text: #212529;
}

.prv-radzen-pivot-grid.prv-theme-dark {
    --prv-pivot-grand-total-surface: #426d4d;
    --prv-pivot-header-surface: #343a40;
    --prv-pivot-header-text: #f8f9fa;
    --prv-pivot-subtotal-surface: #70553d;
    --prv-pivot-subtotal-text: #ffffff;
}

.prv-radzen-pivot-grid .rz-helper-hidden-accessible {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
}

.prv-radzen-pivot-grid .rz-panel {
    border: 1px solid var(--prv-grid-border);
    margin-bottom: 6px;
}

.prv-radzen-pivot-grid .rz-panel-titlebar {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 5px 8px;
    background: var(--prv-pivot-header-surface);
    color: var(--prv-pivot-header-text);
    font-weight: 600;
}

.prv-radzen-pivot-grid .rz-panel-titlebar-toggler {
    margin-inline-start: auto;
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
}

.prv-radzen-pivot-grid .rz-panel-titlebar-toggler .rzi { font-size: 0; }
.prv-radzen-pivot-grid .rz-panel-titlebar-toggler .rzi-plus::before { content: "+"; font: bold 16px Arial, sans-serif; }
.prv-radzen-pivot-grid .rz-panel-titlebar-toggler .rzi-minus::before { content: "−"; font: bold 16px Arial, sans-serif; }
.prv-radzen-pivot-grid .rz-expander.rz-state-collapsed { display: none; }
.prv-radzen-pivot-grid .rz-panel-content { padding: 8px; }
.prv-radzen-pivot-grid .rz-panel-content .rz-row { display: flex; flex-wrap: wrap; gap: 8px; }
.prv-radzen-pivot-grid .rz-panel-content .rz-col { flex: 1 1 180px; min-width: 0; }
.prv-radzen-pivot-grid .rz-panel-content .rz-col-md-6 { flex-grow: 2; }
.prv-radzen-pivot-grid .rz-panel-content .rz-label { display: block; margin-bottom: 4px; }

.prv-radzen-pivot-grid .rz-panel-content .rz-dropdown {
    display: flex;
    align-items: center;
    min-height: 28px;
    border: 1px solid var(--prv-select-border);
    background: var(--prv-select-surface);
    color: var(--prv-select-text);
    cursor: pointer;
}

.prv-radzen-pivot-grid .rz-panel-content .rz-dropdown-label {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    padding: 4px 7px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.prv-radzen-pivot-grid .rz-dropdown-trigger { padding: 4px 7px; }
.prv-radzen-pivot-grid .rz-dropdown-trigger-icon { font-size: 0; }
.prv-radzen-pivot-grid .rz-dropdown-trigger-icon::before { content: "▾"; font: 12px Arial, sans-serif; }

.prv-pivot-picker-panel {
    z-index: 2100;
    box-sizing: border-box;
    min-width: 180px;
    max-width: calc(100vw - 16px);
    padding: 5px;
    border: 1px solid var(--prv-select-border);
    background: var(--prv-select-surface);
    color: var(--prv-select-text);
    box-shadow: 0 3px 10px #0003;
    font: 12px/1.4 Arial, sans-serif;
}

.prv-pivot-picker-panel .rz-helper-hidden-accessible {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
}

.prv-pivot-picker-panel .rz-multiselect-header { display: flex; gap: 5px; padding: 4px; }
.prv-pivot-picker-panel .rz-multiselect-filter-container { flex: 1 1 auto; }
.prv-pivot-picker-panel .rz-multiselect-filter-container input {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    padding: 3px 5px;
    border: 1px solid var(--prv-select-border);
    background: var(--prv-select-surface);
    color: var(--prv-select-text);
}

.prv-pivot-picker-panel .rz-multiselect-filter-icon { display: none; }
.prv-pivot-picker-panel .rz-multiselect-items { list-style: none; margin: 0; padding: 0; }
.prv-pivot-picker-panel .rz-multiselect-item { display: flex; align-items: center; gap: 5px; padding: 4px 6px; cursor: pointer; }
.prv-pivot-picker-panel .rz-multiselect-item:hover,
.prv-pivot-picker-panel .rz-multiselect-item.rz-state-highlight { background: var(--prv-select-hover); }
.prv-pivot-picker-panel .rz-multiselect-item .rz-chkbox { flex-shrink: 0; }
.prv-pivot-picker-panel .rz-multiselect-item[aria-selected="true"] .rz-chkbox-box {
    background-color: var(--prv-color-accent);
    border-color: var(--prv-color-accent);
}

.prv-pivot-picker-panel .rz-multiselect-item[aria-selected="true"] .rz-chkbox-icon::before {
    color: var(--prv-color-accent-contrast);
    content: "✓";
    font-size: var(--prv-checkbox-icon-size);
    font-weight: bold;
    line-height: 1;
}

.prv-radzen-pivot-grid .rz-pivot-content {
    max-width: 100%;
    overflow-x: hidden;
}

.prv-radzen-pivot-grid .rz-pivot-table-container {
    max-width: 100%;
    overflow-x: auto;
}

.prv-radzen-pivot-grid .rz-pivot-table {
    border-collapse: collapse;
    min-width: 100%;
    width: max-content;
}

.prv-radzen-pivot-grid .rz-pivot-table :is(th, td) {
    box-sizing: border-box;
    border: 1px solid var(--prv-grid-border);
    padding: var(--prv-grid-cell-padding);
    white-space: nowrap;
}

.prv-radzen-pivot-grid .rz-pivot-table th {
    background-color: var(--prv-grid-header);
    color: var(--prv-grid-header-text);
    font-size: var(--prv-grid-header-font-size);
    font-weight: 700;
    height: 30px;
    padding: 6px 8px;
    vertical-align: middle;
}

.prv-radzen-pivot-single-aggregate .rz-pivot-aggregate-header-row {
    display: none;
}

.prv-radzen-pivot-grid .rz-pivot-table .rz-pivot-total-header {
    background-color: var(--prv-pivot-total-surface);
    color: var(--prv-pivot-total-text);
}

.prv-radzen-pivot-grid .rz-pivot-body tr:nth-child(even) td:not(.rz-pivot-total-cell) {
    background-color: var(--prv-grid-row-alternate);
}

.prv-radzen-pivot-grid .rz-pivot-body tr .rz-pivot-total-cell {
    background-color: var(--prv-pivot-total-surface);
    color: var(--prv-pivot-total-text);
    font-weight: 600;
}

.prv-radzen-pivot-grid .rz-pivot-body tr.rz-pivot-row {
    cursor: pointer;
}

.prv-radzen-pivot-grid.prv-pivot-no-row-selection .rz-pivot-body tr.rz-pivot-row {
    cursor: default;
}

.prv-radzen-pivot-grid .rz-pivot-body tr.prv-pivot-subtotal-row td:not(.rz-pivot-total-cell) {
    background-color: var(--prv-pivot-subtotal-surface);
    color: var(--prv-pivot-subtotal-text);
    font-weight: 600;
    border-top: 2px solid var(--prv-grid-footer-border);
}

.prv-radzen-pivot-grid .rz-pivot-body tr.prv-pivot-subtotal-level-0 td {
    font-weight: 700;
}

.prv-radzen-pivot-grid .rz-pivot-body tr.prv-pivot-row-selected td {
    box-shadow:
        inset 0 2px 0 var(--prv-grid-selection-outline, var(--prv-color-accent)),
        inset 0 -2px 0 var(--prv-grid-selection-outline, var(--prv-color-accent));
}

.prv-radzen-pivot-grid .rz-pivot-body tr.prv-pivot-row-selected td:first-child {
    box-shadow:
        inset 2px 0 0 var(--prv-grid-selection-outline, var(--prv-color-accent)),
        inset 0 2px 0 var(--prv-grid-selection-outline, var(--prv-color-accent)),
        inset 0 -2px 0 var(--prv-grid-selection-outline, var(--prv-color-accent));
}

.prv-radzen-pivot-grid .rz-pivot-body tr.prv-pivot-row-selected td:last-child {
    box-shadow:
        inset -2px 0 0 var(--prv-grid-selection-outline, var(--prv-color-accent)),
        inset 0 2px 0 var(--prv-grid-selection-outline, var(--prv-color-accent)),
        inset 0 -2px 0 var(--prv-grid-selection-outline, var(--prv-color-accent));
}

.prv-radzen-pivot-grid .rz-pivot-footer td {
    background-color: var(--prv-pivot-grand-total-surface);
    border-top: 2px solid var(--prv-grid-footer-border);
    font-weight: var(--prv-grid-footer-font-weight);
}

.prv-radzen-pivot-grid .rz-pivot-footer .rz-pivot-footer-total {
    background-color: var(--prv-pivot-total-surface);
    color: var(--prv-pivot-total-text);
}

.prv-radzen-pivot-grid .rz-pivot-table .rz-pivot-row-header[style*="inset-inline-start: 0px"],
.prv-radzen-pivot-grid .rz-pivot-table .rz-pivot-footer-header[style*="inset-inline-start: 0px"] {
    position: sticky;
    left: 0;
    z-index: 2;
}

.prv-radzen-pivot-grid .rz-pivot-table .rz-pivot-total-header,
.prv-radzen-pivot-grid .rz-pivot-table .rz-pivot-total-cell,
.prv-radzen-pivot-grid .rz-pivot-table .rz-pivot-footer-total {
    position: sticky;
    right: 0;
    z-index: 2;
}

.prv-radzen-pivot-grid .rz-pivot-table .rz-pivot-row-header[style*="inset-inline-start: 0px"] {
    background-color: var(--prv-grid-row);
}

.prv-radzen-pivot-grid .rz-pivot-table tr:nth-child(even) .rz-pivot-row-header[style*="inset-inline-start: 0px"] {
    background-color: var(--prv-grid-row-alternate);
}

.prv-radzen-pivot-grid .rz-pivot-table thead .rz-pivot-row-header[style*="inset-inline-start: 0px"] {
    background-color: var(--prv-grid-header);
    z-index: 3;
}

.prv-radzen-pivot-grid .rz-pivot-table .rz-pivot-footer-header[style*="inset-inline-start: 0px"] {
    background-color: var(--prv-pivot-grand-total-surface);
}

.prv-radzen-pivot-grid .rz-pivot-header-row:first-child th.prv-pivot-resize-hover,
.prv-radzen-pivot-grid.prv-pivot-resizing .rz-pivot-header-row:first-child th.prv-pivot-resize-hover {
    border-right: 2px solid var(--prv-grid-column-resizer-hover-guide-color);
    cursor: col-resize;
}

.prv-radzen-pivot-grid .rz-pivot-footer-header:first-child::before {
    content: "Total General";
}

.prv-radzen-pivot-grid .rz-pivot-table td {
    text-align: right;
}

.prv-radzen-pivot-grid .rz-pivot-body .rz-pivot-row-header {
    text-align: left;
}

.prv-radzen-pivot-grid .rz-pivot-table .rz-pivot-footer-header:first-child {
    text-align: left;
}

.prv-radzen-pivot-grid .rz-pivot-total-cell,
.prv-radzen-pivot-grid .rz-pivot-footer-total {
    text-align: right;
}

.prv-radzen-pivot-grid .rz-pivot-header-content-wrapper,
.prv-radzen-pivot-grid .rz-pivot-header-content {
    display: flex;
    align-items: center;
    gap: 4px;
}

.prv-radzen-pivot-grid .rz-pivot-header-content.rz-sortable,
.prv-radzen-pivot-grid .rz-pivot-drill-down-header [role="button"] {
    cursor: pointer;
}

.prv-radzen-pivot-grid .rz-sortable-column-icon,
.prv-radzen-pivot-grid .rz-tree-toggler {
    font-family: Arial, sans-serif;
    font-size: 0;
}

.prv-radzen-pivot-grid .rz-pivot-body .rz-pivot-drill-down-header {
    display: flex;
    align-items: center;
    gap: 7px;
}

.prv-radzen-pivot-grid .rz-pivot-body .rz-tree-toggler {
    display: inline-flex;
    flex: 0 0 16px;
    align-items: center;
    justify-content: center;
    width: 16px;
    min-height: 16px;
    cursor: pointer;
}

.prv-radzen-pivot-grid .rzi-sort-asc::before { content: "▲"; font-size: 9px; }
.prv-radzen-pivot-grid .rzi-sort-desc::before { content: "▼"; font-size: 9px; }
.prv-radzen-pivot-grid .rzi-caret-right::before { content: "▶"; font-size: 14px; }
.prv-radzen-pivot-grid .rzi-caret-down::before { content: "▼"; font-size: 14px; }

.prv-radzen-pivot-grid .rz-grid-filter-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    margin-inline-start: auto;
    padding: 3px;
    border: 0;
    background: transparent;
    color: inherit;
    font-size: 0;
    cursor: pointer;
}

.prv-radzen-pivot-grid .rz-grid-filter-icon::before {
    content: "";
    width: 12px;
    height: 12px;
    background: currentColor;
    clip-path: polygon(0 0, 100% 0, 60% 48%, 60% 85%, 40% 100%, 40% 48%);
}

.prv-radzen-grid-host {
    display: block;
    max-width: 100%;
    width: 100%;
}

.prv-radzen-data-grid {
    background-color: var(--prv-grid-row);
    color: var(--prv-grid-text);
    font-size: var(--prv-grid-font-size);
    max-width: 100%;
    overflow-x: auto;
    width: 100%;
}

.prv-radzen-data-grid table {
    border-collapse: collapse;
    max-width: 100%;
    min-width: 0 !important;
    table-layout: fixed;
    width: 100% !important;
}

.prv-radzen-data-grid-fixed-layout table { table-layout: fixed; }

/* Filtros nativos autónomos: no necesitan tema global ni fuente de iconos Radzen. */
.prv-radzen-data-grid th > div {
    display: flex; align-items: center; width: 100%; min-width: 0;
}
.prv-radzen-data-grid th > div > .rz-column-title {
    display: flex; align-items: center; flex: 1 1 0; min-width: 0; overflow: hidden;
}
.prv-radzen-data-grid th.prv-radzen-grid-header-center > div > .rz-column-title {
    justify-content: center;
}
.prv-radzen-data-grid th > div:has(> .rz-grid-filter-icon) > .rz-column-title > span:first-child {
    min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.prv-radzen-data-grid th > div:has(> .rz-grid-filter-icon) .rz-sortable-column-icon {
    flex-shrink: 0;
}
.prv-radzen-data-grid .rz-grid-filter-icon {
    display: inline-flex; align-items: center; justify-content: center; vertical-align: middle;
    box-sizing: border-box; flex: 0 0 20px; width: 20px; height: 20px; margin-inline-start: 4px; padding: 3px;
    font-size: 0; border: 0; border-radius: 2px; background: transparent; color: inherit; cursor: pointer;
}
.prv-radzen-data-grid .rz-grid-filter-icon::before {
    content: ""; width: 12px; height: 12px; background: currentColor;
    clip-path: polygon(0 0, 100% 0, 60% 48%, 60% 85%, 40% 100%, 40% 48%);
}
.prv-radzen-data-grid .rz-grid-filter-icon:hover { background: var(--prv-select-hover); }
.prv-radzen-data-grid .rz-grid-filter-active { color: var(--prv-color-accent); }
.prv-grid-filter-popup {
    position: absolute; z-index: 2100; box-sizing: border-box; width: 260px;
    max-width: calc(100vw - 16px); max-height: calc(100vh - 16px); overflow: auto;
    background: var(--prv-select-surface); color: var(--prv-select-text);
    border: 1px solid var(--prv-select-border); border-radius: var(--prv-control-border-radius);
    box-shadow: 0 3px 10px #0003; font: 12px/1.4 Arial, sans-serif;
}
.prv-grid-filter-popup .rz-overlaypanel-content { padding: 12px; }
.prv-grid-filter-popup .rz-grid-filter { display: flex; flex-direction: column; gap: 8px; margin: 0; }
.prv-grid-filter-popup .rz-grid-filter-label { font-weight: 600; }
.prv-grid-filter-popup :is(input.rz-textbox, .rz-numeric, .rz-numeric-input) {
    box-sizing: border-box; width: 100%; min-width: 0; min-height: 27px; padding: 3px 6px;
    background: var(--prv-select-surface); color: var(--prv-select-text);
    border: 1px solid var(--prv-select-border); font: inherit;
}
.prv-grid-filter-popup .rz-numeric { display: flex; padding: 0; }
.prv-grid-filter-popup .rz-numeric-input { border: 0; }
.prv-grid-filter-popup .rz-numeric-button { display: none; }
.prv-grid-filter-popup .rz-grid-filter-buttons { display: flex; justify-content: flex-end; gap: 8px; padding: 0 12px 12px; }
.prv-grid-filter-popup .rz-button {
    border: 1px solid var(--prv-select-border); border-radius: var(--prv-control-border-radius);
    background: var(--prv-select-hover); color: var(--prv-select-text); padding: 4px 10px; font: inherit; cursor: pointer;
}
.prv-grid-filter-popup .rz-apply-filter { background: var(--prv-color-accent); border-color: var(--prv-color-accent); color: #fff; }

.prv-radzen-data-grid th,
.prv-radzen-data-grid td {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.prv-radzen-data-grid .rz-cell-data {
    display: block !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
}

.prv-radzen-data-grid .prv-radzen-grid-wrapped-value {
    display: block !important;
    overflow-wrap: anywhere !important;
    white-space: normal !important;
}

.prv-radzen-data-grid th {
    background-color: var(--prv-grid-header);
    border: var(--prv-grid-border-width) solid var(--prv-grid-border);
    border-bottom-color: var(--prv-grid-header-bottom-border);
    color: var(--prv-grid-header-text);
    font-size: var(--prv-grid-header-font-size);
    font-weight: var(--prv-grid-header-font-weight);
    height: var(--prv-grid-header-height);
    box-sizing: border-box;
    overflow: visible !important;
    padding: var(--prv-grid-header-padding);
    position: relative;
    white-space: nowrap;
}

.prv-radzen-data-grid th.prv-radzen-grid-header-left { text-align: left; }
.prv-radzen-data-grid th.prv-radzen-grid-header-center { text-align: center; }

.prv-radzen-data-grid td {
    background-color: var(--prv-grid-row);
    border: var(--prv-grid-border-width) solid var(--prv-grid-border);
    color: var(--prv-grid-text);
    cursor: default;
    font-size: var(--prv-grid-cell-font-size);
    font-weight: var(--prv-grid-cell-font-weight);
    padding: var(--prv-grid-cell-padding);
    white-space: nowrap;
}

/* El borde pertenece a la fila completa, no a cada celda. Así se conserva el color
   funcional de la fila (por ejemplo, rojo de error) y la selección sigue siendo visible. */
.prv-radzen-data-grid tbody tr.rz-state-highlight td {
    box-shadow:
        inset 0 var(--prv-grid-selection-outline-width, 2px) 0 var(--prv-grid-selection-outline, var(--prv-color-accent, #9c27e8)),
        inset 0 calc(-1 * var(--prv-grid-selection-outline-width, 2px)) 0 var(--prv-grid-selection-outline, var(--prv-color-accent, #9c27e8));
}

.prv-radzen-data-grid tbody tr.rz-state-highlight td:first-child {
    box-shadow:
        inset var(--prv-grid-selection-outline-width, 2px) 0 0 var(--prv-grid-selection-outline, var(--prv-color-accent, #9c27e8)),
        inset 0 var(--prv-grid-selection-outline-width, 2px) 0 var(--prv-grid-selection-outline, var(--prv-color-accent, #9c27e8)),
        inset 0 calc(-1 * var(--prv-grid-selection-outline-width, 2px)) 0 var(--prv-grid-selection-outline, var(--prv-color-accent, #9c27e8));
}

.prv-radzen-data-grid tbody tr.rz-state-highlight td:last-child {
    box-shadow:
        inset calc(-1 * var(--prv-grid-selection-outline-width, 2px)) 0 0 var(--prv-grid-selection-outline, var(--prv-color-accent, #9c27e8)),
        inset 0 var(--prv-grid-selection-outline-width, 2px) 0 var(--prv-grid-selection-outline, var(--prv-color-accent, #9c27e8)),
        inset 0 calc(-1 * var(--prv-grid-selection-outline-width, 2px)) 0 var(--prv-grid-selection-outline, var(--prv-color-accent, #9c27e8));
}

.prv-radzen-data-grid tbody tr.rz-data-row { cursor: pointer; }
.prv-radzen-data-grid tbody tr.rz-data-row td { cursor: inherit; }

.prv-radzen-data-grid tbody tr:nth-child(odd) td { background-color: var(--prv-grid-row-alternate); }

/* Columna de totales: equivalente visual de DxGridDataColumnTotal. */
.prv-radzen-data-grid .rz-grid-table > tbody > tr > td.prv-radzen-grid-total-cell {
    background-color: rgb(140 75 51 / 25%);
    border-left: 1px solid #000;
    font-weight: 700;
}

/* Los totales forman una banda propia, común a todas las pantallas y a ambos temas. */
.prv-radzen-data-grid tfoot td {
    background-color: var(--prv-grid-footer-surface);
    border-top: 1px solid var(--prv-grid-footer-border);
    border-bottom: 1px solid var(--prv-grid-footer-border);
    color: var(--prv-grid-text);
    font-weight: var(--prv-grid-footer-font-weight);
}

/* Agrupaciones: columnas de sangría e iconos sin depender de la fuente de Radzen. */
.prv-radzen-data-grid:has(.rz-group-header-items) .rz-grid-table > colgroup > col:not([id]) {
    width: 30px;
}

.prv-radzen-data-grid:has(.rz-group-header-items) .rz-grid-table :is(th, td).rz-col-icon {
    box-sizing: border-box;
    width: 30px;
    min-width: 30px;
    max-width: 30px;
    padding: 2px;
}

.prv-radzen-data-grid .rz-group-header {
    padding: 6px 10px;
    background: var(--prv-grid-row);
    border: var(--prv-grid-border-width) solid var(--prv-grid-border);
}

.prv-radzen-data-grid .rz-group-header-items {
    display: flex;
    align-items: center;
    gap: 6px;
}

.prv-radzen-data-grid .rz-group-header-item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 4px 8px;
    background: var(--prv-grid-header);
    color: var(--prv-grid-header-text);
    border-radius: 2px;
    font-weight: 600;
}

.prv-radzen-data-grid .rz-group-header-item button {
    position: relative;
    width: 14px;
    height: 14px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
}

.prv-radzen-data-grid .rz-group-header-item button > span,
.prv-radzen-data-grid .rz-group-row .rz-col-icon button[aria-expanded] > span {
    display: none;
}

.prv-radzen-data-grid .rz-group-header-item button::before,
.prv-radzen-data-grid .rz-group-header-item button::after {
    content: "";
    position: absolute;
    top: 6px;
    left: 1px;
    width: 12px;
    border-top: 1.5px solid currentColor;
    transform: rotate(45deg);
}

.prv-radzen-data-grid .rz-group-header-item button::after {
    transform: rotate(-45deg);
}

.prv-radzen-data-grid .rz-group-row .rz-col-icon button[aria-expanded] {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 26px;
    height: 18px;
    min-width: 26px;
    min-height: 18px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 3px;
    background: transparent;
    box-shadow: none;
    color: var(--prv-grid-text);
    cursor: pointer;
    vertical-align: middle;
}

.prv-radzen-data-grid .rz-group-row .rz-col-icon button[aria-expanded]:hover,
.prv-radzen-data-grid .rz-group-row .rz-col-icon button[aria-expanded]:focus-visible {
    background: var(--prv-select-hover);
}

.prv-radzen-data-grid .rz-group-row .rz-col-icon button[aria-expanded]::before {
    content: "";
    display: block;
    width: 10px;
    height: 10px;
    border-right: 2.5px solid currentColor;
    border-bottom: 2.5px solid currentColor;
    transform: rotate(-45deg);
    transition: transform 120ms ease;
}

.prv-radzen-data-grid .rz-group-row .rz-col-icon button[aria-expanded="true"]::before {
    transform: rotate(45deg);
}

.prv-radzen-group-grid .rz-group-header-items { display: none; }

.prv-radzen-group-grid .prv-group-header-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.prv-group-header-control {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 3px 5px;
    background: var(--prv-grid-header);
    color: var(--prv-grid-header-text);
}

.prv-group-header-sort {
    border: 0;
    padding: 1px 3px;
    background: transparent;
    color: inherit;
    cursor: pointer;
    font: inherit;
    font-weight: 600;
}

.prv-radzen-group-grid .rz-group-row .rz-col-icon button[aria-expanded] {
    display: none;
}

.prv-radzen-group-grid .rz-group-row > td:last-child,
.prv-radzen-group-grid .rz-group-row .rz-cell-data {
    overflow: visible !important;
}

.prv-radzen-group-grid .prv-group-name {
    display: flex;
    align-items: center;
}

.prv-radzen-group-grid .prv-group-toggle {
    display: inline-flex;
    flex: 0 0 22px;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 18px;
    margin: 0 5px 0 -27px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--prv-grid-text);
    cursor: pointer;
}

.prv-radzen-group-grid .prv-group-toggle::before {
    content: "";
    width: 9px;
    height: 9px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(-45deg);
}

.prv-radzen-group-grid .prv-group-toggle[aria-expanded="true"]::before {
    transform: rotate(45deg);
}

.prv-radzen-group-grid .prv-group-toggle:hover { background: var(--prv-select-hover); }

.prv-radzen-group-grid .rz-group-row .prv-group-collapsed-totals {
    display: grid;
    grid-template-columns: minmax(0, 1fr) var(--prv-group-numeric-columns);
    box-sizing: border-box;
    /* La celda agrupada tiene 5px de padding derecho; extender la banda hasta
       su borde alinea los subtotales con las columnas reales del grid. */
    width: calc(100% + 5px);
    margin-top: 3px;
    background: var(--prv-group-subtotal-surface, var(--prv-grid-row-alternate));
    border-top: 1px solid var(--prv-grid-border);
    text-align: right;
}

.prv-radzen-group-grid .rz-group-row .prv-group-collapsed-totals > span {
    padding-right: 2px;
    border-left: 1px solid var(--prv-grid-border);
}

.prv-radzen-group-grid .rz-grid-table > tbody > tr:has(td.prv-radzen-group-subtotal) > td {
    background-color: var(--prv-group-subtotal-surface, var(--prv-grid-row-alternate));
    border-top: 1px solid var(--prv-group-subtotal-border, var(--prv-grid-border));
    border-bottom: 1px solid var(--prv-group-subtotal-border, var(--prv-grid-border));
    font-weight: 600;
    padding-inline: 2px;
}

/* El subtotal del grupo principal destaca por el borde, sin ocupar más ancho. */
.prv-radzen-group-grid .rz-group-row .prv-group-collapsed-totals.prv-group-primary-subtotal {
    border-top: 2px solid var(--prv-group-subtotal-border, var(--prv-grid-border));
}

.prv-radzen-group-grid .rz-grid-table > tbody > tr:has(td.prv-radzen-group-subtotal):has(.prv-group-primary-subtotal) > td {
    border-top-width: 2px;
}

/* El total general no debe quedar visualmente por debajo del subtotal principal. */
.prv-radzen-group-grid .rz-grid-table > tfoot > tr > td {
    background-color: var(--prv-group-grand-total-surface, var(--prv-grid-footer-surface));
    border-top: 2px solid var(--prv-group-grand-total-border, var(--prv-grid-footer-border));
    font-weight: 700;
    padding-inline: 2px;
}

.prv-group-value-filter {
    display: inline-flex;
    align-items: center;
}

.prv-group-value-filter-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 20px;
    height: 20px;
    padding: 3px;
    border: 0;
    border-radius: 2px;
    background: transparent;
    color: inherit;
    cursor: pointer;
}

.prv-group-value-filter-trigger::before {
    content: "";
    width: 12px;
    height: 12px;
    background: currentColor;
    clip-path: polygon(0 0, 100% 0, 60% 48%, 60% 85%, 40% 100%, 40% 48%);
}

.prv-group-value-filter-trigger:hover,
.prv-group-value-filter-trigger:focus-visible {
    background: var(--prv-select-hover);
}

.prv-group-value-filter-active { color: var(--prv-color-accent); }

.prv-group-value-filter-popup:popover-open {
    display: flex;
    flex-direction: column;
}

.prv-group-value-filter-popup {
    position: fixed;
    inset: auto;
    z-index: 2100;
    box-sizing: border-box;
    margin: 0;
    padding: 8px;
    background: var(--prv-select-surface);
    color: var(--prv-select-text);
    border: 1px solid var(--prv-select-border);
    border-radius: var(--prv-control-border-radius);
    box-shadow: 0 3px 10px #0003;
    font: 12px/1.4 Arial, sans-serif;
}

.prv-group-value-filter-title {
    padding: 2px 0 8px;
    font-weight: 700;
    font-size: 13px;
}

.prv-group-value-filter-search {
    box-sizing: border-box;
    width: 100%;
    min-height: 26px;
    padding: 3px 6px;
    border: 1px solid var(--prv-select-border);
    background: var(--prv-select-surface);
    color: var(--prv-select-text);
    font: inherit;
}

.prv-group-value-filter-options {
    flex: 1 1 auto;
    min-height: 0;
    margin-top: 8px;
    overflow-y: auto;
    border-top: 1px solid var(--prv-select-border);
}

.prv-group-value-filter-option {
    display: flex;
    align-items: center;
    gap: 5px;
    min-height: 25px;
    cursor: pointer;
}

.prv-group-value-filter-all {
    border-bottom: 1px solid var(--prv-select-border);
    margin-bottom: 3px;
}

.prv-group-value-filter-actions {
    display: flex;
    gap: 8px;
    padding-top: 8px;
}

.prv-group-value-filter-actions button {
    flex: 1;
    min-height: 27px;
    border: 1px solid var(--prv-select-border);
    border-radius: var(--prv-control-border-radius);
    background: var(--prv-select-surface);
    color: var(--prv-select-text);
    cursor: pointer;
    font: inherit;
}

.prv-group-value-filter-actions .prv-group-value-filter-apply {
    border-color: var(--prv-color-accent);
    background: var(--prv-color-accent);
    color: #fff;
}

/* Jerarquía: iconos independientes de la fuente Material de Radzen. */
.prv-radzen-hierarchy-grid .rz-grid-table > colgroup > col:first-child {
    width: 32px;
}

.prv-radzen-hierarchy-grid .rz-grid-table > thead > tr > th.rz-col-icon,
.prv-radzen-hierarchy-grid .rz-grid-table > tbody > tr > td.rz-col-icon {
    box-sizing: border-box;
    width: 32px;
    min-width: 32px;
    max-width: 32px;
    padding: 2px;
}

.prv-radzen-hierarchy-grid .rz-col-icon button[aria-expanded] > span {
    display: none;
}

.prv-radzen-hierarchy-grid .rz-col-icon button[aria-expanded] {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 26px;
    height: 18px;
    min-width: 26px;
    min-height: 18px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 3px;
    background: transparent;
    box-shadow: none;
    color: var(--prv-grid-text);
    cursor: pointer;
    vertical-align: middle;
}

.prv-radzen-hierarchy-grid .rz-col-icon button[aria-expanded]:hover,
.prv-radzen-hierarchy-grid .rz-col-icon button[aria-expanded]:focus-visible {
    background-color: var(--prv-select-hover);
}

.prv-radzen-hierarchy-grid .rz-col-icon button[aria-expanded]::before {
    content: "";
    display: block;
    width: 10px;
    height: 10px;
    border-right: 2.5px solid currentColor;
    border-bottom: 2.5px solid currentColor;
    transform: rotate(-45deg);
    transition: transform 120ms ease;
}

.prv-radzen-hierarchy-grid .rz-col-icon button[aria-expanded="true"]::before {
    transform: rotate(45deg);
}

.prv-radzen-detail-container {
    padding: 8px 12px 12px;
    background-color: var(--prv-grid-row-alternate);
}

.prv-radzen-data-grid.prv-radzen-detail-grid {
    --prv-grid-header: #b36b00;
    --prv-grid-header-bottom-border: #8c5400;
    --prv-grid-header-height: 25px;
    --prv-grid-footer-surface: #c5c5c5;
    --prv-grid-footer-border: #000000;
}

.prv-radzen-data-grid.prv-radzen-detail-grid tfoot.rz-datatable-tfoot td {
    background-color: var(--prv-grid-footer-surface);
    border-top: 1px solid var(--prv-grid-footer-border);
    border-bottom: 1px solid var(--prv-grid-footer-border);
    font-weight: 700;
}

.prv-radzen-data-grid th.rz-sortable-column,
.prv-radzen-data-grid th.rz-sortable-column .rz-column-title { cursor: pointer; }

.prv-radzen-data-grid th.rz-sortable-column:hover { background-color: var(--prv-grid-sortable-hover-surface); }

.prv-radzen-data-grid th.rz-sortable-column .rz-sortable-column-icon {
    display: inline-block;
    margin-left: var(--prv-grid-sort-icon-margin-left);
    text-align: center;
    width: var(--prv-grid-sort-icon-width);
}

.prv-radzen-data-grid th:not([aria-sort="ascending"]):not([aria-sort="descending"]) .rz-sortable-column-icon {
    display: none;
}

.prv-radzen-data-grid th.rz-sortable-column .rz-sortable-column-icon::before {
    color: var(--prv-grid-sort-icon-color) !important;
    content: "↕" !important;
    font-family: var(--prv-grid-sort-icon-font-family) !important;
    font-size: var(--prv-grid-sort-icon-font-size);
}

.prv-radzen-data-grid th[aria-sort="ascending"] .rz-sortable-column-icon::before {
    color: var(--prv-grid-sort-icon-active-color) !important;
    content: "▲" !important;
    text-shadow: var(--prv-grid-sort-icon-active-shadow);
}

.prv-radzen-data-grid th[aria-sort="descending"] .rz-sortable-column-icon::before {
    color: var(--prv-grid-sort-icon-active-color) !important;
    content: "▼" !important;
    text-shadow: var(--prv-grid-sort-icon-active-shadow);
}

.prv-radzen-data-grid th .rz-column-resizer {
    cursor: col-resize !important;
    float: none !important;
    height: 100% !important;
    position: absolute !important;
    right: var(--prv-grid-column-resizer-right) !important;
    top: 0;
    width: var(--prv-grid-column-resizer-width) !important;
    z-index: var(--prv-grid-column-resizer-z-index);
}

/* El tirador de la última columna no debe crear scroll cuando la tabla aún cabe. */
.prv-radzen-data-grid th:last-child .rz-column-resizer { right: 0 !important; }

.prv-radzen-data-grid th .rz-column-resizer::before {
    background: repeating-linear-gradient(
        to bottom,
        var(--prv-grid-column-resizer-guide-color) 0 var(--prv-grid-column-resizer-guide-dash),
        transparent var(--prv-grid-column-resizer-guide-dash) var(--prv-grid-column-resizer-guide-gap));
    content: "";
    height: var(--prv-grid-column-resizer-guide-height);
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    transition: background-color .12s ease, box-shadow .12s ease;
    width: var(--prv-grid-column-resizer-guide-width);
}

.prv-radzen-data-grid th .rz-column-resizer:hover { background-color: var(--prv-grid-column-resizer-hover-surface); }

.prv-radzen-data-grid th .rz-column-resizer:hover::before {
    background: repeating-linear-gradient(
        to bottom,
        var(--prv-grid-column-resizer-hover-guide-color) 0 var(--prv-grid-column-resizer-guide-dash),
        transparent var(--prv-grid-column-resizer-guide-dash) var(--prv-grid-column-resizer-guide-gap));
    box-shadow: var(--prv-grid-column-resizer-hover-guide-shadow);
}
