/*
 * GEMA — identidad institucional y diseño responsivo (2026-10-21).
 * Paleta tomada del logotipo de la Alcaldía Tlalpan (img/logo.png): guinda #7E2B56 (escudo y "ALCALDÍA"),
 * gris #484848 ("TLALPAN") y dorado #D4B484 (lema). Verde, rojo y ámbar sólo para estados (éxito, borrar, aviso).
 * Tamaño compacto (sm) en campos, listas, botones e íconos, sin importar la clase que use cada módulo.
 * Se carga después de adminlte.css y del main.css compartido de htdocs/css (lo usan otros sistemas: no se toca).
 * Puntos de corte de Bootstrap 4: 576 · 768 · 992 · 1200.
 */
:root {
	--tl-guinda: #7E2B56;
	--tl-guinda-osc: #612043;
	--tl-guinda-med: #9B4F78;
	--tl-guinda-suave: #F5EBF1;
	--tl-dorado: #D4B484;
	--tl-dorado-osc: #B8955E;
	--tl-dorado-texto: #3B2E17;
	--tl-dorado-suave: #FAF4EA;
	--tl-gris: #484848;
	--tl-gris-med: #6E6E70;
	--tl-gris-claro: #ECECED;
	--tl-borde: #D9D9DC;
	--tl-texto: #2F2F31;
	--tl-verde: #2F6B4F;
	--tl-verde-osc: #24533D;
	--tl-rojo: #B3261E;
	--tl-rojo-osc: #8E1E18;
	--tl-ambar: #E0A63A;
	--tl-ambar-osc: #C78E25;
	--tl-control: calc(1.8125rem + 2px);   /* alto "sm" de Bootstrap 4 (31 px) */
	--tl-radio: .375rem;
}

body { -webkit-text-size-adjust: 100%; color: var(--tl-texto); }
.content-wrapper, .main-sidebar, .main-header, .main-footer, .modal { font-size: .875rem; }

