/* (UTF8 á) */
@import url('https://fonts.googleapis.com/css2?family=Google+Sans+Flex:opsz,wght@6..144,1..1000&family=Google+Sans:ital,opsz,wght@0,17..18,400..700;1,17..18,400..700&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap&subset=latin-ext');

/* Start scrollbar */
::-webkit-scrollbar {
	height: 10px;
	width: 6px;
}

::-webkit-scrollbar-corner {
	background: transparent;
}

::-webkit-scrollbar-thumb:hover, ::-webkit-scrollbar-thumb:active {
	background-color: #9e9e9e;
}

::-webkit-scrollbar-thumb {
	background-clip: padding-box;
	background-color: #bdbdbd;
	border-radius: 6px;
}

::-webkit-scrollbar-track:hover {
	background-color: #e0e0e0;
}

::-webkit-scrollbar-track {
	background-color: #eee;
}
/* End scrollbar */

:root {
	/* Theme colors */
	--mdc-theme-primary: #174ea6; /* Primary color (background) */
	--mdc-theme-on-primary: #ffffff; /* Ink color (text and icons) */
	--mdc-theme-surface-container-color: #e8f0fe; /* #f8fafd; */
	--mdc-theme-login-screen-bg-color: #fff;
	--mdc-theme-main-background-color: #fff;
	--mdc-theme-text-primary-on-background: rgba(0, 0, 0, 0.87);
	--mdc-theme-text-light-on-background: #757575;
	--mdc-theme-text-icon-on-background: #424242;
	--mdc-theme-text-hint-on-background: rgba(0, 0, 0, 0.38);
	--mdc-theme-error: #b3261e;
	--mdc-theme-success: #137333;
	--mdc-theme-selected: #c2dbff; /*rgba(23, 78, 166, 0.12);*/
	--mdc-theme-soft: rgba(0, 0, 0, 0.6);
	--mdc-theme-toolbar-background-color: #e8f1ff;
	--mdc-theme-hover: rgba(23, 78, 166, 0.12);	/* Same color as --mdc-ripple-color with --mdc-ripple-hover-opacity */
	--mdc-theme-color--true: #0b8043;
	--mdc-theme-color--false: #c53929;
	--mdc-theme-color--warning: #e38e0c;
	--mdc-theme-badge-bg: #d93025;
	--mdc-theme-badge-text: #ffffff;

	/* Severity tints — background + a foreground that stays legible on it.
	   Shared by .msg-banner--* and .pli-tag--*, so both stay in sync.
	   Note: --mdc-theme-color--warning (#e38e0c) only reaches 2.4:1 on its own
	   tint, so warning needs a darker ink of its own. */
	--mdc-theme-tint-info: #e8f0fe;
	--mdc-theme-tint-warning: #fef7e0;
	--mdc-theme-tint-error: #fce8e6;
	--mdc-theme-tint-success: #e6f4ea;
	--mdc-theme-tint-neutral: #eceff1;

	--mdc-theme-on-tint-info: var(--mdc-theme-primary);
	--mdc-theme-on-tint-warning: #8a5a00;
	--mdc-theme-on-tint-error: var(--mdc-theme-error);
	--mdc-theme-on-tint-success: var(--mdc-theme-success);
	--mdc-theme-on-tint-neutral: #4a5560;

	/* Custom App Bar colors */
	--mdc-app-bar-text-color: #424242;

	/* Ripple */
	--mdc-ripple-color: #174ea6;
	--mdc-ripple-color-on-primary: #000;
	--mdc-ripple-color-on-secondary: #fff;
	--mdc-ripple-hover-opacity: 0.1;
	--mdc-ripple-focus-opacity: 0;

	/* Checkboxes and other controls */
	--mdc-theme-secondary: #174ea6;
	--mdc-checkbox-ink-color: #fff;

	/* Switch */
	--mdc-switch-selected-track-color: #c2dbff;
	--mdc-switch-selected-focus-track-color: #9bbaec;
	--mdc-switch-selected-pressed-track-color:  #9bbaec;
	--mdc-switch-selected-hover-track-color: #c2dbff;
	--mdc-switch-selected-focus-handle-color: #0b57d0;
	--mdc-switch-selected-pressed-handle-color: #0b57d0;
	--mdc-switch-selected-hover-handle-color: var(--mdc-theme-primary);

	/* Textbox */
	--mdc-theme-text-focused-color: #0b57d0;
	--mdc-theme-text-hover-color: #0b57d0;
	--mdc-theme-text-background-color: #fff;
	--mdc-theme-text-field-height: 48px;

	/* Select */
	--mdc-theme-select-background-color: #fff;

	/* List */
	--mdc-list-active-text: #001d35; /*#174ea6*/

	/* Buttons */
	--mdc-text-button-label-text-transform: none;
	--mdc-outlined-button-label-text-transform: none;
	--mdc-protected-button-label-text-transform: none;
	--mdc-filled-button-label-text-transform: none;
	--mdc-text-button-container-shape: 9999px;	/* border-radius (make them fully rounded */
	--mdc-outlined-button-container-shape: 9999px;
	--mdc-protected-button-container-shape: 9999px;
	--mdc-filled-button-container-shape: 9999px;
	--mdc-filled-button-container-color: var(--mdc-theme-primary);
	--mdc-filled-button-label-text-color: var(--mdc-theme-on-primary);
	--mdc-outlined-button-outline-color: #747775;
	--mdc-outlined-button-label-text-color: var(--mdc-theme-text-primary-on-background, #1f1f1f);

	/* Chips */
	--mdc-theme-chip-background-color: rgba(23, 78, 166, 0.12);

	/* Query As Table */
	--mdc-qat-row-button-color: #424242;
	
	/* Cataloguer */
	--mdc-catger-row-button-color: #424242;

	/* Custom Navigation Drawer stuff */


	/* Dialogs */
	--mdc-dialog-z-index: 10;
	/* If this changes, adjust:
		otchet-params-dialog	+5 (auto) /css3/otchet.css: .otchet-params-dialog
		nxdrive-plugin-dialog	+1
		nxdrive-addfile-dialog	+9
		mp-dialog				+4 (auto) this file: .mp-mdc-dialog
		progdialog				+5 (auto) this file: .progdialog
		
		dynamic dialogs			8000 + dlg count
		confirm box				9999
		mdc-helper 				10000 & 10001
	*/
	/*--mdc-shape-medium: 28px;	/* border-radius */

	/* Border Radius */
	--mdc-shape-small: 4px;
	
	/* Typography */
	--mdc-typography-font-family: Roboto;
	--mdc-typography-body2-font-family: Roboto;
	--mdc-typography-body2-font-size: 0.875rem;
	
	/* Datepicker */
	--mdc-datepicker-background-color: #e9e7eb;
}

.mdc-drawer-app-content {
	flex: auto;
	overflow: auto;
}

.main-content {
	overflow: auto;
	height: 100%;
	box-sizing: border-box;
	margin: 0 auto;
	padding: 8px;
	background-color: var(--mdc-theme-main-background-color);
}

.main-content:has(.main-content__no-padding) {
	padding: 0;
}

.onpage-text {
	-moz-osx-font-smoothing: grayscale;
	-webkit-font-smoothing: antialiased;
	font-family: var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto));
	font-size: var(--mdc-typography-body2-font-size, 0.875rem);
	line-height: var(--mdc-typography-body2-line-height, 1.25rem);
	font-weight: var(--mdc-typography-body2-font-weight, 400);
	letter-spacing: var(--mdc-typography-body2-letter-spacing, 0.0178571429em);
	text-decoration: var(--mdc-typography-body2-text-decoration, inherit);
	text-transform: var(--mdc-typography-body2-text-transform, inherit);
	color: var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87));
}

.onpage-text--light {
	color: var(--mdc-theme-text-light-on-background);
}

/*
.main-right-floating-toolbar {
	position: absolute;
	right: 16px;
	display: flex;
	gap: 6px;
	z-index: 1000;
}
*/
.right-sheet {
    width: initial;
    height: 100%;
    color: var(--mdc-app-bar-text-color);
	position: fixed;
	top: 0;
	right: 0;
	transform: translateX(100%);
	transition: transform 0.25s ease-out;
	z-index: 9;
}

.right-sheet--no-transform{
	transform: none !important;
	transition: none !important; /* prevents a flash when toggling this class */
}

.right-sheet__header {
	display: flex;
	height: 50px;
	align-items: center;
	padding: 0 8px 0 22px;
	box-sizing: border-box;
	border-bottom: 1px solid rgba(0, 0, 0, 0.12);
	background-color: var(--mdc-theme-surface-container-color);
}

.right-sheet__contents {
	height: calc(100vh - 50px);
	padding: 8px;
	background-color: var(--mdc-theme-main-background-color);
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	box-sizing: border-box;
}

.right-sheet-scrim {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 8;
	background-color: rgba(0, 0, 0, 0.32);
	transition-property: opacity;
	transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

.right-sheet.open {
	transform: translateX(0);
	box-shadow: rgba(0, 0, 0, 0.2) 0px 8px 10px -5px, rgba(0, 0, 0, 0.14) 0px 16px 24px 2px, rgba(0, 0, 0, 0.12) 0px 6px 30px 5px;
}

.right-sheet.open + .right-sheet-scrim {
	display: block;
}

.toolbar-container {
	display: flex;
	align-items: center;
}

.toolbar__buttons-container {
	display: flex;
	justify-content: flex-start;
	padding: 4px;
	gap: 6px;
}

.toolbar__buttons-container--small {
	display: flex;
	justify-content: flex-start;
	background-color: var(--mdc-theme-toolbar-background-color);
	border-radius: 1.5rem;
	height: 2.5rem;
	margin: 0.25rem;
}

.toolbar__buttons-container .toolbar__buttons-separator,
.toolbar__buttons-container--small .toolbar__buttons-separator {
	border-left: 1px solid rgba(100, 121, 143, 0.12);
	height: 25px;
	line-height: normal;
	outline: none;
	overflow: hidden;
	padding: 0;
	text-decoration: none;
	vertical-align: middle;
	width: 0;
	margin: 0 2px;
	background-color: var(--mdc-app-bar-text-color); /* #c4c7c5;*/
	position: relative;
	display: inline-block;
	align-self: center;
}

.toolbar__buttons-container--small .toolbar__buttons-separator {
	height: 20px;
}

.toolbar__buttons-container--small .mdc-icon-button,
.mdc-data-table--nxdrive-plugin-files .mdc-icon-button {
	font-size: 1.25rem;
	width: 2rem;
	height: 2rem;
	padding: 0.25rem;
	margin: 0.25rem 0.375rem;
}

.mdc-icon-button--small {
	width: 40px;
	height: 40px;
	padding: 8px;
}

.mdc-icon-button--small:not(:disabled),
.toolbar__buttons-container--small .mdc-icon-button:not(:disabled),
.mdc-data-table--nxdrive-plugin-files .mdc-icon-button:not(:disabled),
.palach-toolbar .mdc-icon-button:not(:disabled) {
	color: var(--mdc-app-bar-text-color);
}

/* START: Misc MDC Generic Custom Styles */
.mdc-field-helper-required-text {
	-webkit-font-smoothing: antialiased;
	color: var(--mdc-theme-error, #b3261e);
	font-family: var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.00625rem;
	display: flex;
	align-items: center;
	line-height: normal;
	opacity: 1;
	will-change: opacity;
	margin: 2px 0 0 0;
	transition: opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);
}

.mdc-field-helper-required-text i {
	margin-right: 8px;
	font-size: 16px;
}

.mdc-form-field.checkbox, .mdc-form-field.radio {
	border-radius: 24px;
}

.mdc-form-field.checkbox label, .mdc-form-field.radio label {
	width: 100%;
	padding: calc((var(--mdc-checkbox-ripple-size, 40px) - 18px) / 2) 0;
	cursor: pointer;
}

.mdc-form-field__meta {
	margin-left: auto;
	margin-right: 5px;
	color: var(--mdc-theme-text-hint-on-background, rgba(0, 0, 0, 0.38));
	white-space: nowrap;
}

.mdc-checkbox__graphic,
.mdc-switch__graphic {
	color: var(--mdc-theme-text-icon-on-background, rgba(0, 0, 0, 0.38));
	width: 24px;
	height: 24px;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	fill: currentColor;
	-o-object-fit: cover;
	object-fit: cover;
	margin-left: 0;
	margin-right: 0;
	padding-right: calc((var(--mdc-checkbox-ripple-size, 40px) - 18px) / 2);
	user-select: none;
}

.mdc-snackbar {
	z-index: 99999;
}

.mdc-tooltip {
	z-index: 99999;
}

.mdc-tooltip__surface {
	background-color: #2f3033;
	/*color: #f2f0f4;*/
}

.mdc-switch__icon-label {
	display: flex;
	padding: 0;
	justify-content: center;
}

.mdc-switch__icon-label:has(.mdc-switch.mdc-switch--selected) .mdc-switch__graphic {
	/* color: var(--mdc-theme-primary); */
	font-variation-settings: 'FILL' 1;
}

.mdc-switch__selected-graphic-color .mdc-switch__icon-label:has(.mdc-switch.mdc-switch--selected) .mdc-switch__graphic {
	color: var(--mdc-switch-selected-graphic-color, var(--mdc-theme-text-icon-on-background));
}

.mdc-tab--active .mdc-tab__icon {
	font-variation-settings: 'FILL' 1;
}

.mdc-tab-content {
	height: 100%;
	box-sizing: border-box;
}

.mdc-menu-surface:not(.mdc-select__menu) {
	border-radius: 16px;
}

#nxContextMenu {
	z-index: 100;
}

