/* Ajustes de marca sobre Metrica: logotipo, iconos Font Awesome y avatar. */
.leftbar-tab-menu .logo-sm { height: 30px; width: 30px; }
.topbar-left .logo-lg { height: 28px; width: auto; }
.nav-icon, .ui-icon { display: inline-block; width: 1.25em; text-align: center; }
.main-icon-menu .nav-link .nav-icon { width: auto; font-size: 20px; }
.dropdown-item .nav-icon, .dropdown-item .ui-icon, .list-group-item .nav-icon { margin-right: .5rem; }
.main-icon-menu-pane .nav-link .nav-icon { margin-right: .5rem; font-size: 14px; }
.menu-subtitle { margin: 1rem 0 .25rem; padding: 0 1.25rem; font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #8f9bb3; }
.avatar-initial { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--bs-primary, #1557ff); color: #fff; font-weight: 700; }
.pro-metrica-end .avatar-initial { width: 32px; height: 32px; }
.topbar-brand { position: absolute; left: 1rem; top: 0; line-height: 70px; color: #8f9bb3; font-weight: 600; }
.page-subtitle { clear: both; }
.shell-simulation { position: fixed; z-index: 1085; right: 1rem; bottom: 1rem; left: 1rem; max-width: 680px; margin-inline: auto !important; box-shadow: 0 8px 24px rgba(15, 23, 42, .18); }
#globalSearchResults .list-group-item.active { background: var(--bs-primary-bg-subtle, #eaf0ff); color: inherit; border-color: transparent; }

.main-icon-menu .nav-link.active .nav-icon, .main-icon-menu .nav-link:hover .nav-icon { color: #fff; }
.page-actions .btn { width: auto; }
.page-actions .btn { flex: 0 0 auto; }
.card-title { text-transform: none; }
.table > :not(caption) > * > * { vertical-align: middle; }
.btn > .ui-icon, .btn > .nav-icon { margin-right: .4rem; }
.btn > .ui-icon:only-child { margin-right: 0; }

/* Menú responsive: logo en la barra superior y fondo del menú superpuesto en móvil. */
.topbar-mobile-logo { position: absolute; top: 50%; left: 1rem; transform: translateY(-50%); }
.menu-backdrop { display: none; position: fixed; inset: 0; z-index: 1000; border: 0; background: rgba(15, 23, 42, .45); }
/* Menú lateral: el desplazamiento sigue activo (rueda, táctil, teclado), pero sin barras visibles. */
.leftbar-tab-menu,
.leftbar-tab-menu .simplebar-content-wrapper { scrollbar-width: none; -ms-overflow-style: none; }
.leftbar-tab-menu::-webkit-scrollbar,
.leftbar-tab-menu .simplebar-content-wrapper::-webkit-scrollbar { display: none; width: 0; height: 0; }
.leftbar-tab-menu .simplebar-track { display: none; }
@media (max-width: 991.98px) {
  body.enlarge-menu-all:not(.enlarge-menu) .menu-backdrop { display: block; }
  body.enlarge-menu-all:not(.enlarge-menu) .leftbar-tab-menu { display: flex !important; position: fixed; z-index: 1001; top: 0; bottom: 0; left: 0; box-shadow: 0 0 24px rgba(15, 23, 42, .25); }
  .page-content-tab { padding-inline: 4px; }
  .page-title-box .float-end { float: none !important; margin-bottom: .25rem; }
  .page-title-box .breadcrumb { font-size: 12px; }
}
@media (max-width: 575.98px) {
  .topbar .topbar-nav > li > .nav-user .avatar-initial { margin-right: 0 !important; }
  .page-actions .btn { flex: 1 1 auto; }
}/* Modo rail (992–1339 px): el contenido y la barra superior empiezan tras los 60 px del rail. */
@media (min-width: 992px) {
  body.enlarge-menu:not(.enlarge-menu-all) .page-content-tab { width: calc(100% - 60px); margin-left: 60px; }
  body.enlarge-menu:not(.enlarge-menu-all) .topbar .navbar-custom { margin-left: 60px; }
  body:not(.enlarge-menu) .page-content-tab { width: calc(100% - 260px); margin-left: 260px; }
  body:not(.enlarge-menu) .topbar .navbar-custom { margin-left: 260px; }
}

/* Cabeceras de modal de Metrica (fondo de color): subtítulo legible. */
.modal-header .modal-subtitle { color: rgba(255, 255, 255, .8); }

/* Contraste AA (4.5:1) para estados usados como texto. Los tonos de Metrica
   (success 2.57:1, info 1.95:1, warning 2.04:1, danger 3.58:1, secondary 3.80:1,
   purple ~3.6:1 sobre blanco) se oscurecen dentro de su misma familia; los
   fondos suaves y los rellenos sólidos de Metrica se conservan. */
.bg-soft-success, .btn-soft-success, .text-success { color: #0f7a55 !important; }
.bg-soft-info, .btn-soft-info, .text-info { color: #0b6e79 !important; }
.bg-soft-warning, .btn-soft-warning, .text-warning { color: #a14f00 !important; }
.bg-soft-danger, .btn-soft-danger, .text-danger { color: #c4232d !important; }
.bg-soft-secondary, .btn-soft-secondary { color: #4d5b8c !important; }
.bg-soft-purple, .btn-soft-purple { color: #4553c7 !important; }

/* Utilidades de tabla y contenedores (sustituyen estilos inline estáticos). */
.col-check { width: 34px; }
.col-progress { min-width: 120px; }
.col-wide { min-width: 220px; }
.truncate-340 { max-width: 340px; }
.scroll-160 { max-height: 160px; overflow: auto; }
.scroll-360 { max-height: 360px; overflow: auto; }
.progress-lg { height: 10px; }
.pre-wrap { white-space: pre-wrap; }
.avatar-initial-lg { width: 48px; height: 48px; font-size: 20px; }
.smart-list-search { max-width: 320px; }
.library-thumb { aspect-ratio: 4 / 3; object-fit: cover; }

/* Contención: los hijos absolutos (p. ej. .visually-hidden en cabeceras) quedan
   dentro del scroll de la tabla, y los encabezados de acordeón con valores
   largos (hosts DNS) se encogen y parten en lugar de ensanchar la página. */
.table-responsive { position: relative; }
.accordion-button > * { min-width: 0; }
.accordion-button code { overflow-wrap: anywhere; }
