/* Cáscara de Pandora en el celular y la tablet.
 *
 * Se activa con body.movil-app (lo pone layout.html apenas abre el body, con el
 * mismo criterio en todas las páginas: pantalla táctil o ancho <= 900px). En el
 * escritorio nada de esto aplica: ninguna regla sale de body.movil-app.
 *
 * Piezas:
 *   .ma-bar     barra superior fija: menú o volver, título, acciones de la página, campana
 *   .cm-tabs    barra fija abajo: Inicio · Avisos · Chat · Perfil (el menú completo, desde el ☰ del inicio)
 *   #offcanvasSidebar  el menú de siempre, como cajón (ya era offcanvas de Bootstrap)
 *   .cm-home    inicio del celular: iconos de las secciones que el usuario ve
 *   .cm-tarjetas  tablas que en el teléfono se ven como tarjetas (movil.js pone data-label)
 */

:root {
  --cm-top: 52px;
  --cm-tabs: 60px;
  --cm-azul: #1d4ed8;
  --cm-azul-2: #3b82f6;
  --cm-marino: #0f172a;
  --cm-fondo: #f1f5f9;
  --cm-panel: #ffffff;
  --cm-borde: #dbe1ea;
  --cm-texto: #0f172a;
  --cm-texto-2: #64748b;
}

/* ── Lo que sobra en el teléfono ── */
body.movil-app .app-navbar,
body.movil-app .sidebar-fixed-lg,
body.movil-app .floating-chat-button,
body.movil-app .cm-solo-escritorio { display: none !important; }
.cm-solo-movil { display: none !important; }
body.movil-app .cm-solo-movil { display: revert !important; }
body.movil-app span.cm-solo-movil { display: inline !important; }

/* ── Cuerpo ── */
body.movil-app { background: var(--cm-fondo) !important; color: var(--cm-texto); font-size: 15px; overflow-x: clip; }
body.movil-app main.content {
  margin: 0 !important; width: 100%; max-width: 100vw; min-height: 100dvh; overflow-x: clip !important;
  padding: calc(var(--cm-top) + env(safe-area-inset-top) + 10px) 12px calc(var(--cm-tabs) + env(safe-area-inset-bottom) + 16px) !important;
}
body.movil-app main.content > .container-fluid,
body.movil-app main.content > .container { padding-left: 0 !important; padding-right: 0 !important; padding-top: 0 !important; max-width: none; }
body.movil-app .container-flash { max-width: none; padding: 0; }