/* Right-aligned meta hints keep a minimum gap from long labels (padding, NOT margin-left —
   MDC's margin-left: auto is what pushes them right) */
#nxContextMenu .mdc-deprecated-list-item__meta {
	padding-left: 16px;
}

.mdc-menu:not(.mdc-select__menu) .mdc-deprecated-list-item {
	border-radius: 12px;
	margin: 0 2px;
	padding: 0 12px;
}
/* END: Misc MDC Generic Custom Styles */


/* START: MDC Dialog */
.mdc-dialog .mdc-dialog__header {
	box-shadow: 0 1px 2px 0 rgba(60, 64, 67, .3),
				0 2px 6px 2px rgba(60, 64, 67, .15);
}

.mdc-dialog .mdc-dialog__title {
	padding-left: 15px;
	font-size: 18px;
	font-weight: 500;
	line-height: 24px;
}

.mdc-dialog--fullscreen .mdc-dialog__header {
	padding-left: 12px;
}

.mdc-dialog .mdc-dialog__surface {
	border-radius: 28px;
}

/* Only apply padding-top when the contents doesn't has a tab bar or has a children with the mdc-dialog-no-padding class */
.mdc-dialog .mdc-dialog__content:not(:has(.mdc-tab-bar)):not(:has(.mdc-dialog-no-padding)) {
	padding-top: 20px;
}

.mdc-dialog__actions {
	background-color: #e8f0fe;
}

.mdc-dialog__actions--custom {
	display: flex;
}

.mdc-dialog__actions--custom .mdc-button:first-child {
	margin-left: 8px;
}

/* Bottom progress bar fix when the dialog has content that scrolls */
.mdc-dialog .mdc-dialog__surface .mdc-linear-progress {
	flex-shrink: 0;
}
/* END: MDC Dialog */


/* START: Lists */
.mdc-deprecated-list-item--activated,
.mdc-deprecated-list-item--activated .mdc-deprecated-list-item__graphic,
.mdc-drawer .mdc-deprecated-list-item--activated,
.mdc-drawer .mdc-deprecated-list-item--activated .mdc-deprecated-list-item__graphic {
	color: var(--mdc-list-active-text);
	font-variation-settings: 'FILL' 1;
    font-weight: bold;
}

.mdc-deprecated-list-nested-nav__section .mdc-deprecated-list-item {
	padding-left: 1.25rem;
}

.mdc-deprecated-list-item {
	user-select: none;
}

.mdc-deprecated-list--rounded-items .mdc-deprecated-list-item {
	border-radius: 999px;
}

.mdc-deprecated-list-item--selected,
.mdc-deprecated-list-item--activated {
	background-color: var(--mdc-theme-selected);
}

.mdc-deprecated-list-item__graphic {
	margin-right: 16px;
}

.mdc-deprecated-list-item--two-line .mdc-deprecated-list-item__text {
    align-self: flex-start
}

.mdc-deprecated-list-item.mdc-deprecated-list-item--two-line {
    height: 64px;
}
/*
.mdc-list-item {
	height: 40px;
}

.mdc-list-item__end {
	align-self: center;
}
*/
/* END: Lists */


/* START: Textbox */
.mdc-text-field--outlined:not(.mdc-text-field--textarea), .mdc-text-field--filled {
	height: var(--mdc-theme-text-field-height);
}

.mdc-floating-label.mdc-floating-label--float-above {
  top: calc((var(--mdc-theme-text-field-height) / 2) + 3px); /* Adjust label position */
}

.mdc-notched-outline.rounded .mdc-notched-outline__leading {
	width: 28px;
	border-radius: 28px 0 0 28px;
}

.mdc-notched-outline.rounded .mdc-notched-outline__trailing {
	border-radius: 0 28px 28px 0;
}

.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading,
.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch,
.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing {
	border-color: var(--mdc-theme-text-hover-color);
}

.mdc-text-field:not(.mdc-text-field--disabled):hover .mdc-floating-label {
	color: var(--mdc-theme-text-hover-color);
}

.mdc-text-field--focused:not(.mdc-text-field--disabled):not(.mdc-text-field--invalid) .mdc-floating-label {
	color: var(--mdc-theme-text-focused-color);
}

.mdc-text-field--filled:not(.mdc-text-field--disabled).no-bg-color {
	background-color: var(--mdc-theme-text-background-color);
}

.mdc-text-field__icon {
	user-select: none;
}

.mdc-text-field__icon--trailing {	/* Modified this so that trailing icon buttons are displayed correctly in 48px text boxes */
	padding: 8px;
	margin-left: 0px;
	margin-right: 4px;
}

.mdc-text-field__label {
	align-items: center;
}

.mdc-text-field__input::-webkit-calendar-picker-indicator {
	display: initial
}

.mdc-datepicker-calendar+.mdc-text-field-helper-line {
	padding-right: 16px;
	padding-left: 16px;
}

.mdc-label-field:hover .mdc-text-field__ripple::before {
	opacity: 0;
}

.mdc-label-field.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading,
.mdc-label-field.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch,
.mdc-label-field.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing {
	border-color: rgba(0, 0, 0, 0.38);
}

.mdc-label-field.mdc-text-field:not(.mdc-text-field--disabled):hover .mdc-floating-label {
	color: rgba(0, 0, 0, 0.6);
}
/* END: Textbox */


/* START: MDC Select */
.mdc-select:not(.mdc-select--disabled).mdc-select--focused:not(.mdc-select--invalid) .mdc-floating-label {
	color: var(--mdc-theme-text-focused-color);
}

.mdc-select--outlined .mdc-select__anchor, .mdc-select--filled .mdc-select__anchor {
	height: var(--mdc-theme-text-field-height);
}

/* The rows-per-page select of a data table's pagination keeps MDC's compact height */
.mdc-data-table__pagination-rows-per-page-select .mdc-select__anchor {
	height: 36px;
}

.mdc-data-table__pagination-rows-per-page-select {
	margin: 0;
}

.mdc-select--filled.no-bg-color:not(.mdc-select--disabled) .mdc-select__anchor {
	background-color: var(--mdc-theme-select-background-color);
}

.mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__anchor:hover .mdc-notched-outline .mdc-notched-outline__leading,
.mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__anchor:hover .mdc-notched-outline .mdc-notched-outline__notch,
.mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__anchor:hover .mdc-notched-outline .mdc-notched-outline__trailing {
	border-color: var(--mdc-theme-text-hover-color);
}

.mdc-select:not(.mdc-select--disabled):hover .mdc-floating-label {
	color: var(--mdc-theme-text-hover-color);
}

.mdc-select__search-input {
	display: none;
	border: none;
	outline: none;
	background: transparent;
	font: inherit;
	color: inherit;
	width: 100%;
	height: 100%;
	padding: 0;
	box-sizing: border-box;
}

.mdc-select--searching .mdc-select__search-input {
	display: inline-block;
}

.mdc-select--searching .mdc-select__selected-text {
	display: none;
}

.mdc-select__no-results {
	display: none;
	pointer-events: none;
	opacity: .6;
}

/* Lazy-load footer hint ("Buscar para mas..." / "Escribe para buscar…") */
.mdc-select__lazy-more {
	pointer-events: none;
	opacity: .6;
	font-style: italic;
}

/* Lazy-load spinner shown in the search row while options are being fetched */
.mdc-select__selected-text-container {
	position: relative;
}

.mdc-select__lazy-spinner {
	display: none;
	position: absolute;
	right: 4px;
	top: 50%;
	width: 16px;
	height: 16px;
	margin-top: -8px;
	border: 2px solid var(--mdc-theme-text-disabled-on-light, rgba(0, 0, 0, .2));
	border-top-color: var(--mdc-theme-primary, #6200ee);
	border-radius: 50%;
	box-sizing: border-box;
	animation: mdcSelectLazySpin .6s linear infinite;
}

.mdc-select--lazy-loading .mdc-select__lazy-spinner {
	display: block;
}

@keyframes mdcSelectLazySpin {
	to {
		transform: rotate(360deg);
	}
}


/* BUG FIX: MDC Select doesn't shake */
@-webkit-keyframes mdc-floating-label-shake-float-above-select-outlined {
    0% {
        -webkit-transform: translateX(calc(0 - 0%)) translateY(-34.75px) scale(0.75);
        transform: translateX(calc(0 - 0%)) translateY(-34.75px) scale(0.75)
    }

    33% {
        -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);
        animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);
        -webkit-transform: translateX(calc(4% - 0%)) translateY(-34.75px) scale(0.75);
        transform: translateX(calc(4% - 0%)) translateY(-34.75px) scale(0.75)
    }

    66% {
        -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);
        animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);
        -webkit-transform: translateX(calc(-4% - 0%)) translateY(-34.75px) scale(0.75);
        transform: translateX(calc(-4% - 0%)) translateY(-34.75px) scale(0.75)
    }

    100% {
        -webkit-transform: translateX(calc(0 - 0%)) translateY(-34.75px) scale(0.75);
        transform: translateX(calc(0 - 0%)) translateY(-34.75px) scale(0.75)
    }
}

