/**
 * FINANZAS — Capa de modernización visual (overlay sobre Bootstrap 3 / SB Admin 2)
 *
 * Solo CSS: no requiere cambios de markup. Se carga DESPUÉS de bootstrap,
 * sb-admin-2 y finanzas-temas. Los temas (html[data-finanzas-estilo="..."]) solo
 * redefinen los tokens; los componentes se estilan una única vez.
 */

/* =========================================================
   1. Tokens de diseño
   ========================================================= */
:root {
	--gm-fuente: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, Roboto, "Helvetica Neue", Arial, sans-serif;

	--gm-primario: #059669;
	--gm-primario-hover: #047857;
	--gm-primario-suave: rgba(5, 150, 105, 0.10);
	--gm-foco: rgba(5, 150, 105, 0.18);

	--gm-fondo: #eef2f7;
	--gm-superficie-pagina: #ffffff;
	--gm-superficie: #ffffff;
	--gm-superficie-2: #f8fafc;
	--gm-sidebar: #f8fafc;
	--gm-cabecera-panel: #f8fafc;

	--gm-borde: #e3e8ef;
	--gm-borde-fuerte: #cbd5e1;

	--gm-texto: #1f2937;
	--gm-texto-suave: #64748b;

	--gm-fila-alt: #f8fafc;
	--gm-fila-hover: #f1f5f9;
	--gm-thead-bg: #f4f6fa;

	--gm-radio-sm: 6px;
	--gm-radio: 10px;
	--gm-radio-lg: 14px;

	--gm-sombra-sm: 0 1px 2px rgba(15, 23, 42, 0.05);
	--gm-sombra: 0 2px 10px rgba(15, 23, 42, 0.07);
	--gm-sombra-lg: 0 18px 44px rgba(15, 23, 42, 0.16);
}

html[data-finanzas-estilo="azul-claro"] {
	--gm-primario: #1f6fce;
	--gm-primario-hover: #1a5db0;
	--gm-primario-suave: rgba(31, 111, 206, 0.10);
	--gm-foco: rgba(31, 111, 206, 0.20);
	--gm-fondo: #e7f0fa;
	--gm-superficie-pagina: #f9fbfe;
	--gm-sidebar: #edf4fc;
	--gm-cabecera-panel: #eef5fc;
	--gm-borde: #d3e2f1;
	--gm-borde-fuerte: #b5cde6;
	--gm-fila-alt: #f4f8fd;
	--gm-fila-hover: #e9f2fb;
	--gm-thead-bg: #edf4fb;
}

html[data-finanzas-estilo="rojo-claro"] {
	--gm-primario: #c4423c;
	--gm-primario-hover: #a83631;
	--gm-primario-suave: rgba(196, 66, 60, 0.10);
	--gm-foco: rgba(196, 66, 60, 0.18);
	--gm-fondo: #faeeee;
	--gm-superficie-pagina: #fffbfb;
	--gm-sidebar: #fcf1f1;
	--gm-cabecera-panel: #fdf3f3;
	--gm-borde: #f0d6d6;
	--gm-borde-fuerte: #e2b8b8;
	--gm-fila-alt: #fdf6f6;
	--gm-fila-hover: #faecec;
	--gm-thead-bg: #faf0f0;
}

html[data-finanzas-estilo="rosa-claro"] {
	--gm-primario: #b9508c;
	--gm-primario-hover: #9e4076;
	--gm-primario-suave: rgba(185, 80, 140, 0.10);
	--gm-foco: rgba(185, 80, 140, 0.18);
	--gm-fondo: #faf0f6;
	--gm-superficie-pagina: #fefbfd;
	--gm-sidebar: #fcf1f7;
	--gm-cabecera-panel: #fdf3f8;
	--gm-borde: #efd5e3;
	--gm-borde-fuerte: #ddb6cb;
	--gm-fila-alt: #fdf6fa;
	--gm-fila-hover: #faecf4;
	--gm-thead-bg: #faf0f6;
}

html[data-finanzas-estilo="oscuro"] {
	--gm-primario: #34d399;
	--gm-primario-hover: #6ee7b7;
	--gm-primario-suave: rgba(52, 211, 153, 0.16);
	--gm-foco: rgba(52, 211, 153, 0.28);
	--gm-fondo: #15181d;
	--gm-superficie-pagina: #1d2128;
	--gm-superficie: #262b33;
	--gm-superficie-2: #21262e;
	--gm-sidebar: #20242b;
	--gm-cabecera-panel: #2b313a;
	--gm-borde: #39404c;
	--gm-borde-fuerte: #4a5260;
	--gm-texto: #dde1ea;
	--gm-texto-suave: #97a1b3;
	--gm-fila-alt: #232830;
	--gm-fila-hover: #2d333d;
	--gm-thead-bg: #21262e;
	--gm-sombra-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
	--gm-sombra: 0 2px 12px rgba(0, 0, 0, 0.35);
	--gm-sombra-lg: 0 18px 44px rgba(0, 0, 0, 0.55);
}

/* =========================================================
   2. Base / tipografía
   ========================================================= */
body {
	font-family: var(--gm-fuente);
	font-size: 14px;
	line-height: 1.5;
	color: var(--gm-texto);
	background-color: var(--gm-fondo);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
	font-family: var(--gm-fuente);
	font-weight: 600;
	color: inherit;
}

::selection {
	background: var(--gm-primario);
	color: #fff;
}

input[type="checkbox"],
input[type="radio"] {
	accent-color: var(--gm-primario);
}

/* Scrollbars finos (WebKit + Firefox) */
* {
	scrollbar-width: thin;
	scrollbar-color: var(--gm-borde-fuerte) transparent;
}
::-webkit-scrollbar {
	width: 9px;
	height: 9px;
}
::-webkit-scrollbar-track {
	background: transparent;
}
::-webkit-scrollbar-thumb {
	background: var(--gm-borde-fuerte);
	border-radius: 8px;
	border: 2px solid transparent;
	background-clip: content-box;
}
::-webkit-scrollbar-thumb:hover {
	background-color: var(--gm-texto-suave);
}

/* =========================================================
   3. Shell: navbar superior, sidebar, área de contenido
   ========================================================= */
html[data-finanzas-estilo] body,
body {
	background-color: var(--gm-fondo);
	color: var(--gm-texto);
}

html[data-finanzas-estilo] #page-wrapper,
#page-wrapper {
	background-color: var(--gm-superficie-pagina);
	border-left-color: var(--gm-borde);
}

/* — Navbar superior — */
html[data-finanzas-estilo] .navbar-default.finanzas-top-navbar,
.navbar-default.finanzas-top-navbar {
	background-color: var(--gm-superficie);
	border-color: var(--gm-borde);
	box-shadow: var(--gm-sombra-sm);
}
.navbar-default.finanzas-top-navbar {
	z-index: 1030;
}
.navbar-default .navbar-brand,
.navbar-default.finanzas-top-navbar .navbar-brand {
	font-weight: 600;
	font-size: 16px;
	letter-spacing: -0.01em;
	color: var(--gm-texto);
}
.navbar-default .navbar-nav > li > a,
.navbar-top-links li a {
	color: var(--gm-texto-suave);
	transition: color 0.15s ease, background-color 0.15s ease;
}
.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus {
	color: var(--gm-primario);
	background-color: var(--gm-primario-suave);
}
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .open > a:hover,
.navbar-default .navbar-nav > .open > a:focus {
	color: var(--gm-primario);
	background-color: var(--gm-primario-suave);
}
#finanzas-confidencial-toggle.is-on {
	color: var(--gm-primario);
	background-color: var(--gm-primario-suave);
}
#finanzas-confidencial-toggle.is-on i {
	opacity: 0.95;
}

/* Modo confidencial: oculta importes visibles (privacidad visual) */
html[data-finanzas-confidencial="1"] .finanzas-monto,
html[data-finanzas-confidencial="1"] .fin-importe-ingreso,
html[data-finanzas-confidencial="1"] .fin-importe-egreso,
html[data-finanzas-confidencial="1"] [data-confidencial="1"],
html[data-finanzas-confidencial="1"] .fin-inf-chart,
html[data-finanzas-confidencial="1"] .dash-grafica-canvas {
	filter: blur(7px);
	user-select: none;
	pointer-events: none;
	transition: filter 0.18s ease;
}
html[data-finanzas-confidencial="1"] .finanzas-monto,
html[data-finanzas-confidencial="1"] .fin-importe-ingreso,
html[data-finanzas-confidencial="1"] .fin-importe-egreso,
html[data-finanzas-confidencial="1"] [data-confidencial="1"] {
	cursor: default;
}
.finanzas-navbar-user-name {
	margin: 0 4px 0 6px;
	font-weight: 500;
	max-width: 180px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	vertical-align: middle;
}

/* — Campana de notificaciones (portal empleado) — */
.finanzas-notif-trigger {
	position: relative;
}
.finanzas-notif-badge {
	position: absolute;
	top: 6px;
	right: 2px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	font-size: 10px;
	font-weight: 700;
	line-height: 18px;
	text-align: center;
	color: #fff;
	background: #e74c3c;
	border-radius: 10px;
}
.finanzas-notif-menu {
	min-width: 320px;
	max-width: 380px;
	padding: 0;
	overflow: hidden;
}
.finanzas-notif-menu .dropdown-header {
	padding: 10px 14px;
	font-weight: 600;
}
.finanzas-notif-scroll {
	max-height: min(360px, 50vh);
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	padding: 0;
	margin: 0;
}
.finanzas-notif-list {
	margin: 0;
	padding: 0;
}
.finanzas-notif-list > li {
	list-style: none;
}
.finanzas-notif-footer > a {
	display: block;
	padding: 10px 14px !important;
	text-align: center;
	font-size: 13px;
	font-weight: 500;
	color: var(--gm-primario, #059669) !important;
}
.finanzas-notif-footer > a:hover,
.finanzas-notif-footer > a:focus {
	background: var(--gm-primario-suave, #f5f8fa);
	text-decoration: none;
}
.finanzas-notif-item > a {
	display: block;
	padding: 10px 14px !important;
	white-space: normal !important;
	line-height: 1.35;
	border-bottom: 1px solid var(--gm-borde, #ecf0f1);
}
.finanzas-notif-item > a:hover,
.finanzas-notif-item > a:focus {
	background: var(--gm-primario-suave, #f5f8fa);
}
.finanzas-notif-unread > a {
	background: rgba(5, 150, 105, 0.08);
}
.finanzas-notif-unread > a strong::before {
	content: "";
	display: inline-block;
	width: 8px;
	height: 8px;
	margin-right: 6px;
	border-radius: 50%;
	background: #059669;
	vertical-align: middle;
}
.finanzas-notif-msg {
	display: block;
	font-size: 12px;
	color: var(--gm-texto-suave, #666);
	margin-top: 2px;
}
.finanzas-notif-fecha {
	display: block;
	font-size: 11px;
	margin-top: 4px;
}
.finanzas-notif-empty {
	padding: 12px 14px !important;
	font-style: italic;
}

/* Etiqueta de edificio seleccionado en la cabecera */
.edificioseleccionado .btn {
	border-radius: 999px;
	font-weight: 500;
}

/* — Sidebar — */
html[data-finanzas-estilo] #wrapper #finanzas-app-sidebar.navbar-default.sidebar,
#wrapper #finanzas-app-sidebar.navbar-default.sidebar {
	background-color: var(--gm-sidebar);
	border-right: 1px solid var(--gm-borde);
}
.sidebar ul li {
	border-bottom: none;
}
#side-menu > li > a {
	margin: 1px 10px;
	padding: 8px 12px;
	border-radius: var(--gm-radio-sm);
	color: var(--gm-texto);
	font-size: 13px;
	line-height: 1.35;
	font-weight: 500;
	transition: background-color 0.15s ease, color 0.15s ease;
}
#side-menu > li > a > .fa {
	width: 18px;
	font-size: 13px;
	text-align: center;
	margin-right: 6px;
	color: var(--gm-texto-suave);
	transition: color 0.15s ease;
}
#side-menu > li > a:hover,
#side-menu > li > a:focus {
	background-color: var(--gm-primario-suave);
	color: var(--gm-primario);
}
#side-menu > li > a:hover > .fa,
#side-menu > li > a:focus > .fa {
	color: var(--gm-primario);
}
#side-menu li a.active {
	background-color: var(--gm-primario-suave);
	color: var(--gm-primario);
	font-weight: 600;
	box-shadow: inset 3px 0 0 var(--gm-primario);
}
#side-menu li a.active > .fa {
	color: var(--gm-primario);
}
#side-menu .nav-second-level > li > a {
	margin: 1px 10px;
	padding: 6px 12px 6px 36px;
	border-radius: var(--gm-radio-sm);
	color: var(--gm-texto-suave);
	font-size: 12px;
	line-height: 1.35;
	transition: background-color 0.15s ease, color 0.15s ease;
}
#side-menu .nav-second-level > li > a:hover,
#side-menu .nav-second-level > li > a:focus {
	background-color: var(--gm-primario-suave);
	color: var(--gm-primario);
}
#side-menu > li.sidebar-menu-seccion {
	color: var(--gm-texto-suave);
}
#side-menu > li.sidebar-menu-filter {
	background: transparent;
	border-bottom: 1px solid var(--gm-borde);
}
#side-menu .finanzas-menu-filter-input {
	border-color: var(--gm-borde-fuerte);
	border-radius: var(--gm-radio-sm);
	background: var(--gm-superficie);
	color: var(--gm-texto);
}
#side-menu .finanzas-menu-filter-input:focus {
	border-color: var(--gm-primario);
	box-shadow: 0 0 0 3px var(--gm-foco);
}
#side-menu .finanzas-menu-filter-label {
	color: var(--gm-texto-suave);
}
#side-menu .finanzas-menu-filter-clear {
	color: var(--gm-texto-suave);
}
#side-menu .finanzas-menu-filter-clear:hover {
	color: var(--gm-texto);
	background: rgba(15, 23, 42, 0.06);
}

