/* Capa móvil · núcleo y armazón (tokens --mv-*, barras, FAB, hojas, snackbar, listas, filtros, Más,
   páginas genéricas). Dueño: agente ARMAZÓN (23-sep-2026).
   Especificación: qa/diseno/movil/variante_bc (B con las listas de C) y su LEEME.md.
   REGLA: toda regla cuelga de html.mv, que movil.js pone SOLO en pantallas de < 768 px.
   El escritorio y la tablet no leen nada de este archivo.
   Capas: barras 242 · FAB 246 · búsqueda 250 · velo 257 · hoja 258 · (.modal 260) · snackbar #toast 300. */

/* ── 1 · TOKENS — claro ─────────────────────────────────────────────────────────────────────
   Los de la B, por rol. La acción se deriva de la capa base (--accion = #1556C0 / #7AA8FF). */
html.mv{
  --mv-accion:var(--accion,#1556C0);
  --mv-navy:#0F172A; --mv-lha-azul:#48A8E0; --mv-lha-verde:#78C828;
  --mv-on-navy-2:rgba(255,255,255,.74); --mv-on-navy-3:rgba(255,255,255,.6);
  --mv-navy-aviso:#F5B84A; --mv-navy-error:#FF9A90;
  --mv-pri:var(--mv-accion); --mv-on-pri:#FFFFFF; --mv-pri-cont:#E3ECFA; --mv-on-pri-cont:#0B3A86;
  --mv-bg:#FFFFFF; --mv-card:#FFFFFF; --mv-hj-bg:#FFFFFF; --mv-s1:#F5F7FB; --mv-s2:#EEF2F8; --mv-s3:#E2E8F1;
  --mv-tx:#0F172A; --mv-tx2:#475569; --mv-tx3:#5F6B7E;
  --mv-linea:#E6EBF2; --mv-borde:#C6D0DD;
  --mv-ok:#497918; --mv-ok-cont:#E8F3D8; --mv-av:#9A5B00; --mv-av-cont:#FFF0D6; --mv-er:#C0262D; --mv-er-cont:#FDE7E7;
  --mv-sombra-1:0 1px 2px rgba(15,23,42,.05),0 4px 12px -3px rgba(15,23,42,.09);
  --mv-sombra-2:0 2px 6px rgba(15,23,42,.08),0 16px 32px -10px rgba(15,23,42,.26);
  --mv-card-borde:rgba(15,23,42,.06); --mv-velo:rgba(7,12,24,.5);
  --mv-inv:#1B2536; --mv-on-inv:#EEF2F8; --mv-inv-acc:#8CCBF0;
  --mv-nav-bg:#FFFFFF; --mv-nav-pill:#E3ECFA; --mv-nav-ico:#1556C0;
  --mv-carro-bg:#0F172A; --mv-sel-fila:#F2F6FD;
  --mv-ag0:#1556C0; --mv-ag1:#6E9BE3; --mv-ag2:#E2A11E; --mv-ag3:#D9741B; --mv-ag4:#C4481F; --mv-ag5:#9E1C24; --mv-ag6:#5E0E14;
  --mv-e-std:cubic-bezier(.2,0,0,1); --mv-e-sal:cubic-bezier(.3,0,1,1);
  --mv-top:env(safe-area-inset-top,0px); --mv-bot:env(safe-area-inset-bottom,0px);
  --mv-barra-h:64px; --mv-nav-h:80px;
  /* tokens de la APP recoloreados para las páginas genéricas (render de escritorio dentro del
     armazón): fondo de pantalla blanco con tarjetas que flotan, como la B */
  --fondo:#FFFFFF;
  color-scheme:light;
}
/* ── 1b · TOKENS — oscuro (diseñado, no invertido; la fuente de verdad es data-theme) ── */
html.mv[data-theme="dark"]{
  --mv-navy:#070C18;
  --mv-pri-cont:#1D3561; --mv-on-pri:#0A1F45; --mv-on-pri-cont:#D8E5FF;
  --mv-bg:#111A2B; --mv-card:#172235; --mv-hj-bg:#172235; --mv-s1:#152033; --mv-s2:#1C2940; --mv-s3:#26354F;
  --mv-tx:#E7ECF4; --mv-tx2:#AEB9CB; --mv-tx3:#8F9BB0;
  --mv-linea:#243149; --mv-borde:#3A4A66;
  --mv-ok:#96D65C; --mv-ok-cont:#1D3217; --mv-av:#F2B660; --mv-av-cont:#3A2A12; --mv-er:#FF8A84; --mv-er-cont:#3D1C20;
  --mv-sombra-1:0 1px 2px rgba(0,0,0,.28),0 4px 14px -3px rgba(0,0,0,.4);
  --mv-sombra-2:0 2px 6px rgba(0,0,0,.35),0 18px 36px -10px rgba(0,0,0,.65);
  --mv-card-borde:rgba(255,255,255,.045); --mv-velo:rgba(0,0,0,.62);
  --mv-inv:#E7ECF4; --mv-on-inv:#111A2B; --mv-inv-acc:#1556C0;
  --mv-nav-bg:#162033; --mv-nav-pill:#1D3561; --mv-nav-ico:#A9C6FF;
  --mv-carro-bg:#26354F; --mv-sel-fila:#16263F;
  --mv-ag0:#7AA8FF; --mv-ag1:#3F6CC0; --mv-ag2:#F2B660; --mv-ag3:#EE8A42; --mv-ag4:#E0603A; --mv-ag5:#C9383E; --mv-ag6:#8F1D28;
  --fondo:#111A2B; --panel:#172235; --panel-2:#1C2940; --panel-3:#26354F;
  --glass-bg:#172235; --glass-overlay:#1C2940; --input:#172235;
  color-scheme:dark;
}

/* ── 2 · SUPERFICIE Y CROMO VIEJO ───────────────────────────────────────────────────────────
   Los nodos del cromo de escritorio NO se borran (renderNav() los usa): solo se ocultan. Los que
   la app muestra con estilo en línea (#filtros, #pushBanner) necesitan !important. */
html.mv body{ background:var(--mv-bg); color:var(--mv-tx); overflow-x:hidden; -webkit-tap-highlight-color:transparent; }
html.mv.mv-bloqueo{ overflow:hidden; }
html.mv #appLayout>.content>header,
html.mv #mobnav,html.mv #sidebar,html.mv #scrim,html.mv #burger,html.mv #pmPanel,
html.mv #pushBanner,html.mv #filtros,html.mv #bnrSide,
html.mv #editBar,html.mv .cardTools,html.mv .rsz{ display:none !important; }
html.mv .content{
  margin-left:0 !important;
  padding:calc(var(--mv-barra-h) + var(--mv-top)) 0 calc(var(--mv-nav-h) + var(--mv-bot) + 24px);
  min-width:0;
}
html.mv.mv-con-fab .content{ padding-bottom:calc(var(--mv-nav-h) + var(--mv-bot) + 88px); }
html.mv #main{ padding:8px 16px 16px; max-width:none; min-width:0; }
html.mv #loadbar{ z-index:301; }
/* modo Diseño: en el teléfono no se arrastran tarjetas (bloqueaba el desplazamiento) */
html.mv .card.editing{ touch-action:auto; }
/* «ver como» (fijo abajo, z 9000): encima de la barra inferior y por debajo de las hojas */
html.mv #vcBanner{ bottom:calc(var(--mv-nav-h) + var(--mv-bot)) !important; z-index:241 !important; padding:6px 12px !important; }
html.mv body:has(#vcBanner) .content{ padding-bottom:calc(var(--mv-nav-h) + var(--mv-bot) + var(--mv-vc,0px) + 88px); }
html.mv body:has(#vcBanner) .mv-fab{ bottom:calc(var(--mv-nav-h) + var(--mv-bot) + var(--mv-vc,0px) + 16px); }
html.mv body:has(#vcBanner) #toast{ bottom:calc(var(--mv-nav-h) + var(--mv-bot) + var(--mv-vc,0px) + 12px); }
html.mv #nuevaVersionBar{ bottom:calc(var(--mv-nav-h) + var(--mv-bot) + 12px) !important; max-width:calc(100vw - 24px) !important; }
html.mv #avisosWrap{ left:12px; right:12px; bottom:calc(var(--mv-nav-h) + var(--mv-bot) + 12px); max-width:none; }

/* ── 3 · RESETEO de lo propio (especificidad baja: los componentes mandan) ── */
html.mv :where(.mv-app,.mv-pantalla,.mv-hoja,.mv-bus,#mvChips) :where(button),
html.mv :where(button[class^="mv-"],button[class*=" mv-"]){
  font:inherit; color:inherit; background:none; border:0; padding:0; margin:0; cursor:pointer;
  text-align:inherit; letter-spacing:inherit; box-shadow:none; min-height:0; text-transform:none;
}
html.mv :where(.mv-app,.mv-pantalla,.mv-hoja,.mv-bus) :where(h1,h2,h3,p){ margin:0; }
html.mv :where(.mv-app,.mv-pantalla,.mv-hoja,.mv-bus){ font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif; line-height:1.5; font-variant-numeric:tabular-nums; }
html.mv svg.mv-i{ display:block; flex:none; }
html.mv :where(.mv-app,.mv-pantalla,.mv-hoja,.mv-bus,#main) [hidden]{ display:none !important; }
html.mv :where(.mv-app,.mv-pantalla,.mv-hoja,.mv-bus,#main,#mvChips) :focus-visible{ outline:2px solid var(--mv-pri); outline-offset:2px; }
html.mv .mv-sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* ── 4 · PRESIÓN: capa de estado + onda desde el dedo, sin mover el layout ── */
html.mv :where(.mv-tap){ position:relative; }
html.mv .mv-tap{ overflow:hidden; isolation:isolate; }
html.mv .mv-tap::after,html.mv .mv-chip::after,html.mv .mv-ind::after{
  content:''; position:absolute; inset:0; border-radius:inherit; background:currentColor; opacity:0;
  transition:opacity .1s linear; pointer-events:none; z-index:-1;
}
html.mv .mv-tap.mv-prs::after,html.mv .mv-tap-in.mv-prs>.mv-chip::after,html.mv .mv-dest.mv-prs .mv-ind::after{ opacity:.09; }
html.mv .mv-onda{ position:absolute; border-radius:50%; background:currentColor; opacity:.1; transform:scale(0); pointer-events:none;
  animation:mv-onda .42s var(--mv-e-std) forwards; z-index:-1; }
html.mv .mv-onda.fuera{ opacity:0; transition:opacity .22s linear; }
@keyframes mv-onda{ to{ transform:scale(1); } }

/* ── 5 · BARRA SUPERIOR (top app bar M3) ── */
html.mv .mv-barra{
  --mv-barra-bg:var(--mv-bg); --mv-p:0;
  position:fixed; top:0; left:0; right:0; z-index:242;
  height:calc(var(--mv-barra-h) + var(--mv-top)); padding:var(--mv-top) 4px 0;
  display:flex; align-items:center;
  background:var(--mv-barra-bg); color:var(--mv-tx);
  transition:background-color .2s linear;
}
html.mv.mv-alzada .mv-barra{ --mv-barra-bg:var(--mv-s1); }
html.mv.mv-marca .mv-barra{ --mv-barra-bg:var(--mv-navy); color:#FFFFFF; }
html.mv .mv-barra-t{ flex:1; min-width:0; position:relative; height:64px; margin-left:12px; }
html.mv .mv-barra .mv-ib:not([hidden])+.mv-barra-t{ margin-left:0; }
html.mv .mv-t1{
  position:absolute; left:0; right:0; top:18px; margin:0;
  font-family:inherit; font-size:1.375rem; line-height:1.75rem; font-weight:650; letter-spacing:-.018em; color:inherit;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  display:block;
}
html.mv .mv-t1.largo{ font-size:1.1875rem; letter-spacing:-.012em; }
html.mv .mv-barra.compacta .mv-t1{ opacity:clamp(0,calc(1 - var(--mv-p)*2.4),1); transform:translateY(calc(var(--mv-p)*-10px)); }
html.mv .mv-t2{ position:absolute; left:0; top:11px; margin:0; font-size:.75rem; line-height:1rem; font-weight:500; white-space:nowrap;
  color:var(--mv-tx2); opacity:clamp(0,calc(var(--mv-p)*2.6 - 1.6),1); }
html.mv .mv-t2n{ position:absolute; left:0; top:29px; margin:0; font-size:1.25rem; line-height:1; font-weight:700; letter-spacing:-.035em;
  white-space:nowrap; color:var(--mv-tx); opacity:0; }
html.mv.mv-marca .mv-t2{ color:var(--mv-on-navy-2); }
html.mv.mv-marca .mv-t2n{ color:#FFFFFF; }
html.mv .mv-barra.plegada .mv-t2n{ opacity:1; }
/* héroe cuya cifra no viaja a la barra (barraCompacta(…,{fundido:true})): la cifra entra con la
   misma curva que la etiqueta, en vez de aparecer de golpe en p = 1 */
html.mv .mv-barra.compacta.fundido .mv-t2n{ opacity:clamp(0,calc(var(--mv-p)*2.6 - 1.6),1); }
/* con una capa encima («Más», un grupo) la barra dice el título de la capa, no la cifra plegada */
html.mv.mv-capa .mv-barra.compacta .mv-t1{ opacity:1; transform:none; }
html.mv.mv-capa .mv-barra .mv-t2,html.mv.mv-capa .mv-barra .mv-t2n,html.mv.mv-capa .mv-barra.compacta.fundido .mv-t2n{ opacity:0; }
html.mv .mv-barra-acc{ display:flex; align-items:center; margin-left:auto; }
html.mv .mv-ib{ width:48px; height:48px; border-radius:50%; display:grid; place-items:center; flex:none; color:inherit; }
html.mv .mv-ib.mv-tap::after{ inset:4px; border-radius:50%; }
html.mv .mv-ib.mv-tap{ overflow:visible; }
html.mv .mv-badge{
  position:absolute; top:7px; left:25px; min-width:17px; height:17px; padding:0 4px; border-radius:9px;
  background:#C0262D; color:#FFFFFF; font-size:.6875rem; line-height:17px; font-weight:700; text-align:center;
  box-shadow:0 0 0 2px var(--mv-barra-bg); z-index:2; font-variant-numeric:tabular-nums;
}
html.mv .mv-perf{ width:48px; height:48px; display:grid; place-items:center; border-radius:50%; flex:none; }
html.mv .mv-perf b,html.mv .mv-avatar{
  width:32px; height:32px; border-radius:50%; background:var(--mv-lha-azul); color:#0F172A;
  display:grid; place-items:center; font-size:.75rem; font-weight:700; letter-spacing:.02em;
}

/* ── 6 · BARRA INFERIOR (navigation bar M3, 5 destinos) ── */
html.mv .mv-nav{
  position:fixed; left:0; right:0; bottom:0; z-index:242;
  height:calc(var(--mv-nav-h) + var(--mv-bot)); padding-bottom:var(--mv-bot);
  display:flex; background:var(--mv-nav-bg);
  box-shadow:0 -1px 0 var(--mv-linea),0 -8px 20px -12px rgba(15,23,42,.18);
}
html.mv .mv-dest{
  flex:1; min-width:0; display:flex; flex-direction:column; align-items:center; padding-top:12px; gap:4px;
  color:var(--mv-tx2); font-size:.75rem; line-height:1rem; font-weight:500; letter-spacing:.01em;
}
html.mv .mv-dest[hidden]{ display:none; }
html.mv .mv-ind{ width:64px; height:32px; border-radius:16px; display:grid; place-items:center; position:relative; overflow:hidden; isolation:isolate; }
html.mv .mv-ind::before{
  content:''; position:absolute; inset:0; border-radius:16px; background:var(--mv-nav-pill); transform:scaleX(.3); opacity:0;
  transition:transform .22s var(--mv-e-std),opacity .12s linear; z-index:-1;
}
html.mv .mv-dest.on{ color:var(--mv-tx); font-weight:650; }
html.mv .mv-dest.on .mv-ind{ color:var(--mv-nav-ico); }
html.mv .mv-dest.on .mv-ind::before{ transform:none; opacity:1; }
html.mv .mv-dest-l{ white-space:nowrap; }

/* ── 7 · FAB (uno por pantalla, con la acción principal) ── */
html.mv .mv-fab{
  position:fixed; right:16px; bottom:calc(var(--mv-nav-h) + var(--mv-bot) + 16px); z-index:246;
  height:56px; padding:0 20px 0 16px; border-radius:16px; display:flex; align-items:center; gap:10px;
  background:var(--mv-pri); color:var(--mv-on-pri); font-size:.9375rem; font-weight:650;
  box-shadow:var(--mv-sombra-2); transition:transform .25s var(--mv-e-std);
}
html.mv .mv-fab.solo-i{ width:56px; padding:0; justify-content:center; }
html.mv .mv-fab[hidden]{ display:none; }
html.mv.mv-snk-on .mv-fab{ transform:translateY(-64px); }

/* ── 8 · SNACKBAR (se reusa #toast: z 300, ya encima de todo) ── */
html.mv #toast{
  left:12px; right:12px; bottom:calc(var(--mv-nav-h) + var(--mv-bot) + 12px); max-width:none; min-height:48px;
  padding:6px 8px 6px 16px; border:0; border-radius:12px;
  background:var(--mv-inv); color:var(--mv-on-inv); display:flex; align-items:center; gap:8px;
  font-family:'Inter',system-ui,sans-serif; font-size:.875rem; line-height:1.25rem; font-weight:400;
  box-shadow:var(--mv-sombra-2); -webkit-backdrop-filter:none; backdrop-filter:none;
  transform:translateY(16px); transition:opacity .15s linear,transform .25s var(--mv-e-std);
}
html.mv #toast.show{ transform:none; pointer-events:auto; }
html.mv .mv-snk-t{ flex:1; padding:8px 0; }
html.mv .mv-snk-acc{ height:40px; padding:0 12px; border-radius:20px; color:var(--mv-inv-acc); font-size:.9375rem; font-weight:650; flex:none; }

/* ── 9 · HOJAS INFERIORES (bottom sheets) ── */
html.mv .mv-velo{ position:fixed; inset:0; z-index:257; background:var(--mv-velo); opacity:0; transition:opacity .25s linear; }
html.mv .mv-velo.on{ opacity:1; }
html.mv .mv-hoja{
  position:fixed; left:0; right:0; bottom:0; z-index:258;
  max-height:calc(100% - 40px - var(--mv-top)); display:flex; flex-direction:column;
  background:var(--mv-hj-bg); color:var(--mv-tx); border-radius:24px 24px 0 0; box-shadow:var(--mv-sombra-2);
  padding-bottom:var(--mv-bot); outline:none;
  transform:translateY(105%); transition:transform .34s var(--mv-e-std);
}
html.mv .mv-hoja.on{ transform:none; }
html.mv .mv-hoja.sale{ transition:transform .22s var(--mv-e-sal); }
html.mv .mv-hoja-medio{ height:60vh; }
html.mv .mv-hoja-completo{ height:calc(100% - 40px - var(--mv-top)); }
html.mv .mv-hoja-asa{ height:28px; flex:none; display:grid; place-items:center; touch-action:none; cursor:grab; }
html.mv .mv-hoja-asa i{ width:32px; height:4px; border-radius:2px; background:var(--mv-borde); }
html.mv .mv-hoja-cab{ flex:none; padding:4px 24px 16px; touch-action:none; }
html.mv .mv-hoja-cab h2{ font-family:inherit; font-size:1.375rem; line-height:1.75rem; font-weight:650; letter-spacing:-.018em; color:var(--mv-tx); margin:0; }
html.mv .mv-hoja-cab p{ margin-top:4px; font-size:.875rem; line-height:1.25rem; color:var(--mv-tx2); }
html.mv .mv-hoja-cuerpo{ flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:0 16px 24px; }
html.mv .mv-hoja-pie{ flex:none; display:flex; gap:12px; align-items:center; padding:12px 16px 16px; border-top:1px solid var(--mv-linea); background:var(--mv-hj-bg); }
html.mv .mv-hoja-pie .mv-btn{ flex:1; }
html.mv .mv-hoja-pie .mv-btn-texto{ flex:none; height:48px; padding:0 16px; }

/* ── 10 · BOTONES ── */
html.mv .mv-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px; height:48px; padding:0 24px; border-radius:24px;
  font-size:.9375rem; font-weight:650; letter-spacing:.005em; white-space:nowrap;
}
html.mv .mv-btn-lleno{ background:var(--mv-pri); color:var(--mv-on-pri); }
html.mv .mv-btn-tonal{ background:var(--mv-pri-cont); color:var(--mv-on-pri-cont); }
html.mv .mv-btn-borde{ box-shadow:inset 0 0 0 1px var(--mv-borde); color:var(--mv-pri); }
html.mv .mv-btn-texto{ color:var(--mv-pri); padding:0 12px; height:40px; }
html.mv .mv-btn:disabled{ opacity:.38; pointer-events:none; }

/* ── 11 · CHIPS DE FILTRO ── */
html.mv .mv-chips{ display:flex; gap:8px; overflow-x:auto; margin:0 -16px 4px; padding:0 16px; scrollbar-width:none; }
html.mv .mv-chips::-webkit-scrollbar{ display:none; }
html.mv .mv-chipb{ flex:none; height:48px; display:inline-flex; align-items:center; position:relative; }
html.mv .mv-chip{
  position:relative; overflow:hidden; isolation:isolate;
  height:32px; padding:0 8px 0 12px; border-radius:8px; display:inline-flex; align-items:center; gap:6px;
  box-shadow:inset 0 0 0 1px var(--mv-borde); font-size:.875rem; font-weight:550; line-height:1; color:var(--mv-tx2); white-space:nowrap;
}
html.mv .mv-chip.sel{ background:var(--mv-pri-cont); color:var(--mv-on-pri-cont); box-shadow:none; }
html.mv .mv-chip.solo{ padding:0 12px; }
html.mv .mv-chip.ic{ padding-left:8px; }
html.mv .mv-ver-completo{ margin-top:32px; }
html.mv .mv-ver-completo .mv-btn{ width:100%; }
html.mv #mvChips{ padding:4px 16px 0; }
html.mv #mvChips .mv-chips{ margin-bottom:0; }
html.mv .mv-vista-movil{ margin:-4px 0 4px; }

/* ── 12 · TARJETA, SECCIÓN, KPI, PÍLDORA ── */
html.mv .mv-card{ background:var(--mv-card); border-radius:16px; box-shadow:var(--mv-sombra-1); border:1px solid var(--mv-card-borde); }
html.mv .mv-pad{ padding:16px; }
html.mv .mv-seccion{ margin-top:32px; }
html.mv .mv-seccion-cab{ display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:40px; margin-bottom:8px; }
html.mv .mv-seccion-cab h2{ font-family:inherit; font-size:1.0625rem; line-height:1.5rem; font-weight:650; letter-spacing:-.012em; color:var(--mv-tx); margin:0; }
html.mv .mv-seccion-cab .mv-btn-texto{ margin-right:-12px; }
html.mv .mv-meta{ font-size:.8125rem; line-height:1.125rem; color:var(--mv-tx2); white-space:nowrap; }
html.mv .mv-cnt{ min-width:24px; height:24px; padding:0 8px; border-radius:12px; background:var(--mv-s2); color:var(--mv-tx2); font-size:.75rem; font-weight:650; display:grid; place-items:center; }
html.mv .mv-kpis{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
html.mv .mv-kpi{ display:flex; flex-direction:column; justify-content:flex-start; width:100%; padding:16px; text-align:left; color:var(--mv-tx); }
html.mv .mv-kpi.ancho{ grid-column:1/-1; }
html.mv .mv-kpi-l{ display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:.8125rem; line-height:1.125rem; font-weight:550; color:var(--mv-tx2); }
html.mv .mv-kpi-l .mv-i{ color:var(--mv-tx3); margin:-2px -4px -2px 0; }
html.mv .mv-kpi-v{ margin-top:6px; font-size:1.5rem; line-height:1.875rem; font-weight:700; letter-spacing:-.028em; white-space:nowrap; font-variant-numeric:tabular-nums; }
html.mv .mv-kpi-v small{ font-size:.8125rem; font-weight:550; color:var(--mv-tx2); letter-spacing:0; margin-left:4px; }
html.mv .mv-kpi-s{ margin-top:4px; font-size:.75rem; line-height:1rem; color:var(--mv-tx3); }
html.mv .mv-kpi-s.av{ color:var(--mv-av); font-weight:600; }
html.mv .mv-medidor{ height:6px; border-radius:3px; background:var(--mv-s3); margin-top:12px; overflow:hidden; }
html.mv .mv-medidor i{ display:block; height:100%; border-radius:3px; background:var(--mv-pri); }
html.mv .mv-medidor.av i{ background:var(--mv-av); }
/* píldora de variación ▲▼: sobre superficie clara (por defecto) y sobre navy (.mv-sobre-navy) */
html.mv .mv-pill{
  display:inline-flex; align-items:center; gap:4px; height:28px; padding:0 10px 0 8px; border-radius:14px;
  background:var(--mv-s2); color:var(--mv-tx2); font-size:.8125rem; font-weight:600; white-space:nowrap; font-variant-numeric:tabular-nums;
}
html.mv .mv-pill.sin-i{ padding-left:10px; }
html.mv .mv-pill.ok{ background:var(--mv-ok-cont); color:var(--mv-ok); }
html.mv .mv-pill.er{ background:var(--mv-er-cont); color:var(--mv-er); }
html.mv .mv-pill.av{ background:var(--mv-av-cont); color:var(--mv-av); }
html.mv .mv-sobre-navy .mv-pill{ background:rgba(255,255,255,.08); color:rgba(255,255,255,.9); }
html.mv .mv-sobre-navy .mv-pill.ok{ background:rgba(120,200,40,.15); color:var(--mv-lha-verde); }
html.mv .mv-sobre-navy .mv-pill.er{ background:rgba(255,154,144,.14); color:var(--mv-navy-error); }
html.mv .mv-sobre-navy .mv-pill.av{ background:rgba(245,184,74,.15); color:var(--mv-navy-aviso); }
html.mv .mv-c-ok{ color:var(--mv-ok); } html.mv .mv-c-er{ color:var(--mv-er); } html.mv .mv-c-av{ color:var(--mv-av); } html.mv .mv-c-pri{ color:var(--mv-pri); }

/* ── 13 · LISTA DENSA (la de C: «lista extracto», medidas de variante_bc/LEEME.md §3) ── */
html.mv .mv-lista{ --lx-x:16px; --lx-div:var(--lx-x); position:relative; margin:0 -16px; }
html.mv .mv-lista.con-i{ --lx-div:calc(var(--lx-x) + 36px); }
html.mv .mv-hoja .mv-lista{ --lx-x:24px; }
html.mv .mv-lista.cierra::after{ content:''; position:absolute; left:var(--lx-div); right:0; bottom:0; height:1px; background:var(--mv-linea); }
html.mv .mv-seccion-cab+.mv-lista,html.mv .mv-sub-h+.mv-lista{ margin-top:-4px; }
html.mv .mv-fila{
  position:relative; display:flex; align-items:center; gap:12px; width:100%; min-height:48px; padding:10px var(--lx-x);
  text-align:left; color:var(--mv-tx); background:none; border:0; font:inherit;
}
html.mv .mv-lista>.mv-fila+.mv-fila::before{ content:''; position:absolute; top:0; left:var(--lx-div); right:0; height:1px; background:var(--mv-linea); z-index:1; }
html.mv .mv-fila.sel{ background:var(--mv-sel-fila); }
html.mv .mv-fila.mv-tap{ overflow:hidden; }
html.mv .mv-fila-i{ color:var(--mv-tx2); }
html.mv .mv-fila-i.pri{ color:var(--mv-pri); } html.mv .mv-fila-i.er{ color:var(--mv-er); } html.mv .mv-fila-i.av{ color:var(--mv-av); } html.mv .mv-fila-i.ok{ color:var(--mv-ok); }
html.mv .mv-fila-rk{ width:18px; flex:none; text-align:right; font-size:.8125rem; line-height:1.125rem; font-weight:500; color:var(--mv-tx2); }
html.mv .mv-fila-t{ flex:1; min-width:0; }
html.mv .mv-fila-t>b{ display:block; font-size:.9375rem; line-height:1.25rem; font-weight:500; letter-spacing:-.006em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
html.mv .mv-fila-t>small{ display:block; margin-top:2px; font-size:.8125rem; line-height:1.125rem; color:var(--mv-tx2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
html.mv .mv-fila-t>b.dos{ white-space:normal; }
html.mv .mv-fila-t>small.dos{ white-space:normal; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
html.mv .mv-fila.sel .mv-fila-t>b{ font-weight:600; }
html.mv .mv-fila-v{ flex:none; text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
html.mv .mv-fila-v>b{ display:block; font-size:.875rem; line-height:1.25rem; font-weight:600; letter-spacing:-.005em; }
html.mv .mv-fila-v>small{ display:block; margin-top:2px; font-size:.8125rem; line-height:1.125rem; color:var(--mv-tx2); }
html.mv .mv-fila-v.ok>b{ color:var(--mv-ok); } html.mv .mv-fila-v.er>b{ color:var(--mv-er); } html.mv .mv-fila-v.av>b{ color:var(--mv-av); }
html.mv .mv-fila-v.col{ min-width:76px; }
html.mv .mv-fila-ch{ color:var(--mv-tx3); margin:0 -4px; }
/* texto semántico en la secundaria: siempre ícono + palabra */
html.mv .mv-sem{ display:inline-flex; align-items:center; gap:4px; font-weight:600; vertical-align:top; }
html.mv .mv-sem .mv-i{ margin-top:1px; }
html.mv .mv-sem.er{ color:var(--mv-er); } html.mv .mv-sem.av{ color:var(--mv-av); } html.mv .mv-sem.ok{ color:var(--mv-ok); }
html.mv .mv-sem.neu{ color:var(--mv-tx2); font-weight:500; }
html.mv .mv-barra-prop{ display:block; height:4px; border-radius:2px; background:var(--mv-s3); margin-top:8px; overflow:hidden; }
html.mv .mv-barra-prop i{ display:block; height:100%; border-radius:2px; background:var(--mv-pri); }
html.mv .mv-ver-mas{
  display:flex; width:100%; height:48px; align-items:center; justify-content:center; gap:4px; border-top:1px solid var(--mv-linea);
  color:var(--mv-pri); font-size:.875rem; font-weight:650; position:relative;
}
html.mv .mv-ver-mas .mv-i{ transition:transform .2s var(--mv-e-std); }
html.mv .abierta>.mv-ver-mas .mv-i{ transform:rotate(180deg); }
html.mv .plegable>.mv-fila.extra{ display:none; }
html.mv .plegable.abierta>.mv-fila.extra{ display:flex; }
html.mv .mv-lista-vacia{ font-size:.875rem; line-height:1.375rem; color:var(--mv-tx2); padding:16px 0; }
html.mv .mv-lista.mv-salida{ margin-top:24px; box-shadow:0 -1px 0 var(--mv-linea); }
html.mv .mv-salida .mv-fila{ color:var(--mv-er); }
html.mv .mv-salida .mv-fila-t>b{ font-weight:600; }
html.mv .mv-salida .mv-fila-ch{ display:none; }
html.mv .mv-sub-h{ font-size:.8125rem; line-height:1.25rem; font-weight:650; color:var(--mv-tx2); margin:24px 0 8px; font-family:inherit; letter-spacing:0; text-transform:none; }
html.mv .mv-hoja .mv-sub-h{ margin-left:8px; margin-right:8px; margin-top:20px; }
html.mv .mv-hoja .mv-sub-h:first-child{ margin-top:4px; }
html.mv mark{ background:rgba(72,168,224,.3); color:inherit; border-radius:3px; padding:0 1px; }

/* ── 14 · VACÍO, NOTA, ERROR, ESQUELETO ── */
html.mv .mv-vacio{ text-align:center; padding:40px 24px; color:var(--mv-tx); }
html.mv .mv-vacio-c{ width:96px; height:96px; border-radius:50%; background:var(--mv-pri-cont); color:var(--mv-on-pri-cont); display:grid; place-items:center; margin:0 auto 20px; }
html.mv .mv-vacio h2{ font-family:inherit; font-size:1.125rem; line-height:1.5rem; font-weight:650; letter-spacing:-.012em; margin:0; color:var(--mv-tx); }
html.mv .mv-vacio p{ margin:8px auto 20px; max-width:32ch; font-size:.875rem; line-height:1.375rem; color:var(--mv-tx2); }
html.mv .mv-nota,html.mv .mv-bus-ayuda{ display:flex; gap:10px; align-items:flex-start; padding:12px 14px; border-radius:12px; background:var(--mv-s1);
  font-size:.8125rem; line-height:1.125rem; color:var(--mv-tx2); margin-top:16px; }
html.mv .mv-nota .mv-i,html.mv .mv-bus-ayuda .mv-i{ color:var(--mv-tx3); margin-top:-1px; }
html.mv .mv-error{ margin-top:12px; font-size:.875rem; line-height:1.25rem; color:var(--mv-er); font-weight:600; }
html.mv .mv-esqueleto{
  display:block; height:14px; border-radius:6px; background:var(--mv-s2); position:relative; overflow:hidden;
}
html.mv .mv-esqueleto::after{
  content:''; position:absolute; inset:0; transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--mv-bg) 65%,transparent),transparent);
  animation:mv-brillo 1.3s linear infinite;
}
@keyframes mv-brillo{ to{ transform:translateX(100%); } }
html.mv .mv-esq{ padding:16px 0; }
html.mv .mv-esq-rejilla{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:24px; }
html.mv .mv-esq-tarjeta{ border-radius:16px; padding:16px; background:var(--mv-card); box-shadow:var(--mv-sombra-1); border:1px solid var(--mv-card-borde); }
html.mv .mv-esq-fila{ display:flex; justify-content:space-between; gap:24px; padding:17px 0; border-top:1px solid var(--mv-linea); }
html.mv .mv-esq-fila:first-child{ border-top:0; }

/* ── 15 · HOJA DE FILTROS Y CAMPOS ── */
html.mv .mv-fg{ margin-top:20px; }
html.mv .mv-fg:first-child{ margin-top:0; }
html.mv .mv-fg-t{ display:block; font-family:inherit; font-size:.875rem; line-height:1.25rem; font-weight:650; margin:0 4px 4px; color:var(--mv-tx); letter-spacing:0; }
html.mv .mv-fg-t::before{ content:none; }
html.mv .mv-fchips{ display:flex; flex-wrap:wrap; column-gap:8px; }
html.mv .mv-fechas{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:12px; }
html.mv .mv-fechas.uno{ grid-template-columns:1fr; }
html.mv .mv-campo{ position:relative; display:block; }
html.mv .mv-campo>span{ position:absolute; left:12px; top:-8px; padding:0 4px; background:var(--mv-hj-bg); font-size:.75rem; line-height:1rem; color:var(--mv-tx2); z-index:1; }
html.mv .mv-campo input,html.mv .mv-campo select{
  width:100%; height:56px; min-height:56px; border-radius:12px; border:1px solid var(--mv-borde); background:transparent;
  padding:0 14px; font-family:inherit; font-size:1rem; color:var(--mv-tx); -webkit-appearance:none; appearance:none; outline:none; box-shadow:none;
}
html.mv .mv-campo input[type="date"]{ padding-right:44px; }
html.mv .mv-campo select{ padding-right:44px; }
html.mv .mv-campo select:disabled{ opacity:.6; }
html.mv .mv-campo>.mv-i{ position:absolute; right:14px; top:17px; pointer-events:none; color:var(--mv-tx2); }
html.mv .mv-campo input:focus,html.mv .mv-campo select:focus,
html.mv .mv-campo input:focus-visible,html.mv .mv-campo select:focus-visible{ border-color:var(--mv-pri); box-shadow:inset 0 0 0 1px var(--mv-pri); outline:none; }
html.mv .mv-campo:focus-within>span{ color:var(--mv-pri); }
html.mv .mv-campo-btn{ width:100%; height:56px; border-radius:12px; border:1px solid var(--mv-borde); display:flex; align-items:center; gap:8px; padding:0 14px; text-align:left; }
html.mv .mv-campo-btn>b{ flex:1; min-width:0; font-weight:400; font-size:1rem; color:var(--mv-tx); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
html.mv .mv-campo-btn>.mv-i{ color:var(--mv-tx2); transition:transform .2s var(--mv-e-std); }
html.mv .mv-campo-btn>.mv-i.gira{ transform:rotate(180deg); }
html.mv .mv-campo-btn[aria-expanded="true"]{ border-color:var(--mv-pri); box-shadow:inset 0 0 0 1px var(--mv-pri); }
html.mv .mv-opciones{ margin-top:8px; border-radius:12px; box-shadow:inset 0 0 0 1px var(--mv-linea); overflow:hidden; }
html.mv .mv-opcion{ display:flex; align-items:center; gap:14px; width:100%; min-height:48px; padding:0 14px; font-size:.9375rem; color:var(--mv-tx); text-align:left; }
html.mv .mv-opcion+.mv-opcion{ box-shadow:inset 0 1px 0 var(--mv-linea); }
html.mv .mv-caja{ width:20px; height:20px; border-radius:5px; box-shadow:inset 0 0 0 2px var(--mv-tx2); display:grid; place-items:center; flex:none; }
html.mv .mv-caja.on{ background:var(--mv-pri); box-shadow:none; color:var(--mv-on-pri); }

/* ── 16 · PERFIL, TEMA, BUSCADOR DE PÁGINAS, «CREAR» ── */
html.mv .mv-perfil{ display:flex; align-items:center; gap:16px; padding:16px; }
html.mv .mv-perfil .mv-avatar{ width:48px; height:48px; font-size:1rem; flex:none; }
html.mv .mv-perfil b{ display:block; font-size:1.0625rem; line-height:1.5rem; font-weight:650; color:var(--mv-tx); }
html.mv .mv-perfil small{ display:block; font-size:.875rem; line-height:1.25rem; color:var(--mv-tx2); }
html.mv .mv-seg{ display:flex; height:48px; border-radius:24px; box-shadow:inset 0 0 0 1px var(--mv-borde); overflow:hidden; margin:0 16px 16px; }
html.mv .mv-seg button{ flex:1; display:flex; align-items:center; justify-content:center; gap:6px; font-size:.875rem; font-weight:600; color:var(--mv-tx2); }
html.mv .mv-seg button+button{ box-shadow:-1px 0 0 var(--mv-borde); }
html.mv .mv-seg button[aria-pressed="true"]{ background:var(--mv-pri-cont); color:var(--mv-on-pri-cont); }
html.mv .mv-hoja .mv-perfil-card{ box-shadow:none; border:0; background:none; margin:-8px -8px 0; }
html.mv .mv-perfil-card .mv-cuenta{ margin:-4px 0 0; padding:0 16px 8px; flex-wrap:wrap; column-gap:8px; row-gap:0; overflow:visible; }
html.mv .mv-perfil-card .mv-seg+.mv-cuenta{ margin-top:-8px; }
html.mv .mv-chip.av{ background:var(--mv-av-cont); color:var(--mv-av); box-shadow:none; }
html.mv .mv-lista-cuenta{ margin-top:16px; }
html.mv .mv-hoja .mv-lista-cuenta{ margin-top:8px; }
html.mv .mv-busc{
  height:56px; border-radius:28px; background:var(--mv-s2); display:flex; align-items:center; padding:0 4px 0 16px; margin-top:16px;
  color:var(--mv-tx); transition:background-color .15s linear,box-shadow .15s linear;
}
html.mv .mv-busc:focus-within{ background:var(--mv-card); box-shadow:0 0 0 2px var(--mv-pri),var(--mv-sombra-2); }
html.mv .mv-busc>.mv-i{ color:var(--mv-tx2); }
html.mv .mv-busc:focus-within>.mv-i{ color:var(--mv-pri); }
html.mv .mv-busc input{
  flex:1; min-width:0; height:100%; min-height:0; border:0; background:none; padding:0 8px 0 12px; font-family:inherit; font-size:1rem;
  color:var(--mv-tx); caret-color:var(--mv-pri); outline:none; box-shadow:none; border-radius:0;
}
html.mv .mv-busc input:focus-visible,html.mv .mv-bus-cab input:focus-visible{ outline:none; }
html.mv .mv-busc input::placeholder,html.mv .mv-bus-cab input::placeholder{ color:var(--mv-tx3); opacity:1; }
html.mv input[type=search].mv-x::-webkit-search-cancel-button,html.mv .mv-busc input::-webkit-search-cancel-button,html.mv .mv-bus-cab input::-webkit-search-cancel-button{ display:none; }
html.mv .mv-pie-v{ text-align:center; font-size:.75rem; line-height:1rem; color:var(--mv-tx3); margin-top:24px; }
html.mv .mv-crear{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; padding:0 8px 8px; }
html.mv .mv-crear button{
  min-height:112px; border-radius:16px; background:var(--mv-s1); display:flex; flex-direction:column; align-items:center; justify-content:flex-start;
  padding:16px 6px 12px; gap:10px; font-size:.8125rem; line-height:1.125rem; font-weight:600; text-align:center; color:var(--mv-tx);
}
html.mv .mv-ico-c{ width:48px; height:48px; border-radius:50%; display:grid; place-items:center; flex:none; background:var(--mv-pri-cont); color:var(--mv-on-pri-cont); }

/* ── 17 · PANTALLA «MÁS» (capa entre las barras) Y BÚSQUEDA DE CLIENTES ── */
html.mv .mv-pantalla{
  position:fixed; left:0; right:0; top:calc(var(--mv-barra-h) + var(--mv-top)); bottom:calc(var(--mv-nav-h) + var(--mv-bot)); z-index:238;
  overflow-y:auto; overscroll-behavior:contain; background:var(--mv-bg); color:var(--mv-tx);
  animation:mv-fundido .24s var(--mv-e-std) both;
}
html.mv .mv-pantalla.mv-grupo{ animation-name:mv-empuje; animation-duration:.3s; }
html.mv .mv-pantalla.sale{ animation:mv-sale .2s var(--mv-e-sal) both; pointer-events:none; }
@keyframes mv-fundido{ from{ opacity:0; transform:scale(.985); } }
@keyframes mv-empuje{ from{ opacity:0; transform:translateX(32px); } }
@keyframes mv-sale{ to{ opacity:0; } }
html.mv .mv-cont{ padding:8px 16px 32px; min-height:100%; }
html.mv .mv-bus{
  position:fixed; inset:0; z-index:250; background:var(--mv-bg); color:var(--mv-tx); display:flex; flex-direction:column;
  opacity:0; transform:translateY(12px); transition:opacity .16s linear,transform .26s var(--mv-e-std);
}
html.mv .mv-bus.on{ opacity:1; transform:none; }
html.mv .mv-bus-cab{ flex:none; height:calc(var(--mv-barra-h) + var(--mv-top)); padding:var(--mv-top) 4px 0; display:flex; align-items:center; box-shadow:0 1px 0 var(--mv-linea); }
html.mv .mv-bus-cab input{
  flex:1; min-width:0; height:48px; min-height:0; border:0; background:none; font-family:inherit; font-size:1.0625rem; color:var(--mv-tx);
  outline:none; caret-color:var(--mv-pri); padding:0 4px; box-shadow:none; border-radius:0;
}
html.mv .mv-bus-res{ flex:1; overflow-y:auto; overscroll-behavior:contain; padding:0 16px 24px; }
html.mv .mv-bus-ayuda{ margin-top:20px; }

/* ── 18 · MOVIMIENTO REDUCIDO: fundido o corte, nada se desplaza ── */
@media (prefers-reduced-motion: reduce){
  html.mv .mv-pantalla,html.mv .mv-pantalla.mv-grupo{ animation:mv-solo .15s linear both; }
  html.mv .mv-pantalla.sale{ animation:none; }
  @keyframes mv-solo{ from{ opacity:0; } }
  html.mv .mv-hoja,html.mv .mv-hoja.sale,html.mv .mv-bus,html.mv #toast,html.mv .mv-fab,html.mv .mv-ind::before,html.mv .mv-velo{ transition-duration:0s !important; }
  html.mv .mv-bus{ transform:none; }
  html.mv .mv-onda{ display:none; }
  html.mv .mv-esqueleto::after{ animation:none; }
  html.mv .mv-barra.compacta .mv-t1{ transform:none; }
}

/* ── 19 · PÁGINAS GENÉRICAS (render de escritorio dentro del armazón) ─────────────────────────
   ~80 páginas sin pantalla propia. Objetivo: coherentes con la B (tokens, tarjetas de 16 px con la
   sombra de la B, KPIs en 2 columnas) y SIN desbordar: lo ancho se desplaza DENTRO de su tarjeta.
   Red de seguridad: `overflow-x:clip` en .content. Sin ella, cualquier fila de 400 px hace que
   Chrome agrande el viewport de layout y las barras fijas se descuadran (MAPA §0 y §8). */
html.mv .content{ overflow-x:clip; }
html.mv #main :is(.card,.modcard){
  background:var(--mv-card); border:1px solid var(--mv-card-borde); border-radius:16px; box-shadow:var(--mv-sombra-1);
  min-width:0; max-width:100%;
}
html.mv #main .card:hover{ box-shadow:var(--mv-sombra-1); border-color:var(--mv-card-borde); }
/* lo que no cabe se desplaza dentro de su tarjeta (movil.js marca .mv-desborda midiendo) */
html.mv #main .mv-desborda{ overflow-x:auto; overscroll-behavior-x:contain; }
html.mv #main .mv-rejilla-1{ grid-template-columns:minmax(0,1fr) !important; }
html.mv #main :is(.scroll,.matriz,.matrizMes,.rkwrap){ max-width:100%; overscroll-behavior-x:contain; }
/* rejillas a una columna; KPIs siempre de a dos (la B) */
html.mv #main :is(.gridLayout,.cols2,.cols3,.colsIg){ grid-template-columns:minmax(0,1fr); }
html.mv #main .gridLayout{ gap:12px; }
html.mv #main .grid.kpis{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
html.mv #main .kpi{ padding:16px; border-radius:16px; min-width:0; }
html.mv #main .kpi::before{ display:none; }
html.mv #main .kpi .tit{ font-size:.8125rem; line-height:1.125rem; font-weight:550; color:var(--mv-tx2); }
html.mv #main .kpi .big{ font-size:1.5rem; line-height:1.875rem; letter-spacing:-.028em; overflow-wrap:anywhere; }
html.mv #main .kpi .des{ font-size:.75rem; line-height:1rem; color:var(--mv-tx3); }
/* encabezado de tarjeta: título en su línea y la explicación debajo (antes se partían en columnas) */
html.mv #main .cardHead{ gap:4px 8px; }
html.mv #main .cardHead>h3{ flex:0 1 auto; max-width:100%; }
html.mv #main .cardHead>.sub{ flex-basis:100%; }
html.mv #main .card>h3,html.mv #main .cardHead>h3{ font-size:1rem; line-height:1.375rem; font-weight:650; letter-spacing:-.01em; }
/* <h3><i>●</i> Título <span class="sub">explicación</span></h3>: el h3 es flex y partía el título
   en una columna angosta; la explicación pasa a su propia línea */
html.mv #main h3:has(>.sub,>small){ flex-wrap:wrap; row-gap:2px; }
html.mv #main h3>:is(.sub,small){ flex-basis:100%; margin-left:0; font-size:.8125rem; line-height:1.125rem; font-weight:400; }
/* tablas: con 5+ columnas se dan un ancho mínimo y se desplazan dentro de la tarjeta (legibles),
   en vez de estrujar cada celda hasta partir fechas y nombres en tres renglones */
html.mv #main table:has(tr>:nth-child(5)){ min-width:max(100%,40rem); }
html.mv #main table:has(tr>:nth-child(8)){ min-width:max(100%,52rem); }
html.mv #main table:has(tr>:nth-child(8)) :is(td,th){ white-space:nowrap; }
html.mv #main td{ overflow-wrap:normal; }
/* filas de botones/filtros con flex en línea: que envuelvan en vez de salirse */
html.mv #main :is([style*="display:flex"],[style*="display: flex"]):not([style*="flex-wrap"]):not([style*="nowrap"]){ flex-wrap:wrap; }
html.mv #main .cardHead :is(input,select){ max-width:100%; }
html.mv #main :is(input,select,textarea):not([type=checkbox]):not([type=radio]){ max-width:100%; }
/* Mi nube / editor de documentos: su barra pegajosa se pega DEBAJO de la barra superior móvil */
html.mv #docRaiz{ --doc-top:calc(var(--mv-barra-h) + var(--mv-top)) !important; }
/* chips de filtro activos de la app (#chips) y banda de vista editada */
html.mv #vistaBanda:empty{ display:none; }

/* ── 20 · CRM (visita.centro): el módulo real de visitas adaptado SOLO con CSS ──────────────────
   visitas.js::renderVisitasCentro pinta KPIs, una tarjeta de filtros propia (buscador, selects,
   fechas con su etiqueta, rangos rápidos, «＋ Programar visita») y el layoutGrid con la lista. */
html.mv[data-mv-pagina="visita.centro"] #main>.card[style*="flex-wrap"]{ gap:12px 10px !important; padding:16px !important; }
html.mv[data-mv-pagina="visita.centro"] #main>.card[style*="flex-wrap"]>input[type=search]{ flex:1 1 100% !important; max-width:none !important; min-width:0 !important; height:48px; border-radius:12px; }
html.mv[data-mv-pagina="visita.centro"] #main>.card[style*="flex-wrap"]>select{ flex:1 1 calc(50% - 5px); min-width:0; height:48px; border-radius:12px; }
html.mv[data-mv-pagina="visita.centro"] #main>.card[style*="flex-wrap"]>label{
  flex:1 1 calc(50% - 5px); min-width:0; display:flex; flex-direction:column; gap:4px; font-size:.75rem !important; color:var(--mv-tx2) !important;
}
html.mv[data-mv-pagina="visita.centro"] #main>.card[style*="flex-wrap"]>label>input{ margin-left:0 !important; width:100%; height:48px; border-radius:12px; }
html.mv[data-mv-pagina="visita.centro"] #main>.card[style*="flex-wrap"]>.spacer{ display:none; }
html.mv[data-mv-pagina="visita.centro"] #main>.card[style*="flex-wrap"]>div:not(.spacer){ flex:1 1 100%; }
html.mv[data-mv-pagina="visita.centro"] #main>.card[style*="flex-wrap"]>.btn.primary{ flex:1 1 100%; height:48px; border-radius:24px; font-size:.9375rem; font-weight:650; }
html.mv[data-mv-pagina="visita.centro"] #main .grid.kpis{ margin-bottom:0; }

/*@@CSS4@@*/