@keyframes mdc-floating-label-shake-float-above-select-outlined {
    0% {
        -webkit-transform: translateX(calc(0 - 0%)) translateY(-34.75px) scale(0.75);
        transform: translateX(calc(0 - 0%)) translateY(-34.75px) scale(0.75)
    }

    33% {
        -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);
        animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);
        -webkit-transform: translateX(calc(4% - 0%)) translateY(-34.75px) scale(0.75);
        transform: translateX(calc(4% - 0%)) translateY(-34.75px) scale(0.75)
    }

    66% {
        -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);
        animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);
        -webkit-transform: translateX(calc(-4% - 0%)) translateY(-34.75px) scale(0.75);
        transform: translateX(calc(-4% - 0%)) translateY(-34.75px) scale(0.75)
    }

    100% {
        -webkit-transform: translateX(calc(0 - 0%)) translateY(-34.75px) scale(0.75);
        transform: translateX(calc(0 - 0%)) translateY(-34.75px) scale(0.75)
    }
}
/* END: MDC Select */


/* START: Buttons */
.mdc-button--small {
	font-size: 0.725rem;
	height: 24px;
}
/* END: Buttons */


/* START: FABs */
.mdc-fab .mdc-fab__ripple::before,
.mdc-fab .mdc-fab__ripple::after {
	background-color: var(--mdc-ripple-color-on-secondary);
}

.mdc-fab:disabled {
	cursor: default;
	pointer-events: none;
	background-color: var(--mdc-protected-button-disabled-container-color, rgba(0, 0, 0, 0.12));
}

.mdc-fab:disabled .mdc-fab__icon, .mdc-fab:disabled .mdc-fab__label {
	color: var(--mdc-theme-text-disabled-on-light, rgba(0, 0, 0, 0.38));
}

.mdc-fab--tiny {
	width: 25px;
	height: 25px;
}

.mdc-fab--tiny .mdc-fab__icon {
	width: 20px;
	height: 20px;
	font-size: 20px;
}
/* END: FABs */

/* START: MDC Data Table */
.mdc-data-table--nowrap .mdc-data-table__table {
	white-space: normal;
}

.mdc-data-table__header-row,
.mdc-data-table__row,
.mdc-data-table__nocheckbox-row {
	height: 48px;
}

.mdc-data-table--nxdrive-plugin-files {
	max-height: 100%
}

.mdc-data-table--nxdrive-plugin-files .mdc-data-table__row.can-download {
	cursor: pointer;
}

.mdc-data-table--rep-params .mdc-data-table__row,
.mdc-data-table--nxdrive-plugin-files .mdc-data-table__row {
	height: 36px;
}

.mdc-data-table__cell.mdc-data-table__cell-with-icon > div:first-child,
.mdc-data-table__cell.mdc-data-table__cell-with-image > div:first-child {
	display: flex;
	align-items: center;
}

.mdc-data-table__cell.mdc-data-table__cell-with-icon .mdc-data-table__cell-img-container {
	display: flex;
	margin-right: 12px;
	user-select: none;
}

.mdc-data-table__cell.mdc-data-table__cell-with-image .mdc-data-table__cell-avatar-container {
	height: 2.25rem;
	width: 2.25rem;
	font-size: 2.25rem;
	position: relative;
	overflow: hidden;
	user-select: none;
	flex-shrink: 0;
}

.mdc-data-table__cell.mdc-data-table__cell-with-image .mdc-data-table__cell-avatar-container.photo {
	border-radius: 50%;
}

.mdc-data-table__cell.mdc-data-table__cell-with-image .mdc-data-table__cell-avatar-container:has(+ *) {
	margin-right: 12px;
}

.mdc-data-table__cell.mdc-data-table__cell-with-icon .mdc-data-table__cell-txt-container,
.mdc-data-table__cell.mdc-data-table__cell-with-image .mdc-data-table__cell-txt-container {
	text-overflow: ellipsis;
	overflow-x: hidden;
}

@media (pointer: fine) {
	/* Styles for desktop/laptop devices */
	.mdc-data-table__header-row, .mdc-data-table__row, .mdc-data-table__nocheckbox-row {
		height: 40px;
	}
}

.mdc-data-table__pagination {
	min-height: 48px;
}

.mdc-data-table__header-cell {
	background-color: var(--mdc-theme-surface-container-color);
	color: var(--mdc-app-bar-text-color);
	/* or:
	background-color: var(--mdc-theme-secondary);
	color: var(--mdc-theme-on-secondary);
	*/
}

.mdc-data-table__header-cell-icon {
	font-size: 21px;
}

.mdc-data-table__row--selected {
	background-color: var(--mdc-theme-selected);
}

.mdc-data-table__row:hover,
.mdc-data-table__nocheckbox-row:hover {
	box-shadow: inset 1px 0 0 rgb(218, 220, 224), inset -1px 0 0 rgb(218, 220, 224), 0 1px 2px 0 rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);
	position: relative;
}
/* END: MDC Data Table */

/* START: MDC Chip-Set */
.mdc-chip-set--full-width .mdc-chip {
    width: 100%;
}

.mdc-chip-set--choice .mdc-chip {
	border: 1px solid transparent;
}
/* END: MDC Chip-Set */

/* START: MDC Chips */
.mdc-chip {
	background-color: var(--mdc-theme-chip-background-color);
}

.mdc-chip.normal-cursor {
	cursor: initial;
}

.mdc-chip__text {
	overflow: hidden;
	text-overflow: ellipsis;
}

.mdc-chip__icon.mdc-chip__icon--trailing {
	cursor: pointer;
}

.mdc-chip-set--choice .mdc-chip.mdc-chip--selected {
	color: var(--mdc-theme-primary);
	border: 1px solid var(--mdc-theme-primary);
}

.mdc-chip-set--choice .mdc-chip.mdc-chip--selected .mdc-chip__icon--leading {
	color: var(--mdc-theme-primary);
	font-variation-settings: 'FILL' 1;
}
/* END: MDC Chips */

/* START: Add-Chip Button (reusable pill-shaped "+" button — pairs with an mdc-chip-set input as the "add another" affordance) */
.add-chip-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	height: 32px;
	min-width: 40px;
	padding: 0 12px;
	border: 1px solid var(--mdc-outlined-button-outline-color, #747775);
	border-radius: 9999px;
	background-color: transparent;
	color: var(--mdc-theme-primary);
	cursor: pointer;
	user-select: none;
	overflow: hidden;	/* clip the MDCRipple to the pill shape */
	-webkit-tap-highlight-color: transparent;
}

.add-chip-btn .material-symbols {
	font-size: 20px;
	line-height: 1;
}

.add-chip-btn:disabled {
	opacity: 0.45;
	cursor: default;
	pointer-events: none;
}
/* END: Add-Chip Button */

/* START: Banner */
.msg-banner {
	font-size: 14px;
	border-radius: 8px;
	border: 0;
	align-items: flex-start;
	background-color: #fff;
	box-sizing: border-box;
	display: flex;
	flex: 1;
	min-height: 48px;
	max-height: 500px;
	overflow: hidden;
	padding: 0 16px 0 0;
	position: relative;
}

.msg-banner__content {
	display: flex;
	flex: 1;
}

.msg-banner__graphic {
	align-items: center;
	display: flex;
	flex: 0 0 auto;
	padding: 12px 16px;
}

/* Our own banner icon class — avoids the MDC framework's .mdc-banner__icon styles (which mis-align the icon
   on a wrapping message). Use this for all banners. */
.msg-banner__icon {
	width: 24px;
	height: 24px;
	font-size: 24px;
	flex-shrink: 0;
	user-select: none;
}

.msg-banner__text {
	flex: 1 1 auto;
	line-height: 20px;
	overflow: hidden;
	padding: 14px 0;
	position: relative;
}

.msg-banner__actions {
	align-items: center;
	display: flex;
	flex: 0 0 auto;
	padding: 6px 0;
}

/* Severity variants — left accent stripe + tinted bg + matching icon color (the icon picks up the color via
   .msg-banner__graphic, so callers don't need to color it themselves). Pass via insertBanner's $severity. */