/* ── Barra superior ── */
.ma-bar { display: none; }
body.movil-app .ma-bar {
  display: flex !important; align-items: center; gap: 6px;
  position: fixed; top: 0; left: 0; right: 0; z-index: 1035;
  height: calc(var(--cm-top) + env(safe-area-inset-top));
  padding: env(safe-area-inset-top) 8px 0;
  background: var(--cm-marino); color: #fff; border-bottom: 2px solid var(--cm-azul-2);
}
.ma-bar .ma-titulo { flex: 1; min-width: 0; font-size: 17px; font-weight: 700; color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ma-bar .ma-ico, .ma-bar .ma-acciones > a, .ma-bar .ma-acciones > button {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; flex: 0 0 auto; padding: 0; position: relative;
  border-radius: 10px; border: 1px solid rgba(255, 255, 255, .18); background: rgba(255, 255, 255, .08);
  color: #fff; font-size: 18px; text-decoration: none; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.ma-bar .ma-acciones { display: flex; gap: 6px; }
.ma-bar .ma-acciones:empty { display: none; }
.cm-badge {
  position: absolute; top: -5px; right: -5px; min-width: 18px; height: 18px; padding: 0 5px;
  border-radius: 9px; background: #dc2626; color: #fff; font-size: 11px; font-weight: 700;
  line-height: 18px; text-align: center; display: none;
}
.cm-badge.on { display: block; }

/* ── Barra de pestañas abajo ── */
.cm-tabs { display: none; }
body.movil-app .cm-tabs {
  display: grid !important; grid-template-columns: repeat(5, 1fr);
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 1036;
  height: calc(var(--cm-tabs) + env(safe-area-inset-bottom));
  padding: 4px 4px env(safe-area-inset-bottom);
  background: #fff; border-top: 1px solid var(--cm-borde); box-shadow: 0 -2px 10px rgba(15, 23, 42, .06);
}
.cm-tabs > a, .cm-tabs > button {
  position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  background: transparent; border: 0; border-radius: 10px; padding: 4px 2px; min-height: 50px;
  color: var(--cm-texto-2); font-size: 11px; font-weight: 600; text-decoration: none; -webkit-tap-highlight-color: transparent;
}
.cm-tabs > a i, .cm-tabs > button i { font-size: 21px; line-height: 1; }
.cm-tabs > .on { color: var(--cm-azul); }
.cm-tabs > .on i { color: var(--cm-azul); }
.cm-tabs .cm-badge { top: 2px; right: auto; left: calc(50% + 6px); }

/* ── El menú (offcanvas) como cajón de app ── */
body.movil-app .offcanvas.sidebar { width: min(86vw, 360px) !important; max-width: min(86vw, 360px) !important; }
body.movil-app .offcanvas.sidebar .offcanvas-header { padding: calc(10px + env(safe-area-inset-top)) 12px 8px; gap: 8px; }
body.movil-app .offcanvas.sidebar .offcanvas-title { font-size: 17px; }
body.movil-app .cm-buscar {
  width: 100%; min-height: 42px; font-size: 16px; border-radius: 10px; margin: 0 0 6px;
  border: 1px solid rgba(255, 255, 255, .18); background: rgba(255, 255, 255, .08); color: inherit; padding: 6px 12px;
}
body.movil-app.light-theme .cm-buscar { border-color: var(--cm-borde); background: #fff; color: var(--cm-texto); }
body.movil-app .offcanvas.sidebar .cm-oculto { display: none !important; }
body.movil-app .offcanvas.sidebar.cm-buscando .collapse { display: block !important; height: auto !important; }
body.movil-app .offcanvas.sidebar a.cm-actual { background: var(--cm-azul) !important; color: #fff !important; }
body.movil-app .offcanvas.sidebar a { font-size: 15.5px !important; padding: 11px 14px !important; margin: 0 8px; }
body.movil-app .offcanvas.sidebar .collapse a { padding-left: 26px !important; font-size: 15px !important; }

/* ── Inicio en el celular ── */
.cm-home { display: none; }
body.movil-app .cm-home { display: block; }
body.movil-app .cm-home-ocultar { display: none !important; }
.cm-home .cm-saludo { font-size: 22px; font-weight: 700; margin: 4px 0 2px; }
.cm-home .cm-sub { color: var(--cm-texto-2); font-size: 13.5px; margin-bottom: 14px; }
.cm-home .cm-titulo-seccion { display: flex; align-items: center; gap: 8px; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--cm-texto-2); margin: 14px 0 8px; font-weight: 700; }
.cm-home .cm-titulo-seccion button { border: 0; background: transparent; color: var(--cm-azul); font-size: 13px; font-weight: 700; padding: 4px 6px; margin-left: -6px; letter-spacing: 0; text-transform: none; }
.cm-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
@media (min-width: 600px) { .cm-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 900px) { .cm-grid { grid-template-columns: repeat(4, 1fr); } }
.cm-tile {
  display: flex; flex-direction: column; gap: 8px; padding: 14px 12px; min-height: 96px;
  background: var(--cm-panel); border: 1px solid var(--cm-borde); border-radius: 14px; box-shadow: 0 1px 3px rgba(15, 23, 42, .06);
  color: var(--cm-texto); text-decoration: none; -webkit-tap-highlight-color: transparent;
}
.cm-tile:active { transform: scale(.98); }
.cm-tile i { font-size: 24px; color: var(--cm-azul); }
.cm-tile .cm-tile-n { font-weight: 700; font-size: 15px; line-height: 1.2; }
.cm-tile .cm-tile-c { color: var(--cm-texto-2); font-size: 12px; }
.cm-tile.cm-tile-pri { background: var(--cm-marino); border-color: var(--cm-marino); color: #fff; }
.cm-tile.cm-tile-pri i { color: #93c5fd; }
.cm-tile.cm-tile-pri .cm-tile-c { color: #cbd5e1; }
.cm-lista { display: flex; flex-direction: column; gap: 8px; }
.cm-fila {
  display: flex; align-items: center; gap: 12px; padding: 13px 14px; min-height: 52px;
  background: var(--cm-panel); border: 1px solid var(--cm-borde); border-radius: 12px; color: var(--cm-texto); text-decoration: none;
  -webkit-tap-highlight-color: transparent;
}
.cm-fila:active { background: #eef2ff; }
.cm-fila i:first-child { font-size: 19px; color: var(--cm-azul); width: 24px; text-align: center; }
.cm-fila span { flex: 1; font-size: 15px; font-weight: 600; }
.cm-fila i:last-child { color: var(--cm-texto-2); }

/* ── Contenido genérico: que nada se salga de la pantalla ── */
body.movil-app h1 { font-size: 1.4rem; }
body.movil-app h2 { font-size: 1.25rem; }
body.movil-app h3 { font-size: 1.12rem; }
body.movil-app h4 { font-size: 1.04rem; }
body.movil-app .btn { min-height: 44px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
body.movil-app .btn-sm { min-height: 38px; }
body.movil-app .btn-group { flex-wrap: wrap; }
body.movil-app .form-control, body.movil-app .form-select { font-size: 16px; min-height: 46px; border-radius: 10px; }
body.movil-app .form-control-sm, body.movil-app .form-select-sm { font-size: 15px; min-height: 40px; }
body.movil-app .form-check-input { width: 22px; height: 22px; margin-top: 0; }
body.movil-app .form-check { display: flex; align-items: center; gap: 10px; min-height: 36px; }
body.movil-app .form-check-label { margin: 0; }
body.movil-app .card { border-radius: 14px; margin-bottom: 12px; }
body.movil-app .card-header { padding: 10px 14px; }
body.movil-app .card-body { padding: 14px; }
body.movil-app .card-header h5, body.movil-app .card-header h4 { font-size: 1rem; margin: 0; }
body.movil-app .alert { border-radius: 12px; }
body.movil-app .modal-dialog { margin: 8px; max-width: none; }
body.movil-app .modal-content { border-radius: 14px; }
body.movil-app .modal-body { max-height: calc(100dvh - 160px); overflow-y: auto; }
body.movil-app .table-responsive { -webkit-overflow-scrolling: touch; }
body.movil-app .cm-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; margin-bottom: 10px; border-radius: 10px; }
body.movil-app .cm-scroll > table { margin-bottom: 0; }
body.movil-app .nav-tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
body.movil-app .nav-tabs::-webkit-scrollbar { display: none; }
body.movil-app .nav-tabs .nav-link { white-space: nowrap; min-height: 44px; display: inline-flex; align-items: center; }
body.movil-app .select2-container { width: 100% !important; }
body.movil-app .select2-container--default .select2-selection--single { min-height: 46px; border-radius: 10px; }
body.movil-app .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 44px; font-size: 16px; }
body.movil-app .select2-container--default .select2-selection--single .select2-selection__arrow { height: 44px; }
body.movil-app .swal2-popup { width: calc(100vw - 32px) !important; border-radius: 14px; }
body.movil-app .dropdown-menu { max-height: 70vh; }
body.movil-app .text-muted { color: var(--cm-texto-2) !important; }

/* DataTables alrededor de cualquier tabla */
body.movil-app .dataTables_wrapper .dataTables_length,
body.movil-app .dataTables_wrapper .dataTables_filter,
body.movil-app .dataTables_wrapper .dt-length, body.movil-app .dt-container .dt-length,
body.movil-app .dataTables_wrapper .dt-search, body.movil-app .dt-container .dt-search { float: none; text-align: left; margin-bottom: 8px; }
body.movil-app .dataTables_wrapper .dataTables_filter label,
body.movil-app .dataTables_wrapper .dt-search, body.movil-app .dt-container .dt-search { display: flex !important; align-items: center; gap: 8px; width: 100%; flex-direction: row !important; }
body.movil-app .dataTables_wrapper .dataTables_filter input,
body.movil-app .dataTables_wrapper .dt-search, body.movil-app .dt-container .dt-search input { flex: 1; width: auto !important; margin: 0 !important; min-height: 42px; font-size: 16px; }
body.movil-app .dataTables_wrapper .dataTables_paginate,
body.movil-app .dataTables_wrapper .dt-paging, body.movil-app .dt-container .dt-paging { float: none; text-align: center; margin-top: 6px; }
body.movil-app .dataTables_wrapper .dataTables_info,
body.movil-app .dataTables_wrapper .dt-info, body.movil-app .dt-container .dt-info { font-size: 12px; padding-top: 10px; text-align: center; }
body.movil-app .dt-buttons { display: flex !important; gap: 6px; overflow-x: auto; margin-bottom: 8px !important; scrollbar-width: none; flex-wrap: nowrap !important; }
body.movil-app .dt-buttons::-webkit-scrollbar { display: none; }
body.movil-app .dt-buttons .btn, body.movil-app .dt-button { flex: 0 0 auto !important; min-height: 38px; }

/* ── Cabecera "título + botones": el título ya va en la barra; los botones quedan en una fila que se desliza ── */
body.movil-app .cm-cabecera { display: block !important; }
body.movil-app .cm-cabecera > h1, body.movil-app .cm-cabecera > h2, body.movil-app .cm-cabecera > h3, body.movil-app .cm-cabecera > h4,
body.movil-app .cm-cabecera > div:has(> h1, > h2, > h3, > h4) { display: none; }
body.movil-app .cm-cabecera > div:not(:has(> h1, > h2, > h3, > h4)) {
  display: flex; flex-wrap: nowrap !important; gap: 6px; overflow-x: auto; white-space: nowrap; padding-bottom: 6px; scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
body.movil-app .cm-cabecera > div > .btn, body.movil-app .cm-cabecera > div > a { flex: 0 0 auto; margin: 0 !important; min-height: 40px; }

/* ── Tarjetas de cifras: dos por fila ── */
@media (max-width: 767px) {
  /* Solo en filas marcadas .cm-cifras (tarjetas de números): el resto de las columnas se apilan como siempre */
  body.movil-app .row.cm-cifras > [class*="col-"] { flex: 0 0 50%; max-width: 50%; }
  body.movil-app .row.cm-cifras > [class*="col-"] > .card { height: 100%; }
  body.movil-app .row.g-3, body.movil-app .row.g-4 { --bs-gutter-x: .6rem; --bs-gutter-y: .6rem; }
  body.movil-app .display-4, body.movil-app .display-5, body.movil-app .display-6 { font-size: 1.8rem; }
}

/* ── Tablas como tarjetas (table.cm-tarjetas): cada fila es una tarjeta; movil.js pone data-label con el encabezado ── */
@media (max-width: 767px) {
  body.movil-app table.cm-tarjetas { display: block; width: 100% !important; border: 0; margin-bottom: 0; }
  body.movil-app table.cm-tarjetas > thead, body.movil-app table.cm-tarjetas > tfoot { display: none; }
  body.movil-app table.cm-tarjetas > tbody { display: grid; grid-template-columns: 1fr; gap: 10px; }
  body.movil-app table.cm-tarjetas > tbody > tr {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 10px; padding: 12px; border-radius: 12px;
    background: #fff; color: var(--cm-texto); border: 1px solid var(--cm-borde); box-shadow: 0 1px 3px rgba(15, 23, 42, .06);
  }
  body.movil-app table.cm-tarjetas.table-striped > tbody > tr:nth-of-type(odd) > * { --bs-table-accent-bg: transparent; }
  body.movil-app table.cm-tarjetas > tbody > tr > td {
    display: block; padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important;
    font-size: 14px; min-width: 0; overflow-wrap: anywhere; white-space: normal !important; color: var(--cm-texto); text-align: left !important;
  }
  body.movil-app table.cm-tarjetas > tbody > tr > td::before { content: attr(data-label); display: block; font-size: 10px; letter-spacing: .04em; text-transform: uppercase; color: var(--cm-texto-2); margin-bottom: 1px; }
  body.movil-app table.cm-tarjetas > tbody > tr > td:not([data-label])::before, body.movil-app table.cm-tarjetas > tbody > tr > td[data-label=""]::before { content: none; }
  body.movil-app table.cm-tarjetas > tbody > tr > td:first-child { grid-column: 1 / -1; font-size: 16px; font-weight: 700; }
  body.movil-app table.cm-tarjetas > tbody > tr > td.cm-ancho { grid-column: 1 / -1; }
  body.movil-app table.cm-tarjetas > tbody > tr > td.cm-titulo { grid-column: 1 / -1; font-size: 16px; font-weight: 700; order: -1; }
  body.movil-app table.cm-tarjetas > tbody > tr > td.cm-titulo::before { content: none; }
  body.movil-app table.cm-tarjetas > tbody > tr > td.cm-titulo small { font-weight: 400; }
  body.movil-app table.cm-tarjetas > tbody > tr > td .form-control, body.movil-app table.cm-tarjetas > tbody > tr > td .form-select { width: 100%; }
  body.movil-app .cm-apilar { flex-direction: column; align-items: stretch !important; gap: 6px; }
  body.movil-app .cm-apilar .btn { width: 100%; }
  body.movil-app table.cm-tarjetas > tbody > tr > td.cm-oculta { display: none; }
  /* Casilla en la primera columna: va arriba a la derecha y la 2ª columna hace de título */
  body.movil-app table.cm-tarjetas > tbody > tr > td:first-child:has(> input[type=checkbox], > .form-check-input) { grid-column: 2; grid-row: 1; justify-self: end; font-size: 14px; font-weight: 400; }
  body.movil-app table.cm-tarjetas > tbody > tr > td:first-child:has(> input[type=checkbox], > .form-check-input)::before { content: none; }
  body.movil-app table.cm-tarjetas > tbody > tr > td:first-child input[type=checkbox] { width: 26px; height: 26px; margin: 0; }
  body.movil-app table.cm-tarjetas > tbody > tr > td:first-child:has(> input[type=checkbox], > .form-check-input) + td { grid-column: 1; grid-row: 1; font-size: 16px; font-weight: 700; }
  body.movil-app table.cm-tarjetas > tbody > tr:has(> td:first-child input[type=checkbox]:checked) { outline: 2px solid var(--cm-azul); }
  /* Acciones: fila completa con botones grandes */
  body.movil-app table.cm-tarjetas > tbody > tr > td.cm-acciones, body.movil-app table.cm-tarjetas > tbody > tr > td:last-child:has(.btn) { grid-column: 1 / -1; margin-top: 4px; }
  body.movil-app table.cm-tarjetas > tbody > tr > td.cm-acciones::before, body.movil-app table.cm-tarjetas > tbody > tr > td:last-child:has(.btn)::before { content: none; }
  body.movil-app table.cm-tarjetas > tbody > tr > td:last-child .btn-group, body.movil-app table.cm-tarjetas > tbody > tr > td.cm-acciones .btn-group { display: flex; width: 100%; gap: 6px; }
  body.movil-app table.cm-tarjetas > tbody > tr > td.cm-acciones, body.movil-app table.cm-tarjetas > tbody > tr > td:last-child:has(.btn) { display: flex !important; flex-wrap: wrap; gap: 6px; align-items: stretch; }
  body.movil-app table.cm-tarjetas > tbody > tr > td:last-child:has(.btn) > .btn-group { flex: 1 1 100%; }
  body.movil-app table.cm-tarjetas > tbody > tr > td:last-child .btn, body.movil-app table.cm-tarjetas > tbody > tr > td.cm-acciones .btn { flex: 1 1 0; min-height: 42px; border-radius: 8px !important; font-size: 13.5px; margin: 0 !important; }
  body.movil-app table.cm-tarjetas > tbody > tr > td.dataTables_empty, body.movil-app table.cm-tarjetas > tbody > tr > td.dt-empty, body.movil-app table.cm-tarjetas > tbody > tr > td[colspan] { grid-column: 1 / -1; text-align: center; font-weight: 400; font-size: 14px; }
  body.movil-app table.cm-tarjetas > tbody > tr > td[colspan]::before { content: none; }
  body.movil-app table.cm-tarjetas .badge { font-size: 12px; padding: 4px 8px; white-space: normal; text-align: left; display: inline-block; max-width: 100%; }
  body.movil-app .dataTables_wrapper .dataTables_length, body.movil-app .dataTables_wrapper .dt-length, body.movil-app .dt-container .dt-length, body.movil-app .dt-container .dt-length { display: none; }
  /* DataTables Responsive no hace falta con tarjetas */
  body.movil-app table.cm-tarjetas > tbody > tr > td.dtr-control::before { display: none !important; }
  body.movil-app table.cm-tarjetas > tbody > tr.child { display: none; }
}

/* Tablet: las tarjetas van de a dos */
@media (min-width: 768px) and (max-width: 991px) {
  body.movil-app .row > .col-md-2 { flex: 0 0 33.333%; max-width: 33.333%; }
}

/* ── Botón de acción principal fijo abajo (encima de las pestañas) ── */
body.movil-app .cm-accion-fija {
  position: fixed; left: 12px; right: 12px; z-index: 1034;
  bottom: calc(var(--cm-tabs) + env(safe-area-inset-bottom) + 10px);
}
body.movil-app .cm-accion-fija .btn { width: 100%; min-height: 50px; font-size: 16px; font-weight: 700; box-shadow: 0 6px 20px rgba(15, 23, 42, .25); }
body.movil-app.cm-con-accion-fija main.content { padding-bottom: calc(var(--cm-tabs) + env(safe-area-inset-bottom) + 80px) !important; }

/* Chips de filtro (botones que se deslizan en una fila) */
body.movil-app .cm-chips { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; padding-bottom: 4px; margin-bottom: 8px; -webkit-overflow-scrolling: touch; }
body.movil-app .cm-chips::-webkit-scrollbar { display: none; }
body.movil-app .cm-chips > * { flex: 0 0 auto; white-space: nowrap; }

/* ── Ajustes que field-safe.css (uso bajo el sol) no debe pisar ── */
body.movil-app .ma-bar, body.movil-app .ma-bar * { color: #fff !important; }
body.movil-app .ma-bar { background: var(--cm-marino) !important; }
body.movil-app .cm-tabs > a, body.movil-app .cm-tabs > button, body.movil-app .cm-tabs > a *, body.movil-app .cm-tabs > button * { color: var(--cm-texto-2) !important; }
body.movil-app .cm-tabs > .on, body.movil-app .cm-tabs > .on * { color: var(--cm-azul) !important; }
body.movil-app .cm-tabs .cm-badge, body.movil-app .ma-bar .cm-badge { color: #fff !important; }
body.movil-app .cm-tile-pri, body.movil-app .cm-tile-pri * { color: #fff !important; }
body.movil-app .cm-tile-pri .cm-tile-c { color: #cbd5e1 !important; }


/* ── Formularios de campo (mantenimiento): fotos y botón de grabar a tamaño de dedo ── */
body.movil-app input[type="file"].form-control { min-height: 50px; padding: 10px 12px; font-size: 15px; }
body.movil-app input[type="file"].form-control::file-selector-button {
  min-height: 30px; padding: 4px 12px; margin-right: 10px; border-radius: 8px; border: 0;
  background: var(--cm-azul); color: #fff; font-weight: 600;
}
body.movil-app #btnGrabarAct, body.movil-app #btnGrabarActRel, body.movil-app #btnIniciar { width: 100%; min-height: 52px; font-size: 16px; font-weight: 700; }
body.movil-app textarea.form-control { min-height: 90px; }
body.movil-app #mapMain { height: 240px !important; }
body.movil-app .list-group-item-action { min-height: 56px; }
body.movil-app .list-group-item .fw-semibold { font-size: 15px; line-height: 1.35; }

/* Encabezado repetido (movil.js lo marca) */
body.movil-app main.content .cm-oculto { display: none !important; }
/* Botonera de exportar de DataTables (Copy/CSV/Excel/PDF/Print) en una fila deslizable */
body.movil-app .dt-buttons .dt-button { flex: 0 0 auto !important; min-width: 0 !important; }
body.movil-app .dataTables_scroll::after { display: none !important; }
body.movil-app table.cm-tarjetas > tbody > tr > td.dtr-control { padding-left: 0 !important; }

/* DataTables 2: sus filas de controles (buscar, cantidad, paginado) a todo el ancho; si no, el buscador se sale */
body.movil-app .dt-container > .row { margin-left: 0; margin-right: 0; }
body.movil-app .dt-container > .row > [class*="col"] { width: 100%; max-width: 100%; flex: 0 0 100%; margin: 0 !important; padding-left: 0; padding-right: 0; }
body.movil-app .dt-container .dt-search label { flex: 0 0 auto; margin: 0; }
body.movil-app .dt-container .dt-search input { min-width: 0; }
