/* 4DE — estilos adicionales para el login y el selector de cliente.
   Complemento a styles.css: reusa sus variables (--ink, --ram, --amber,
   --line, --muted, --soft, --radius, --shadow) y no redefine nada de lo
   que ya existe. */

/* ---------- Bienvenida de RAM OS (#loginGate) ----------
   Diseño «bienvenida-ram-os». El login en sí es la página de Frappe
   (ram4de_app/www/login.html), con el mismo diseño. */
.ramos-bv{ min-height:100vh; min-height:100svh; display:grid; grid-template-rows:1fr auto; background:#F7F7F5; color:#0A0A0A; font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.ramos-bv[hidden]{ display:none; }
.ramos-bv svg{ width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
.ramos-bv-main{ display:grid; place-items:center; padding:48px 24px 16px; }
.ramos-bv-contenido{ width:min(100%,700px); text-align:center; display:flex; flex-direction:column; align-items:center; animation:ramos-bv-llega .45s ease-out; }
@keyframes ramos-bv-llega{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:none; } }
.ramos-bv-marca{ display:flex; align-items:center; gap:17px; margin-bottom:9px; }
.ramos-bv-marca img{ display:block; width:86px; height:auto; }
.ramos-bv-marca span{ font:600 18px Montserrat,sans-serif; color:#777771; border-left:1px solid #E3E3DF; padding:7px 0 7px 16px; }
.ramos-bv-arte{ width:300px; max-width:76vw; height:auto; aspect-ratio:4/3; object-fit:contain; display:block; margin:13px 0 18px;
  -webkit-mask-image:linear-gradient(to right,transparent,#000 9%,#000 91%,transparent),linear-gradient(to bottom,transparent,#000 9%,#000 91%,transparent); -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to right,transparent,#000 9%,#000 91%,transparent),linear-gradient(to bottom,transparent,#000 9%,#000 91%,transparent); mask-composite:intersect; }
.ramos-bv-eyebrow{ display:flex; align-items:center; justify-content:center; gap:8px; font:700 10px/1.4 Montserrat,sans-serif; color:#996000; letter-spacing:1.5px; text-transform:uppercase; }
.ramos-bv-eyebrow::before{ content:""; width:6px; height:6px; border-radius:50%; background:#FDB813; }
.ramos-bv h1{ font:800 clamp(30px,4vw,43px)/1.14 Montserrat,sans-serif; letter-spacing:-1.7px; margin:16px 0 13px; }
.ramos-bv h1 span{ white-space:nowrap; }
.ramos-bv-texto{ font-size:13px; color:#6A6A65; line-height:1.8; max-width:440px; margin:0; }
.ramos-bv-cta{ display:flex; justify-content:center; align-items:center; gap:9px; width:210px; min-height:49px; margin-top:29px; padding:12px 16px; border:1px solid #0A0A0A; border-radius:11px; background:#0A0A0A; color:#FDB813; font:600 12px Inter,system-ui,sans-serif; cursor:pointer; transition:background .15s,transform .15s; }
.ramos-bv-cta:hover:not(:disabled){ background:#282824; transform:translateY(-1px); }
.ramos-bv-cta:focus-visible{ outline:3px solid #FDB813; outline-offset:4px; }
.ramos-bv-cta:disabled{ opacity:.6; cursor:progress; }
.ramos-bv-nota{ max-width:440px; margin:16px 0 0; font-size:12px; line-height:1.6; color:#6A6A65; }
.ramos-bv-nota:empty{ display:none; }
.ramos-bv-pie{ display:flex; justify-content:center; align-items:center; gap:7px; min-height:75px; padding:22px; color:#898981; font-size:9px; }
.ramos-bv-pie strong{ font-weight:500; color:#6A6A62; }
.ramos-bv-pie i{ display:block; width:4px; height:4px; border-radius:50%; background:#FDB813; }
@media(max-width:760px){ .ramos-bv-main{ padding-top:30px; } .ramos-bv-arte{ width:270px; } .ramos-bv h1{ font-size:34px; } .ramos-bv-texto{ font-size:12px; max-width:325px; } .ramos-bv-marca img{ width:78px; } .ramos-bv-pie{ font-size:8px; } }
@media(max-width:360px){ .ramos-bv h1{ font-size:29px; } .ramos-bv-arte{ width:230px; } }
@media(max-height:760px) and (min-width:761px){ .ramos-bv-arte{ width:230px; margin:8px 0 12px; } .ramos-bv-main{ padding-top:25px; } .ramos-bv-marca img{ width:70px; } .ramos-bv h1{ font-size:38px; } .ramos-bv-pie{ min-height:60px; } }
@media(prefers-reduced-motion:reduce){ .ramos-bv-contenido{ animation:none; } .ramos-bv-cta{ transition:none; } }

.cliente-procesos-actions{ display:flex; gap:10px; flex-wrap:wrap; }

/* La tarjeta entera es el área de clic, no solo el botón. El botón se deja
   porque marca la acción y da un objetivo accesible por teclado. */
.cliente-card, .proceso-card{ cursor:pointer; }
.cliente-card:hover, .proceso-card:hover,
.cliente-card:focus-within, .proceso-card:focus-within{
  transform:translateY(-2px); border-color:var(--amber); box-shadow:0 12px 28px rgba(0,0,0,.06);
}
.cliente-card .work-card-top span{ text-transform:uppercase; letter-spacing:.04em; }

/* Marca cuál es el cliente abierto, que antes no se distinguía de los demás. */
.cliente-card.activa{ border-color:var(--ink); box-shadow:0 12px 28px rgba(0,0,0,.10); }


/* El nombre del usuario y el botón de salir eran dos pastillas con borde
   idénticas: no se distinguía cuál era el dato y cuál la acción. La
   identidad pierde el cromo —avatar con iniciales y texto plano— y el
   botón se queda como el único elemento con borde, que es lo que invita a
   pulsarlo. */
.sesion-usuario{ display:flex; align-items:center; gap:9px; }

.sesion-avatar{
  width:32px; height:32px; flex:none;
  border-radius:999px; background:var(--ink); color:var(--ram);
  display:grid; place-items:center;
  font:800 12px/1 Montserrat, sans-serif; letter-spacing:.02em;
}

.sesion-identidad{ display:flex; flex-direction:column; line-height:1.2; }
.sesion-rotulo{
  font:700 9px/1 Montserrat, sans-serif; text-transform:uppercase;
  letter-spacing:.09em; color:var(--muted);
}

/* Pierde la pastilla solo acá; el .local-badge de otras pantallas no se toca. */
.welcome-top-actions #clienteGateUserBadge{
  border:0; background:transparent; padding:0;
  font-size:13px; font-weight:800; color:var(--ink); text-transform:none;
}

/* btn-mini trae margin-top:9px porque está pensado para el pie de una
   tarjeta; acá desalineaba el botón respecto del nombre. */
.btn-salir{ margin-top:0; padding:9px 14px; font-size:11px; border-radius:999px; }
.btn-salir:hover{ border-color:var(--ink); }

/* En móvil el nombre se oculta (regla heredada de .local-badge), pero el
   avatar y el botón siguen: la sesión se sigue entendiendo. */
@media(max-width:760px){
  .sesion-rotulo{ display:none; }
}

/* Diálogo de descarga del Momento 5 (#descargaDialog). Cada opción es una
   tarjeta pulsable con su propia explicación, porque la diferencia entre el
   expediente (uso interno) y el entregable (lo que ve el cliente) no se
   deduce del nombre del botón. */
.descarga-opciones{ display:flex; flex-direction:column; gap:10px; margin:18px 0 6px; }

.descarga-opcion{
  display:block; width:100%; text-align:left; cursor:pointer;
  font:inherit; color:var(--ink); background:var(--white);
  border:1px solid var(--line); border-left:3px solid var(--line);
  border-radius:12px; padding:14px 16px; transition:.12s;
}
.descarga-opcion:hover:not(:disabled){ border-color:var(--amber); border-left-color:var(--amber); transform:translateY(-1px); }
.descarga-opcion:focus-visible{ outline:2px solid var(--amber); outline-offset:2px; }
.descarga-opcion:disabled{ opacity:.45; cursor:not-allowed; }
/* Mientras se arma la presentación: la primera vez carga el generador. */
.descarga-opcion.cargando{ opacity:.7; cursor:progress; border-left-color:var(--amber); }
.descarga-opcion.cargando .descarga-titulo em::after{ content:' · armando…'; }

.descarga-titulo{
  display:flex; align-items:baseline; gap:10px; flex-wrap:wrap;
  font:800 14.5px/1.3 Montserrat, sans-serif;
}
.descarga-titulo em{
  font:700 9.5px/1.6 inherit; font-style:normal; letter-spacing:.09em;
  text-transform:uppercase; color:var(--muted);
  background:var(--soft); padding:2px 8px; border-radius:999px;
}
.descarga-detalle{ display:block; margin-top:6px; font-size:12.5px; line-height:1.5; color:var(--muted); }

/* El filtro se aplica a cualquiera de las cuatro opciones, así que va
   arriba de todas y no dentro de una. */
.descarga-filtro{
  display:flex; align-items:flex-start; gap:11px; cursor:pointer;
  margin:18px 0 0; padding:13px 15px;
  background:var(--soft); border-radius:12px;
}
.descarga-filtro.apagado{ cursor:not-allowed; opacity:.55; }
.descarga-filtro input{ margin:2px 0 0; width:16px; height:16px; accent-color:var(--ink); flex:none; }
.descarga-filtro strong{ display:block; font:800 13px/1.35 Montserrat, sans-serif; }
.descarga-filtro em{ display:block; margin-top:3px; font-style:normal; font-size:12px; line-height:1.45; color:var(--muted); }

/* Con el filtro puesto, las opciones siguen siendo las mismas cuatro; lo
   que cambia es lo que traen. El margen superior lo aporta el filtro. */
.descarga-filtro + .descarga-opciones{ margin-top:10px; }

/* Módulos del catálogo. Las tarjetas son las mismas del catálogo de
   clientes; la del módulo que ya estás usando queda marcada. */
.modulos-section .work-library.modulos{ grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); }
.modulo-card .work-card-top span{ font:800 10px/1 Montserrat, sans-serif; letter-spacing:.1em; color:var(--amber); }

/* El TMP2 suelto ocupa la pantalla entera: es una aplicación completa, no
   un panel. La barra de arriba es lo único del 4DE que queda a la vista. */
.modulo-vista{ position:fixed; inset:0; z-index:40; display:flex; flex-direction:column; background:var(--white); }
.modulo-vista[hidden]{ display:none; }
.modulo-barra{ display:flex; align-items:center; gap:14px; padding:10px 18px; border-bottom:1px solid var(--line); background:var(--white); }
.modulo-barra strong{ font:800 14px/1 Montserrat, sans-serif; }
.modulo-barra .btn-mini{ margin-top:0; }
.modulo-marco{ flex:1; width:100%; border:0; background:#F7F7F7; }
body.con-modulo{ overflow:hidden; }

/* ══ Inicio de RAM OS (diseño «home-ram-os», 2026-09-23) ══════════════════
   Todo con prefijo ramos-: el 4DE tiene .btn, .eyebrow, .topbar, .hero y h1
   con otro diseño, y los nombres genéricos del diseño original se pisarían
   con los suyos. El catálogo de clientes que va adentro conserva sus clases
   del 4DE (library-section, work-card). */
.ramos{ --ramos-amber:#996000; --ramos-sidebar:238px; min-height:100vh; background:var(--paper); color:var(--ink); font:14px/1.5 Inter,system-ui,-apple-system,"Segoe UI",sans-serif; }
.ramos svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
.ramos button{ font:inherit; }
.ramos button:focus-visible,.ramos [role=button]:focus-visible{ outline:3px solid var(--ram); outline-offset:4px; }

.ramos-sidebar{ width:var(--ramos-sidebar); position:fixed; inset:0 auto 0 0; background:var(--white); border-right:1px solid var(--line); display:flex; flex-direction:column; padding:33px 20px 20px; z-index:30; }
.ramos-marca{ display:flex; align-items:center; gap:11px; padding:0 10px; }
.ramos-marca img{ display:block; width:78px; height:auto; }
.ramos-plataforma{ font:600 18px/1 Montserrat,sans-serif; color:#777771; border-left:1px solid var(--line); padding:9px 0 9px 15px; margin-left:4px; }
.ramos-nav-label{ padding:0 13px; font-size:9px; letter-spacing:1.5px; color:#85857E; font-weight:600; margin:34px 0 11px; }
.ramos-nav{ display:grid; gap:6px; }
.ramos-nav-item{ width:100%; display:flex; align-items:center; gap:12px; text-align:left; padding:12px 14px; border:0; border-radius:10px; background:none; color:#676760; font-size:12px; font-weight:500; cursor:pointer; transition:background .18s,color .18s; }
.ramos-nav-item:hover:not(:disabled){ background:var(--paper); color:var(--ink); }
.ramos-nav-item.activo{ background:var(--ink); color:var(--ram); }
.ramos-nav-item.activo::after{ content:""; width:5px; height:5px; border-radius:50%; background:var(--ram); margin-left:auto; }
.ramos-nav-item:disabled{ cursor:default; opacity:.7; }
.ramos-pronto{ margin-left:auto; font-size:9px; font-weight:600; letter-spacing:.04em; color:var(--ramos-amber); background:#FFF5DF; border:1px solid #F3DFA8; border-radius:999px; padding:1px 7px; }
.ramos-sidebar-pie{ margin-top:auto; padding-top:42px; }
.ramos-perfil{ border-top:1px solid var(--line); padding:19px 0 0 8px; display:flex; align-items:center; gap:8px; }
.ramos-avatar{ width:35px; height:35px; flex-shrink:0; border-radius:50%; background:#F9E9BF; display:grid; place-items:center; font-size:11px; font-weight:700; }
.ramos-perfil-texto{ min-width:0; flex:1; }
.ramos-perfil-texto strong{ display:block; font-size:11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ramos-perfil-texto small{ display:block; font-size:10px; color:var(--muted); margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ramos-salir{ width:28px; height:28px; flex-shrink:0; display:grid; place-items:center; border:1px solid var(--line); border-radius:9px; background:var(--white); color:#676760; cursor:pointer; }
.ramos-salir:hover{ color:var(--ink); border-color:#C9C9C3; }
.ramos-salir:disabled{ opacity:.5; cursor:progress; }
.ramos-salir svg{ width:15px; height:15px; }

.ramos-page{ margin-left:var(--ramos-sidebar); min-height:100vh; }
.ramos-topbar{ height:82px; border-bottom:1px solid var(--line); padding:0 44px; display:flex; align-items:center; gap:20px; }
.ramos-migas{ display:flex; align-items:center; gap:12px; font-size:11px; white-space:nowrap; color:var(--muted); }
.ramos-migas svg{ width:15px; height:15px; }
.ramos-migas strong{ font-weight:500; color:var(--ink); }
.ramos-migas span{ color:#AAA; }
.ramos-migas span:first-of-type{ color:var(--muted); }
.ramos-top-der{ margin-left:auto; display:flex; align-items:center; gap:23px; }
.ramos-buscar{ height:37px; width:258px; display:flex; align-items:center; gap:9px; padding:0 12px; border:1px solid var(--line); background:#FFF; border-radius:10px; }
.ramos-buscar svg{ width:15px; height:15px; color:var(--muted); }
.ramos-buscar input{ width:100%; min-width:0; border:0; background:transparent; outline:none; font-size:11px; color:var(--ink); }
.ramos-buscar:focus-within{ border-color:var(--ramos-amber); box-shadow:0 0 0 3px #FDB81320; }
.ramos-tecla{ font-size:10px; white-space:nowrap; color:#85857E; border:1px solid var(--line); border-radius:4px; padding:0 4px; }
.ramos-rol{ font-size:10px; color:#676760; display:flex; align-items:center; gap:6px; }
.ramos-rol svg{ width:14px; height:14px; }
.ramos-menu{ display:none; border:0; background:none; padding:5px; cursor:pointer; }
.ramos-velo{ display:none; }

.ramos-main{ max-width:1390px; margin:auto; padding:48px 44px 24px; }
.ramos-hero{ display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:40px; }
.ramos-hero-corto{ margin-bottom:28px; }
.ramos-eyebrow{ display:flex; align-items:center; gap:8px; font:700 10px/1.4 Montserrat,sans-serif; letter-spacing:1.4px; text-transform:uppercase; color:var(--ramos-amber); }
.ramos-eyebrow::before{ content:""; width:6px; height:6px; background:var(--ram); border-radius:50%; }
.ramos-hero h1{ font:800 clamp(32px,3.25vw,48px)/1.12 Montserrat,sans-serif; letter-spacing:-2px; margin:15px 0; max-width:none; }
.ramos-hero h1 span{ color:#96968F; }
.ramos-hero p{ font-size:12px; color:var(--muted); margin:0; line-height:1.8; }
.ramos-hero-arte{ width:280px; height:200px; flex-shrink:0; display:grid; place-items:center; }
.ramos-hero-arte img{ display:block; width:100%; height:100%; object-fit:contain;
  -webkit-mask-image:linear-gradient(to right,transparent,#000 9%,#000 91%,transparent),linear-gradient(to bottom,transparent,#000 9%,#000 91%,transparent);
  mask-image:linear-gradient(to right,transparent,#000 9%,#000 91%,transparent),linear-gradient(to bottom,transparent,#000 9%,#000 91%,transparent);
  -webkit-mask-composite:source-in; mask-composite:intersect; }

.ramos-launcher{ background:var(--white); border:1px solid var(--line); border-radius:22px; box-shadow:0 10px 40px #00000003; overflow:hidden; }
.ramos-launcher-head{ padding:28px 30px 0; }
.ramos-titulo{ display:flex; align-items:center; gap:9px; }
.ramos-titulo h2{ font:700 19px/1.4 Montserrat,sans-serif; letter-spacing:-.6px; margin:0; }
.ramos-cuenta{ font-size:10px; padding:1px 7px; border:1px solid var(--line); border-radius:6px; color:var(--muted); font-weight:500; }
.ramos-caption{ font-size:11px; color:var(--muted); margin:6px 0 0; }
/* Las aplicaciones se reparten en filas centradas: cinco por fila, tres de 701 a 1050 px y
   dos en celular (la última fila, centrada). */
.ramos-apps{ margin-top:20px; border-top:1px solid var(--soft); display:flex; flex-wrap:wrap; justify-content:center; gap:18px; padding:38px 28px 40px; min-height:256px; align-content:start; }
.ramos-app{ position:relative; min-width:0; flex:0 0 calc((100% - 4 * 18px) / 5); border-radius:16px; padding:8px 4px 10px; display:flex; align-items:center; flex-direction:column; text-align:center; cursor:pointer; transition:background .18s; }
/* RAMOS Digital es un enlace a otro sitio: sin el color ni el subrayado de los enlaces. */
a.ramos-app{ color:inherit; text-decoration:none; }
.ramos-app:hover{ background:#FAFAF7; }
.ramos-app-icono{ width:112px; height:112px; border-radius:28px; overflow:hidden; display:grid; place-items:center; position:relative; transition:transform .2s,box-shadow .2s; box-shadow:0 8px 12px #00000008,inset 0 1px 0 #FFFFFF30; }
.ramos-app:hover .ramos-app-icono{ transform:translateY(-5px); box-shadow:0 14px 22px #0000000D; }
.ramos-app-icono img{ display:block; width:100%; height:100%; object-fit:cover; }
.ramos-app-nombre{ font:700 13px Montserrat,sans-serif; margin-top:17px; letter-spacing:-.3px; }
.ramos-app-desc{ font-size:10px; color:var(--muted); margin-top:5px; }
/* Audiencias todavía no existe: se ve, pero no se abre. */
.ramos-app-pronto{ cursor:default; }
.ramos-app-pronto:hover{ background:none; }
.ramos-app-pronto:hover .ramos-app-icono{ transform:none; box-shadow:0 8px 12px #00000008; }
.ramos-app-pronto .ramos-app-icono img{ filter:grayscale(.15); opacity:.88; }
.ramos-app-pronto .ramos-pronto{ position:absolute; bottom:9px; left:50%; transform:translateX(-50%); margin:0; white-space:nowrap; background:var(--white); }
.ramos-app-pronto .ramos-app-nombre{ color:#77776F; }
.ramos-vacio{ flex-basis:100%; text-align:center; padding:30px 12px; }
.ramos-vacio strong{ display:block; font:600 14px Montserrat,sans-serif; }
.ramos-vacio p{ color:var(--muted); font-size:12px; }
#ramosClientes{ display:flex; flex-direction:column; gap:22px; }
#ramosClientes[hidden]{ display:none; }
.ramos-footer{ margin-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:16px; align-items:center; color:#898981; font-size:9px; padding-top:20px; }
.ramos-footer strong{ color:#6A6A62; font-weight:500; }
.ramos-footer-der{ display:flex; align-items:center; gap:7px; }
.ramos-punto{ width:4px; height:4px; border-radius:50%; background:var(--ram); }

@media(min-width:1550px){ .ramos-main{ padding-top:65px; } .ramos-hero{ margin-bottom:50px; } .ramos-apps{ padding-block:48px; } .ramos-app-icono{ width:128px; height:128px; } }
@media(max-width:1150px){ .ramos{ --ramos-sidebar:211px; } .ramos-topbar{ padding-inline:30px; } .ramos-main{ padding:38px 30px 24px; } .ramos-hero-arte{ width:250px; height:190px; } .ramos-buscar{ width:215px; } .ramos-top-der{ gap:14px; } .ramos-rol{ display:none; } }
@media(max-width:900px){ .ramos-hero-arte{ display:none; } .ramos-apps{ gap:8px; padding-inline:18px; } .ramos-app-icono{ width:96px; height:96px; border-radius:25px; } .ramos-app-nombre{ font-size:12px; } .ramos-app-desc{ font-size:9px; } .ramos-launcher-head{ padding-inline:23px; } .ramos-buscar{ width:200px; } }
@media(max-width:700px){
  .ramos{ --ramos-sidebar:238px; }
  .ramos-sidebar{ transform:translateX(-100%); transition:transform .2s; }
  .ramos-sidebar.abierto{ transform:translateX(0); }
  .ramos-velo.visible{ display:block; position:fixed; inset:0; background:#0005; border:0; z-index:25; }
  .ramos-page{ margin-left:0; }
  .ramos-topbar{ padding-inline:16px; height:68px; gap:12px; }
  .ramos-menu{ display:grid; place-items:center; }
  .ramos-migas svg,.ramos-migas>span{ display:none; }
  .ramos-migas strong{ font-size:12px; }
  .ramos-buscar{ width:180px; }
  .ramos-tecla{ display:none; }
  .ramos-main{ padding:28px 16px 24px; }
  .ramos-hero h1{ font-size:34px; letter-spacing:-1.5px; }
  .ramos-apps{ gap:25px 10px; padding:28px 16px; }
  .ramos-app{ flex-basis:calc((100% - 10px) / 2); }
}

/* ══ Barra de las aplicaciones (diseño «barra-lateral-ram-os», 2026-09-23) ══
   Con un proceso del 4DE o el TMP2 abiertos: barra lateral colapsable y una
   cabecera compartida, en lugar de las cabeceras de cada aplicación. Las
   medidas y colores son las del diseño. El contenido de la aplicación se
   corre con dos variables: --ram-izq (lo que ocupa la barra) y --ram-alto
   (la cabecera). */
body.en-app{ --ram-izq:238px; --ram-alto:82px; }
body.en-app.ram-barra-oculta{ --ram-izq:0px; }
body.en-app #appTopbar{ display:none !important; }
/* El cuerpo se corre, no #appMain: así el 4DE sigue centrado en el espacio
   que queda, con su propio ancho máximo. */
body.en-app{ padding-left:var(--ram-izq); padding-top:var(--ram-alto); transition:padding-left .22s ease; }
body.en-app .rail{ top:calc(var(--ram-alto) + 18px); }
/* Al abrir un momento (el costado, «Ir a control»…) el 4DE hace scrollIntoView
   hasta el comienzo de la sección, que quedaba debajo de la cabecera fija:
   parecía que no había llegado. El margen deja la cabecera libre. */
body.en-app .workspace, body.en-app .workspace *{ scroll-margin-top:calc(var(--ram-alto) + 18px); }
body.en-app .modulo-vista{ inset:var(--ram-alto) 0 0 var(--ram-izq); transition:left .22s ease; }
body.en-app .modulo-barra{ display:none; }

.ram-shell{ --shell-yellow:#FDB813; --shell-ink:#0A0A0A; --shell-line:#E3E3DF; font:14px/1.5 Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; color:var(--shell-ink); }
.ram-shell[hidden]{ display:none; }
.ram-shell *{ box-sizing:border-box; }
.ram-shell button{ font:inherit; cursor:pointer; -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
.ram-shell button:focus-visible{ outline:3px solid var(--shell-yellow); outline-offset:3px; }
.ram-shell svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }

.ram-sidebar{ --ram-ink:#0A0A0A; --ram-yellow:#FDB813; --ram-line:#E3E3DF; --ram-muted:#6A6A65; position:fixed; inset:0 auto 0 0; z-index:50; width:238px; display:flex; flex-direction:column; padding:33px 20px 20px; border-right:1px solid var(--ram-line); background:#fff; color:var(--ram-ink); overflow-y:auto; transition:transform .22s ease; }
.ram-sidebar svg{ width:20px; height:20px; }
.ram-sidebar__brand{ display:flex; align-items:center; gap:11px; padding:0 10px; }
.ram-sidebar__logo{ display:block; width:78px; height:auto; flex-shrink:0; }
.ram-sidebar__platform{ font:600 18px/1 Montserrat,sans-serif; color:#777771; border-left:1px solid var(--ram-line); padding:9px 0 9px 15px; margin-left:4px; }
.ram-sidebar__label{ font-size:9px; letter-spacing:1.5px; color:#85857E; font-weight:600; margin:0 0 11px; padding:0 13px; }
.ram-sidebar__brand + .ram-sidebar__label{ margin-top:34px; }
.ram-sidebar__nav{ display:grid; gap:6px; }
.ram-sidebar__item{ display:flex; align-items:center; gap:12px; width:100%; min-height:44px; padding:12px 14px; border:0; border-radius:10px; background:transparent; text-align:left; color:#676760; font-size:12px; font-weight:500; transition:background .18s,color .18s; position:relative; }
.ram-sidebar__item:hover:not(:disabled){ background:#F7F7F5; color:var(--ram-ink); }
.ram-sidebar__item[aria-current=page]{ background:var(--ram-ink); color:var(--ram-yellow); }
.ram-sidebar__item[aria-current=page]::after{ content:""; width:5px; height:5px; border-radius:50%; background:var(--ram-yellow); margin-left:auto; }
.ram-sidebar__item:disabled{ cursor:default; opacity:.55; }
.ram-sidebar__pronto{ margin-left:auto; font-size:9px; font-weight:600; color:#85857E; border:1px solid var(--ram-line); border-radius:999px; padding:2px 7px; }
.ram-sidebar__divider{ border:0; border-top:1px solid var(--ram-line); margin:24px 12px; }
.ram-sidebar .ram-sidebar__app-icon{ width:20px; height:20px; }
.ram-sidebar__app .ram-sidebar__arrow{ width:13px; height:13px; margin-left:auto; color:#9B9B90; opacity:0; transform:translateX(-3px); transition:opacity .15s,transform .15s; }
.ram-sidebar__app:hover .ram-sidebar__arrow,.ram-sidebar__app:focus-visible .ram-sidebar__arrow{ opacity:1; transform:none; }
.ram-sidebar__app[aria-current=page] .ram-sidebar__arrow{ display:none; }
.ram-sidebar__bottom{ margin-top:auto; padding-top:38px; }
.ram-sidebar__profile{ display:flex; align-items:center; gap:10px; border-top:1px solid var(--ram-line); padding:19px 4px 0 10px; }
.ram-sidebar__avatar{ width:35px; height:35px; border-radius:50%; background:#F9E9BF; display:grid; place-items:center; font-size:11px; font-weight:700; flex-shrink:0; }
.ram-sidebar__who{ min-width:0; }
.ram-sidebar__who strong{ display:block; font-size:11px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ram-sidebar__who small{ display:block; font-size:10px; color:var(--ram-muted); margin-top:2px; }
.ram-sidebar__salir{ margin-left:auto; }
.ram-sidebar .ram-sidebar__close{ display:none; }

.ram-header{ position:fixed; top:0; right:0; left:var(--ram-izq); z-index:45; height:var(--ram-alto); padding:0 30px; display:flex; align-items:center; gap:21px; border-bottom:1px solid var(--shell-line); background:rgba(247,247,245,.96); backdrop-filter:blur(12px); transition:left .22s ease; }
.ram-icon-button{ width:36px; height:36px; display:grid; place-items:center; padding:0; background:transparent; border:1px solid transparent; border-radius:10px; color:#6A6A65; flex-shrink:0; }
.ram-icon-button:hover{ background:#fff; border-color:var(--shell-line); color:var(--shell-ink); }
.ram-toggle-icon{ width:19px; height:19px; }
.ram-header__divider{ height:27px; width:1px; background:var(--shell-line); flex-shrink:0; }
.ram-header__identity{ display:flex; align-items:center; gap:11px; min-width:0; }
.ram-header__icon{ display:block; width:37px; height:37px; border-radius:11px; object-fit:cover; box-shadow:0 2px 5px #00000006; flex-shrink:0; }
.ram-header__name{ font:700 15px/1.3 Montserrat,sans-serif; letter-spacing:-.35px; margin:0; white-space:nowrap; }
.ram-header__description{ font-size:10px; color:#77776F; margin:4px 0 0; white-space:nowrap; }
.ram-header__actions{ margin-left:auto; display:flex; align-items:center; gap:12px; }
.ram-catalog-link{ display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:38px; padding:9px 13px; border:1px solid var(--shell-line); border-radius:10px; background:#fff; font-size:11px; font-weight:600; color:var(--shell-ink); white-space:nowrap; }
.ram-catalog-link:hover{ background:#FCFCF8; border-color:#CECEC5; }
.ram-catalog-link svg{ width:16px; height:16px; }
.ram-catalog-label-mobile{ display:none; }
.ram-backdrop{ display:none; position:fixed; inset:0; background:#15150E55; backdrop-filter:blur(2px); border:0; z-index:49; }

body.ram-barra-oculta .ram-sidebar{ transform:translateX(-100%); }

@media(max-width:1000px){ .ram-header{ padding-inline:23px; gap:16px; } .ram-header__actions{ gap:9px; } }
@media(max-width:700px){
  body.en-app{ --ram-izq:0px; --ram-alto:72px; }
  .ram-sidebar{ width:250px; transform:translateX(-100%); }
  body.ram-menu-abierto .ram-sidebar{ transform:translateX(0); }
  body.ram-menu-abierto .ram-backdrop{ display:block; }
  body.ram-menu-abierto{ overflow:hidden; }
  .ram-header{ padding:0 16px; gap:12px; }
  .ram-header__divider{ display:none; }
  .ram-header__icon{ width:32px; height:32px; border-radius:9px; }
  .ram-header__identity{ gap:9px; }
  .ram-header__name{ font-size:13px; }
  .ram-header__description{ font-size:9px; max-width:146px; overflow:hidden; text-overflow:ellipsis; }
  .ram-header__actions{ gap:5px; }
  .ram-sidebar .ram-sidebar__close{ display:grid; position:absolute; top:15px; right:10px; width:29px; height:29px; }
  .ram-sidebar__brand{ margin-top:10px; }
  .ram-catalog-link{ min-height:36px; padding:8px 10px; gap:6px; }
  .ram-catalog-label-desktop{ display:none; }
  .ram-catalog-label-mobile{ display:inline; }
}
@media(max-width:370px){ .ram-header{ gap:8px; padding-inline:10px; } .ram-header__description{ max-width:122px; } .ram-header__identity{ gap:7px; } }
@media(prefers-reduced-motion:reduce){ .ram-shell *, body.en-app, body.en-app .modulo-vista{ transition:none !important; } }


/* ══ Catálogo de RAM4de (diseño «catalogo-ram-os», 2026-09-23) ════════════
   Las reglas del diseño tal cual, sin lo que RAM4de no usa todavía (la
   selección con casillas, el borrado y la ficha de detalle). El estado se
   llama .cat-estado porque el 4DE ya tiene un .status-badge. Lo agregado va
   al final. */
.catalog{max-width:1510px;margin:auto;padding:40px 36px 30px}.catalog-heading{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:29px}.catalog-eyebrow{display:flex;align-items:center;gap:7px;font:700 9px Montserrat,sans-serif;letter-spacing:1.4px;color:#996000}.catalog-eyebrow>span:first-child{height:5px;width:5px;border-radius:50%;background:#FDB813}.catalog-heading h2{font:800 clamp(25px,2.6vw,35px)/1.2 Montserrat,sans-serif;letter-spacing:-1.2px;display:flex;align-items:center;gap:12px;margin:12px 0 10px}.catalog-title-count{font:500 12px Inter,sans-serif;color:#79796F;border:1px solid #DDDDD5;border-radius:8px;padding:4px 9px;letter-spacing:0;background:#F1F1EC}.catalog-heading p{font-size:12px;color:#74746B;margin:0;line-height:1.7}.cat-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:37px;padding:9px 13px;border:1px solid #E3E3DF;border-radius:10px;background:#FFF;color:#151510;font:600 11px/1.4 Inter,sans-serif!important;text-decoration:none;white-space:nowrap}.cat-btn svg{width:15px;height:15px}.cat-btn:hover{background:#F8F8F3}.cat-btn:disabled{opacity:.45;cursor:not-allowed}.cat-primary{background:#0A0A0A;color:#FDB813;border-color:#0A0A0A;min-height:42px;padding:12px 17px;box-shadow:0 4px 10px #00000007}.cat-primary:hover{background:#282824}.catalog-card{background:white;border:1px solid #E3E3DF;border-radius:20px;overflow:hidden;box-shadow:0 8px 30px #00000003}.catalog-tools{border-bottom:1px solid #E9E9E3;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:23px 24px 18px}.catalog-search{display:flex;align-items:center;gap:9px;width:365px;max-width:100%;height:39px;padding:0 12px;background:#FAFAF8;border:1px solid #E3E3DF;border-radius:10px}.catalog-search svg{width:16px;height:16px;color:#929288}.catalog-search input{font-size:11px;min-width:0;width:100%;height:100%;outline:0;border:0;background:transparent}.catalog-search:focus-within{border-color:#B78205;box-shadow:0 0 0 3px #FDB8131A}.catalog-table-scroll{position:relative;overflow-x:auto;outline-offset:-3px}.catalog-table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}.catalog-table th{padding:14px 13px;background:#FCFCFA;color:#898980;font-size:9px;letter-spacing:.5px;text-transform:uppercase;font-weight:600;border-bottom:1px solid #ECECE6}.catalog-table td{padding:21px 13px;border-bottom:1px solid #EEEEE9;font-size:11px;color:#474740}.catalog-table tbody tr:last-child td{border-bottom:0}.catalog-table tbody tr:hover{background:#FCFCF9}.sort-btn{display:inline-flex;align-items:center;gap:5px;color:inherit;font:inherit!important;letter-spacing:inherit;text-transform:inherit;border:0;background:none;padding:0}.sort-btn svg{width:11px;height:11px;color:#A2A298}th[aria-sort=ascending] .sort-btn,th[aria-sort=descending] .sort-btn{color:#292923}th[aria-sort=ascending] .sort-btn svg,th[aria-sort=descending] .sort-btn svg{color:#AB7A00}.record-name{display:block;border:0;padding:0;background:none;font-weight:600!important;font-size:12px!important;text-align:left;color:#191915;max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.record-name:hover{text-decoration:underline;text-underline-offset:3px}.record-code{font:10px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.15px;color:#AC7A00;display:block;margin-top:5px}.record-client{display:block;font-size:11px;font-weight:500;max-width:165px;overflow:hidden;text-overflow:ellipsis}.record-sub{display:block;font-size:9px;color:#919186;margin-top:5px}.record-budget{font-size:11px;font-weight:600;font-variant-numeric:tabular-nums}.cat-estado{display:inline-flex;align-items:center;gap:5px;border:1px solid #EAE5D6;background:#F9F7EF;color:#82734A;padding:4px 7px;border-radius:7px;font-size:9px;line-height:1.2}.cat-estado:before{content:"";height:4px;width:4px;border-radius:50%;background:#B99742}.cat-estado.finished{border-color:#DDEBDD;background:#F0F7F0;color:#538159}.cat-estado.finished:before{background:#6B9B70}.row-actions{display:flex;align-items:center;gap:5px;justify-content:flex-end}.catalog-table td:last-child{padding-right:20px}.open-record{display:flex;align-items:center;gap:5px;border:0;background:none;color:#3A3A32;font-size:10px!important;font-weight:500!important;padding:7px 5px;border-radius:7px}.open-record:hover{background:#EFEFE7}.open-record svg{width:13px;height:13px}.catalog-pagination{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid #ECECE6;padding:17px 24px;font-size:9px;color:#929289}.page-controls{display:flex;align-items:center;gap:8px}.page-controls label{display:flex;align-items:center;gap:7px}.page-controls select{background:white;border:1px solid #E3E3DF;color:#67675D;font-size:10px;border-radius:6px;padding:4px;cursor:pointer}.pagination-separator{height:17px;width:1px;background:#E3E3DF;margin:0 5px}.page-arrow{display:grid;place-items:center;height:25px;width:25px;padding:4px;border:0;background:none;color:#6E6E62;border-radius:6px}.page-arrow:hover:not(:disabled){background:#F4F4ED}.page-arrow svg{height:13px;width:13px}.page-arrow:disabled{opacity:.3;cursor:default}.page-number{display:grid;place-items:center;background:#F2F2EC;color:#46463B;border-radius:6px;width:25px;height:25px;font-size:10px;font-weight:600}.catalog-empty{text-align:center;padding:50px 24px}.catalog-empty h3{font:700 16px Montserrat,sans-serif;letter-spacing:-.4px;margin:14px 0 8px}.catalog-empty p{font-size:11px;color:#7D7D72;margin:0 0 20px}.empty-icon{display:inline-grid;place-items:center;width:45px;height:45px;border-radius:14px;background:#F3F3EC;color:#96968A}.empty-icon svg{height:21px;width:21px}
.cat-dialog{border:1px solid #E3E3DF;border-radius:22px;background:white;color:#151510;box-shadow:0 20px 90px #0002;width:560px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 40px);padding:29px;overflow-y:auto}.cat-dialog::backdrop{background:#10100D66;backdrop-filter:blur(5px)}.cat-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:10px}.cat-dialog-head h2{font:700 22px/1.25 Montserrat,sans-serif;letter-spacing:-.7px;margin:0}.cat-dialog-close{width:29px;height:29px;border:0;display:grid;place-items:center;background:none;border-radius:8px;color:#77776C}.cat-dialog-close:hover{background:#F3F3EE}.cat-dialog-close svg{width:17px;height:17px}.cat-dialog-intro{font-size:11px;line-height:1.7;color:#858579;margin:0 0 22px}.record-form{display:grid;grid-template-columns:1fr 1fr;gap:17px 15px}.record-form .full{grid-column:1/-1}.record-form label{display:flex;flex-direction:column;gap:7px;font-size:10px;font-weight:600;color:#646456}.record-form input,.record-form select{width:100%;min-width:0;height:40px;padding:10px 11px;border:1px solid #DDDDD4;border-radius:9px;background:#FCFCF9;color:#25251E;font-size:12px}.record-form small{font-weight:400;color:#89897D;font-size:9px}.record-form .form-error{color:#B42318;font-size:11px;margin:0}.cat-dialog-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;padding-top:20px;border-top:1px solid #EAEAE4;margin-top:23px}.record-form .cat-dialog-actions{margin-top:4px}.cat-dialog-actions .cat-primary{min-height:38px}
@media(max-width:1150px){.catalog{padding:32px 24px}.catalog-table th,.catalog-table td{padding-inline:10px}.catalog-table{min-width:765px}.catalog-search{width:100%}}
@media(max-width:700px){.catalog{padding:28px 16px}.catalog-heading{align-items:flex-start;flex-direction:column;gap:19px;margin-bottom:22px}.catalog-heading h2{font-size:27px}.catalog-heading p{font-size:11px;max-width:310px}.catalog-heading .cat-primary{width:100%}.catalog-tools{padding:18px 17px 16px}.catalog-table th{font-size:9px}.catalog-table td{padding-block:19px}.catalog-card{border-radius:17px}.catalog-pagination{padding:15px 17px;align-items:flex-start;gap:14px;flex-direction:column}.page-controls{align-self:flex-end}.cat-dialog{padding:23px}.record-form{grid-template-columns:1fr}.cat-dialog-head h2{font-size:20px}}
.catalog[hidden]{display:none}
.catalog svg{fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.catalog button,.catalog input,.catalog select,.cat-dialog button,.cat-dialog input{font-family:inherit;cursor:pointer}
.catalog input,.cat-dialog input{cursor:text}
.catalog{font:14px/1.5 Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#0A0A0A}
.catalog-table td:first-child,.catalog-table th:first-child{padding-left:24px}
.cat-estado.listo{border-color:#DDEBDD;background:#F0F7F0;color:#538159}.cat-estado.listo:before{background:#6B9B70}
.cat-estado.error{border-color:#F1C4BE;background:#FEF3F2;color:#B42318}.cat-estado.error:before{background:#B42318}
.cat-estado.en-curso:before{background:#FDB813}
.ram-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ram-catalog-link[hidden]{display:none}

/* ══ Cargando (Lottie «cargando-ram-os», cargando-ram-os.js) ═════════════ */
.ramos-cargando{position:fixed;inset:0;z-index:300;display:grid;place-items:center;background:rgba(247,247,245,.86);backdrop-filter:blur(6px)}
.ramos-cargando[hidden]{display:none}
.ramos-cargando-caja{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
.ramos-cargando-caja .ramos-cargando-anim{width:200px;height:140px}
.ramos-cargando-caja p{margin:0;font:600 12px/1.5 Inter,system-ui,sans-serif;color:#6A6A65}
.ramos-cargando-linea{display:flex;flex-direction:column;align-items:center;gap:2px;padding:26px 0;font-size:11px;color:#6A6A65}
.ramos-cargando-linea .ramos-cargando-anim{width:120px;height:84px}
/* Sin la librería, o con «reducir movimiento» sin primer cuadro: un punto quieto. */
.ramos-cargando-anim.sin-animacion{display:grid;place-items:center}
.ramos-cargando-anim.sin-animacion::before{content:"";width:10px;height:10px;border-radius:50%;background:#FDB813}
.ramos-cargando.opaco{background:#F7F7F5;backdrop-filter:none}

/* El filtro por cliente de la tabla de procesos, al lado de la búsqueda. */
.catalog-tools{justify-content:flex-start;flex-wrap:wrap;gap:10px}
.catalog-filtro select{height:39px;padding:0 34px 0 12px;background:#FAFAF8 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23929288' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 11px center/14px;border:1px solid #E3E3DF;border-radius:10px;font:500 11px Inter,system-ui,sans-serif;color:#3A3A32;appearance:none;-webkit-appearance:none;cursor:pointer;max-width:260px}
.catalog-filtro select:focus{outline:0;border-color:#B78205;box-shadow:0 0 0 3px #FDB8131A}
@media(max-width:700px){.catalog-filtro,.catalog-filtro select{width:100%;max-width:none}}
.catalog-table tbody tr.fila-proceso{cursor:pointer}
/* El catálogo de clientes va dentro del inicio, que ya tiene su margen. */
.catalog.catalog-en-inicio{max-width:none;padding:0 0 12px}
/* #ramosClientes es flex: sin ancho explícito la tabla se encogía a su contenido. */
.catalog.catalog-en-inicio{width:100%;margin:0}
.record-form textarea{width:100%;min-width:0;padding:10px 11px;border:1px solid #DDDDD4;border-radius:9px;background:#FCFCF9;color:#25251E;font:12px/1.5 Inter,system-ui,sans-serif;resize:vertical}
.record-form input[readonly]{background:#F3F3EE;color:#66665C;cursor:default}
.cliente-resumen{margin:0;font-size:11px;color:#74746B}
.cat-dialog-actions .cliente-ver-procesos{margin-right:auto}

/* ── Catálogos: letra más grande (2026-09-24, pedido de Daniela) ──────────
   El diseño «catalogo-ram-os» traía la tabla en 9 a 12 px. El mismo bloque va
   en cliente-gate.css (.catalog), tmp2/tema-4de.css (.rc-pagina) y
   audiencias/catalogo-ramos.css (.aud-catalogo): si cambia uno, cambian los tres. */
.catalog .catalog-eyebrow{font-size:11px}
.catalog .catalog-title-count{font-size:13px}
.catalog .catalog-heading p{font-size:14.5px;line-height:1.6}
.catalog .cat-btn{font-size:13px!important;min-height:40px;padding:10px 15px}
.catalog .cat-primary{min-height:44px;padding:12px 18px}
.catalog .catalog-search{height:44px;width:440px;max-width:100%}
.catalog .catalog-search input{font-size:14px}
.catalog .catalog-filtro select{height:44px;font-size:13.5px}
.catalog .catalog-filtro .rs-boton{height:44px;min-height:44px;font-size:13.5px}
.catalog .catalog-table th{font-size:11.5px;padding:15px 14px;letter-spacing:.6px}
.catalog .catalog-table td{font-size:13.5px;padding:20px 14px}
.catalog .record-name{font-size:14.5px!important;max-width:300px}
.catalog .record-code{font-size:12px}
.catalog .record-client{font-size:13.5px;max-width:240px}
.catalog .record-sub{font-size:12px}
.catalog .record-budget{font-size:13.5px}
.catalog .cat-estado{font-size:12px;padding:5px 9px;gap:6px}
.catalog .cat-estado:before{width:5px;height:5px}
.catalog .open-record{font-size:13px!important}
.catalog .open-record svg{width:15px;height:15px}
.catalog .catalog-pagination{font-size:13px}
.catalog .page-controls select{font-size:12.5px}
.catalog .page-controls .rs-boton{font-size:12.5px;min-height:30px}
.catalog .page-number,.catalog .page-arrow{width:30px;height:30px;font-size:12.5px}
.catalog .catalog-empty h3{font-size:18px}
.catalog .catalog-empty p{font-size:13.5px}
@media(max-width:700px){
  .catalog .catalog-heading p{font-size:13.5px}
  .catalog .catalog-table th{font-size:11px}
}
.cat-dialog .cat-dialog-intro{font-size:13px}
.cat-dialog .record-form label{font-size:12.5px}
.cat-dialog .record-form input,.cat-dialog .record-form select,.cat-dialog .record-form textarea{font-size:14px}
.cat-dialog .record-form small{font-size:11.5px}
.cat-dialog .record-form .form-error{font-size:12.5px}
/* Cinco aplicaciones desde RAMOS Digital: de 701 a 1050 px, tres por fila (y dos centradas abajo). */
@media(min-width:701px) and (max-width:1050px){ .ramos-apps{ gap:28px 18px; } .ramos-app{ flex-basis:calc((100% - 2 * 18px) / 3); } }