.msg-banner--info    {
	border-left: 4px solid var(--mdc-theme-primary, #174ea6);
	background-color: var(--mdc-theme-tint-info);
}

.msg-banner--warning {
	border-left: 4px solid var(--mdc-theme-color--warning, #e38e0c);
	background-color: var(--mdc-theme-tint-warning);
}

.msg-banner--error   {
	border-left: 4px solid var(--mdc-theme-error, #b3261e);
	background-color: var(--mdc-theme-tint-error);
}

.msg-banner--success {
	border-left: 4px solid var(--mdc-theme-success, #137333);
	background-color: var(--mdc-theme-tint-success);
}

.msg-banner--info    .msg-banner__graphic {
	color: var(--mdc-theme-primary, #174ea6);
}

.msg-banner--warning .msg-banner__graphic {
	color: var(--mdc-theme-color--warning, #e38e0c);
}

.msg-banner--error   .msg-banner__graphic {
	color: var(--mdc-theme-error, #b3261e);
}

.msg-banner--success .msg-banner__graphic {
	color: var(--mdc-theme-success, #137333);
}

/* Compact modifier — slimmer strip for stacking several small advisories (vs one prominent page banner). */
.msg-banner--compact {
	flex: none;
	min-height: 36px;
	border-radius: 6px;
	font-size: 13px;
}

.msg-banner--compact .msg-banner__graphic {
	padding: 8px 10px;
}

.msg-banner--compact .msg-banner__text {
	padding: 8px 0;
	line-height: 18px;
}

.msg-banner--compact .msg-banner__icon {
	width: 20px;
	height: 20px;
	font-size: 20px;
}
/* END: Banner */

/* START: Fancytree */
ul.fancytree-container {
	border: none;
	font-family: inherit;
	font-size: 0.875rem;
}

ul.fancytree-container ul {
	font-size: 0.875rem;
}

li.fancytree-animating {
	position: initial;
}

li.fancytree-animating span.fancytree-title {
	/* padding-left: 3px; */
	/* position: static; */
	width: auto;
}

span.fancytree-level-1 .fancytree-title {
	font-size: 20px;
	padding-top: 3px !important;
	font-weight: 500;
}

span.fancytree-level-1 .fancytree-custom-icon {
	font-size: 24px;
	width: 24px;
	height: 24px;
	padding-top: 4px;
	padding-left: 5px;
}

span.fancytree-node {
	min-height: 32px;
}

span.fancytree-title, span.fancytree-icon, span.fancytree-custom-icon, span.fancytree-expander {
	color: var(--mdc-theme-text-primary-on-background);
	color: var(--mdc-app-bar-text-color);
}

span.fancytree-icon, span.fancytree-custom-icon, span.fancytree-expander {
	padding-top: 5px;
	cursor: pointer;
	font-size: 21px;
	width: 21px;
	height: 21px;
}

ul.fancytree-ext-wide span.fancytree-node span.fancytree-title {
	padding-top: 7px;
	min-height: 32px;
}

.fancytree-plain span.fancytree-candrop span.fancytree-title {
	border: 1px solid var(--mdc-theme-primary);
	border-radius: 24px;
	background-color: var(--mdc-theme-selected);
}

.fancytree-plain span.fancytree-active span.fancytree-icon,
.fancytree-plain span.fancytree-active span.fancytree-custom-icon,
.fancytree-plain span.fancytree-active span.fancytree-expander {
	color: var(--mdc-theme-primary);
}

.fancytree-plain span.fancytree-active span.fancytree-title {
	/* border: 1px solid var(--mdc-theme-primary); */
	border-radius: 24px;
	color: var(--mdc-theme-primary);
	background-color: var(--mdc-theme-selected);
}

span.fancytree-helper-spin {
	margin: 0;
	padding: 0;
	font-size: 24px;
	height: 24px;
	width: 24px;
}
/* END: Fancytree */


/* START: Query As Table */
.qat-main-table .mdc-data-table .mdc-data-table__row .mdc-data-table__cell:last-child,
.qat-main-table .mdc-data-table .mdc-data-table__nocheckbox-row .mdc-data-table__cell:last-child {
	position: relative;
}

.qat-main-table--row-toolbar {
	display: none;
	align-items: center;
	/* background-color: rgb(245 245 245); */
	color: var(--mdc-qat-row-button-color);
	position: absolute;
	top: 50%;
	right: 1px;
	transform: translateY(-50%);
	background: linear-gradient(to left, #f5f5f5 0, #f5f5f5 60%, rgba(238, 238, 238, .01) 100%);
	background-clip: padding-box;
	padding-left: 20px;
}

.qat-main-table .mdc-data-table .mdc-data-table__row:hover .qat-main-table--row-toolbar,
.qat-main-table .mdc-data-table .mdc-data-table__nocheckbox-row:hover .qat-main-table--row-toolbar {
	display: flex;
}

.qat-main-table .mdc-data-table .mdc-data-table__row.mdc-data-table__row--selected:hover .qat-main-table--row-toolbar {
	background: linear-gradient(to left, var(--mdc-theme-selected) 0, var(--mdc-theme-selected) 60%, rgba(238, 238, 238, .01) 100%);
}

.qat-main-table.qat-main-table--align-cell-image-top td.mdc-data-table__cell-with-image .mdc-data-table__cell-avatar-container {
	margin-top: 5px;
	margin-bottom: auto;
}

@media (pointer: fine) {
	/* Styles for desktop/laptop devices */
	.qat-main-table--row-toolbar .mdc-icon-button {
		width: 40px;
		height: 40px;
		padding: 8px;
		font-size: 20px;
	}
}
/* END: Query As Table */


/* START: Report Instance Skeleton (parallel rendering) */
:root {
	--rep-skel-bg: #ffffff;
	--rep-skel-border: #e0e0e0;
	--rep-skel-shimmer: rgba(255, 255, 255, 0.55);
	--rep-skel-text: #5f6368;
	--rep-skel-bar: #eceff1;
}
/*
@media (prefers-color-scheme: dark) {
	:root {
		--rep-skel-bg: #202124;
		--rep-skel-border: #3c4043;
		--rep-skel-shimmer: rgba(255, 255, 255, 0.06);
		--rep-skel-text: #9aa0a6;
		--rep-skel-bar: #3c4043;
	}
}
*/
.rep-instance--loading {
	position: relative;
	overflow: hidden;
	box-sizing: border-box;
	max-width: 800px;
	min-height: 120px;
	margin: 0 auto 16px auto;
	padding: 20px 24px;
	border: 1px solid var(--rep-skel-border);
	border-radius: 8px;
	background: var(--rep-skel-bg);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

/* Shimmer sweep across the whole card */
.rep-instance--loading::after {
	content: "";
	position: absolute;
	inset: 0;
	transform: translateX(-100%);
	background: linear-gradient(90deg, transparent, var(--rep-skel-shimmer), transparent);
	animation: rep-skel-shimmer 1.4s ease-in-out infinite;
}

@keyframes rep-skel-shimmer {
	100% {
		transform: translateX(100%);
	}
}

.rep-instance__skel-label {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 18px;
	font-size: 0.9rem;
	color: var(--rep-skel-text);
}

.rep-instance__skel-label .material-symbols {
	font-size: 20px;
	animation: rep-skel-spin 1.1s linear infinite;
}

@keyframes rep-skel-spin {
	100% {
		transform: rotate(360deg);
	}
}

.rep-instance__skel-bar {
	height: 12px;
	margin-bottom: 12px;
	border-radius: 6px;
	background: var(--rep-skel-bar);
}

.rep-instance__skel-bar:nth-child(2) {
	width: 60%;
}
.rep-instance__skel-bar:nth-child(3) {
	width: 100%;
}
.rep-instance__skel-bar:nth-child(4) {
	width: 80%;
}
.rep-instance__skel-bar:nth-child(5) {
	width: 40%;
}
/* END: Report Instance Skeleton */


/* START: Cataloger */
.catger-filter-chip-set .mdc-chip {
	cursor: initial;
}

.catger-main-table {
	max-width: 100%;
	height: calc(100vh - 170px);
}

.catger-main-table .mdc-data-table {
	max-width: 100%;
	max-height: 100%;
}

.catger-main-table .mdc-data-table .mdc-data-table__row .mdc-data-table__cell:last-child {
	position: relative;
}

.catger-main-table--row-toolbar {
	display: none;
	align-items: center;
	background-color: rgb(245 245 245);
	color: var(--mdc-catger-row-button-color);
	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
	background: linear-gradient(to left, #f5f5f5 0, #f5f5f5 60%, rgba(238, 238, 238, .01) 100%);
	background-clip: padding-box;
	padding-left: 20px;
	/*
	box-shadow:
		inset 1px 0 0 rgb(218, 220, 224),
		inset -1px 0 0 rgb(218, 220, 224),
		0 1px 2px 0 rgba(60, 64, 67, .3),
		0 1px 3px 1px rgba(60, 64, 67, .15);
	*/
}

.catger-main-table .mdc-data-table .mdc-data-table__row:hover .catger-main-table--row-toolbar {
	display: flex;
}

.catger-main-table .mdc-data-table .mdc-data-table__row.mdc-data-table__row--selected:hover .catger-main-table--row-toolbar {
	background: linear-gradient(to left, var(--mdc-theme-selected) 0, var(--mdc-theme-selected) 60%, rgba(238, 238, 238, .01) 100%);
}

.catger-main-table.catger-table--with-child-cat .mdc-data-table tr {
	cursor: pointer;
}

@media (pointer: fine) {
	/* Styles for desktop/laptop devices */
	.catger-main-table--row-toolbar .mdc-icon-button {
		width: 40px;
		height: 40px;
		padding: 8px;
		font-size: 20px;
	}
}

.catger-mdc-dialog .mdc-dialog__header {
	background-color: var(--mdc-theme-primary);
	justify-content: initial;
}

.catger-mdc-dialog .mdc-dialog__header .mdc-icon-button,
.catger-mdc-dialog .mdc-dialog__header .mdc-dialog__title {
	color: var(--mdc-theme-on-primary);
}

.catger-mdc-dialog .mdc-dialog__header .mdc-icon-button .mdc-icon-button__ripple::before,
.catger-mdc-dialog .mdc-dialog__header .mdc-icon-button .mdc-icon-button__ripple::after {
	background-color: var(--mdc-ripple-color-on-primary);
}

.catger-md-dialog--fullscreen .mdc-dialog__surface {
	border-radius: 0 !important;
	width: 100vw !important;
	height: 100vh !important;
	max-height: none !important;
	max-width: none !important;
}
/* END: Cataloger */


/* START: Quickmail */
.qm-process-table .mdc-data-table .mdc-data-table__row {
	height: 52px !important;
}

.qm-status-block {
	border-radius: 4px;
	padding: 0;
	font-weight: 500;
	white-space: break-spaces;
	box-sizing: border-box;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
}
/* END: Quickmail */


/* START: Form Control Containers and Misc Classes */
.frms-ccs__columns-container {
	flex-grow: 1;
	overflow: auto;
	min-height: 0;
	display: flex;
	align-items: stretch;
	flex-direction: row;
	box-flex: 1;
}

.frms-ccs__columns-col--main {
	box-sizing: border-box;
	flex-grow: 1;
	overflow: auto;
}

.frms-ccs__columns-col--main-frame {
	width: 870px;
	position: relative;
}

.frms-ccs__columns-col--side {
	box-sizing: border-box;
	width: 25%;
	flex-shrink: 1;
	flex-grow: 0.75;
}

@media (max-width: 1024px) {
	.frms-ccs__columns-col--main-frame {
		width: 100%;
	}

	.frms-ccs__columns-col--side {
		width: 33.3333333333%;
	}
}

@media (max-width: 720px) {
	.frms-ccs__columns-col--main {
		overflow: initial;
	}

	.frms-ccs__columns-col--side {
		width: 100%;
	}
}

.frms-ccs__columns-col--side .frms-ccs__columns-col--side-frame {
	height: 100%;
	padding: 0 10px;
	border-radius: 2px;
	border-top: 1px solid #e0e0e0;
	box-shadow: 0 1px 1px 0 rgba(0, 0, 0, .14), 0 2px 1px -1px rgba(0, 0, 0, .12), 0 1px 3px 0 rgba(0, 0, 0, .2);
	box-sizing: border-box;
}

.frms-ccs__columns-col--side.left {
	padding: 8px 1px 1px;
	margin-right: 20px;
}

.frms-ccs__columns-col--side.right {
	margin-left: 20px;
}

.frms-ccs__row {
	display: flex;
	padding-top: 12px;
	gap: 1rem;
}

.frms-ccs__row.border-top {
	border-top: 1px solid #eee;
}

.frms-ccs__row-collapsible__button {
	position: absolute;
	right: 0;
	top: 12px;
}

.frms-ccs__row-collapsible--collapsed {
	display: none;
}

/* Flash animation for when collapsible rows are expanded */
@keyframes frms-ccs__row-flash {
	0% {
		background-color: rgba(158, 158, 158, 0.4);
	}
	100% {
		background-color: transparent;
	}
}

.frms-ccs__row-collapsible--flash {
	animation: frms-ccs__row-flash 800ms ease-out;
}

/*
.frms-ccs__row > .frms-ccs__cell:not(:last-child) {
	padding-right: 1rem;
}
*/
.frms-ccs__cell {
	display: flex;
	flex: 1;
	align-items: center;	/* no se porque se lo habia quitado, se lo puse de nuevo 20251130*/
}

.frms-css__row-group {
	align-items: flex-start;
	box-sizing: border-box;
	display: flex;
	padding: 0px 40px 12px 0;
	position: relative;
	width: 100%;
}

.frms-css__row-group--title {
	color: var(--mdc-theme-text-light-on-background, #747775);
	flex-shrink: 0;
	margin: 12px 12px 0 0;
	text-align: center;
	width: 40px;
	user-select: none;
}

.frms-css__row-group--rows {
	width: 100%;
}

.frms-ccs-label--required::after {
    margin-left: 1px;
    margin-right: 0px;
    content: "*";
}

.frms-ccs-label--invalid {
    color: var(--mdc-theme-error) !important;
}

.frms-ccs-border--invalid {
    border: 1px solid var(--mdc-theme-error) !important;
}

.frms-ccs__control-container {
	flex: 1;
}

.frms-ccs__helper-line {
	display: flex;
	justify-content: space-between;
	box-sizing: border-box;
	padding-right: 16px;
	padding-left: 16px;
}

.frms-ccs__helper-text {
	-moz-osx-font-smoothing: grayscale;
	-webkit-font-smoothing: antialiased;
	font-family: var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
	font-size: var(--mdc-typography-caption-font-size, 0.75rem);
	line-height: var(--mdc-typography-caption-line-height, 1.25rem);
	font-weight: var(--mdc-typography-caption-font-weight, 400);
	letter-spacing: var(--mdc-typography-caption-letter-spacing, 0.0333333333em);
	-webkit-text-decoration: var(--mdc-typography-caption-text-decoration, inherit);
	text-decoration: var(--mdc-typography-caption-text-decoration, inherit);
	text-transform: var(--mdc-typography-caption-text-transform, inherit);
	display: block;
	margin-top: 0;
	line-height: normal;
	margin: 0;
	will-change: opacity;
	transition: opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1);
}

.frms-ccs-multisel__cont {
	display: flex;
	box-sizing: border-box;
	overflow: auto;
	flex-direction: column;
	color: rgba(0, 0, 0, 0.87);
}

.frms-ccs-divider {
	position: relative;
	margin-top: 24px;
	box-sizing: border-box;
}

.frms-ccs-divider:before {
	content: "";
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    border-top: 1px solid rgba(0, 0, 0, 0.38);
}

.frms-ccs-divider span {
	position: relative;
	display: inline-block;
	color: var(--mdc-theme-on-primary, #fff);
	padding: 2px 15px;
	z-index: 1;
	left: 10px;
	background-color: var(--mdc-theme-primary);
	border-radius: 99px;
	font-weight: 500;
	letter-spacing: var(--mdc-typography-button-letter-spacing, 0.0892857143em);
	box-sizing: border-box;
}

.frms-ccs-color__display {
	width: calc(var(--mdc-theme-text-field-height) - 6px);
	height: calc(var(--mdc-theme-text-field-height) - 6px);
	margin: 3px 3px 3px 10px;
	border-radius: 50%;
}

.frms-ccs-image__thumbnail {
	width: calc(var(--mdc-theme-text-field-height) - 6px);
	height: calc(var(--mdc-theme-text-field-height) - 6px);
	margin: 3px 3px 3px 10px;
	background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.frms-ccs-image__thumbnail--delete {
	display: none;
	width: calc(var(--mdc-theme-text-field-height) - 6px);
	height: calc(var(--mdc-theme-text-field-height) - 6px);
	background-color: rgba(255, 255, 255, 0.85);
	border-radius: 50%;
	text-align: center;
	align-content: center;
	cursor: pointer;
}

.frms-ccs-image__thumbnail[style*="background-image"]:hover > .frms-ccs-image__thumbnail--delete {
	display: inline-block;
}

.frms-ccs-avatar__image {
	height: 3.5rem;
	width: 3.5rem;
	font-size: 3.5rem;
	position: relative;
	overflow: hidden;
	border-radius: 50%;
	margin-left: auto;
	margin-right: auto;
	flex: none;
}

.frms-ccs-avatar__image.medium {
	height: 2.5rem;
	width: 2.5rem;
	font-size: 2.5rem;
}

.frms-ccs-avatar__image.small {
	height: 1.2rem;
	width: 1.2rem;
	font-size: 1.2rem;
}

/*	Initials avatar (2 letters, an icon or a photo) on a solid color circle.
	Background color comes inline from HTMLObjects::assignColorToStr() (white foreground palette),
	so the white text works on both themes. Contents: initials text, a .material-symbols icon or an <img>.
	20260811 - JGGV */
.frms-ccs-avatar__text {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	position: relative;
	overflow: hidden;			/* clips <img> corners, but shifts the inline baseline: center via the parent (flex) in inline contexts */
	vertical-align: middle;
	border-radius: 50%;
	color: #fff;
	font-weight: 500;
	letter-spacing: .02em;
	user-select: none;
	flex: none;
	width: 32px;
	height: 32px;
	font-size: 13px;
}

.frms-ccs-avatar__text.medium {
	width: 26px;
	height: 26px;
	font-size: 11px;
}

.frms-ccs-avatar__text.small {
	width: 22px;
	height: 22px;
	font-size: 10px;
}

.frms-ccs-avatar__text .material-symbols {
	font-size: 17px;
}

.frms-ccs-avatar__text.medium .material-symbols {
	font-size: 15px;
}

.frms-ccs-avatar__text.small .material-symbols {
	font-size: 13px;
}

.frms-ccs-avatar__text > img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.frms-ccs-avatar__edit-badge {
	position: absolute;
	right: 0;
	top: 2.4rem;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 1.1rem;
	height: 1.1rem;
	border-radius: 50%;
	background-color: var(--mdc-theme-surface, #fff);
	color: var(--mdc-theme-text-icon-on-background, rgba(0, 0, 0, 0.38));
	box-shadow: 0 1px 3px rgba(0, 0, 0, .35);
	pointer-events: none;
}

.frms-ccs-avatar__edit-badge .material-symbols {
	font-size: .8rem;
}

/* Help button styling */
.frms-ccs__help-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	margin-left: 8px;
	padding: 0;
	border: none;
	background: transparent;
	color: var(--mdc-theme-primary, #174ea6);
	font-size: 20px;
	cursor: pointer;
	border-radius: 50%;
	transition: background-color 150ms;
	vertical-align: middle;
	flex-shrink: 0;
}

.frms-ccs__help-btn:active {
	background-color: rgba(23, 78, 166, 0.12);
}

.frms-ccs__help-btn:focus {
	outline: none;
}

/* Help popover backdrop */
.mdc-help-backdrop {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(0, 0, 0, 0.32);
	z-index: 10000;
	animation: fadeIn 150ms ease-out;
}

/* Help popover */
.mdc-help-popover {
	position: fixed;
	background: var(--mdc-theme-surface, #ffffff);
	border-radius: var(--mdc-shape-medium, 8px);
	box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2), 0 4px 8px rgba(0, 0, 0, 0.14);
	z-index: 10001;
	max-width: 90vw;
	max-height: 90vh;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: opacity 200ms cubic-bezier(0.0, 0.0, 0.2, 1),
	            transform 200ms cubic-bezier(0.0, 0.0, 0.2, 1);
}

.mdc-help-popover__content {
	padding: 24px;
	overflow: auto;
	flex: 1;
	-webkit-font-smoothing: antialiased;
	font-family: var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
	font-size: var(--mdc-typography-body1-font-size, 1rem);
	line-height: var(--mdc-typography-body1-line-height, 1.5rem);
	color: var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87));
}

/* Help popover content - headings */
.mdc-help-popover__content h1,
.mdc-help-popover__content h2,
.mdc-help-popover__content h3,
.mdc-help-popover__content h4 {
	margin-top: 0;
	margin-bottom: 12px;
}

.mdc-help-popover__content h1 {
	font-size: 1.5rem;
	font-weight: 500;
}

.mdc-help-popover__content h2 {
	font-size: 1.25rem;
	font-weight: 500;
}

.mdc-help-popover__content h3 {
	font-size: 1.125rem;
	font-weight: 500;
}

.mdc-help-popover__content h4 {
	font-size: 1rem;
	font-weight: 500;
}

/* Help popover content - paragraphs */
.mdc-help-popover__content p {
	margin: 0 0 12px 0;
}

.mdc-help-popover__content p:last-child {
	margin-bottom: 0;
}

/* Help popover content - lists */
.mdc-help-popover__content ul,
.mdc-help-popover__content ol {
	margin: 0 0 12px 0;
	padding-left: 24px;
}

.mdc-help-popover__content li {
	margin-bottom: 4px;
}

/* Help popover content - code */
.mdc-help-popover__content code {
	background-color: rgba(0, 0, 0, 0.05);
	padding: 2px 6px;
	border-radius: 4px;
	font-family: 'Roboto Mono', monospace;
	font-size: 0.875em;
}

/* Animations */
@keyframes fadeIn {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

/* Mobile: Override JavaScript positioning and center on screen */
@media (max-width: 767px) {
	.mdc-help-popover {
		top: 50% !important;
		left: 50% !important;
		transform: translate(-50%, -50%) scale(0.95) !important;
		transform-origin: center !important;
		max-width: calc(100vw - 32px);
	}

	.mdc-help-popover[style*="opacity: 1"] {
		transform: translate(-50%, -50%) scale(1) !important;
	}
}

/* Dark mode support */
/*
@media (prefers-color-scheme: dark) {
	.mdc-help-popover {
		background: var(--mdc-theme-surface, #1e1e1e);
		box-shadow: 0 8px 16px rgba(0, 0, 0, 0.4), 0 4px 8px rgba(0, 0, 0, 0.3);
	}

	.mdc-help-popover__content {
		color: var(--mdc-theme-text-primary-on-background, rgba(255, 255, 255, 0.87));
	}

	.mdc-help-popover__content code {
		background-color: rgba(255, 255, 255, 0.1);
	}
}
*/
.user-image__avatar {
	height: auto;
	width: 100%;
	font-size: inherit;
	user-select: none;
}

.user-data-info {
	word-wrap: break-word;
	font-size: 14px;
	margin: 5px 5px 5px 10px;
}

.user-data-info--name {
	font-size: 24px;
}

.user-data-info--data1 {
	font-size: 14px;
}

.label--shake {
	-webkit-animation: animation__label-shake 250ms 1;
	animation: animation__label-shake 250ms 1
}

.flags-cont {
	background: url(/imgs/flags.png) no-repeat 0 0;
	background-size: 24px 3995px;
	width: 24px;
	height: 16px;
	overflow: hidden;
	background-position-x: -1px;
}

@keyframes animation__label-shake {
	0% {
		-webkit-transform: translateX(calc(0 - 0%));
		transform: translateX(calc(0 - 0%));
	}

	33% {
		-webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);
		animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);
		-webkit-transform: translateX(calc(4% - 0%));
		transform: translateX(calc(4% - 0%));
	}

	66% {
		-webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);
		animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);
		-webkit-transform: translateX(calc(-4% - 0%));
		transform: translateX(calc(-4% - 0%));
	}

	100% {
		-webkit-transform: translateX(calc(0 - 0%));
		transform: translateX(calc(0 - 0%));
	}
}
/* END: Form Control Containers and Misc Classes */


/* START: Progress bars dialog */
.progdialog {
	z-index: calc(var(--mdc-dialog-z-index) + 5);
}

/* MDC auto-focuses the content (tabindex=0) on open; it has no interactive controls, so drop the focus ring. */
.progdialog .mdc-dialog__content:focus,
.progdialog .mdc-dialog__content:focus-visible {
	outline: none;
}

.progdialog__label {
	text-overflow: ellipsis;
	overflow: hidden;
	white-space: nowrap;
}

.progdialog__prog-container {
	box-sizing: border-box;
}

.progdialog__prog-container__label {
	width: 45px;
	text-align: right;
}

.progdialog__prog-container .mdc-linear-progress {
	flex: 1;
	height: 20px;
}

.progdialog__prog-container .mdc-linear-progress__buffer-dots {
	background-size: 20px;
}

.progdialog__prog-container .mdc-linear-progress__bar-inner {
	border-top-width: 20px;
}

.progdialog__prog__helper-line {
	display: flex;
	justify-content: space-between;
	box-sizing: border-box;
	padding-right: 16px;
	padding-left: 16px;
}
/* END: Progress bars dialog */

/* START: Multiprompter dialog */
.mp-mdc-dialog {
	z-index: calc(var(--mdc-dialog-z-index) + 4);
}

.mp-mdc-dialog .mdc-dialog__header {
	background-color: var(--mdc-theme-primary);
	justify-content: initial;
}

.mp-mdc-dialog .mdc-dialog__header .mdc-icon-button,
.mp-mdc-dialog .mdc-dialog__header .mdc-dialog__title {
	color: var(--mdc-theme-on-primary);
}

.mp-mdc-dialog .mdc-dialog__header .mdc-dialog__title {
	text-overflow: ellipsis;
	overflow: hidden;
	white-space: nowrap;
	flex: 1;
}

.mp-mdc-dialog .mdc-dialog__header .mdc-icon-button .mdc-icon-button__ripple::before,
.mp-mdc-dialog .mdc-dialog__header .mdc-icon-button .mdc-icon-button__ripple::after {
	background-color: var(--mdc-ripple-color-on-primary);
}

.mp-md-dialog--fullscreen .mdc-dialog__surface {
	border-radius: 0 !important;
	width: 100vw !important;
	height: 100vh !important;
	max-height: none !important;
	max-width: none !important;
}
/* END: Multiprompter dialog */




/* START: Persons/Families styles */

/* END: Persons/Families styles */






/***** Dejar al final del archivo todos estos estilos *****/
/* START: Helpers */
.is-hidden {
	display: none !important;
}
/* END: Helpers */

/* START: Cursors */
.cur-point {
	cursor: pointer;
}
/* END: Cursors */

/* START: Alignments */
.al-L {
	 text-align: left !important;
}

.al-C {
	 text-align: center !important;
}

.al-R {
	 text-align: right !important;
}

.al-T {
	vertical-align: top !important;
}

.al-M {
	vertical-align: middle !important;
}

.al-B {
	vertical-align: bottom !important;
}

.al-CC {
	align-content: center;
}

.ali-S {
	align-items: start;
}

.ali-N {
	align-items: normal;
}

.aligni-center {
	align-items: center;
}

.justi-center {
	justify-items: center;
}

.justc-center {
	justify-content: center;
}

.justc-space-btwn {
	justify-content: space-between;
}

.justc-space-around {
	justify-content: space-around;
}
/* END: Alignments */

/* START: Font formats */
.ff-w--bold {
	font-weight: 500;
}

.ff-td--underline {
	text-decoration: underline;
}

.ff-c--important {
	color: var(--mdc-theme-error);
}

.ff-c--soft {
	color: var(--mdc-theme-soft);
}

.ff-sz--32 {
	font-size: 32px;
}

.ff-sz--24 {
	font-size: 24px;
	line-height: 24px;
}

.ff-sz--14 {
	font-size: 14px;
}

.ff-sz--12 {
	font-size: 12px;
	line-height: 18px;
}

.ff-fn--mono {
	font-family: 'Roboto Mono', monospace;
}
/* END: Font formats */

/* START: Colors */
.mdc-color--true {
	color: var(--mdc-theme-color--true) !important;
}

.mdc-color--false {
	color: var(--mdc-theme-color--false) !important;
}

.mdc-color--warning {
	color: var(--mdc-theme-color--warning) !important;
}
/* END: Colors */

/* START: Background Colors */
.bg-c--soft-blue {
	background-color: #d3d3ff;
}

.bg-c--soft-green {
	background-color: #bbffd5;
}

.bg-c--soft-yellow {
	background-color: #fef6e0; /* #ffffbb;*/
}

.bg-c--soft-red {
	background-color: #ffbbbb;
}
/* END: Background Colors */

/* START: Dimensions */
.dim-H--100vh {
	height: 100vh !important;
}

.dim-H--100p {
	height: 100% !important;
}

.dim-W--100p {
	width: 100% !important;
}

.dim-W--50p {
	width: 50% !important;
}
/* END: Dimensions */

/* START: Positions */
.pos-relative {
	position: relative;
}

.pos-absolute {
	position: absolute;
}
/* END: Positions */

/* START: Displays */
.disp-flex {
	display: flex;
}
/* END: Displays */

/* START: HTML Native Elements */
body {
	margin: 0;
	display: flex;
	height: 100vh;
}

b, strong {
	font-weight: 500;
}

fieldset {
	margin: 0;
	border: 1px solid rgba(0, 0, 0, 0.38);
	border-radius: var(--mdc-shape-small);
}

legend {
	-webkit-font-smoothing: antialiased;
	font-family: var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
	font-size: var(--mdc-typography-subtitle1-font-size, 1rem);
	font-weight: var(--mdc-typography-subtitle1-font-weight, 400);
	letter-spacing: var(--mdc-typography-subtitle1-letter-spacing, 0.009375em);
	text-decoration: var(--mdc-typography-subtitle1-text-decoration, inherit);
	text-transform: var(--mdc-typography-subtitle1-text-transform, inherit);
}
/* END: HTML Native Elements */

/* CKEditor hack to hide a powered by ckeditor label */
.ck.ck-powered-by-balloon {
	display: none !important;
}

/* ============================================================
	START: Generic reusable components (pli-*)
		.pli-card      -> leading icon/picture + title + up to 2 subtitles + on-hover action toolbar
		.pli-segmented -> segmented button group
		.pli-icon-btn  -> bare icon button (used inside card toolbars)
	20260530 - JGGV
   ============================================================ */

/* --- Segmented button group --- */
.pli-segmented {
	display: inline-flex;
	border: 1px solid var(--mdc-theme-primary);
	border-radius: 9999px;
	overflow: hidden;
}

.pli-segmented__icon {
	font-size: 1.125rem;
	font-size: var(--mdc-text-button-with-icon-icon-size, 1.125rem);
	width: 1.125rem;
	width: var(--mdc-text-button-with-icon-icon-size, 1.125rem);
	height: 1.125rem;
	height: var(--mdc-text-button-with-icon-icon-size, 1.125rem);
}

.pli-segmented__label {
	font-family: Roboto, sans-serif;
    font-family: var(--mdc-text-button-label-text-font, var(--mdc-typography-button-font-family, var(--mdc-typography-font-family)));
    font-size: var(--mdc-text-button-label-text-size, var(--mdc-typography-button-font-size, 0.875rem));
    letter-spacing: var(--mdc-text-button-label-text-tracking, var(--mdc-typography-button-letter-spacing, 0.0892857143em));
    font-weight: var(--mdc-text-button-label-text-weight, var(--mdc-typography-button-font-weight, 500));
    text-transform: none;
}

.pli-segmented__btn {
	border: 0;
	border-right: 1px solid var(--mdc-theme-primary);
	background: transparent;
	color: var(--mdc-theme-primary);
	padding: 9px 16px;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.pli-segmented__btn:last-child {
	border-right: 0;
}

.pli-segmented__btn.is-active {
	background: var(--mdc-theme-selected);
	font-weight: 500;
}

.pli-segmented__btn .material-symbols {
	font-size: 18px;
}

/* --- Bare icon button --- */
.pli-icon-btn {
	border: 0;
	background: transparent;
	cursor: pointer;
	color: var(--mdc-theme-text-light-on-background);
	width: 34px;
	height: 34px;
	border-radius: 9999px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	position: relative;
	overflow: hidden;
}

.pli-icon-btn:hover {
	background: var(--mdc-theme-hover);
	color: var(--mdc-theme-primary);
}

.pli-icon-btn--danger:hover {
	color: var(--mdc-theme-error);
}

.pli-icon-btn .material-symbols {
	font-size: 20px;
	position: relative;	/* sit above the ripple layer */
	z-index: 1;
}

/* CSS-only ripple: grows from center on press, fades out on release */
.pli-icon-btn::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background-color: currentColor;
	opacity: 0;
	transform: scale(0.4);
	transition: transform .35s ease, opacity .5s ease;
	pointer-events: none;
}

.pli-icon-btn:active::after {
	opacity: .2;
	transform: scale(1);
	transition: transform .15s ease, opacity 0s;
}

/* --- Card: leading (icon OR picture) + title + 2 subtitles + on-hover toolbar --- */
.pli-card {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	border: 1px solid #e0e0e0;
	border-radius: 12px;
	padding: 12px 14px;
	margin-bottom: 10px;
	background: var(--mdc-theme-main-background-color);
	cursor: pointer;
	position: relative;
	transition: box-shadow .15s, border-color .15s, transform .05s;
}

.pli-card:hover {
	box-shadow: 0 2px 8px rgba(0, 0, 0, .12);
	border-color: var(--mdc-theme-primary);
}

.pli-card:active {
	transform: scale(.997);
}

/* Don't apply the card press effect when the press lands on a toolbar button. */
.pli-card:has(.pli-icon-btn:active) {
	transform: none;
}

.pli-card__leading {
	flex: 0 0 44px;
	width: 44px;
	height: 44px;
	border-radius: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--mdc-theme-selected);
	color: var(--mdc-theme-primary);
	overflow: hidden;
}

.pli-card__leading .material-symbols {
	font-size: 24px;
}

.pli-card__leading--success {
	background: rgba(19, 115, 51, .14);
	color: var(--mdc-theme-success);
}

.pli-card__leading--warning {
	background: rgba(227, 142, 12, .16);
	color: #b56a00;
}

.pli-card__leading--image {
	background: var(--mdc-theme-surface-container-color);
}

.pli-card__leading--image img,
.pli-card__leading img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.pli-card__leading--round {
	border-radius: 9999px;
}

.pli-card__content {
	flex: 1;
	min-width: 0;
}

.pli-card__title {
	font-weight: 500;
	font-size: 15px;
	color: var(--mdc-theme-text-primary-on-background);
	margin: 0 0 2px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.pli-card__subtitle {
	color: var(--mdc-theme-text-light-on-background);
	font-size: 13px;
	line-height: 1.4;
}

.pli-card__subtitle--hint {
	color: var(--mdc-theme-text-hint-on-background);
	font-size: 12px;
	margin-top: 4px;
	display: flex;
	align-items: center;
	gap: 4px;
}

.pli-card__actions {
	position: absolute;
	top: 8px;
	right: 8px;
	display: flex;
	gap: 2px;
	opacity: 0;
	transition: opacity .15s;
	background: var(--mdc-theme-main-background-color);
	border-radius: 9999px;
}

.pli-card:hover .pli-card__actions,
.pli-card__actions:focus-within {
	opacity: 1;
}

/* Keep the toolbar visible when the card is favorited, but collapse the
   non-favorite buttons until hover so only the lit star shows at rest. */
.pli-card:has(.pli-card__fav.is-fav) .pli-card__actions {
	opacity: 1;
}

.pli-card:has(.pli-card__fav.is-fav):not(:hover) .pli-card__actions .pli-icon-btn:not(.rep-card-fav) {
	display: none;
}

.pli-card__fav {
	color: var(--mdc-theme-text-hint-on-background);
}

.pli-card__fav.is-fav {
	color: #f5a623;
}

/* --- Tag / inline status pill ---
	Severities match HTMLObjects::insertBanner($severity): info | warning | error | success
	(+ neutral, which has no banner counterpart). Colors come from the shared
	--mdc-theme-tint-* / --mdc-theme-on-tint-* tokens.
	20260812 - JGGV */
.pli-tag {
	display: inline-flex;
	align-items: center;
	gap: 3px;
	height: 18px;
	padding: 0 7px;
	border-radius: 9px;
	font-size: 10px;
	font-weight: 500;
	letter-spacing: .02em;
	text-transform: uppercase;
	vertical-align: 1px;
	white-space: nowrap;
}

.pli-tag .material-symbols {
	font-size: 12px;
}

/* Readable variant: no small-caps, for longer labels ("Complemento de pago") */
.pli-tag--label {
	text-transform: none;
	font-size: 11.5px;
	letter-spacing: 0;
	height: 19px;
}

.pli-tag--info {
	background-color: var(--mdc-theme-tint-info);
	color: var(--mdc-theme-on-tint-info);
}

.pli-tag--warning {
	background-color: var(--mdc-theme-tint-warning);
	color: var(--mdc-theme-on-tint-warning);
}

.pli-tag--error {
	background-color: var(--mdc-theme-tint-error);
	color: var(--mdc-theme-on-tint-error);
}

.pli-tag--success {
	background-color: var(--mdc-theme-tint-success);
	color: var(--mdc-theme-on-tint-success);
}

.pli-tag--neutral {
	background-color: var(--mdc-theme-tint-neutral);
	color: var(--mdc-theme-on-tint-neutral);
}

/* --- Files list (HTMLObjects::insertFilesList) ---
	Read-only NxDrive file links. chips: inline pills; list: one row per file.
	20260920 - JGGV */
.files-list--chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.files-list__chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	max-width: 100%;
	height: 30px;
	padding: 0 12px 0 8px;
	border-radius: 8px;
	background-color: var(--mdc-theme-tint-info);
	color: var(--mdc-theme-text-primary-on-background);
	font-size: 13px;
	text-decoration: none;
	white-space: nowrap;
}

.files-list__chip:hover {
	background-color: var(--mdc-theme-selected);
}

.files-list__chip .files-list__name {
	overflow: hidden;
	text-overflow: ellipsis;
}

.files-list__row {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 44px;
	padding: 4px 8px;
	border-radius: 8px;
	color: var(--mdc-theme-text-primary-on-background);
	text-decoration: none;
}

.files-list__row:hover {
	background-color: var(--mdc-theme-hover);
}

.files-list__row .files-list__name {
	flex: 1;
	min-width: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.files-list__icon {
	font-size: 20px;
	color: var(--mdc-theme-primary);
}

.files-list__open {
	font-size: 18px;
	color: var(--mdc-theme-text-light-on-background);
}

.files-list__more {
	display: inline-flex;
	align-items: center;
	height: 30px;
	padding: 0 4px;
	font-size: 13px;
	color: var(--mdc-theme-text-light-on-background);
}
/* END: Generic reusable components (pli-*) */


/* ============================================================
	START: Reporter launcher (otchety/launcher.php)
	20260530 - JGGV
   ============================================================ */

/* Dev-mode ReportID pill, bottom-right corner of the card. Click to select + copy the ID. */
.pli-card__id-pill {
	position: absolute;
	right: 8px;
	bottom: 6px;
	background: var(--mdc-theme-surface-container-color);
	color: var(--mdc-theme-text-light-on-background);
	border-radius: 9999px;
	padding: 0 8px;
	font-size: 11px;
	font-weight: 500;
	line-height: 18px;
	cursor: pointer;
	user-select: all;	/* a single click selects the whole ID */
}

.pli-card__id-pill:hover {
	background: var(--mdc-theme-hover);
	color: var(--mdc-theme-primary);
}

.rep-toolbar {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
	margin-bottom: 4px;
}

.rep-toolbar__spacer {
	flex: 1;
}

.rep-search {
	flex: 1;
}

/* Layout & internal scrolling: only the rail / reports pane scroll, never the whole page. */
#repLauncher {
	height: 100%;
	display: flex;
	flex-direction: column;
	min-height: 0;
}

#repLauncher .rep-toolbar {
	flex: 0 0 auto;
}

#repLauncher .mdc-tab-bar {
	flex: 0 0 auto;
	border-bottom: 1px solid #e0e0e0;
}

#repLauncher .rep-module-panel {
	flex: 1 1 auto;
	min-height: 0;
}

#repLauncher .frms-ccs__columns-container {
	height: 100%;
	overflow: hidden;
}

#repLauncher .frms-ccs__columns-col--side {
	overflow-y: auto;
	border-right: 1px solid #e0e0e0;
	padding-right: 10px;
	margin-right: 10px;
	min-width: 250px;
	max-width: 250px;
	width: 250px;
}

#repLauncher .frms-ccs__columns-col--main {
	overflow-y: auto;
}

.rep-rail-caption {
	font-size: 12px;
	font-weight: 500;
	color: var(--mdc-theme-text-hint-on-background);
	text-transform: uppercase;
	letter-spacing: .5px;
	padding: 8px 16px 4px;
}

.rep-content {
	padding-right: 10px;
}

.rep-sections {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
}

@media (max-width: 1150px) {
	.rep-sections {
		grid-template-columns: 1fr;
	}
}

.rep-section__title {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	font-weight: 500;
	color: var(--mdc-theme-text-light-on-background);
	text-transform: uppercase;
	letter-spacing: .4px;
	padding: 4px 2px 12px;
	border-bottom: 1px solid #e0e0e0;
	margin-bottom: 12px;
	position: sticky;
	top: 0;
	background: var(--mdc-theme-main-background-color);
	z-index: 2;
}

.rep-section__title .rep-count-pill {
	margin-left: auto;
	background: var(--mdc-theme-surface-container-color);
	border-radius: 9999px;
	padding: 1px 9px;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0;
}

.rep-empty {
	color: var(--mdc-theme-text-hint-on-background);
	text-align: center;
	padding: 48px 12px;
}

.rep-empty .material-symbols {
	font-size: 48px;
	display: block;
	margin: 0 auto 8px;
	opacity: .5;
}
/* END: Reporter launcher */


/* ============================================================
	START: Reporter viewer (otchety/palach.php)
	20260531 - JGGV
   ============================================================ */
/* Base typography of the rendered report (reports that set no fonts) */
#TheReport {
	font-family: Roboto, sans-serif;
	font-size: 12px;
	line-height: 1.4;
	color: var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87));
}