/* — Título de página — */
.page-header {
	margin: 22px 0 18px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--gm-borde);
	font-weight: 600;
	letter-spacing: -0.01em;
	color: var(--gm-texto);
}
.finanzas-page-header-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin: 22px 0 18px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--gm-borde);
}
.finanzas-page-header-bar .page-header {
	margin: 0;
	padding-bottom: 0;
	border-bottom: none;
	flex: 1 1 auto;
	min-width: 0;
}
.finanzas-page-header-bar .page-header-acciones {
	flex: 0 0 auto;
}

/* — Búsqueda global — */
.finanzas-global-search-inner {
	border-color: var(--gm-borde-fuerte);
	background: var(--gm-superficie);
}
.finanzas-global-search-inner:focus-within {
	border-color: var(--gm-primario);
	box-shadow: 0 0 0 3px var(--gm-foco);
}
.finanzas-global-search-input {
	color: var(--gm-texto);
}
.finanzas-global-search-dd {
	border-radius: var(--gm-radio);
	border-color: var(--gm-borde);
	box-shadow: var(--gm-sombra-lg);
}

/* =========================================================
   4. Tarjetas (.panel → card)
   ========================================================= */
.panel {
	border-radius: var(--gm-radio);
	border: 1px solid var(--gm-borde);
	box-shadow: var(--gm-sombra-sm);
	background-color: var(--gm-superficie);
}
html[data-finanzas-estilo] .panel {
	background-color: var(--gm-superficie);
	border-color: var(--gm-borde);
}
.panel-default {
	border-color: var(--gm-borde);
}
html[data-finanzas-estilo] .panel-default > .panel-heading,
.panel-default > .panel-heading {
	background-color: var(--gm-cabecera-panel);
	background-image: none;
	border-color: var(--gm-borde);
	color: var(--gm-texto);
}
.panel-heading {
	padding: 12px 16px;
	border-top-left-radius: calc(var(--gm-radio) - 1px);
	border-top-right-radius: calc(var(--gm-radio) - 1px);
	font-weight: 600;
}
.panel-body {
	padding: 16px;
}
.panel-footer {
	background-color: var(--gm-superficie-2);
	border-top-color: var(--gm-borde);
	border-bottom-left-radius: calc(var(--gm-radio) - 1px);
	border-bottom-right-radius: calc(var(--gm-radio) - 1px);
}
.panel-primary {
	border-color: var(--gm-primario);
}
.panel-primary > .panel-heading {
	background-color: var(--gm-primario);
	border-color: var(--gm-primario);
}

.well {
	border-radius: var(--gm-radio);
	border-color: var(--gm-borde);
	background-color: var(--gm-superficie-2);
	box-shadow: none;
}

/* =========================================================
   5. Botones
   ========================================================= */
.btn {
	border-radius: 8px;
	font-weight: 500;
	font-family: var(--gm-fuente);
	transition: background-color 0.15s ease, border-color 0.15s ease,
		color 0.15s ease, box-shadow 0.15s ease;
}
.btn:focus,
.btn:active:focus {
	outline: none;
	box-shadow: 0 0 0 3px var(--gm-foco);
}
.btn-lg {
	border-radius: 10px;
}
.btn-sm,
.btn-xs {
	border-radius: 6px;
}

.btn-default {
	color: var(--gm-texto);
	background-color: var(--gm-superficie);
	border-color: var(--gm-borde-fuerte);
}
.btn-default:hover,
.btn-default:focus,
.btn-default:active,
.btn-default.active {
	color: var(--gm-texto);
	background-color: var(--gm-fila-hover);
	border-color: var(--gm-borde-fuerte);
}