/* ── Estructura ─────────────────────────────────────────────────────────────── */
.main-header { border-bottom: 2px solid var(--tl-dorado); }
.main-header .nav-link { font-size: .875rem; }
.main-header .nav-link > i { font-size: .95rem; }
.content-wrapper > .content { padding: .75rem .25rem 1.5rem; }
@media (min-width: 768px) { .content-wrapper > .content { padding: 1rem .75rem 2rem; } }
.main-footer { font-size: .75rem; padding: .5rem 1rem; color: var(--tl-gris-med); }
.gema-usuario-nav .nav-link { max-width: 48vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gema-cargando { padding: 3rem 0; text-align: center; }
.content-wrapper a:not(.btn):not(.nav-link):not(.page-link):not(.dropdown-item):not(.dt-paging-button) { color: var(--tl-guinda); }
.content-wrapper a:not(.btn):not(.nav-link):not(.page-link):not(.dropdown-item):not(.dt-paging-button):hover { color: var(--tl-guinda-osc); }

/* Menú lateral compacto: íconos alineados (los del catálogo no traen .nav-icon) y opción activa en guinda */
.brand-link { padding: .6rem .5rem; font-size: 1.05rem; }
.brand-link .brand-image { background: #fff; max-height: 30px; }
.brand-link .brand-text { color: var(--tl-guinda); font-weight: 600 !important; }
.nav-sidebar { font-size: .875rem; }
.nav-sidebar .nav-link { padding: .45rem .75rem; border-radius: .3rem; }
.nav-sidebar .nav-link > i:first-child, .nav-sidebar .nav-icon { width: 1.5rem !important; text-align: center; margin-right: .25rem; font-size: .9rem !important; }
.nav-sidebar > .nav-item.menu-open > .nav-link:not(.active) { background-color: transparent; color: var(--tl-gris); font-weight: 600; }
.nav-sidebar .nav-link.active,
.nav-sidebar .nav-treeview .nav-link.active { background-color: var(--tl-guinda) !important; color: #fff !important; }
.nav-sidebar .nav-link:not(.active):hover { background-color: var(--tl-guinda-suave); color: var(--tl-guinda); }
@media (max-width: 991.98px) { .nav-sidebar .nav-link { padding-top: .55rem; padding-bottom: .55rem; } }

/* ── Títulos ───────────────────────────────────────────────────────────────── */
#ContenidoModulo h5 { color: var(--tl-guinda); font-weight: 600; font-size: 1.1rem; }
#ContenidoModulo .alert h5, #ContenidoModulo .card h5, .modal h5 { color: inherit; font-size: 1rem; }
/* Los módulos separan bloques con varios <br> seguidos: se deja uno (dejaban huecos de 60-80 px) */
#ContenidoModulo br + br { display: none; }
#ContenidoModulo .gema-ayuda { margin-bottom: .5rem; }

/* ── Campos de captura (sm) ────────────────────────────────────────────────── */
.content-wrapper label:not(.btn), .modal label:not(.btn) {
	font-size: .8125rem; font-weight: 600 !important; color: var(--tl-gris); margin-top: .4rem; margin-bottom: .15rem;
}
.content-wrapper .form-group, .modal .form-group { margin-bottom: .6rem; }
.content-wrapper .form-control, .modal .form-control, .content-wrapper .custom-select, .modal .custom-select {
	height: var(--tl-control); padding: .25rem .5rem; font-size: .875rem; line-height: 1.5; border-radius: .2rem; border-color: var(--tl-borde);
}
.content-wrapper textarea.form-control, .modal textarea.form-control,
.content-wrapper select.form-control[multiple], .content-wrapper select.form-control[size],
.modal select.form-control[multiple], .modal select.form-control[size] { height: auto; }
.content-wrapper .form-control-file, .modal .form-control-file { font-size: .8125rem; }
.content-wrapper .input-group-text, .modal .input-group-text { padding: .25rem .5rem; font-size: .875rem; border-radius: .2rem; border-color: var(--tl-borde); }
.content-wrapper .custom-file, .modal .custom-file,
.content-wrapper .custom-file-input, .modal .custom-file-input,
.content-wrapper .custom-file-label, .modal .custom-file-label { height: var(--tl-control); font-size: .875rem; }
.content-wrapper .custom-file-label, .modal .custom-file-label { padding: .25rem .5rem; line-height: 1.5; }
.content-wrapper .custom-file-label::after, .modal .custom-file-label::after { height: calc(var(--tl-control) - 2px); padding: .25rem .5rem; line-height: 1.5; }
.form-control:focus, .custom-select:focus { border-color: var(--tl-guinda-med); box-shadow: 0 0 0 .15rem rgba(126, 43, 86, .18); }
input[type="checkbox"], input[type="radio"] { accent-color: var(--tl-guinda); }
.custom-control-input:checked ~ .custom-control-label::before { background-color: var(--tl-guinda); border-color: var(--tl-guinda); }

/* select2 (temas classic y default) al alto sm, igual que los demás campos */
.select2-container { max-width: 100%; }
.select2-container--classic .select2-selection--single,
.select2-container--default .select2-selection--single {
	height: var(--tl-control); border: 1px solid var(--tl-borde); border-radius: .2rem; background: #fff; background-image: none; font-size: .875rem;
}
.select2-container--classic .select2-selection--single .select2-selection__rendered,
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 1.8125rem; padding-left: .5rem; color: #495057; }
.select2-container--classic .select2-selection--single .select2-selection__arrow,
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 1.8125rem; border-left: 0; background: transparent; background-image: none; }
.select2-container--classic .select2-selection--single .select2-selection__clear,
.select2-container--default .select2-selection--single .select2-selection__clear { height: 1.8125rem; line-height: 1.8125rem; margin-right: .25rem; }
.select2-container--classic .select2-selection--multiple,
.select2-container--default .select2-selection--multiple { min-height: var(--tl-control); border-color: var(--tl-borde); border-radius: .2rem; font-size: .875rem; }
.select2-container .select2-selection--multiple .select2-selection__choice {
	font-size: .8rem; margin-top: 3px; padding: 0 .4rem; background: var(--tl-guinda-suave); border-color: var(--tl-guinda-med); color: var(--tl-guinda-osc);
}
/* el texto de ayuda de los select2 múltiples se cortaba ("Toc" en vez de "Todos") */
.select2-container .select2-search--inline .select2-search__field { min-width: 9em; font-size: .875rem; }
.select2-container .select2-selection--multiple .select2-selection__rendered { display: block; width: 100%; }
.select2-container .select2-selection--multiple .select2-search--inline:only-child { float: none; width: 100%; }
.select2-container .select2-search--inline .select2-search__field:placeholder-shown { width: 100% !important; }
.select2-container--classic.select2-container--open .select2-selection--single,
.select2-container--classic.select2-container--open .select2-selection--multiple,
.select2-container--default.select2-container--focus .select2-selection--multiple { border-color: var(--tl-guinda-med); }
.select2-dropdown { font-size: .875rem; border-color: var(--tl-borde); }
.select2-container .select2-results__option { font-size: .875rem !important; padding: .3rem .5rem; }
.select2-container--classic .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable { background-color: var(--tl-guinda) !important; color: #fff !important; }
.select2-search--dropdown .select2-search__field { height: var(--tl-control); padding: .25rem .5rem; font-size: .875rem; }

/* ── Botones: tamaño sm y tonos institucionales ────────────────────────────── */
.content-wrapper .btn:not(.btn-xs):not(.btn-app):not(.btn-tool),
.modal .btn:not(.btn-xs):not(.btn-app):not(.btn-tool),
.control-sidebar .btn { padding: .25rem .6rem; font-size: .875rem; line-height: 1.5; border-radius: .2rem; }
.content-wrapper .btn-xs, .modal .btn-xs { font-size: .75rem; padding: .125rem .35rem; }
.content-wrapper .fa-lg, .modal .fa-lg { font-size: 1.1em; line-height: 1; vertical-align: -.1em; }
.btn:focus, .btn.focus { box-shadow: 0 0 0 .15rem rgba(126, 43, 86, .2) !important; }
/* Botones sueltos que se acomodan en varias líneas (p. ej. Consulta + Cargar INE): separación uniforme */
#frmBuscaCURP .btn { margin: 0 .25rem .25rem 0; }

/* Primario institucional (bg-rose es la clase que usan los módulos) */
.bg-rose, .btn-primary, .bg-primary, .bg-maroon {
	background-color: var(--tl-guinda) !important; border-color: var(--tl-guinda) !important; color: #fff !important;
}
.btn.bg-rose:hover, .btn.bg-rose:focus, .btn-primary:hover, .btn-primary:focus,
.btn-primary:not(:disabled):not(.disabled):active, .btn.bg-rose:active { background-color: var(--tl-guinda-osc) !important; border-color: var(--tl-guinda-osc) !important; color: #fff !important; }
.btn-outline-primary { color: var(--tl-guinda); border-color: var(--tl-guinda); background: #fff; }
.btn-outline-primary:hover, .btn-outline-primary:focus, .btn-outline-primary.active { background: var(--tl-guinda) !important; border-color: var(--tl-guinda) !important; color: #fff !important; }

/* Neutros */
.btn-default, .btn-light { background: #fff; border-color: var(--tl-borde); color: var(--tl-gris); }
.btn-default:hover, .btn-default:focus, .btn-light:hover { background: var(--tl-gris-claro); border-color: #C9C9CD; color: var(--tl-texto); }
.btn-secondary, .bg-secondary { background-color: var(--tl-gris-med) !important; border-color: var(--tl-gris-med) !important; color: #fff !important; }
.btn-secondary:hover, .btn-secondary:focus { background-color: var(--tl-gris) !important; border-color: var(--tl-gris) !important; }
.btn-outline-secondary { color: var(--tl-gris); border-color: var(--tl-borde); background: #fff; }
.btn-outline-secondary:hover, .btn-outline-secondary:focus, .btn-outline-secondary.active,
.btn-outline-secondary:not(:disabled):not(.disabled):active { background: var(--tl-guinda-suave) !important; border-color: var(--tl-guinda-med) !important; color: var(--tl-guinda) !important; }
.bg-gray { background-color: var(--tl-gris-claro) !important; color: var(--tl-gris) !important; }
.bg-light { background-color: #F7F7F8 !important; }

/* Acento dorado (antes azul/turquesa "info") */
.btn-info, .bg-info, .bg-lightblue, .bg-cyan {
	background-color: var(--tl-dorado) !important; border-color: var(--tl-dorado) !important; color: var(--tl-dorado-texto) !important;
}
.btn-info:hover, .btn-info:focus { background-color: var(--tl-dorado-osc) !important; border-color: var(--tl-dorado-osc) !important; color: #2B2112 !important; }
.btn-outline-info { color: #8A6A35; border-color: var(--tl-dorado); background: #fff; }
.btn-outline-info:hover, .btn-outline-info:focus { background: var(--tl-dorado) !important; color: var(--tl-dorado-texto) !important; border-color: var(--tl-dorado) !important; }

/* Estados */
.btn-success, .bg-success, .bg-green, .bg-olive, .bg-teal {
	background-color: var(--tl-verde) !important; border-color: var(--tl-verde) !important; color: #fff !important;
}
.btn-success:hover, .btn-success:focus { background-color: var(--tl-verde-osc) !important; border-color: var(--tl-verde-osc) !important; }
.btn-outline-success { color: var(--tl-verde); border-color: var(--tl-verde); background: #fff; }
.btn-outline-success:hover, .btn-outline-success:focus { background: var(--tl-verde) !important; color: #fff !important; }
.btn-danger, .bg-danger, .bg-red { background-color: var(--tl-rojo) !important; border-color: var(--tl-rojo) !important; color: #fff !important; }
.btn-danger:hover, .btn-danger:focus { background-color: var(--tl-rojo-osc) !important; border-color: var(--tl-rojo-osc) !important; }
.btn-outline-danger { color: var(--tl-rojo); border-color: var(--tl-rojo); background: #fff; }
.btn-outline-danger:hover, .btn-outline-danger:focus { background: var(--tl-rojo) !important; color: #fff !important; }
.btn-warning, .bg-warning, .bg-yellow, .bg-orange { background-color: var(--tl-ambar) !important; border-color: var(--tl-ambar) !important; color: #2B2112 !important; }
.btn-warning:hover, .btn-warning:focus { background-color: var(--tl-ambar-osc) !important; border-color: var(--tl-ambar-osc) !important; }

.badge { font-weight: 600; }
.badge-primary { background-color: var(--tl-guinda); color: #fff; }
.badge-info { background-color: var(--tl-dorado); color: var(--tl-dorado-texto); }
.badge-success { background-color: var(--tl-verde); color: #fff; }
.badge-danger { background-color: var(--tl-rojo); color: #fff; }
.badge-warning { background-color: var(--tl-ambar); color: #2B2112; }
.badge-secondary { background-color: var(--tl-gris-med); color: #fff; }
.text-primary { color: var(--tl-guinda) !important; }
.text-info { color: #8A6A35 !important; }
.text-success { color: var(--tl-verde) !important; }
.text-danger { color: var(--tl-rojo) !important; }
.text-warning { color: #A36D0C !important; }
.progress-bar { background-color: var(--tl-guinda); }

/* Mosaicos de acciones (Exportar, Duplicados, Actualiza…): compactos y en tono institucional */
.content-wrapper .btn-app {
	height: auto; min-width: 64px; padding: .4rem .5rem; margin: 0 .5rem .5rem 0;
	font-size: .75rem; border-radius: var(--tl-radio); background: #fff; border-color: var(--tl-borde); color: var(--tl-gris);
}
.content-wrapper .btn-app > .fa, .content-wrapper .btn-app > .fas, .content-wrapper .btn-app > .far, .content-wrapper .btn-app > .fab,
.content-wrapper .btn-app > .glyphicon, .content-wrapper .btn-app > .ion { display: block; font-size: 1rem; margin-bottom: .2rem; }
.content-wrapper .btn-app:hover { border-color: var(--tl-guinda); color: var(--tl-guinda); background: var(--tl-guinda-suave); }
.content-wrapper .btn-app > .badge { top: -7px; right: -7px; font-size: .65rem; }

/* ── Tablas (DataTables 2) ─────────────────────────────────────────────────── */
.content-wrapper .table, .modal .table { font-size: .8125rem; color: var(--tl-texto); }
.content-wrapper .table td, .content-wrapper .table th, .modal .table td, .modal .table th { vertical-align: middle; }
.content-wrapper .table thead th, .modal .table thead th { color: var(--tl-gris); font-weight: 600; background-color: #FAFAFB; border-bottom-width: 1px; }
.content-wrapper table thead input, .modal table thead input {
	height: 26px; font-size: .75rem; padding: .1rem .3rem; width: 100%; border: 1px solid var(--tl-borde); border-radius: .2rem;
}
.dt-container { font-size: .8125rem; }
.dt-container .dt-input, .dt-container select, .dt-container .dt-search input {
	height: var(--tl-control); padding: .2rem .4rem; font-size: .8125rem; border: 1px solid var(--tl-borde); border-radius: .2rem;
}
.dt-container .dt-layout-row { flex-wrap: wrap; row-gap: .5rem; }
.dt-container .dt-paging .dt-paging-button { padding: .2rem .55rem !important; border-radius: .2rem !important; font-size: .8125rem; }
.dt-container .dt-paging .dt-paging-button.current,
.dt-container .dt-paging .dt-paging-button.current:hover { background: var(--tl-guinda-suave) !important; border-color: var(--tl-guinda-med) !important; color: var(--tl-guinda) !important; }
.dt-container .dt-paging .dt-paging-button:not(.disabled):not(.current):hover { background: var(--tl-guinda) !important; border-color: var(--tl-guinda) !important; color: #fff !important; }
.page-link { color: var(--tl-guinda); }
.page-item.active .page-link { background-color: var(--tl-guinda); border-color: var(--tl-guinda); }
.dt-scroll-body, .table-responsive { -webkit-overflow-scrolling: touch; }
@media (max-width: 767.98px) {
	.dt-container .dt-layout-row:not(.dt-layout-table) { flex-direction: column; align-items: stretch; }
	.dt-container .dt-layout-row:not(.dt-layout-table) .dt-layout-cell { width: 100%; text-align: center !important; justify-content: center !important; }
	.dt-container .dt-search input { width: 100% !important; margin-left: 0 !important; }
}

/* ── Tarjetas, cajas, pestañas ─────────────────────────────────────────────── */
.card { border-radius: var(--tl-radio); }
.card > .card-header:first-child { border-top-left-radius: var(--tl-radio); border-top-right-radius: var(--tl-radio); }
.card-header { padding: .5rem .85rem; }
.card-title { font-size: .95rem; }
.card-primary.card-outline, .card-rose.card-outline { border-top: 3px solid var(--tl-guinda); }
.card-info.card-outline { border-top: 3px solid var(--tl-dorado); }
.card-secondary.card-outline { border-top: 3px solid var(--tl-gris-med); }
.card-success.card-outline { border-top: 3px solid var(--tl-verde); }
.card-primary:not(.card-outline) > .card-header { background-color: var(--tl-guinda); color: #fff; }
.info-box { min-height: 64px; padding: .4rem; border-radius: var(--tl-radio); }
.info-box .info-box-icon { width: 48px; font-size: 1.2rem; border-radius: var(--tl-radio); }
.info-box .info-box-text { font-size: .8rem; }
.info-box .info-box-number { font-size: .95rem; }
/* Indicadores en renglón (tablero): mismo alto y títulos que se ajustan en vez de cortarse */
#tpKpis .info-box { height: calc(100% - .5rem); align-items: flex-start; }
#tpKpis .info-box-text { white-space: normal; line-height: 1.2; }
#tpKpis .info-box-content .small { line-height: 1.25; }
.small-box { border-radius: var(--tl-radio); }
.small-box > .inner { padding: .6rem .75rem; }
.small-box h3, .small-box h4 { font-size: 1.4rem; }
.small-box p { font-size: .8rem; margin-bottom: .25rem; }
.small-box .icon > i { font-size: 46px; top: 12px; }
.nav-tabs .nav-link { font-size: .875rem; padding: .4rem .75rem; color: var(--tl-gris); }
.nav-tabs .nav-link.active { color: var(--tl-guinda); border-top: 2px solid var(--tl-guinda); font-weight: 600; }
.nav-pills .nav-link.active { background-color: var(--tl-guinda); }
.alert { font-size: .875rem; padding: .6rem .9rem; }

/* ── Modales ───────────────────────────────────────────────────────────────── */
.modal-header { padding: .6rem 1rem; border-bottom: 2px solid var(--tl-dorado); }
.modal-title { font-size: 1rem; color: var(--tl-guinda); font-weight: 600; }
.modal-body { padding: .85rem 1rem; }
.modal-footer { padding: .5rem 1rem; }
@media (min-width: 576px) and (max-width: 991.98px) { .modal-lg, .modal-xl { max-width: calc(100% - 2rem); } }
@media (max-width: 575.98px) {
	.modal-dialog { margin: .5rem; max-width: calc(100% - 1rem); }
	.modal-body { padding: .75rem; }
	.modal-footer { flex-wrap: wrap; justify-content: center; }
}

/* ── Avisos (SweetAlert2 y toastr) en los tonos institucionales ────────────── */
.swal2-popup { font-size: .875rem !important; }
.swal2-styled { padding: .4rem 1rem !important; font-size: .875rem !important; border-radius: .2rem !important; }
.swal2-styled.swal2-confirm { background-color: var(--tl-guinda) !important; border-color: var(--tl-guinda) !important; }
.swal2-styled.swal2-cancel { background-color: var(--tl-gris-med) !important; }
.swal2-styled.swal2-deny { background-color: var(--tl-rojo) !important; }
.swal2-icon.swal2-info, .swal2-icon.swal2-question { border-color: var(--tl-dorado) !important; color: var(--tl-dorado-osc) !important; }
#toast-container > div { font-size: .875rem; opacity: .97; box-shadow: 0 2px 8px rgba(0, 0, 0, .18); }
#toast-container > .toast-info { background-color: var(--tl-guinda); }
#toast-container > .toast-success { background-color: var(--tl-verde); }
#toast-container > .toast-error { background-color: var(--tl-rojo); }
#toast-container > .toast-warning { background-color: var(--tl-ambar-osc); }

/* ── Teléfonos ─────────────────────────────────────────────────────────────── */
@media (max-width: 575.98px) {
	.btn-group, .btn-toolbar { flex-wrap: wrap; }
	.card-header .card-tools { float: none; margin: .35rem 0 0; }
	/* pestañas en una sola línea desplazable en vez de varias filas amontonadas */
	.nav-tabs { flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; }
	.nav-tabs .nav-link { white-space: nowrap; }
	#ContenidoModulo img { max-width: 100%; height: auto; }
}
/* Sólo iPhone/iPad: con letra menor a 16 px Safari amplía la página al escribir; el campo conserva su alto sm */
@supports (-webkit-touch-callout: none) {
	@media (max-width: 991.98px) {
		.content-wrapper .form-control, .modal .form-control, .content-wrapper .custom-select, .modal .custom-select,
		.select2-search__field, .dt-container .dt-input, .dt-container .dt-search input, .gema-login .form-control { font-size: 16px !important; }
	}
}

/* ── Inicio de sesión ──────────────────────────────────────────────────────── */
.gema-login .login-box { width: 100%; max-width: 360px; padding: 0 1rem; }
.gema-login .login-logo img { max-width: 100%; height: auto; }
.gema-login .card { border-radius: var(--tl-radio); border-top: 3px solid var(--tl-guinda); box-shadow: 0 4px 16px rgba(0, 0, 0, .08); }
.gema-login .login-box-msg { font-size: .9rem; color: var(--tl-gris); }
.gema-login .form-control { height: var(--tl-control); padding: .25rem .5rem; font-size: .875rem; border-color: var(--tl-borde); }
.gema-login .input-group-text { padding: .25rem .5rem; font-size: .8rem; color: var(--tl-gris-med); border-color: var(--tl-borde); }
.gema-login .btn { padding: .35rem .75rem; font-size: .875rem; display: flex; align-items: center; justify-content: center; gap: .3rem; }
.gema-login .btn-outline-secondary { border-color: var(--tl-borde); color: var(--tl-gris); }
.gema-login a:not(.btn) { color: var(--tl-guinda); }
.gema-acepto label { font-size: inherit; color: var(--tl-gris-med); font-weight: normal !important; }

/* ── Pantalla de inicio ────────────────────────────────────────────────────── */
.gema-inicio { max-width: 1200px; }
.gema-bienvenida {
	display: flex; align-items: center; justify-content: space-between; gap: 1rem;
	background: linear-gradient(135deg, var(--tl-guinda), var(--tl-guinda-osc));
	border-bottom: 3px solid var(--tl-dorado);
	color: #fff; border-radius: var(--tl-radio); padding: .85rem 1.1rem; margin-bottom: 1rem;
	box-shadow: 0 2px 6px rgba(0, 0, 0, .08);
}
.gema-bienvenida h4 { font-weight: 600; font-size: 1.1rem; }
.gema-bienvenida .text-muted { color: rgba(255, 255, 255, .85) !important; font-size: .8rem; }
.gema-bienvenida-logo { width: 42px; height: 42px; border-radius: 50%; background: #fff; padding: 3px; flex: none; }
.gema-grupo { text-transform: uppercase; letter-spacing: .06em; font-size: .7rem; color: var(--tl-gris-med); margin: .6rem 0 .45rem; font-weight: 700; }
.gema-accesos { margin-left: -.3rem; margin-right: -.3rem; }
.gema-accesos > [class*="col-"] { padding-left: .3rem; padding-right: .3rem; margin-bottom: .6rem; }
.gema-acceso {
	width: 100%; height: 100%; min-height: 84px;
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .4rem;
	padding: .65rem .5rem; background: #fff; color: var(--tl-texto); text-align: center;
	border: 1px solid var(--tl-borde); border-radius: var(--tl-radio);
	transition: border-color .15s, box-shadow .15s, transform .15s;
}
.gema-acceso:hover, .gema-acceso:focus { border-color: var(--tl-guinda); box-shadow: 0 3px 10px rgba(126, 43, 86, .15); transform: translateY(-1px); outline: none; }
.gema-acceso-icono {
	width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
	background: var(--tl-guinda-suave); color: var(--tl-guinda); font-size: .95rem;
}
.gema-acceso:hover .gema-acceso-icono { background: var(--tl-dorado-suave); }
.gema-acceso-icono i { margin: 0 !important; width: auto !important; font-size: inherit !important; }
.gema-acceso-texto { font-size: .8125rem; line-height: 1.2; font-weight: 600; }