/* Floating toolbar (browser) */
.otc-toolbar {
	position: fixed;
	top: 16px;
	right: 16px;
	z-index: 50;
	display: flex;
	align-items: center;
	gap: 2px;
	padding: 4px 6px;
	background: var(--mdc-theme-toolbar-background-color);
	border-radius: 9999px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
}

.otc-toolbar__actions {
	display: flex;
	align-items: center;
	gap: 2px;
}

/* Bottom toolbar (app) */
.otc-app-toolbar {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 50;
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 6px 4px;
	background: var(--mdc-theme-surface, #ffffff);
	border-top: 1px solid #e0e0e0;
	box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.12);
	overflow-x: auto;
}

.otc-app-toolbar__actions {
	display: flex;
	flex: 1;
	justify-content: space-around;
	align-items: center;
}

.otc-app-toolbar__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	min-width: 56px;
	padding: 4px 8px;
	border: 0;
	background: transparent;
	cursor: pointer;
	color: var(--mdc-theme-text-light-on-background);
	font-family: Roboto, sans-serif;
	font-size: 11px;
}

.otc-app-toolbar__item .material-symbols {
	font-size: 22px;
}

.otc-app-toolbar__item:active {
	color: var(--mdc-theme-primary);
}

/* Loading state (parallel report progress) — swapped for the action buttons when all instances render */
.otc-toolbar__loading {
	box-sizing: border-box;
}