.btn-primary {
	background-color: var(--gm-primario);
	border-color: var(--gm-primario);
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active {
	background-color: var(--gm-primario-hover);
	border-color: var(--gm-primario-hover);
}

.btn-success {
	background-color: #16a34a;
	border-color: #16a34a;
}
.btn-success:hover,
.btn-success:focus,
.btn-success:active,
.btn-success.active {
	background-color: #15803d;
	border-color: #15803d;
}

.btn-danger {
	background-color: #dc2626;
	border-color: #dc2626;
}
.btn-danger:hover,
.btn-danger:focus,
.btn-danger:active,
.btn-danger.active {
	background-color: #b91c1c;
	border-color: #b91c1c;
}

.btn-warning {
	background-color: #d97706;
	border-color: #d97706;
}
.btn-warning:hover,
.btn-warning:focus,
.btn-warning:active,
.btn-warning.active {
	background-color: #b45309;
	border-color: #b45309;
}

.btn-info {
	background-color: #0891b2;
	border-color: #0891b2;
}
.btn-info:hover,
.btn-info:focus,
.btn-info:active,
.btn-info.active {
	background-color: #0e7490;
	border-color: #0e7490;
}

/* Los botones circulares siguen siendo circulares */
.btn-circle {
	border-radius: 50%;
}
.btn-circle.btn-lg,
.btn-circle.btn-xl {
	border-radius: 50%;
}

/* =========================================================
   6. Formularios
   ========================================================= */
label {
	font-weight: 600;
	color: var(--gm-texto);
	margin-bottom: 5px;
}
.form-control {
	border-radius: 8px;
	border-color: var(--gm-borde-fuerte);
	box-shadow: none;
	color: var(--gm-texto);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.form-control:focus {
	border-color: var(--gm-primario);
	box-shadow: 0 0 0 3px var(--gm-foco);
}
.form-control::placeholder {
	color: var(--gm-texto-suave);
	opacity: 0.8;
}
.form-control[readonly],
.form-control[disabled] {
	background-color: var(--gm-superficie-2);
	opacity: 0.9;
}
select.form-control {
	cursor: pointer;
}
.input-group .form-control:first-child {
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
}
.input-group-btn:last-child > .btn {
	border-top-left-radius: 0;
	border-bottom-left-radius: 0;
}
.input-group-addon {
	border-color: var(--gm-borde-fuerte);
	background-color: var(--gm-superficie-2);
	color: var(--gm-texto-suave);
	border-radius: 8px;
}
.help-block {
	color: var(--gm-texto-suave);
}
.checkbox label,
.radio label {
	font-weight: 400;
}

/* =========================================================
   7. Tablas y DataTables
   ========================================================= */
.table {
	color: var(--gm-texto);
}
.table > thead > tr > th {
	background-color: var(--gm-thead-bg);
	border-bottom: 1px solid var(--gm-borde-fuerte);
	color: var(--gm-texto-suave);
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	padding: 10px 8px;
	vertical-align: middle;
}
.table > tbody > tr > td {
	border-top: 1px solid var(--gm-borde);
	padding: 9px 8px;
	vertical-align: middle;
}

/* table-bordered → solo divisores horizontales */
.table-bordered {
	border: none;
}
.table-bordered > thead > tr > th,
.table-bordered > tbody > tr > th,
.table-bordered > tfoot > tr > th,
.table-bordered > thead > tr > td,
.table-bordered > tbody > tr > td,
.table-bordered > tfoot > tr > td {
	border-left: none;
	border-right: none;
	border-color: var(--gm-borde);
}
.table-bordered > thead > tr > th {
	border-bottom: 1px solid var(--gm-borde-fuerte);
}

.table-striped > tbody > tr:nth-of-type(odd) {
	background-color: var(--gm-fila-alt);
}
.table-hover > tbody > tr:hover {
	background-color: var(--gm-fila-hover);
}

table.dataTable {
	border-collapse: collapse !important;
}
table.dataTable thead .sorting:after,
table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:after {
	color: var(--gm-texto-suave);
	opacity: 0.7;
}

/* Controles del listado (buscar, mostrar N, info) */
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter,
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_paginate {
	color: var(--gm-texto-suave);
	font-size: 13px;
}
.dataTables_wrapper .dataTables_length select,
.dataTables_wrapper .dataTables_filter input,
.finanzas-listado-heading__right .dataTables_filter input {
	border: 1px solid var(--gm-borde-fuerte);
	border-radius: 8px;
	padding: 5px 10px;
	background-color: var(--gm-superficie);
	color: var(--gm-texto);
	outline: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.dataTables_wrapper .dataTables_filter input:focus,
.finanzas-listado-heading__right .dataTables_filter input:focus {
	border-color: var(--gm-primario);
	box-shadow: 0 0 0 3px var(--gm-foco);
}
.finanzas-listado-heading__right .dataTables_filter {
	color: var(--gm-texto-suave);
	font-size: 13px;
	font-weight: 400;
}

.finanzas-dt-responsive {
	width: 100%;
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

/* Listados embebidos en pestañas de formularios */
.tab-content [id^="div_"] {
	max-width: 100%;
	overflow-x: auto;
}
.tab-content [id^="div_"] > .row {
	margin-left: 0;
	margin-right: 0;
}
.tab-content [id^="div_"] > .row > [class*="col-"] {
	padding-left: 0;
	padding-right: 0;
	float: none;
	width: 100%;
}
.tab-content [id^="div_"] .dataTables_wrapper {
	width: 100%;
	max-width: 100%;
}

/* Pestaña días de licencia (empleado): sin recorte lateral */
.tab-content #div_8 {
	overflow-x: visible;
}
.tab-content #div_8 .lic-dias-tab {
	box-sizing: border-box;
	width: 100%;
}

/* Botones de exportación de DataTables (rectangulares fuera del encabezado de listado) */
div.dt-buttons .dt-button:not(.btn-circle) {
	border-radius: 8px;
	margin-right: 4px;
}

/* Evitar flash: controles DT ocultos en su ubicación por defecto hasta moverlos al encabezado */
.dataTables_wrapper > .dt-buttons,
.dataTables_wrapper > .dataTables_filter {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
	padding: 0 !important;
	margin: -1px !important;
	visibility: hidden !important;
	pointer-events: none !important;
}
.finanzas-listado-heading__right:not(.finanzas-dt-toolbar-ready) {
	opacity: 0;
}
.finanzas-listado-heading__right.finanzas-dt-toolbar-ready {
	opacity: 1;
	transition: opacity 0.12s ease;
}

/* Botones de exportación circulares en cabecera de listado */
.finanzas-listado-heading__right div.dt-buttons {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
}
.finanzas-listado-heading__right div.dt-buttons button.dt-button.finanzas-dt-export-btn,
.finanzas-listado-heading__right div.dt-buttons .dt-button.finanzas-dt-export-btn {
	width: 30px;
	height: 30px;
	padding: 6px 0;
	margin: 0;
	border-radius: 50%;
	font-size: 12px;
	line-height: 1.428571429;
	text-align: center;
	background-image: none !important;
	filter: none !important;
	box-shadow: none !important;
	text-shadow: none !important;
	border-width: 1px;
	border-style: solid;
}
.finanzas-listado-heading__right div.dt-buttons button.dt-button.finanzas-dt-export-btn.btn-warning,
.finanzas-listado-heading__right div.dt-buttons .dt-button.finanzas-dt-export-btn.btn-warning {
	color: #fff !important;
	background-color: #d97706 !important;
	border-color: #d97706 !important;
}
.finanzas-listado-heading__right div.dt-buttons button.dt-button.finanzas-dt-export-btn.btn-warning:hover,
.finanzas-listado-heading__right div.dt-buttons button.dt-button.finanzas-dt-export-btn.btn-warning:focus,
.finanzas-listado-heading__right div.dt-buttons .dt-button.finanzas-dt-export-btn.btn-warning:hover,
.finanzas-listado-heading__right div.dt-buttons .dt-button.finanzas-dt-export-btn.btn-warning:focus {
	color: #fff !important;
	background-color: #b45309 !important;
	border-color: #b45309 !important;
}
.finanzas-listado-heading__right div.dt-buttons button.dt-button.finanzas-dt-export-btn.btn-default,
.finanzas-listado-heading__right div.dt-buttons .dt-button.finanzas-dt-export-btn.btn-default {
	color: var(--gm-texto) !important;
	background-color: var(--gm-superficie) !important;
	border-color: var(--gm-borde-fuerte) !important;
}
.finanzas-listado-heading__right div.dt-buttons button.dt-button.finanzas-dt-export-btn.btn-default:hover,
.finanzas-listado-heading__right div.dt-buttons button.dt-button.finanzas-dt-export-btn.btn-default:focus,
.finanzas-listado-heading__right div.dt-buttons .dt-button.finanzas-dt-export-btn.btn-default:hover,
.finanzas-listado-heading__right div.dt-buttons .dt-button.finanzas-dt-export-btn.btn-default:focus {
	color: var(--gm-texto) !important;
	background-color: var(--gm-fila-hover) !important;
	border-color: var(--gm-borde-fuerte) !important;
}
.finanzas-listado-heading__right div.dt-buttons button.dt-button.finanzas-dt-export-btn.btn-success,
.finanzas-listado-heading__right div.dt-buttons .dt-button.finanzas-dt-export-btn.btn-success {
	color: #fff !important;
	background-color: #16a34a !important;
	border-color: #16a34a !important;
}
.finanzas-listado-heading__right div.dt-buttons button.dt-button.finanzas-dt-export-btn.btn-success:hover,
.finanzas-listado-heading__right div.dt-buttons button.dt-button.finanzas-dt-export-btn.btn-success:focus,
.finanzas-listado-heading__right div.dt-buttons .dt-button.finanzas-dt-export-btn.btn-success:hover,
.finanzas-listado-heading__right div.dt-buttons .dt-button.finanzas-dt-export-btn.btn-success:focus {
	color: #fff !important;
	background-color: #15803d !important;
	border-color: #15803d !important;
}
.finanzas-listado-heading__right div.dt-buttons button.dt-button.finanzas-dt-export-btn.btn-danger,
.finanzas-listado-heading__right div.dt-buttons .dt-button.finanzas-dt-export-btn.btn-danger {
	color: #fff !important;
	background-color: #dc2626 !important;
	border-color: #dc2626 !important;
}
.finanzas-listado-heading__right div.dt-buttons button.dt-button.finanzas-dt-export-btn.btn-danger:hover,
.finanzas-listado-heading__right div.dt-buttons button.dt-button.finanzas-dt-export-btn.btn-danger:focus,
.finanzas-listado-heading__right div.dt-buttons .dt-button.finanzas-dt-export-btn.btn-danger:hover,
.finanzas-listado-heading__right div.dt-buttons .dt-button.finanzas-dt-export-btn.btn-danger:focus {
	color: #fff !important;
	background-color: #b91c1c !important;
	border-color: #b91c1c !important;
}
.finanzas-listado-heading__right div.dt-buttons button.dt-button.finanzas-dt-export-btn.btn-primary,
.finanzas-listado-heading__right div.dt-buttons .dt-button.finanzas-dt-export-btn.btn-primary {
	color: #fff !important;
	background-color: var(--gm-primario) !important;
	border-color: var(--gm-primario) !important;
}
.finanzas-listado-heading__right div.dt-buttons button.dt-button.finanzas-dt-export-btn.btn-primary:hover,
.finanzas-listado-heading__right div.dt-buttons button.dt-button.finanzas-dt-export-btn.btn-primary:focus,
.finanzas-listado-heading__right div.dt-buttons .dt-button.finanzas-dt-export-btn.btn-primary:hover,
.finanzas-listado-heading__right div.dt-buttons .dt-button.finanzas-dt-export-btn.btn-primary:focus {
	color: #fff !important;
	background-color: var(--gm-primario-hover) !important;
	border-color: var(--gm-primario-hover) !important;
}
.finanzas-listado-heading__right div.dt-buttons button.dt-button.finanzas-dt-export-btn:active:not(.disabled),
.finanzas-listado-heading__right div.dt-buttons .dt-button.finanzas-dt-export-btn:active:not(.disabled) {
	box-shadow: none !important;
}

/* Paginación */
.pagination > li > a,
.pagination > li > span {
	color: var(--gm-texto-suave);
	background-color: var(--gm-superficie);
	border: 1px solid var(--gm-borde);
	margin: 0 2px;
	border-radius: 8px;
	transition: background-color 0.15s ease, color 0.15s ease;
}
.pagination > li:first-child > a,
.pagination > li:first-child > span,
.pagination > li:last-child > a,
.pagination > li:last-child > span {
	border-radius: 8px;
}
.pagination > li > a:hover,
.pagination > li > span:hover,
.pagination > li > a:focus,
.pagination > li > span:focus {
	color: var(--gm-primario);
	background-color: var(--gm-primario-suave);
	border-color: var(--gm-borde);
}
.pagination > .active > a,
.pagination > .active > span,
.pagination > .active > a:hover,
.pagination > .active > span:hover,
.pagination > .active > a:focus,
.pagination > .active > span:focus {
	background-color: var(--gm-primario);
	border-color: var(--gm-primario);
	color: #fff;
}
.pagination > .disabled > a,
.pagination > .disabled > span,
.pagination > .disabled > a:hover,
.pagination > .disabled > span:hover {
	color: var(--gm-borde-fuerte);
	background-color: var(--gm-superficie);
	border-color: var(--gm-borde);
}

/* =========================================================
   8. Modales, dropdowns, tabs, alertas, badges
   ========================================================= */
.modal-content {
	border: none;
	border-radius: var(--gm-radio-lg);
	box-shadow: var(--gm-sombra-lg);
	background-color: var(--gm-superficie);
}
html[data-finanzas-estilo] .modal-content {
	background-color: var(--gm-superficie);
}
.modal-header {
	padding: 16px 20px;
	border-bottom: 1px solid var(--gm-borde);
}
.modal-title {
	font-weight: 600;
}
.modal-body {
	padding: 20px;
}
.modal-footer {
	padding: 14px 20px;
	border-top: 1px solid var(--gm-borde);
}
.modal-backdrop.in {
	opacity: 0.45;
}
.close {
	text-shadow: none;
	opacity: 0.5;
	transition: opacity 0.15s ease;
}
.close:hover {
	opacity: 0.9;
}

.dropdown-menu {
	border-radius: var(--gm-radio);
	border: 1px solid var(--gm-borde);
	box-shadow: var(--gm-sombra-lg);
	padding: 6px;
}
.dropdown-menu > li > a {
	border-radius: var(--gm-radio-sm);
	padding: 7px 12px;
	color: var(--gm-texto);
	transition: background-color 0.12s ease;
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
	background-color: var(--gm-fila-hover);
	color: var(--gm-texto);
}
.dropdown-menu .divider {
	background-color: var(--gm-borde);
	margin: 6px 0;
}

.nav-tabs {
	border-bottom: 1px solid var(--gm-borde);
}
.nav-tabs > li > a {
	border: none;
	border-bottom: 2px solid transparent;
	border-radius: 0;
	color: var(--gm-texto-suave);
	font-weight: 500;
	transition: color 0.15s ease, border-color 0.15s ease;
}
.nav-tabs > li > a:hover,
.nav-tabs > li > a:focus {
	outline: none;
	box-shadow: none;
	background-color: transparent;
	border: none;
	border-bottom: 2px solid transparent;
	color: var(--gm-texto);
}
.nav-tabs > li > a:hover {
	border-bottom-color: var(--gm-borde-fuerte);
}
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
	outline: none;
	box-shadow: none;
	border: none;
	border-bottom: 2px solid var(--gm-primario);
	color: var(--gm-primario);
	background-color: transparent;
	font-weight: 600;
}

/* Formulario con resumen lateral: pestañas en una fila a ancho completo */
.finanzas-form-with-dashboard > [class*="col-lg-"]:first-child {
	position: relative;
}
.finanzas-form-with-span .finanzas-form-tabs-bar,
.finanzas-form-with-dashboard .finanzas-form-tabs-bar {
	width: calc(100% * 12 / var(--finanzas-form-span, 6) + 30px);
	max-width: calc(100% * 12 / var(--finanzas-form-span, 6) + 30px);
	margin-bottom: 12px;
	z-index: 2;
}
.finanzas-form-tabs-nav {
	display: flex;
	flex-wrap: nowrap;
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
	border-bottom: 1px solid var(--gm-borde);
	margin-bottom: 0;
}
.finanzas-form-tabs-nav > li {
	float: none;
	flex: 0 0 auto;
}
.finanzas-form-tabs-nav > li > a {
	white-space: nowrap;
	padding: 10px 11px;
	font-size: 13px;
}
.finanzas-form-with-dashboard > [class*="col-lg-"]:last-child:not(:first-child) {
	margin-top: 48px;
}
.finanzas-form-with-dashboard .tab-content {
	padding-top: 4px;
}
/* Pestaña con listado a ancho completo: ocultar resumen lateral */
.finanzas-form-with-dashboard.finanzas-form-tab-fullwidth > [class*="col-lg-"]:first-child {
	width: 100%;
}
.finanzas-form-with-dashboard.finanzas-form-tab-fullwidth > [class*="col-lg-"]:last-child:not(:first-child) {
	display: none !important;
}
.finanzas-form-with-dashboard.finanzas-form-tab-fullwidth .finanzas-form-tabs-bar {
	width: 100%;
	max-width: 100%;
}
@media (max-width: 1199px) {
	.finanzas-form-with-span .finanzas-form-tabs-bar,
	.finanzas-form-with-dashboard .finanzas-form-tabs-bar {
		width: 100%;
		max-width: 100%;
	}
	.finanzas-form-with-dashboard > [class*="col-lg-"]:last-child:not(:first-child) {
		margin-top: 0;
	}
}

.alert {
	border-radius: var(--gm-radio);
	border-width: 1px;
}

.label {
	border-radius: 6px;
	font-weight: 600;
	padding: 0.25em 0.7em;
}
.badge {
	border-radius: 999px;
}

.list-group {
	border-radius: var(--gm-radio);
}
.list-group-item:first-child {
	border-top-left-radius: var(--gm-radio);
	border-top-right-radius: var(--gm-radio);
}
.list-group-item:last-child {
	border-bottom-left-radius: var(--gm-radio);
	border-bottom-right-radius: var(--gm-radio);
}

hr {
	border-top-color: var(--gm-borde);
}

a {
	color: var(--gm-primario);
}
a:hover,
a:focus {
	color: var(--gm-primario-hover);
}

/* =========================================================
   9. Notificaciones jGrowl (toasts)
   ========================================================= */
@keyframes finanzas-toast-in {
	from {
		transform: translateX(calc(100% + 20px));
		opacity: 0;
	}
	to {
		transform: translateX(0);
		opacity: 1;
	}
}

.jGrowl {
	pointer-events: none;
}

.jGrowl.bottom-right {
	right: 20px;
	bottom: 20px;
	left: auto;
	top: auto;
}

.jGrowl .jGrowl-notification,
.jGrowl .jGrowl-closer {
	pointer-events: auto;
	width: min(380px, calc(100vw - 40px));
	min-height: auto;
	margin: 0 0 10px 0;
	padding: 14px 40px 14px 14px;
	border-radius: var(--gm-radio-lg);
	background: var(--gm-superficie);
	color: var(--gm-texto);
	border: 1px solid var(--gm-borde);
	box-shadow: var(--gm-sombra-lg);
	font-family: var(--gm-fuente);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.45;
	text-align: left;
	opacity: 1;
	filter: none;
	-ms-filter: none;
	position: relative;
	overflow: hidden;
	animation: finanzas-toast-in 0.38s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.jGrowl .jGrowl-notification .jGrowl-message {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	flex: 1;
	min-width: 0;
	padding-right: 4px;
}

.finanzas-toast-icon {
	flex-shrink: 0;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 16px;
	line-height: 1;
}

.finanzas-toast-text {
	flex: 1;
	min-width: 0;
	padding-top: 8px;
}

.jGrowl .finanzas-toast-text > strong {
	display: block;
	font-weight: 600;
	margin-bottom: 10px;
}

.jGrowl .finanzas-toast-list {
	margin: 0;
	padding: 0 0 0 1em;
	list-style: disc outside;
}

.jGrowl .finanzas-toast-list li {
	margin: 0 0 6px;
	padding: 0;
	line-height: 1.35;
}

.jGrowl .finanzas-toast-list li:last-child {
	margin-bottom: 0;
}

.jGrowl .jGrowl-notification:has(.finanzas-toast-list) {
	width: min(420px, calc(100vw - 40px));
}

.finanzas-toast--save .finanzas-toast-icon {
	background: rgba(16, 185, 129, 0.14);
	color: #059669;
}

.finanzas-toast--edit .finanzas-toast-icon {
	background: rgba(5, 150, 105, 0.12);
	color: #059669;
}

.finanzas-toast--delete .finanzas-toast-icon {
	background: rgba(239, 68, 68, 0.14);
	color: #dc2626;
}

.finanzas-toast--success .finanzas-toast-icon {
	background: rgba(16, 185, 129, 0.14);
	color: #059669;
}

.finanzas-toast--error .finanzas-toast-icon {
	background: rgba(239, 68, 68, 0.14);
	color: #dc2626;
}

.finanzas-toast--warning .finanzas-toast-icon {
	background: rgba(245, 158, 11, 0.16);
	color: #d97706;
}

.finanzas-toast--info .finanzas-toast-icon {
	background: rgba(5, 150, 105, 0.12);
	color: #059669;
}

.jGrowl .jGrowl-notification.finanzas-toast--save {
	border-left-color: #10b981;
	background: linear-gradient(135deg, #ffffff 0%, #f0fdf4 100%);
}

.jGrowl .jGrowl-notification.success {
	border-left-color: #10b981;
	background: linear-gradient(135deg, #ffffff 0%, #f0fdf4 100%);
}

.jGrowl .jGrowl-notification.finanzas-toast--edit {
	border-left-color: #059669;
	background: linear-gradient(135deg, #ffffff 0%, #ecfdf5 100%);
}

.jGrowl .jGrowl-notification.finanzas-toast--delete,
.jGrowl .jGrowl-notification.delete {
	border-left-color: #ef4444;
	background: linear-gradient(135deg, #ffffff 0%, #fef2f2 100%);
}

.jGrowl .jGrowl-notification.error,
.jGrowl .jGrowl-notification.danger,
.jGrowl .jGrowl-notification.finanzas-toast--error {
	border-left-color: #ef4444;
	background: linear-gradient(135deg, #ffffff 0%, #fef2f2 100%);
}

.jGrowl .jGrowl-notification.warning,
.jGrowl .jGrowl-notification.finanzas-toast--warning {
	border-left-color: #f59e0b;
	background: linear-gradient(135deg, #ffffff 0%, #fffbeb 100%);
}

.jGrowl .jGrowl-notification.finanzas-toast--info {
	border-left-color: var(--gm-primario);
	background: linear-gradient(135deg, #ffffff 0%, #ecfdf5 100%);
}

.jGrowl.bottom-right .jGrowl-notification {
	border-left: 4px solid var(--gm-primario);
}

.jGrowl .jGrowl-notification .jGrowl-close {
	float: none;
	position: absolute;
	top: 10px;
	right: 10px;
	width: 26px;
	height: 26px;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--gm-radio-sm);
	font-size: 20px;
	font-weight: 400;
	line-height: 1;
	color: var(--gm-texto-suave);
	background: transparent;
	opacity: 0.65;
	transition: opacity 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}

.jGrowl .jGrowl-notification .jGrowl-close:hover,
.jGrowl .jGrowl-notification .jGrowl-close:focus {
	opacity: 1;
	color: var(--gm-texto);
	background-color: var(--gm-fila-hover);
}

.jGrowl .jGrowl-closer {
	border-left: 4px solid var(--gm-texto-suave);
	font-size: 13px;
	font-weight: 600;
	text-align: center;
	cursor: pointer;
	padding-top: 12px;
	padding-bottom: 12px;
}

.jGrowl .jGrowl-closer:hover {
	background: var(--gm-fila-hover);
}

/* =========================================================
   10. Login (index.php, body.finanzas-login)
   ========================================================= */
@keyframes finanzas-login-gradient {
	0%, 100% { background-position: 0% 50%; }
	50% { background-position: 100% 50%; }
}
@keyframes finanzas-login-orb-drift {
	0%, 100% { transform: translate(0, 0); }
	33% { transform: translate(18px, -12px); }
	66% { transform: translate(-10px, 8px); }
}

body.finanzas-login {
	min-height: 100vh;
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	overflow: hidden;
	font-family: var(--gm-fuente);
	background: linear-gradient(-45deg, #0f172a, #064e3b, #059669, #047857);
	background-size: 400% 400%;
	animation: finanzas-login-gradient 14s ease infinite;
}
body.finanzas-login .finanzas-login-bg {
	position: fixed;
	inset: 0;
	pointer-events: none;
	z-index: 0;
}
body.finanzas-login .finanzas-login-orb {
	position: absolute;
	border-radius: 50%;
	filter: blur(60px);
	opacity: 0.45;
	animation: finanzas-login-orb-drift 18s ease-in-out infinite;
}
body.finanzas-login .finanzas-login-orb--1 {
	width: 340px;
	height: 340px;
	top: -80px;
	right: -60px;
	background: #34d399;
}
body.finanzas-login .finanzas-login-orb--2 {
	width: 280px;
	height: 280px;
	bottom: -40px;
	left: -40px;
	background: #6ee7b7;
	animation-delay: -6s;
}
body.finanzas-login .finanzas-login-orb--3 {
	width: 200px;
	height: 200px;
	top: 40%;
	left: 55%;
	background: #10b981;
	animation-delay: -12s;
	opacity: 0.3;
}
body.finanzas-login .finanzas-login-wrap {
	position: relative;
	z-index: 1;
	width: 100%;
	padding: 24px 15px;
}
body.finanzas-login .finanzas-login-wrap > .row {
	display: flex;
	justify-content: center;
}
body.finanzas-login .finanzas-login-wrap > .row > [class*="col-"] {
	float: none;
	width: 100%;
	max-width: 820px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 0;
	padding-right: 0;
}
body.finanzas-login .login-panel {
	margin-top: 0;
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 22px;
	box-shadow:
		0 4px 6px rgba(2, 6, 23, 0.08),
		0 24px 64px rgba(2, 6, 23, 0.35);
	overflow: hidden;
	background: rgba(255, 255, 255, 0.97);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
}
body.finanzas-login .finanzas-login-card {
	margin-bottom: 0;
}
body.finanzas-login .finanzas-login-split {
	display: flex;
	align-items: stretch;
	min-height: 500px;
}
body.finanzas-login .finanzas-login-form-col {
	flex: 0 0 320px;
	width: 320px;
	max-width: 320px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	background: #fff;
}
body.finanzas-login .finanzas-login-carousel {
	flex: 1 1 auto;
	max-width: none;
	display: flex;
	flex-direction: column;
	background: #f8fafc;
	border-left: 1px solid #e2e8f0;
	min-width: 0;
}
body.finanzas-login .finanzas-login-carousel__media {
	position: relative;
	flex: 1 1 auto;
	min-height: 260px;
	overflow: hidden;
	background: #ecfdf5;
}
body.finanzas-login .finanzas-login-carousel__slides {
	position: absolute;
	inset: 0;
}
body.finanzas-login .finanzas-login-carousel__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	visibility: hidden;
	transform: scale(1.02);
	transition: opacity 0.55s ease, transform 0.55s ease, visibility 0.55s;
}
body.finanzas-login .finanzas-login-carousel__slide.is-active {
	opacity: 1;
	visibility: visible;
	transform: scale(1);
	z-index: 1;
}
body.finanzas-login .finanzas-login-carousel__slide img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center center;
}
body.finanzas-login .finanzas-login-carousel__badge {
	position: absolute;
	top: 16px;
	left: 16px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px;
	border-radius: 999px;
	background: rgba(5, 150, 105, 0.92);
	color: #fff;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.02em;
	box-shadow: 0 6px 16px rgba(5, 150, 105, 0.28);
}
body.finanzas-login .finanzas-login-carousel__info {
	flex: 0 0 auto;
	padding: 20px 24px 18px;
	background: #fff;
	border-top: 1px solid #eef2f7;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
}
body.finanzas-login .finanzas-login-carousel__copy {
	min-width: 0;
	flex: 1 1 auto;
}
body.finanzas-login .finanzas-login-carousel__title {
	margin: 0 0 6px;
	font-size: 18px;
	font-weight: 700;
	color: #0f172a;
	letter-spacing: -0.02em;
	line-height: 1.25;
}
body.finanzas-login .finanzas-login-carousel__meta {
	margin: 0 0 8px;
	font-size: 12px;
	color: #64748b;
	display: flex;
	align-items: center;
	gap: 6px;
}
body.finanzas-login .finanzas-login-carousel__meta .fa {
	color: var(--gm-primario);
}
body.finanzas-login .finanzas-login-carousel__desc {
	margin: 0;
	font-size: 13px;
	line-height: 1.45;
	color: #64748b;
	max-width: 36em;
}
body.finanzas-login .finanzas-login-carousel__dots {
	display: flex;
	align-items: center;
	gap: 6px;
	flex-shrink: 0;
	padding-bottom: 2px;
}
body.finanzas-login .finanzas-login-carousel__dot {
	width: 8px;
	height: 8px;
	padding: 0;
	border: none;
	border-radius: 999px;
	background: #cbd5e1;
	cursor: pointer;
	transition: width 0.25s ease, background 0.2s ease;
}
body.finanzas-login .finanzas-login-carousel__dot.is-active {
	width: 28px;
	background: var(--gm-primario);
}
body.finanzas-login .finanzas-login-carousel__dot:hover,
body.finanzas-login .finanzas-login-carousel__dot:focus {
	background: #94a3b8;
	outline: none;
}
body.finanzas-login .finanzas-login-carousel__dot.is-active:hover,
body.finanzas-login .finanzas-login-carousel__dot.is-active:focus {
	background: var(--gm-primario-hover);
}
@media (prefers-reduced-motion: reduce) {
	body.finanzas-login .finanzas-login-carousel__slide {
		transition: none;
	}
}
body.finanzas-login .login-panel .panel-heading {
	background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
	border: none;
	text-align: center;
	padding: 28px 28px 8px;
}
body.finanzas-login .finanzas-login-brand {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	margin-bottom: 4px;
}
body.finanzas-login .finanzas-login-logo {
	border-radius: 16px;
	box-shadow: 0 8px 20px rgba(5, 150, 105, 0.25);
}
body.finanzas-login .login-panel .panel-title {
	font-size: 22px;
	font-weight: 700;
	color: #0f172a;
	letter-spacing: -0.02em;
	margin: 8px 0 4px;
}
body.finanzas-login .finanzas-login-subtitle {
	margin: 0;
	font-size: 13px;
	color: #64748b;
	font-weight: 400;
}
body.finanzas-login .login-panel .panel-body {
	padding: 20px 28px 28px;
}
/* Transición entre login / registro / recuperar */
@keyframes finanzas-auth-out {
	from { opacity: 1; transform: translateY(0); }
	to { opacity: 0; transform: translateY(-10px); }
}
@keyframes finanzas-auth-in {
	from { opacity: 0; transform: translateY(14px); }
	to { opacity: 1; transform: translateY(0); }
}
@keyframes finanzas-auth-meta-out {
	from { opacity: 1; transform: translateY(0); }
	to { opacity: 0; transform: translateY(-6px); }
}
@keyframes finanzas-auth-meta-in {
	from { opacity: 0; transform: translateY(6px); }
	to { opacity: 1; transform: translateY(0); }
}
body.finanzas-login form.finanzas-auth-leave {
	animation: finanzas-auth-out 0.22s ease forwards;
	pointer-events: none;
}
body.finanzas-login form.finanzas-auth-enter {
	animation: finanzas-auth-in 0.32s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
body.finanzas-login .panel-title.finanzas-auth-meta-leave,
body.finanzas-login .finanzas-login-subtitle.finanzas-auth-meta-leave,
body.finanzas-login .finanzas-login-switch.finanzas-auth-meta-leave {
	animation: finanzas-auth-meta-out 0.18s ease forwards;
}
body.finanzas-login .panel-title.finanzas-auth-meta-enter,
body.finanzas-login .finanzas-login-subtitle.finanzas-auth-meta-enter,
body.finanzas-login .finanzas-login-switch.finanzas-auth-meta-enter {
	animation: finanzas-auth-meta-in 0.28s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
@media (prefers-reduced-motion: reduce) {
	body.finanzas-login form.finanzas-auth-leave,
	body.finanzas-login form.finanzas-auth-enter,
	body.finanzas-login .panel-title.finanzas-auth-meta-leave,
	body.finanzas-login .finanzas-login-subtitle.finanzas-auth-meta-leave,
	body.finanzas-login .finanzas-login-switch.finanzas-auth-meta-leave,
	body.finanzas-login .panel-title.finanzas-auth-meta-enter,
	body.finanzas-login .finanzas-login-subtitle.finanzas-auth-meta-enter,
	body.finanzas-login .finanzas-login-switch.finanzas-auth-meta-enter {
		animation: none !important;
	}
}
body.finanzas-login .finanzas-login-field {
	position: relative;
	margin-bottom: 14px;
}
body.finanzas-login .finanzas-login-field-icon {
	position: absolute;
	left: 14px;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	color: #94a3b8;
	font-size: 15px;
	pointer-events: none;
	transition: color 0.2s ease;
}
body.finanzas-login .finanzas-login-field .form-control {
	height: 48px;
	padding-left: 42px;
	font-size: 14px;
	border-radius: 12px;
	border: 1.5px solid #e2e8f0;
	background: #f8fafc;
	box-shadow: none;
	transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}
body.finanzas-login .finanzas-login-field .form-control:focus {
	border-color: var(--gm-primario);
	background: #fff;
	box-shadow: 0 0 0 4px var(--gm-foco);
}
body.finanzas-login .finanzas-login-field:focus-within .finanzas-login-field-icon {
	color: var(--gm-primario);
}
body.finanzas-login .finanzas-login-row-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin: 2px 0 16px;
	flex-wrap: nowrap;
}
body.finanzas-login .finanzas-login-remember {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	border: none;
	background: transparent;
	color: #64748b;
	font-size: 12px;
	font-weight: 500;
	line-height: 1;
	cursor: pointer;
	user-select: none;
}
body.finanzas-login .finanzas-login-remember input[type="checkbox"] {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
	margin: 0;
	clip: rect(0, 0, 0, 0);
}
body.finanzas-login .finanzas-login-remember__switch {
	position: relative;
	display: inline-block;
	width: 34px;
	height: 20px;
	border-radius: 999px;
	background: #cbd5e1;
	flex-shrink: 0;
	transition: background 0.2s ease;
	box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.12);
}
body.finanzas-login .finanzas-login-remember__switch::after {
	content: "";
	position: absolute;
	top: 2px;
	left: 2px;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 1px 3px rgba(15, 23, 42, 0.22);
	transition: transform 0.2s ease;
}
body.finanzas-login .finanzas-login-remember:hover .finanzas-login-remember__switch {
	background: #94a3b8;
}
body.finanzas-login .finanzas-login-remember input[type="checkbox"]:checked + .finanzas-login-remember__switch {
	background: var(--gm-primario);
}
body.finanzas-login .finanzas-login-remember input[type="checkbox"]:checked + .finanzas-login-remember__switch::after {
	transform: translateX(14px);
}
body.finanzas-login .finanzas-login-remember input[type="checkbox"]:focus-visible + .finanzas-login-remember__switch {
	box-shadow: 0 0 0 3px var(--gm-foco);
}
body.finanzas-login .finanzas-login-remember input[type="checkbox"]:checked ~ .finanzas-login-remember__text {
	color: #065f46;
	font-weight: 600;
}
body.finanzas-login .finanzas-login-remember__text {
	white-space: nowrap;
}
body.finanzas-login .finanzas-login-forgot {
	font-size: 12px;
	font-weight: 600;
	color: var(--gm-primario);
	text-decoration: none;
	white-space: nowrap;
	flex-shrink: 0;
}
body.finanzas-login .finanzas-login-forgot:hover,
body.finanzas-login .finanzas-login-forgot:focus {
	color: var(--gm-primario-hover);
	text-decoration: underline;
}
body.finanzas-login .alert-danger {
	border-radius: 10px;
	border: 1px solid #fecaca;
	margin-bottom: 14px;
}
body.finanzas-login .alert-success {
	border-radius: 10px;
	border: 1px solid #bbf7d0;
	background: #ecfdf5;
	color: #065f46;
	margin-bottom: 14px;
}
body.finanzas-login .finanzas-login-switch {
	margin: 18px 0 0;
	text-align: center;
	font-size: 13px;
}
body.finanzas-login .finanzas-login-switch a {
	color: var(--gm-primario);
	font-weight: 600;
	text-decoration: none;
}
body.finanzas-login .finanzas-login-switch a:hover,
body.finanzas-login .finanzas-login-switch a:focus {
	color: var(--gm-primario-hover);
	text-decoration: underline;
}
body.finanzas-login .finanzas-login-submit {
	height: 48px;
	border-radius: 12px;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.01em;
	margin-top: 4px;
	border: none;
	background: linear-gradient(135deg, var(--gm-primario) 0%, #10b981 100%);
	box-shadow: 0 8px 20px rgba(5, 150, 105, 0.35);
	transition: transform 0.15s ease, box-shadow 0.2s ease, background 0.2s ease;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
}
body.finanzas-login .finanzas-login-submit:hover,
body.finanzas-login .finanzas-login-submit:focus {
	background: linear-gradient(135deg, var(--gm-primario-hover) 0%, #059669 100%);
	box-shadow: 0 12px 28px rgba(5, 150, 105, 0.42);
	transform: translateY(-1px);
	color: #fff;
}
body.finanzas-login .finanzas-login-submit:active {
	transform: translateY(0);
	box-shadow: 0 6px 16px rgba(5, 150, 105, 0.3);
}
body.finanzas-login .finanzas-login-footer {
	text-align: center;
	margin: 18px 0 0;
	font-size: 12px;
	color: rgba(255, 255, 255, 0.72);
}
@media (max-width: 991px) {
	body.finanzas-login .finanzas-login-split {
		min-height: 0;
		flex-direction: column;
	}
	body.finanzas-login .finanzas-login-form-col {
		flex: 1 1 auto;
		width: 100%;
		max-width: 100%;
	}
	body.finanzas-login .finanzas-login-carousel {
		display: none;
	}
	body.finanzas-login .finanzas-login-wrap > .row > [class*="col-"] {
		float: none;
		width: 100%;
		max-width: 420px;
		margin-left: auto;
		margin-right: auto;
	}
}
@media (max-width: 767px) {
	html:has(body.finanzas-login),
	html.finanzas-login-page {
		height: 100%;
		overflow: hidden;
		overscroll-behavior: none;
		background: #064e3b;
	}
	body.finanzas-login {
		position: fixed;
		inset: 0;
		width: 100%;
		height: 100%;
		height: 100dvh;
		min-height: 0;
		max-height: 100dvh;
		overflow: hidden;
		overscroll-behavior: none;
		touch-action: manipulation;
		/* Gradiente vertical estático: evita bandas/corte feo abajo en mobile */
		background: linear-gradient(180deg, #059669 0%, #047857 42%, #065f46 72%, #064e3b 100%);
		background-size: 100% 100%;
		animation: none;
	}
	body.finanzas-login .finanzas-login-bg {
		/* Capa suave sin orbs recortados que forman una franja al fondo */
		background:
			radial-gradient(ellipse 90% 55% at 80% -10%, rgba(52, 211, 153, 0.35) 0%, transparent 70%),
			radial-gradient(ellipse 70% 45% at 10% 100%, rgba(16, 185, 129, 0.18) 0%, transparent 65%);
	}
	body.finanzas-login .finanzas-login-orb {
		display: none;
	}
	body.finanzas-login .finanzas-login-wrap {
		height: 100%;
		max-height: 100dvh;
		overflow: hidden;
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: stretch;
		padding: max(12px, env(safe-area-inset-top)) 15px max(16px, env(safe-area-inset-bottom));
		box-sizing: border-box;
	}
	body.finanzas-login .finanzas-login-wrap > .row {
		width: 100%;
		margin: 0;
		flex: 0 1 auto;
		max-height: 100%;
		overflow: hidden;
	}
	body.finanzas-login .finanzas-login-wrap > .row > [class*="col-"] {
		float: none;
		width: 100%;
		max-width: 100%;
		padding-left: 0;
		padding-right: 0;
	}
	body.finanzas-login .login-panel .panel-heading {
		padding: 20px 20px 6px;
	}
	body.finanzas-login .login-panel .panel-body {
		padding: 16px 20px 22px;
	}
	body.finanzas-login .finanzas-login-logo {
		width: 52px;
		height: 52px;
	}
	body.finanzas-login .login-panel .panel-title {
		font-size: 20px;
	}
	body.finanzas-login .finanzas-login-footer {
		margin: 14px 0 0;
		flex-shrink: 0;
		color: rgba(255, 255, 255, 0.55);
		text-shadow: none;
	}
	/* Registro tiene más campos: permitir scroll en el panel */
	body.finanzas-login.finanzas-login--registro {
		overflow: auto;
		position: relative;
		height: auto;
		min-height: 100dvh;
		max-height: none;
	}
	html.finanzas-login-page--registro {
		overflow: auto;
		height: auto;
	}
	body.finanzas-login.finanzas-login--registro .finanzas-login-wrap {
		height: auto;
		max-height: none;
		overflow: visible;
		justify-content: flex-start;
		padding-top: max(20px, env(safe-area-inset-top));
		padding-bottom: max(24px, env(safe-area-inset-bottom));
	}
	body.finanzas-login.finanzas-login--registro .finanzas-login-wrap > .row {
		max-height: none;
		overflow: visible;
	}
}
@media (min-width: 992px) and (max-width: 1199px) {
	body.finanzas-login .finanzas-login-wrap > .row > [class*="col-"] {
		max-width: 820px;
	}
	body.finanzas-login .finanzas-login-form-col {
		flex-basis: 300px;
		width: 300px;
		max-width: 300px;
	}
	body.finanzas-login .finanzas-login-carousel__title {
		font-size: 16px;
	}
	body.finanzas-login .finanzas-login-carousel__desc {
		font-size: 12px;
	}
}
@media (max-width: 480px) {
	body.finanzas-login .login-panel .panel-heading,
	body.finanzas-login .login-panel .panel-body {
		padding-left: 20px;
		padding-right: 20px;
	}
}

/* =========================================================
   11. Detalles varios + spinner de carga
   ========================================================= */
@keyframes finanzas-spin {
	to {
		transform: rotate(360deg);
	}
}

.loader {
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(248, 250, 252, 0.9);
	opacity: 1;
	border-radius: 0;
}

.loader::after {
	content: "";
	display: block;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 3px solid var(--gm-primario-suave);
	border-top-color: var(--gm-primario);
	border-right-color: var(--gm-primario);
	animation: finanzas-spin 0.72s cubic-bezier(0.55, 0.15, 0.45, 0.85) infinite;
	box-shadow: 0 4px 20px rgba(5, 150, 105, 0.14);
}

.finanzas-spinner {
	display: inline-block;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: 3px solid var(--gm-primario-suave);
	border-top-color: var(--gm-primario);
	border-right-color: var(--gm-primario);
	animation: finanzas-spin 0.72s cubic-bezier(0.55, 0.15, 0.45, 0.85) infinite;
	box-shadow: 0 2px 12px rgba(5, 150, 105, 0.12);
	vertical-align: middle;
}

.ajax-loader {
	display: inline-block;
	width: 28px !important;
	height: 28px;
	min-width: 28px;
	vertical-align: middle;
	background: none !important;
	position: relative;
}

.ajax-loader::after {
	content: "";
	position: absolute;
	inset: 3px;
	border-radius: 50%;
	border: 2px solid var(--gm-primario-suave);
	border-top-color: var(--gm-primario);
	border-right-color: var(--gm-primario);
	animation: finanzas-spin 0.65s linear infinite;
}

.grafica-google:empty {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--gm-superficie-2);
}

/* Evita el parpadeo del tooltip de Google Charts al quedar el mouse sobre la etiqueta */
.google-visualization-tooltip,
svg g.google-visualization-tooltip {
	pointer-events: none !important;
}

.grafica-google:empty::after {
	content: "";
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: 3px solid var(--gm-primario-suave);
	border-top-color: var(--gm-primario);
	border-right-color: var(--gm-primario);
	animation: finanzas-spin 0.72s cubic-bezier(0.55, 0.15, 0.45, 0.85) infinite;
	box-shadow: 0 2px 12px rgba(5, 150, 105, 0.1);
}

html[data-finanzas-estilo="oscuro"] .loader {
	background: rgba(26, 29, 35, 0.92);
}

html[data-finanzas-estilo="oscuro"] .loader::after,
html[data-finanzas-estilo="oscuro"] #contenido.finanzas-contenido-cargando::after,
html[data-finanzas-estilo="oscuro"] .finanzas-spinner,
html[data-finanzas-estilo="oscuro"] .grafica-google:empty::after {
	border-color: rgba(52, 211, 153, 0.18);
	border-top-color: #34d399;
	border-right-color: #34d399;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.28);
}

html[data-finanzas-estilo="oscuro"] .ajax-loader::after {
	border-color: rgba(52, 211, 153, 0.18);
	border-top-color: #34d399;
	border-right-color: #34d399;
}

/* Indicador de carga local (navegación por menú, sin overlay a pantalla completa) */
#contenido.finanzas-contenido-cargando {
	position: relative;
}
#contenido.finanzas-contenido-cargando > * {
	opacity: 0.45;
	transition: opacity 0.18s ease;
}
#contenido.finanzas-contenido-cargando::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(248, 250, 252, 0.6);
	z-index: 100;
	pointer-events: all;
	transition: opacity 0.18s ease;
}
#contenido.finanzas-contenido-cargando::after {
	content: "";
	position: absolute;
	top: 40%;
	left: 50%;
	width: 40px;
	height: 40px;
	margin: -20px 0 0 -20px;
	border-radius: 50%;
	border: 3px solid var(--gm-primario-suave);
	border-top-color: var(--gm-primario);
	border-right-color: var(--gm-primario);
	animation: finanzas-spin 0.72s cubic-bezier(0.55, 0.15, 0.45, 0.85) infinite;
	box-shadow: 0 4px 16px rgba(5, 150, 105, 0.12);
	z-index: 101;
	pointer-events: none;
	background: none;
}
html[data-finanzas-estilo="oscuro"] #contenido.finanzas-contenido-cargando::before {
	background: rgba(26, 29, 35, 0.55);
}

/* Sin animación de entrada al cambiar de sección (evita ghosting / “efecto raro”) */
#contenido.finanzas-contenido-entrando {
	animation: none;
}
@media (prefers-reduced-motion: reduce) {
	#contenido.finanzas-contenido-cargando > * {
		transition: none;
	}
	.finanzas-listado-heading__right.finanzas-dt-toolbar-ready {
		transition: none;
	}
	.loader::after,
	#contenido.finanzas-contenido-cargando::after,
	.finanzas-spinner,
	.ajax-loader::after,
	.grafica-google:empty::after,
	.dataTables_wrapper .dataTables_processing {
		animation: none;
		border-top-color: var(--gm-primario);
		border-right-color: var(--gm-primario);
		opacity: 0.85;
	}
}

/* DataTables: un solo spinner centrado (sin barra 100% / gradiente del vendor) */
.dataTables_wrapper .dataTables_processing {
	position: absolute !important;
	top: 50% !important;
	left: 50% !important;
	z-index: 120;
	box-sizing: border-box !important;
	width: 40px !important;
	min-width: 40px !important;
	max-width: 40px !important;
	height: 40px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 3px solid var(--gm-primario-suave) !important;
	border-top-color: var(--gm-primario) !important;
	border-right-color: var(--gm-primario) !important;
	border-radius: 50% !important;
	background: transparent !important;
	background-image: none !important;
	box-shadow: none !important;
	color: transparent !important;
	font-size: 0 !important;
	line-height: 0 !important;
	overflow: hidden;
	text-indent: -9999px;
	transform: translate(-50%, -50%);
	animation: finanzas-spin 0.72s cubic-bezier(0.55, 0.15, 0.45, 0.85) infinite;
	pointer-events: none;
}
.dataTables_wrapper .dataTables_processing::before,
.dataTables_wrapper .dataTables_processing::after {
	content: none !important;
	display: none !important;
}
/* Evitar flash fuerte de filas vacías mientras llega el AJAX */
.dataTables_wrapper.processing table.dataTable tbody {
	opacity: 0.35;
	transition: opacity 0.15s ease;
}
.finanzas-dt-responsive,
.dataTables_wrapper {
	position: relative;
}

/* Tarjetas de gráficas sueltas (informes) */
#contenido .inputs-google {
	border-radius: var(--gm-radio);
	border-color: var(--gm-borde);
	box-shadow: var(--gm-sombra-sm);
}

/* Cabecera del formulario: título a la izquierda, Guardar/Volver a la derecha */
.finanzas-formulario-heading {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 12px;
	font-weight: 600;
}
.finanzas-formulario-heading__left {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	flex: 0 1 auto;
	min-width: 0;
}
.finanzas-form-etiquetas {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 10px;
	margin-left: 12px;
	font-weight: 500;
}
.finanzas-form-etiqueta {
	font-size: 11px;
	font-weight: 600;
	padding: 0.32em 0.75em;
	border-radius: 999px;
	letter-spacing: 0.01em;
	vertical-align: middle;
}
.finanzas-formulario-heading__left > b {
	margin-right: 6px;
	white-space: nowrap;
}
.finanzas-formulario-heading__right {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 6px 8px;
	flex: 1 1 auto;
	margin-left: auto;
	min-width: 0;
}
.finanzas-formulario-heading__right .btn {
	font-weight: 500;
}
.finanzas-form-confidencial {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-right: 4px;
	font-weight: 500;
	font-size: 13px;
	white-space: nowrap;
	cursor: pointer;
	user-select: none;
}
.finanzas-form-confidencial input {
	margin: 0;
	cursor: pointer;
}

/* Barra fija bajo el navbar al hacer scroll en formularios */
@keyframes finanzas-form-bar-in {
	from {
		opacity: 0;
		transform: translateY(-14px) scale(0.97);
	}
	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}
@keyframes finanzas-form-bar-out {
	from {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
	to {
		opacity: 0;
		transform: translateY(-10px) scale(0.98);
	}
}
.finanzas-form-acciones-fijas {
	position: fixed;
	top: 0;
	z-index: 1028;
	padding: 8px 16px 10px;
	background-color: color-mix(in srgb, var(--gm-superficie) 7%, transparent);
	-webkit-backdrop-filter: blur(3px);
	backdrop-filter: blur(3px);
	border-bottom: 1px solid color-mix(in srgb, var(--gm-borde) 10%, transparent);
	border-bottom-left-radius: var(--gm-radio-lg);
	border-bottom-right-radius: var(--gm-radio-lg);
	box-shadow: 0 2px 10px rgba(15, 23, 42, 0.03);
	overflow: hidden;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(-14px) scale(0.97);
	transition: visibility 0s linear 0.32s;
}
.finanzas-form-acciones-fijas.is-visible {
	visibility: visible;
	pointer-events: auto;
	animation: finanzas-form-bar-in 0.38s cubic-bezier(0.22, 1, 0.36, 1) forwards;
	transition: visibility 0s;
}
.finanzas-form-acciones-fijas.is-hiding {
	animation: finanzas-form-bar-out 0.28s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}
.finanzas-form-acciones-fijas__inner {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px 10px;
	max-width: 100%;
}
.finanzas-form-acciones-fijas__inner .btn {
	font-weight: 500;
	min-width: 110px;
}

/* Cabecera del listado: acciones a la izquierda, buscar/exportar a la derecha */
.finanzas-listado-heading {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 12px;
	font-weight: 600;
}
.finanzas-listado-heading__left {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	flex: 0 1 auto;
}
.finanzas-listado-heading__right {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 6px 8px;
	flex: 1 1 auto;
	margin-left: auto;
	min-width: 0;
}
.finanzas-listado-heading__right .dataTables_filter,
.finanzas-listado-heading__right div.dt-buttons {
	float: none;
	text-align: left;
	margin: 0;
}
.finanzas-listado-heading__right .dataTables_filter label {
	margin: 0;
	display: flex;
	align-items: center;
	gap: 6px;
	font-weight: 400;
	white-space: nowrap;
}
.finanzas-listado-heading__right .dataTables_filter input {
	margin-left: 0;
}
.finanzas-listado-heading__right div.dt-buttons .btn,
.finanzas-listado-heading__right div.dt-buttons .dt-button {
	margin-right: 0;
}
.finanzas-listado-heading__right div.dt-buttons .dt-button span {
	display: inline-block;
	line-height: 1;
}
.panel-heading .btn-circle {
	margin-top: -4px;
	margin-bottom: -4px;
}

/* Botón Listar: siempre azul (no usa el primario del tema) */
.finanzas-listado-heading .finanzas-btn-listar,
.panel-heading .finanzas-btn-listar,
button.finanzas-btn-listar.btn-circle {
	background-color: #2563eb !important;
	border-color: #2563eb !important;
	color: #fff !important;
}
.finanzas-listado-heading .finanzas-btn-listar:hover,
.finanzas-listado-heading .finanzas-btn-listar:focus,
.panel-heading .finanzas-btn-listar:hover,
.panel-heading .finanzas-btn-listar:focus,
button.finanzas-btn-listar.btn-circle:hover,
button.finanzas-btn-listar.btn-circle:focus {
	background-color: #1d4ed8 !important;
	border-color: #1d4ed8 !important;
	color: #fff !important;
}

/* Campos de perfil solo lectura */
.finanzas-perfil-readonly {
	background-color: var(--gm-superficie-2) !important;
}

/* CRM — Bandejas de tickets */
.crm-bandejas-wrap {
	padding: 0 0 8px;
}
.crm-bandejas-filtro {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 16px;
}
.crm-bandejas-filtro label {
	margin: 0;
	font-weight: 600;
	color: var(--gm-texto);
}
.crm-bandejas-filtro select {
	max-width: 280px;
	border-radius: 8px;
}
.crm-bandejas-titulo {
	margin: 0 0 12px;
	font-weight: 600;
	color: var(--gm-texto);
}
.crm-bandejas-botones {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 18px;
}
.crm-bandeja-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 14px;
	border: 1px solid var(--gm-borde);
	border-radius: 10px;
	background: var(--gm-superficie);
	color: var(--gm-texto);
	font-size: 13px;
	font-weight: 500;
	cursor: pointer;
	transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}
.crm-bandeja-btn:hover {
	border-color: var(--gm-primario);
	background: var(--gm-primario-suave);
}
.crm-bandeja-btn--activo,
.crm-bandeja-btn--activo:hover {
	background: var(--gm-primario);
	border-color: var(--gm-primario);
	color: #fff;
	box-shadow: 0 2px 8px rgba(5, 150, 105, 0.25);
}
.crm-bandeja-btn--activo .crm-bandeja-btn__badge {
	background: rgba(255, 255, 255, 0.25);
	color: #fff;
}
.crm-bandeja-btn__label {
	white-space: nowrap;
}
.crm-bandeja-btn__tag {
	font-size: 10px;
	text-transform: uppercase;
	opacity: 0.75;
	letter-spacing: 0.03em;
}
.crm-bandeja-btn__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	padding: 0 6px;
	border-radius: 999px;
	background: var(--gm-superficie-2);
	font-size: 12px;
	font-weight: 600;
}
.crm-bandejas-panel {
	border-radius: 12px;
	overflow: hidden;
	border-color: var(--gm-borde);
}
.crm-bandejas-tabla {
	margin-bottom: 0 !important;
}
.crm-bandejas-tabla thead th {
	background: #dbeafe !important;
	color: #1e40af !important;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	border-bottom: 1px solid #bfdbfe !important;
	white-space: nowrap;
}
.crm-bandejas-tabla tbody tr {
	cursor: pointer;
}
.crm-bandejas-tabla tbody tr:hover {
	background: var(--gm-primario-suave) !important;
}
.crm-col-prioridad {
	width: 28px;
	padding-left: 8px !important;
	padding-right: 8px !important;
}
.crm-prioridad-dot {
	display: inline-block;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	vertical-align: middle;
}
.crm-estado-pill {
	display: inline-block;
	padding: 2px 8px;
	border-radius: 6px;
	color: #fff;
	font-size: 11px;
	font-weight: 600;
	white-space: nowrap;
}
.crm-col-texto {
	max-width: 220px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.crm-bandejas-tabla + .dataTables_wrapper .dataTables_info,
.crm-bandejas-panel .dataTables_info {
	padding: 10px 12px;
	font-size: 12px;
	color: var(--gm-texto-suave);
}
.crm-bandejas-panel .dataTables_paginate {
	padding: 8px 12px 12px;
}
@media (max-width: 768px) {
	.crm-bandejas-botones {
		gap: 6px;
	}
	.crm-bandeja-btn {
		padding: 7px 10px;
		font-size: 12px;
	}
}

/* CRM — Tablero Kanban de tickets */
.crm-kanban-wrap {
	padding: 0 0 12px;
}
.crm-kanban-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 16px;
}
.crm-kanban-filtro {
	display: flex;
	align-items: center;
	gap: 10px;
}
.crm-kanban-filtro label {
	margin: 0;
	font-weight: 600;
}
.crm-kanban-filtro select {
	max-width: 280px;
	border-radius: 8px;
}
.crm-kanban-toolbar__acciones {
	display: flex;
	gap: 8px;
}
.crm-kanban-board {
	display: flex;
	gap: 14px;
	overflow-x: auto;
	padding-bottom: 8px;
	min-height: 420px;
	align-items: flex-start;
}
.crm-kanban-loading {
	padding: 40px;
	text-align: center;
	width: 100%;
}
.crm-kanban-column {
	flex: 0 0 280px;
	max-width: 280px;
	background: var(--gm-superficie-2);
	border: 1px solid var(--gm-borde);
	border-radius: 12px;
	display: flex;
	flex-direction: column;
	max-height: calc(100vh - 220px);
}
.crm-kanban-column__header {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 12px 14px;
	border-top: 4px solid var(--gm-primario);
	border-radius: 12px 12px 0 0;
	background: var(--gm-superficie);
	font-weight: 600;
	font-size: 13px;
}
.crm-kanban-column__titulo {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.crm-kanban-column__tag {
	font-size: 10px;
	text-transform: uppercase;
	opacity: 0.7;
}
.crm-kanban-column__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	padding: 0 6px;
	border-radius: 999px;
	background: var(--gm-superficie-2);
	font-size: 12px;
	font-weight: 700;
}
.crm-kanban-column__body {
	flex: 1;
	overflow-y: auto;
	padding: 10px;
	min-height: 80px;
	transition: background 0.15s ease;
}
.crm-kanban-column__body--hover {
	background: var(--gm-primario-suave);
}
.crm-kanban-drop-indicator {
	height: 3px;
	margin: 4px 0;
	border-radius: 2px;
	background: var(--gm-primario);
	box-shadow: 0 0 0 2px var(--gm-primario-suave);
	pointer-events: none;
}
.crm-kanban-column__vacio {
	font-size: 12px;
	text-align: center;
	padding: 20px 8px;
}
.crm-kanban-card {
	background: var(--gm-superficie);
	border: 1px solid var(--gm-borde);
	border-radius: 10px;
	padding: 10px 12px;
	margin-bottom: 10px;
	cursor: pointer;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
	transition: box-shadow 0.15s ease, transform 0.15s ease, opacity 0.15s ease;
}
.crm-kanban-card:hover {
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
	transform: translateY(-1px);
}
.crm-kanban-card--dragging {
	opacity: 0.45;
}
.crm-kanban-card--final {
	cursor: grab;
	opacity: 0.92;
}
.crm-kanban-card--final:active {
	cursor: grabbing;
}
.crm-kanban-card__top {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 6px;
}
.crm-kanban-card__prioridad {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	flex-shrink: 0;
}
.crm-kanban-card__num {
	font-size: 11px;
	color: var(--gm-texto-suave);
	font-weight: 600;
}
.crm-kanban-card__titulo {
	font-size: 13px;
	font-weight: 600;
	line-height: 1.35;
	margin-bottom: 4px;
	word-break: break-word;
}
.crm-kanban-card__desc {
	font-size: 12px;
	color: var(--gm-texto-suave);
	line-height: 1.4;
	margin-bottom: 8px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.crm-kanban-card__meta {
	display: flex;
	flex-direction: column;
	gap: 3px;
	font-size: 11px;
	color: var(--gm-texto-suave);
}
.crm-kanban-card__meta span {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.crm-kanban-card__meta i {
	margin-right: 4px;
	opacity: 0.75;
}
.crm-kanban-popup-historial {
	border-top: 1px solid var(--gm-borde);
	margin-top: 4px;
}
/* Menú contextual en filas de listados (clic derecho) */
.finanzas-listado-contextmenu {
	position: absolute;
	z-index: 10050;
	min-width: 180px;
	padding: 6px 0;
	background: var(--gm-superficie);
	border: 1px solid var(--gm-borde);
	border-radius: var(--gm-radio);
	box-shadow: var(--gm-sombra-lg);
	display: none;
}

.finanzas-listado-contextmenu__item {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	padding: 8px 14px;
	border: 0;
	background: transparent;
	text-align: left;
	font-size: 13px;
	color: var(--gm-texto);
	cursor: pointer;
	line-height: 1.3;
}

.finanzas-listado-contextmenu__item i {
	width: 16px;
	text-align: center;
	font-size: 14px;
	opacity: 0.85;
}

.finanzas-listado-contextmenu__item:hover,
.finanzas-listado-contextmenu__item:focus {
	outline: none;
	background: var(--gm-fila-hover);
}

.finanzas-listado-contextmenu__item--primary i {
	color: var(--gm-primario);
}

.finanzas-listado-contextmenu__item--danger i {
	color: #dc2626;
}

.finanzas-listado-contextmenu__item--warning i {
	color: #d97706;
}

.finanzas-listado-contextmenu__item--success i {
	color: #16a34a;
}

.finanzas-contextmenu-only {
	display: none !important;
}

.finanzas-listado-row-context > td {
	background: var(--gm-primario-suave) !important;
}

#side-menu a.finanzas-menu-item-context {
	background: var(--gm-primario-suave);
}

@media (max-width: 768px) {
	.crm-kanban-column {
		flex: 0 0 260px;
		max-width: 260px;
	}
}

/* =========================================================
   Liquidación de Impuestos — responsive
   ========================================================= */
.lim-vista-selector {
	margin-left: 8px;
	vertical-align: middle;
}

/* Etiquetas duales (legado): ocultar móvil en desktop para no concatenar textos */
.lim-btn-label--mobile {
	display: none !important;
}
.lim-btn-label--desktop {
	display: inline;
}

@media (max-width: 767px) {
	.lim-panel-heading,
	.limr-panel-heading,
	.limg-panel-heading {
		flex-direction: column;
		align-items: stretch;
		gap: 6px;
	}
	.lim-panel-heading-title,
	.limr-panel-heading-title,
	.limg-panel-heading-title {
		width: 100%;
		flex: none;
	}
	.lim-panel-heading-title > b,
	.limr-panel-heading-title > b,
	.limg-panel-heading-title > b {
		display: block;
		font-size: 15px;
		line-height: 1.35;
		word-break: break-word;
	}
	.lim-btn-label--desktop {
		display: none !important;
	}
	.lim-btn-label--mobile {
		display: inline !important;
	}
	.lim-toolbar {
		width: 100%;
		flex: none;
		flex-direction: column;
		align-items: stretch;
		justify-content: flex-start;
		gap: 6px;
	}
	.lim-toolbar-sep {
		display: none !important;
	}
	.lim-toolbar-group {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: 4px;
		width: 100%;
	}
	.lim-toolbar-group-workflow {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 4px;
	}
	.lim-toolbar-group-workflow .btn {
		width: 100%;
		margin: 0;
	}
	.lim-toolbar-group-docs .btn,
	.lim-toolbar-group-calc-detail .btn {
		flex: 0 0 auto;
		width: auto;
		min-width: 34px;
		padding: 6px 10px;
		font-size: 0;
	}
	.lim-toolbar-group-docs .btn .fa,
	.lim-toolbar-group-calc-detail .btn .fa {
		margin-right: 0;
		font-size: 14px;
	}
	.lim-toolbar-group-docs .lim-btn-label--desktop,
	.lim-toolbar-group-docs .lim-btn-label--mobile {
		display: none;
	}
	.lim-toolbar-group-state .btn {
		flex: 0 0 auto;
		width: auto;
	}
	.lim-toolbar-group-nav {
		display: flex;
		flex-wrap: nowrap;
		align-items: center;
		justify-content: space-between;
		gap: 8px;
		margin-top: 2px;
		padding-top: 6px;
		border-top: 1px solid #e8e8e8;
	}
	.lim-toolbar-group-nav .btn {
		flex: 0 0 auto;
		width: auto;
		min-width: 0;
	}
	.lim-vista-selector {
		margin-left: 0 !important;
		flex: 0 0 auto;
	}
	.lim-vista-selector .btn {
		padding: 5px 8px;
	}
	.lim-toolbar .btn.btn-xs {
		min-height: 0;
		height: auto;
		padding: 6px 10px;
		font-size: 12px;
		line-height: 1.25;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: 4px;
		white-space: nowrap;
		text-align: center;
	}
	.lim-toolbar-group-docs .btn.btn-xs,
	.lim-toolbar-group-calc-detail .btn.btn-xs {
		font-size: 0;
	}
	.lim-form-section {
		padding: 12px 12px 4px;
	}
	.lim-form-section-title {
		font-size: 14px;
	}
	.lim-form-field label {
		font-size: 13px;
	}
	table.lim-resultado-tabla {
		display: block;
		width: 100%;
		max-width: none;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
	.lim-resultado-leyenda {
		max-width: none;
		font-size: 11px;
	}
	.limr-panel .panel-heading,
	.limg-panel .panel-heading,
	.lim-panel-heading {
		padding: 10px 12px;
	}
	.limr-panel .panel-body,
	.limg-panel .panel-body,
	#contenido .panel-default > .panel-body {
		padding-left: 12px;
		padding-right: 12px;
	}
	.limr-estado-badge {
		display: inline-block;
		margin: 4px 0 0;
	}
	.limr-kpi-row {
		gap: 8px;
	}
	.limr-kpi {
		flex: 1 1 calc(50% - 4px);
		min-width: 0;
	}
}

@media (max-width: 480px) {
	.limr-kpi {
		flex: 1 1 100%;
	}
}

/* =========================================================
   12. Inputs date/time — corrección iOS / WebKit
   Bootstrap 3 fuerza line-height:34px en date; con height fijo
   (32px) + font-size 16px mobile el valor se recorta y se ve mal.
   ========================================================= */
input[type="date"].form-control,
input[type="time"].form-control,
input[type="datetime-local"].form-control,
input[type="month"].form-control,
input[type="week"].form-control {
	display: block;
	width: 100%;
	max-width: 100%;
	min-height: 34px;
	height: auto;
	line-height: normal !important;
	padding: 6px 10px;
	box-sizing: border-box;
	-webkit-appearance: none;
	appearance: none;
	background-color: var(--gm-superficie, #fff);
	color: var(--gm-texto, #1f2937);
}

/* Anula el hack WebKit de Bootstrap 3 (line-height = height) */
@media screen and (-webkit-min-device-pixel-ratio: 0) {
	input[type="date"].form-control,
	input[type="time"].form-control,
	input[type="datetime-local"].form-control,
	input[type="month"].form-control,
	input[type="week"].form-control,
	input[type="date"].input-sm,
	input[type="time"].input-sm,
	input[type="datetime-local"].input-sm,
	input[type="month"].input-sm,
	.input-group-sm input[type="date"],
	.input-group-sm input[type="time"],
	.input-group-sm input[type="datetime-local"],
	.input-group-sm input[type="month"],
	input[type="date"].input-lg,
	input[type="time"].input-lg,
	input[type="datetime-local"].input-lg,
	input[type="month"].input-lg,
	.input-group-lg input[type="date"],
	.input-group-lg input[type="time"],
	.input-group-lg input[type="datetime-local"],
	.input-group-lg input[type="month"] {
		line-height: normal !important;
	}
}

input[type="date"].form-control::-webkit-datetime-edit,
input[type="time"].form-control::-webkit-datetime-edit,
input[type="datetime-local"].form-control::-webkit-datetime-edit,
input[type="month"].form-control::-webkit-datetime-edit {
	display: inline-flex;
	align-items: center;
	padding: 0;
	line-height: 1.25;
	min-height: 1.25em;
}
input[type="date"].form-control::-webkit-datetime-edit-fields-wrapper,
input[type="time"].form-control::-webkit-datetime-edit-fields-wrapper,
input[type="datetime-local"].form-control::-webkit-datetime-edit-fields-wrapper {
	padding: 0;
}
input[type="date"].form-control::-webkit-calendar-picker-indicator,
input[type="time"].form-control::-webkit-calendar-picker-indicator,
input[type="datetime-local"].form-control::-webkit-calendar-picker-indicator,
input[type="month"].form-control::-webkit-calendar-picker-indicator {
	opacity: 0.65;
	cursor: pointer;
	margin-left: 4px;
	padding: 2px;
}

/* iOS Safari / WebKit táctil: altura táctil y tipografía legible */
@supports (-webkit-touch-callout: none) {
	input[type="date"],
	input[type="time"],
	input[type="datetime-local"],
	input[type="month"],
	input[type="week"],
	input[type="date"].form-control,
	input[type="time"].form-control,
	input[type="datetime-local"].form-control,
	input[type="month"].form-control,
	input[type="week"].form-control {
		min-height: 44px !important;
		height: auto !important;
		line-height: normal !important;
		font-size: 16px !important;
		padding: 10px 12px !important;
		border-radius: 8px;
	}
}

/* =========================================================
   13. Mobile: zoom-safe inputs + layout responsive app
   ========================================================= */
@media screen and (max-width: 767px) {
	input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]),
	select,
	textarea,
	.form-control,
	.finanzas-global-search-input,
	.finanzas-menu-filter-input,
	.dataTables_wrapper .dataTables_filter input,
	.finanzas-listado-heading__right .dataTables_filter input {
		font-size: 16px !important;
	}

	/* Date/time: no pelear con height fijo de toolbars/filtros */
	input[type="date"],
	input[type="time"],
	input[type="datetime-local"],
	input[type="month"],
	input[type="week"],
	input[type="date"].form-control,
	input[type="time"].form-control,
	input[type="datetime-local"].form-control,
	input[type="month"].form-control {
		min-height: 44px !important;
		height: auto !important;
		line-height: normal !important;
		padding-top: 10px !important;
		padding-bottom: 10px !important;
	}

	/* Notificaciones: no desbordar pantallas estrechas */
	.finanzas-notif-menu,
	.dropdown-alerts,
	.dropdown-messages,
	.dropdown-tasks {
		min-width: 0 !important;
		width: min(340px, calc(100vw - 16px)) !important;
		max-width: calc(100vw - 16px) !important;
		left: auto !important;
		right: 8px !important;
	}

	/* Listados: cabecera apilada */
	.finanzas-listado-heading {
		align-items: stretch;
		gap: 10px;
	}
	.finanzas-listado-heading__left,
	.finanzas-listado-heading__right {
		flex: 1 1 100%;
		justify-content: flex-start;
		margin-left: 0;
	}
	.finanzas-listado-heading__right {
		justify-content: flex-start;
	}
	.finanzas-listado-heading__right .dataTables_filter,
	.finanzas-listado-heading__right .dataTables_filter label {
		display: block;
		width: 100%;
		margin: 0;
	}
	.finanzas-listado-heading__right .dataTables_filter input {
		width: 100% !important;
		max-width: 100%;
		box-sizing: border-box;
		margin-left: 0 !important;
	}

	/* Formularios: título + barra de acciones */
	.finanzas-formulario-heading__left > b {
		white-space: normal;
	}
	.finanzas-form-acciones-fijas {
		padding-left: max(10px, env(safe-area-inset-left));
		padding-right: max(10px, env(safe-area-inset-right));
	}
	.finanzas-form-acciones-fijas__inner .btn {
		min-width: 0;
		flex: 1 1 auto;
	}

	/* Modales anchos (framework 80%) */
	.modal-dialog {
		width: auto !important;
		min-width: 0 !important;
		max-width: calc(100% - 20px);
		margin: 10px auto;
	}
	.modal-dialog.modal-lg {
		width: auto !important;
		min-width: 0 !important;
	}

	/* Tabs horizontales con scroll (movimientos, gastos compartidos) */
	.fin-mov-tabs,
	.fgc-tabs,
	.nav-tabs {
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}
	.fin-mov-tabs::-webkit-scrollbar,
	.fgc-tabs::-webkit-scrollbar,
	.nav-tabs::-webkit-scrollbar {
		display: none;
	}
	.fin-mov-tabs .nav-tabs,
	.fgc-tabs .nav-tabs {
		display: flex;
		flex-wrap: nowrap;
		white-space: nowrap;
		min-width: max-content;
	}
	.fin-mov-tabs .nav-tabs > li,
	.fgc-tabs .nav-tabs > li {
		float: none;
		flex: 0 0 auto;
	}

	/* Filtros / toolbars compactos de módulos finanzas */
	.fin-inf-filtros,
	.aud-filtros,
	.fma-toolbar,
	.fgc-form-grid,
	.fma-form-grid {
		gap: 10px;
	}
	.fin-inf-filtros .form-group,
	.aud-filtros .form-group,
	.fma-toolbar .form-group {
		flex: 1 1 100%;
		min-width: 0;
		width: 100%;
	}
	.fin-inf-filtros .form-control,
	.fin-inf-filtros .form-control--wide,
	.aud-filtros .form-control,
	.aud-filtros .form-control--wide,
	.fma-toolbar .form-control,
	.fgc-form-grid .form-control,
	.fma-form-grid .form-control,
	.fgc-parts-table .form-control {
		min-width: 0 !important;
		width: 100% !important;
		max-width: 100%;
		height: auto !important;
		min-height: 44px;
		box-sizing: border-box;
	}
	.fin-inf-filtros .btn,
	.aud-filtros .btn,
	.fma-toolbar .btn {
		height: auto;
		min-height: 44px;
		width: 100%;
	}
	.fin-inf-presets {
		width: 100%;
	}
	.fin-inf-presets .btn {
		flex: 1 1 auto;
		min-height: 36px;
	}

	/* KPIs / grids: 2 columnas en móvil estrecho */
	.fin-inf-wrap .dash-kpis,
	.dash-global-wrap .dash-kpis,
	.aud-wrap .dash-kpis,
	.fgc-kpis,
	.fma-kpis {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 8px;
	}
	.fin-inf-wrap .dash-kpi .val,
	.dash-global-wrap .dash-kpi .val,
	.aud-wrap .dash-kpi .val,
	.fgc-kpi .val,
	.fma-kpi .val {
		font-size: 17px;
		word-break: break-word;
	}
	.aud-wrap .dash-bar-label {
		flex: 0 0 96px;
	}
	.fpc-grid {
		grid-template-columns: 1fr !important;
	}

	/* Tablas custom: scroll horizontal táctil */
	.fin-inf-card-body,
	.fgc-card-body,
	.fma-card-body,
	.aud-wrap .dash-card-body,
	.dash-global-wrap .dash-card-body {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
	.fin-inf-table,
	.fgc-table,
	.fma-table,
	.dash-global-wrap .dash-mini-table {
		min-width: 480px;
	}

	/* Contenido: padding seguro en notch / home indicator */
	#page-wrapper {
		padding-left: max(10px, env(safe-area-inset-left));
		padding-right: max(10px, env(safe-area-inset-right));
		padding-bottom: max(12px, env(safe-area-inset-bottom));
	}
	#wrapper #finanzas-app-sidebar.navbar-default.sidebar {
		padding-top: env(safe-area-inset-top);
		padding-bottom: env(safe-area-inset-bottom);
	}

	/* Cotizaciones BCU: columnas apiladas */
	#fct_bcu_desde,
	#fct_bcu_hasta {
		min-height: 44px;
	}
}

@media screen and (max-width: 480px) {
	.fin-inf-wrap .dash-kpis,
	.dash-global-wrap .dash-kpis,
	.aud-wrap .dash-kpis,
	.fgc-kpis,
	.fma-kpis {
		grid-template-columns: 1fr !important;
	}
	.finanzas-form-acciones-fijas__inner {
		gap: 6px;
	}
	.finanzas-form-acciones-fijas__inner .btn {
		font-size: 13px;
		padding-left: 10px;
		padding-right: 10px;
	}
}