.otc-toolbar__loading-container {
	display: flex;
	flex-direction: column;
	gap: 6px;
	width: 220px;
	padding: 4px 10px 0;
}

.otc-toolbar__loading-container .mdc-linear-progress {
	height: 15px;
	border-radius: 99px;
}

.otc-toolbar__loading-container .mdc-linear-progress__buffer-dots {
	background-size: 15px;
}

.otc-toolbar__loading-container .mdc-linear-progress__bar-inner {
	border-top-width: 15px;
}

.otc-toolbar__loading-label {
	font-size: 12px;
	text-align: center;
	color: var(--mdc-theme-text-light-on-background);
}

/* Failed instance tile (an instance render errored) */
.rep-instance--error {
	display: flex;
	align-items: center;
	gap: 8px;
	max-width: 800px;
	margin: 0 auto 16px auto;
	padding: 16px 20px;
	border: 1px solid var(--mdc-theme-error, #b3261e);
	border-radius: 8px;
	color: var(--mdc-theme-error, #b3261e);
	background: var(--mdc-theme-surface, #ffffff);
}

/* E-mail / certify selection: "select all" bar */
.otc-sel-bar {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0 auto 12px auto;
	padding: 4px 10px;
	border-radius: 8px;
	background: var(--mdc-theme-toolbar-background-color);
	font-weight: 600;
	color: var(--mdc-app-bar-text-color);
}

.otc-sel-bar__lbl {
	cursor: pointer;
}

.otc-sel-container {
	display: flex;
	justify-content: space-between;
}

/* E-mail / certify selection: per-instance card shown above the instance */
.otc-sel-card {
	display: flex;
	align-items: stretch;
	gap: 12px;
	width: 45%;
	padding: 10px 14px;
	border: 1px solid var(--mdc-theme-outline, #cbcbcb);
	border-left: 8px solid var(--mdc-theme-primary, #1a73e8);
	border-radius: 8px;
	background: var(--mdc-theme-surface, #ffffff);
	font-size: 13px;
}

.otc-sel-card--cert {
	border-left-color: #1e8e3e;
}

/* Left-border reflects the card's checkbox state (cards without a checkbox keep their default color) */
.otc-sel-card:has(input[data-otc-sel]:checked) {
	border-left-color: var(--mdc-theme-color--true);
}

.otc-sel-card:has(input[data-otc-sel]:not(:checked)) {
	border-left-color: var(--mdc-theme-color--false);
}

.otc-sel-card__body {
	flex: 1 1 auto;
	min-width: 0;
	font-size: 15px;
}

.otc-sel-card__title {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-bottom: 4px;
	font-weight: 600;
}

.otc-sel-card__title .material-symbols {
	font-size: 21px;
}

.otc-sel-card__note {
	font-weight: 400;
	color: var(--mdc-theme-text-light-on-background);
}

.otc-sel-card__row {
	line-height: 1.3;
	word-break: break-word;
}

.otc-sel-card__lbl {
	font-weight: 600;
	color: var(--mdc-theme-text-light-on-background);
}

.otc-sel-card__warn {
	color: var(--mdc-theme-error, #b3261e);
	font-weight: 600;
}

.otc-sel-card__select {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2px;
	flex: 0 0 auto;
	font-weight: 600;
	cursor: pointer;
}

.otc-sel-card__status {
	display: flex;
	align-items: center;
	flex: 0 0 auto;
	padding: 0 8px;
	font-weight: 600;
	color: var(--mdc-theme-text-light-on-background);
}

.otc-sel-card__status--ok {
	color: var(--mdc-theme-color--true);
}

.otc-sel-card__status--bad {
	color: var(--mdc-theme-color--false);
}

/* Inline note shown in the action area instead of a checkbox (e.g. "certify first", "expiry passed"). */
.otc-sel-card__msg {
	display: flex;
	align-items: center;
	flex: 0 0 auto;
	max-width: 130px;
	font-size: 12px;
	font-style: italic;
	line-height: 1.3;
	color: var(--mdc-theme-text-light-on-background);
}

/* SQL Listing: one full-width table, paged and sorted client-side (palach.js) */
#TheReport:has(.otc-listing),
#TheReport:has(.otc-debug-dump) {
	flex: 1 1 auto;
	min-width: 0;
}

.otc-listing__table {
	display: flex;
	width: 100%;
}

/* MDC's pagination is display: flex, which beats the hidden attribute */
.otc-listing__pager[hidden] {
	display: none;
}

.otc-listing .mdc-data-table__header-row,
.otc-listing .mdc-data-table__row {
	height: 36px;
}

@media (pointer: fine) {
	.otc-listing .mdc-data-table__header-row,
	.otc-listing .mdc-data-table__row {
		height: 32px;
	}
}

.otc-listing .otc-listing__num {
	width: 56px;
	text-align: right;
	font-variant-numeric: tabular-nums;
	color: var(--mdc-theme-text-light-on-background);
}

.otc-listing__th {
	cursor: pointer;
	user-select: none;
}

.otc-listing__th .mdc-data-table__header-cell-wrapper {
	gap: 4px;
}

/* Right-aligned columns: arrow before the label, so the label lines up with the numbers */
.otc-listing__th.al-R .mdc-data-table__header-cell-wrapper {
	flex-direction: row-reverse;
}

.otc-listing__th .otc-listing__sort-icon {
	font-size: 18px;
	opacity: 0;
	transition: opacity .15s;
}

.otc-listing__th:hover .otc-listing__sort-icon {
	opacity: .6;
}

.otc-listing__th.otc-listing__th--sorted .otc-listing__sort-icon {
	opacity: 1;
}

.otc-listing__footer {
	padding: 8px 16px;
	font-size: 12px;
	color: var(--mdc-theme-text-light-on-background);
}

/* Debug run: raw failed response (crash / SQL error) */
.otc-debug-dump {
	margin: 0;
	padding: 12px 16px;
	border: 1px solid var(--mdc-theme-error);
	border-radius: 8px;
	background: var(--mdc-theme-tint-error);
	font-family: 'Roboto Mono', monospace;
	font-size: 12px;
	white-space: pre-wrap;
	word-break: break-word;
}

@media screen {
	/* The table scrolls in its own box: sticky header, pager always in view */
	.otc-listing__table .mdc-data-table__table-container {
		max-height: calc(100vh - 176px);	/* report margins + pager + footer */
		overflow: auto;
	}

	.otc-listing__table .mdc-data-table__header-cell {
		position: sticky;
		top: 0;
		z-index: 1;
		background-color: var(--mdc-theme-surface-container-color);
	}

	/* Browser: clear the floating toolbar */
	body:has(.otc-toolbar) .otc-listing,
	body:has(.otc-toolbar) .otc-debug-dump {
		margin-top: 64px;
	}

	body:has(.otc-toolbar) .otc-listing__table .mdc-data-table__table-container {
		max-height: calc(100vh - 168px);	/* 8px margins + 64px toolbar clearance + pager + footer */
	}
}

/* Hide the toolbars + selection UI when printing */
@media print {
	.otc-toolbar,
	.otc-app-toolbar,
	.otc-sel-bar,
	.otc-sel-card,
	.otc-listing__pager,
	.otc-listing__sort-icon {
		display: none !important;
	}

	/* SQL Listing: repeat the header on every page; "Todas las filas" prints the hidden pages too */
	.otc-listing thead {
		display: table-header-group;
	}

	.otc-listing--print-all tr[hidden] {
		display: table-row;
	}

	/* No flex box or scroll container around the table, so its rows can break across pages */
	.otc-listing__table,
	.otc-listing .mdc-data-table__table-container {
		display: block;
		overflow: visible;
	}
}
/* END: Reporter viewer */


/* START: QR certification seal (vcert) — used inline in certified reports and on the public validator (vcert3.php) */
.vcert-main-box__circle-cont {
	display: flex;
	padding-left: 25px;
}

.vcert-main-box__middle-circle {
	position: relative;
	border-radius: 50%;
	display: flex;
	justify-content: center;
	align-items: center;
	animation: vcert-spin 3s linear infinite;
	background-position: center;
	background-size: 108%;
	background-repeat: no-repeat;
	background-color: #313737;
	box-shadow: 0 0 19px rgba(0, 0, 0, 0.9);
}

.vcert-main-box__middle-circle.loginapproved {
	background-image: url("/imgs/NxAuthenticator-CirlceApproved.png");
	width: 150px;
	height: 150px;
}

.vcert-main-box__middle-circle.logindenied {
	background-image: url("/imgs/NxAuthenticator-CirlceDenied.png");
	width: 250px;
	height: 250px;
}

.vcert-main-box__inner-circle {
	position: relative;
	width: 150px;
	height: 150px;
	border-radius: 50%;
	display: flex;
	justify-content: center;
	flex-direction: column;
	align-items: center;
	animation: vcert-counterspin 3s linear infinite;
}

.vcert-main-box__inner-circle.loginapproved {
	width: 150px;
	height: 150px;
}

.vcert-main-box__inner-circle.logindenied {
	width: 250px;
	height: 250px;
}

.vcert-main-box__inner-circle__img-cont {
	position: relative;
	top: 18px;
	width: 50%;
	height: 68%;
}

.vcert-main-box__inner-circle__img-cont.loginapproved {
	background: url("/imgs/NxAuthenticator-Approved.png") center/cover;
}

.vcert-main-box__inner-circle__img-cont.logindenied {
	background: url("/imgs/NxAuthenticator-Denied.png") center/cover;
}

.vcert-main-box__inner-circle__img-cont img {
	position: relative;
}

@keyframes vcert-spin {
	0% {
		transform: rotate(0deg);
	}
	100% {
		transform: rotate(360deg);
	}
}

@keyframes vcert-counterspin {
	0% {
		transform: rotate(0deg);
	}
	100% {
		transform: rotate(-360deg);
	}
}

.vcert-main-box__token {
	top: -13%;
	position: relative;
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: 0.2px;
	text-align: center;
	margin-top: 15px;
	color: #62c403;
}

/* Denied (revoked/expired) seal → red token instead of the approved green. */
.vcert-main-box__inner-circle.logindenied .vcert-main-box__token {
	color: #c53929;
}
/* END: QR certification seal (vcert) */


/* ============================================================
	START: Notification Center (js3/notifs.js, Notifs::shellBadgeHTML() / shellSheetHTML())
	20261009 - JGGV
   ============================================================ */
:root {
	--notif-icon-primary: var(--mdc-theme-primary, #174ea6);
	--notif-icon-success: var(--mdc-theme-success, #137333);
	--notif-icon-warning: var(--mdc-theme-color--warning, #e38e0c);
	--notif-icon-error: var(--mdc-theme-error, #b3261e);
	--notif-icon-info: #1a73e8;
	--notif-icon-text: #ffffff;
	--notif-bg-unread: #e8f0fe;
	--notif-bg-hover: var(--mdc-theme-hover, rgba(23, 78, 166, 0.12));
	--notif-bg-actions: var(--mdc-theme-main-background-color, #ffffff);
	--notif-text-title: #202124;
	--notif-text-body: #5f6368;
	--notif-text-meta: #757575;
	--notif-border: #dadce0;
	--notif-dot: var(--mdc-theme-primary, #174ea6);
	--notif-count-bg: #eceff1;
	--notif-count-text: #4a5560;
}
/*
@media (prefers-color-scheme: dark) {
	:root {
		--notif-icon-primary: #8ab4f8;
		--notif-icon-info: #8ab4f8;
		--notif-icon-text: #202124;
		--notif-bg-unread: #1e3a5f;
		--notif-bg-actions: #202124;
		--notif-text-title: #e8eaed;
		--notif-text-body: #9aa0a6;
		--notif-text-meta: #9aa0a6;
		--notif-border: #3c4043;
		--notif-dot: #8ab4f8;
		--notif-count-bg: #3c4043;
		--notif-count-text: #e8eaed;
	}
}
*/

/* Top app bar count badge, on the icon button's wrapper (position: relative). The chat's badge shares its look (chat.css) */
.nx-badge {
	position: absolute;
	top: 2px;
	right: 2px;
	min-width: 20px;
	height: 20px;
	padding: 0 3px;
	border-radius: 10px;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--mdc-theme-badge-bg, #d93025);
	color: var(--mdc-theme-badge-text, #ffffff);
	font-size: 12px;
	font-weight: 500;
	pointer-events: none;
}

.nx-badge.hidden {
	display: none;
}

.notif-chips {
	display: flex;
	flex-wrap: wrap;
	padding: 0 0 4px;
}

/* A chip's unread count: a pill after the label, gone when empty */
.notif-chip__count {
	margin-left: 6px;
	padding: 0 6px;
	border-radius: 9999px;
	background-color: var(--notif-count-bg);
	color: var(--notif-count-text);
	font-size: 11px;
	font-weight: 500;
}

.notif-chip__count:empty {
	display: none;
}

.notif-list {
	display: flex;
	flex-direction: column;
}

.notif-item {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 10px 12px;
	border-bottom: 1px solid var(--notif-border);
	cursor: pointer;
	transition: background-color 0.15s;
}

.notif-item--unread {
	background-color: var(--notif-bg-unread);
}

.notif-item:hover {
	background-color: var(--notif-bg-hover);
}

/* Unread dot, in the left padding */
.notif-item--unread::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 3px;
	width: 6px;
	height: 6px;
	margin-top: -3px;
	border-radius: 50%;
	background-color: var(--notif-dot);
}

.notif-item__icon {
	flex: none;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--notif-icon-text);
	background-color: var(--notif-icon-primary);
}

.notif-item__icon .material-symbols {
	font-size: 20px;
}

.notif-color--primary {
	background-color: var(--notif-icon-primary);
}

.notif-color--success {
	background-color: var(--notif-icon-success);
}

.notif-color--warning {
	background-color: var(--notif-icon-warning);
}

.notif-color--error {
	background-color: var(--notif-icon-error);
}

.notif-color--info {
	background-color: var(--notif-icon-info);
}

.notif-item__content {
	flex: 1;
	min-width: 0;
}

.notif-item__title {
	font-size: 13px;
	line-height: 18px;
	color: var(--notif-text-title);
	overflow-wrap: anywhere;
}

.notif-item--unread .notif-item__title {
	font-weight: 600;
}

/* Plain text with line breaks, two lines at most */
.notif-item__body {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	overflow: hidden;
	margin-top: 2px;
	font-size: 12px;
	line-height: 17px;
	color: var(--notif-text-body);
	white-space: pre-line;
	overflow-wrap: anywhere;
}

.notif-item__meta {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-top: 4px;
	font-size: 11px;
	line-height: 16px;
	color: var(--notif-text-meta);
}

.notif-item__count {
	padding: 0 6px;
	border-radius: 9999px;
	background-color: var(--notif-count-bg);
	color: var(--notif-count-text);
	font-weight: 500;
}

/* Hover actions (Marcar leído, Descartar): over the item's top right corner, always shown on touch screens */
.notif-item__actions {
	position: absolute;
	top: 6px;
	right: 6px;
	display: none;
	gap: 2px;
	border-radius: 9999px;
	background-color: var(--notif-bg-actions);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}

.notif-item:hover .notif-item__actions {
	display: flex;
}

.notif-item__actions .pli-icon-btn {
	width: 30px;
	height: 30px;
}

.notif-item__actions .pli-icon-btn .material-symbols {
	font-size: 18px;
}

@media (hover: none) {
	.notif-item__actions {
		position: static;
		display: flex;
		flex: none;
		align-self: center;
		background-color: transparent;
		box-shadow: none;
	}
}

/* "Nuevas" / "Anteriores" label line */
.notif-divider {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 10px 12px 4px;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	color: var(--notif-text-meta);
}

.notif-divider::after {
	content: "";
	flex: 1;
	height: 1px;
	background-color: var(--notif-border);
}

.notif-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 48px 16px;
	text-align: center;
	color: var(--notif-text-meta);
}

.notif-empty .material-symbols {
	font-size: 64px;
	opacity: 0.5;
}

.notif-empty p {
	margin: 8px 0 0;
	font-size: 14px;
}

.notif-empty.hidden {
	display: none;
}

/* Infinite scroll sentinel: a line the IntersectionObserver can see */
#notifSentinel {
	height: 1px;
}
/* END: Notification Center */
