/* =====================================================================================================================
   ESCENA (9-oct). Usuario: «no cuadraditos blancos estáticos; una aplicación de software con fondo y solidez» y, viendo la
   primera prueba, «se ve plano y de juguete: faltan sombras, volumen, relieve». Lenguaje físico, no plano:
   · fondo vivo de TONO MEDIO (escena.js en WebGL; aquí el respaldo) para que las sombras se vean;
   · la app es una pieza sólida (lámina clara con canto de luz) que flota y proyecta una sombra larga;
   · dentro, módulos en relieve: degradado de luz de arriba abajo, bisel (canto claro arriba, oscuro abajo), sombra de
     contacto + media + ambiental; al pasar el puntero se elevan y les da la luz;
   · instrumentos hundidos (pozos con sombra interior) para diales, pistas y deslizadores; mandos con volumen;
   · movimiento con propósito: entrada escalonada, elevación, transición entre pantallas.
   Va después de app.css y solo afecta a la app (body.app.shell); las páginas públicas toman de aquí los tokens, el fondo y
   el grano, y su maquetación de escena-publica.css.
   ===================================================================================================================== */
body.app.shell,body.app.publico{
  /* paleta neutra (9-oct, usuario: «ten cuidado con los colores, ese verde no me gusta nada»): pizarra, perla y arena;
     el verde solo para estados */
  --e-fondo-1:#b7bfca; --e-fondo-2:#a9b4c4; --e-fondo-3:#c9c0b2;
  --e-lamina-1:#f6f7f9; --e-lamina-2:#eceef2;
  --e-mod-1:#ffffff; --e-mod-2:#f3f4f7;
  --e-pozo-1:#e2e5eb; --e-pozo-2:#eff1f4;
  --e-tinta-sombra:20,28,42;
  --e-relieve:inset 0 1px 0 #fff,inset 0 -1px 0 rgba(var(--e-tinta-sombra),.05),0 0 0 1px rgba(var(--e-tinta-sombra),.07),
              0 1px 1px rgba(var(--e-tinta-sombra),.08),0 4px 8px -2px rgba(var(--e-tinta-sombra),.08),
              0 18px 32px -16px rgba(var(--e-tinta-sombra),.26);
  --e-relieve-alto:inset 0 1px 0 #fff,inset 0 -1px 0 rgba(var(--e-tinta-sombra),.05),0 0 0 1px rgba(var(--e-tinta-sombra),.08),
              0 2px 2px rgba(var(--e-tinta-sombra),.07),0 10px 18px -6px rgba(var(--e-tinta-sombra),.14),
              0 36px 60px -24px rgba(var(--e-tinta-sombra),.38);
  --e-pozo:inset 0 2px 5px rgba(var(--e-tinta-sombra),.13),inset 0 1px 1px rgba(var(--e-tinta-sombra),.10),
           inset 0 0 0 1px rgba(var(--e-tinta-sombra),.06),0 1px 0 rgba(255,255,255,.95);
  --r:16px; --r-s:10px;
  --f-hundido:rgba(var(--e-tinta-sombra),.05);
  --f-linea:rgba(var(--e-tinta-sombra),.08);
  --f-linea-2:rgba(var(--e-tinta-sombra),.15);
  --f-acento:#1d3f8f; --f-acento-2:#2a56c0; --f-acento-velo:rgba(29,63,143,.08);
  --f-tinta:#111827; --f-tinta-2:#2b3445; --f-suave:#4a5568; --f-tenue:#6b7385;
  --f-ok:#17785b; --f-ok-velo:rgba(23,120,91,.09);
  background:
    radial-gradient(55% 60% at 8% 8%,rgba(232,236,244,.8),transparent 70%),
    radial-gradient(50% 55% at 95% 75%,rgba(196,210,236,.65),transparent 70%),
    radial-gradient(45% 45% at 50% 105%,rgba(234,220,196,.7),transparent 70%),
    linear-gradient(160deg,var(--e-fondo-1),var(--e-fondo-2) 55%,var(--e-fondo-3));
  background-attachment:fixed;
}
canvas.escena-fondo{position:fixed;inset:0;width:100vw;height:100vh;z-index:-1;pointer-events:none;opacity:0;transition:opacity 1.2s ease}
canvas.escena-fondo.lista{opacity:1}
body.app.shell::after,body.app.publico::after{content:"";display:block!important;position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .1 0 0 0 0 .2 0 0 0 0 .2 0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}

/* ---------------------------------------------------------------- marco: menú sobre el fondo, la app como lámina sólida */
body.app.shell .sb{background:transparent;border-right:0;box-shadow:none}
body.app.shell .sb-marca .marca-logo b,body.app.shell .sb-marca .marca-logo small{color:#1a2233;text-shadow:0 1px 0 rgba(255,255,255,.45)}
body.app.shell .sb-empresa{background:linear-gradient(180deg,rgba(255,255,255,.78),rgba(255,255,255,.55));border-radius:12px;
  box-shadow:inset 0 1px 0 #fff,0 0 0 1px rgba(var(--e-tinta-sombra),.08),0 6px 14px -8px rgba(var(--e-tinta-sombra),.35)}
body.app.shell .sb-emp-ini{border-radius:8px;background:linear-gradient(145deg,#2f5fcf,#173375);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 2px 4px rgba(15,35,90,.35)}
body.app.shell .sb-grupo{color:rgba(26,34,51,.6)}
body.app.shell .sb-nav a,body.app.shell .sb-item{border-radius:10px;color:#1d2535;transition:background .25s,color .2s,box-shadow .25s,transform .2s}
body.app.shell .sb-nav a .ico,body.app.shell .sb-item .ico{color:rgba(26,34,51,.58)}
body.app.shell .sb-nav a:hover,body.app.shell .sb-item:hover{background:rgba(255,255,255,.38);box-shadow:inset 0 1px 0 rgba(255,255,255,.5)}
body.app.shell .sb-nav a.on,body.app.shell .sb-item.on{background:linear-gradient(180deg,#ffffff,#f1f4f3);color:var(--f-acento);
  box-shadow:inset 0 1px 0 #fff,0 0 0 1px rgba(var(--e-tinta-sombra),.08),0 2px 3px rgba(var(--e-tinta-sombra),.10),
             0 10px 20px -10px rgba(var(--e-tinta-sombra),.40)}
body.app.shell .sb-nav a.on .ico{color:var(--f-acento)}
body.app.shell .sb-nav a.on::before{display:none}
body.app.shell .sb-pie{border-top-color:rgba(26,34,51,.12)}
body.app.shell .sb-email{color:#2b3445}
body.app.shell .sb-avatar{background:rgba(255,255,255,.6);box-shadow:inset 0 1px 0 #fff,0 1px 3px rgba(var(--e-tinta-sombra),.2)}

body.app.shell .shell-main{margin:14px 14px 14px 250px;min-height:calc(100vh - 28px);border-radius:24px;position:relative;
  background:linear-gradient(180deg,var(--e-lamina-1),var(--e-lamina-2));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 0 0 0 1px rgba(255,255,255,.6),0 0 0 1px rgba(var(--e-tinta-sombra),.10),
             0 2px 4px rgba(var(--e-tinta-sombra),.08),0 24px 48px -20px rgba(var(--e-tinta-sombra),.35),
             0 60px 120px -40px rgba(var(--e-tinta-sombra),.45);overflow:clip}
body.app.shell .tb{position:sticky;top:0;padding:14px 28px;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;
  border-bottom:1px solid rgba(var(--e-tinta-sombra),.07);box-shadow:0 1px 0 rgba(255,255,255,.8);transition:background .3s,box-shadow .3s}
html.escena-js body.app.shell .tb.tb-flota{background:rgba(242,245,244,.86);-webkit-backdrop-filter:saturate(160%) blur(16px);
  backdrop-filter:saturate(160%) blur(16px);box-shadow:0 1px 0 rgba(255,255,255,.8),0 12px 24px -18px rgba(var(--e-tinta-sombra),.45)}
/* en las pantallas táctiles, la barra pegada sin vidrio y casi opaca (se ve igual): en el WebKit del iPhone y el iPad, una
   barra sticky con backdrop-filter tumbaba la página al desplazarse */
@media (hover:none){html.escena-js body.app.shell .tb.tb-flota{background:rgba(242,245,244,.97);-webkit-backdrop-filter:none;backdrop-filter:none}}
body.app.shell .app-cuerpo{padding:24px 28px 40px}
body.app.shell .pie{border-top:1px solid rgba(var(--e-tinta-sombra),.06);padding:14px 28px 18px}

/* ---------------------------------------------------------------- módulos en relieve */
body.app.shell .relieve{position:relative;border-radius:var(--r);background:linear-gradient(180deg,var(--e-mod-1),var(--e-mod-2));
  box-shadow:var(--e-relieve);transition:box-shadow .35s var(--ease),transform .35s var(--ease)}
body.app.shell .relieve::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;
  background:radial-gradient(360px circle at var(--lx,50%) var(--ly,0%),rgba(255,255,255,.7),rgba(255,255,255,0) 60%);
  mix-blend-mode:soft-light;transition:opacity .35s ease;z-index:0}
body.app.shell .relieve:hover::after{opacity:.75}
body.app.shell a.relieve:hover,body.app.shell .metrica:hover,body.app.shell .widget.relieve:hover{box-shadow:var(--e-relieve-alto);transform:translateY(-3px)}
body.app.shell [data-inclina]{transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))}
body.app.shell [data-inclina]:hover{transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(-3px)}
body.app.shell .lp-paso details{background:linear-gradient(180deg,var(--e-mod-1),var(--e-mod-2));box-shadow:var(--e-relieve);border-radius:var(--r)}
body.app.shell .widget-plano{background:none}
/* cifras grabadas: luz arriba */
body.app.shell :is(.m-v,.rx b,.ad-v b,.cab-nota-pie b,.cifra b,.sim-salida b,.kpi-v){text-shadow:0 1px 0 rgba(255,255,255,.9)}
body.app.shell .m-et{color:var(--f-suave)}
body.app.shell .m-et .ico{color:var(--f-acento);filter:drop-shadow(0 1px 0 rgba(255,255,255,.9))}

/* ---------------------------------------------------------------- instrumentos hundidos */
body.app.shell .cab-gauge{position:relative;margin:6px 0 4px;padding:14px 10px 8px;border-radius:14px;transform:none;
  background:radial-gradient(120% 90% at 50% 0%,var(--e-pozo-2),var(--e-pozo-1));box-shadow:var(--e-pozo)}
body.app.shell .cab-gauge::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(160deg,rgba(255,255,255,.55) 0%,rgba(255,255,255,0) 38%)}
body.app.shell .cab-gauge svg{filter:drop-shadow(0 3px 3px rgba(var(--e-tinta-sombra),.18)) drop-shadow(0 10px 14px rgba(var(--e-tinta-sombra),.12))}
body.app.shell .cab-nota:hover .cab-gauge{transform:none}
body.app.shell :is(.m-barra,.m-escala){height:8px;background:linear-gradient(180deg,var(--e-pozo-1),var(--e-pozo-2));box-shadow:var(--e-pozo)}
body.app.shell .m-barra i{background:linear-gradient(180deg,#3b68d6,#1d3f8f);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 1px 3px rgba(29,63,143,.4)}
body.app.shell .m-escala i{background:radial-gradient(circle at 35% 30%,#4f7be0,#1d3f8f 70%);
  box-shadow:0 0 0 3px #fff,0 2px 6px rgba(var(--e-tinta-sombra),.35)}
body.app.shell .w-segmentos{background:linear-gradient(180deg,var(--e-pozo-1),var(--e-pozo-2));box-shadow:var(--e-pozo);border-radius:12px}
body.app.shell .w-segmentos input:checked+span{background:linear-gradient(180deg,#fff,#f1f4f3);color:var(--f-tinta);
  box-shadow:inset 0 1px 0 #fff,0 0 0 1px rgba(var(--e-tinta-sombra),.07),0 2px 4px rgba(var(--e-tinta-sombra),.16)}
body.app.shell .w-control input[type=range]{background:linear-gradient(180deg,var(--e-pozo-1),var(--e-pozo-2));box-shadow:var(--e-pozo)}
body.app.shell .w-control input[type=range]::-webkit-slider-thumb{width:24px;height:24px;
  background:radial-gradient(circle at 40% 30%,#ffffff,#e6ebea 70%);
  box-shadow:inset 0 -2px 3px rgba(var(--e-tinta-sombra),.12),0 0 0 1px rgba(var(--e-tinta-sombra),.12),0 3px 6px rgba(var(--e-tinta-sombra),.28),
             0 10px 16px -6px rgba(var(--e-tinta-sombra),.30)}
body.app.shell svg.anillo circle:not(.anillo-v){stroke:rgba(var(--e-tinta-sombra),.09)}
body.app.shell .dash-t th{background:linear-gradient(180deg,rgba(var(--e-tinta-sombra),.03),rgba(var(--e-tinta-sombra),.05))}
body.app.shell .dash-t td{border-bottom-color:rgba(var(--e-tinta-sombra),.06)}

/* ---------------------------------------------------------------- mandos */
body.app.shell .btn{border-radius:11px;transition:transform .12s,box-shadow .2s,background .25s}
body.app.shell .btn-p{background:linear-gradient(180deg,#3363d1 0%,#2349a6 55%,#1b3a85 100%);color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28),inset 0 -1px 0 rgba(0,0,0,.18),0 0 0 1px rgba(15,35,90,.45),
             0 2px 3px rgba(15,35,90,.25),0 10px 20px -8px rgba(27,58,133,.55)}
body.app.shell .btn-p:hover{background:linear-gradient(180deg,#3b6cdb 0%,#2851b4 55%,#1f4294 100%)}
body.app.shell .btn-p:active{transform:translateY(1px);box-shadow:inset 0 2px 4px rgba(0,0,0,.25),0 0 0 1px rgba(15,35,90,.45),0 2px 6px -2px rgba(27,58,133,.4)}
body.app.shell .btn-sec,body.app.shell .btn-ghost{background:linear-gradient(180deg,#ffffff,#eef2f1);color:var(--f-tinta-2);
  box-shadow:inset 0 1px 0 #fff,0 0 0 1px rgba(var(--e-tinta-sombra),.12),0 1px 2px rgba(var(--e-tinta-sombra),.10),
             0 6px 12px -8px rgba(var(--e-tinta-sombra),.30)}
body.app.shell .btn-sec:hover{background:linear-gradient(180deg,#ffffff,#f4f7f6)}
body.app.shell .btn-sec:active{transform:translateY(1px);box-shadow:inset 0 2px 3px rgba(var(--e-tinta-sombra),.15),0 0 0 1px rgba(var(--e-tinta-sombra),.12)}
body.app.shell input:not([type=file]):not([type=checkbox]):not([type=radio]):not([type=range]),body.app.shell select,body.app.shell textarea{
  background:linear-gradient(180deg,#f3f6f5,#fbfcfc);border-radius:10px;box-shadow:var(--e-pozo)}

/* ---------------------------------------------------------------- movimiento */
@keyframes escena-sube{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
html.escena-js body.app.shell .escena-entra{opacity:0}
html.escena-js body.app.shell .escena-entra.escena-vista{animation:escena-sube .75s var(--ease) both;animation-delay:var(--escena-d,0ms)}
@view-transition{navigation:auto}
body.app.shell .sb{view-transition-name:menu}
body.app.shell .tb{view-transition-name:barra}
body.app.shell .app-cuerpo{view-transition-name:cuerpo}
::view-transition-old(cuerpo){animation:.2s ease both escena-sale}
::view-transition-new(cuerpo){animation:.45s cubic-bezier(.22,.8,.24,1) both escena-llega}
::view-transition-old(menu),::view-transition-new(menu),::view-transition-old(barra),::view-transition-new(barra){animation:none}
@keyframes escena-sale{to{opacity:0;transform:translateY(-6px)}}
@keyframes escena-llega{from{opacity:0;transform:translateY(12px)}}

/* ---------------------------------------------------------------- móvil y accesibilidad */
/* hasta 1000 px, como app.css (que ahí ya esconde el menú lateral y saca la barra inferior): entre 901 y 1000 px —un Mac con
   la ventana a media pantalla— la lámina dejaba una franja vacía de 250 px a la izquierda y el menú se abría transparente */
@media (max-width:1000px){
  /* svh: en iOS, 100vh es la pantalla con la barra de Safari escondida y las páginas cortas bailaban */
  body.app.shell .shell-main{margin:0;border-radius:0;min-height:100vh;min-height:100svh}
  body.app.shell .sb{background:linear-gradient(180deg,#eceef2,#e1e4ea)}
  body.app.shell .tabbar{background:linear-gradient(180deg,rgba(248,250,250,.92),rgba(238,242,241,.95));
    -webkit-backdrop-filter:saturate(150%) blur(14px);backdrop-filter:saturate(150%) blur(14px);
    box-shadow:0 -1px 0 rgba(255,255,255,.9),0 -12px 30px -18px rgba(var(--e-tinta-sombra),.35)}
}
/* con la barra inferior (≤ 1000 px, app.css): el pie (metodología, aviso legal) queda por encima de ella y del área segura
   del iPhone (la regla del pie de arriba tapaba la de app.css), y en horizontal nada se mete bajo la isla ni las esquinas */
@media (max-width:1000px){
  body.app.shell .pie{padding-bottom:calc(90px + env(safe-area-inset-bottom))}
  body.app.shell .tabbar{padding-left:calc(6px + env(safe-area-inset-left));padding-right:calc(6px + env(safe-area-inset-right))}
  body.app.shell .shell-main{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
}
/* iOS acerca la página al enfocar un campo con la letra de menos de 16 px (los de la app tenían 14,7) y se queda acercada */
@media (hover:none) and (pointer:coarse){
  body.app :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea){font-size:16px!important}
}
@media (prefers-reduced-motion:reduce){
  html.escena-js body.app.shell .escena-entra{opacity:1;animation:none}
  body.app.shell [data-inclina]{transform:none}
}

/* el dial del score: la aguja gira hasta su sitio y el arco se dibuja */
@keyframes dial-gira{from{transform:rotate(-90deg)}}
@keyframes dial-traza{from{stroke-dasharray:0 100}to{stroke-dasharray:100 100}}
body.app.shell .dial-aguja{transform:rotate(var(--a));animation:dial-gira 1.7s cubic-bezier(.2,.85,.25,1.12) .25s both}
body.app.shell .dial-arco{animation:dial-traza 1.7s cubic-bezier(.2,.85,.25,1) .25s both}
body.app.shell .cab-gauge svg.g-dial{max-width:280px;filter:none}
@media (prefers-reduced-motion:reduce){body.app.shell .dial-aguja,body.app.shell .dial-arco{animation:none}}

/* bandas: sin el verde amarillento; verde solo como estado, sobrio */
body.app.shell .banda-A{color:#17785b!important}body.app.shell .banda-B{color:#2f7f68!important}
body.app.shell .banda-C{color:#b87d22!important}body.app.shell .banda-D{color:#b4483a!important}
body.app.shell .estado-ok{color:#17785b}

/* ---------------------------------------------------------------- Inicio: cuadro de mandos (9-oct) */
/* las cuatro cifras clave, un solo bloque de instrumentos con divisiones (no cuatro tarjetas) */
body.app.shell .cabina{grid-template-columns:minmax(270px,310px) minmax(0,1fr) minmax(240px,280px);gap:20px}
body.app.shell .cab-metricas{gap:0;border-radius:var(--r);background:linear-gradient(180deg,var(--e-mod-1),var(--e-mod-2));
  box-shadow:var(--e-relieve);overflow:hidden;position:relative}
body.app.shell .cab-metricas .metrica{border-radius:0;background:none;box-shadow:none;padding:18px 20px 16px;transform:none!important;
  transition:background .3s}
body.app.shell .cab-metricas .metrica::after{display:none}
body.app.shell .cab-metricas .metrica:nth-child(odd){box-shadow:1px 0 0 rgba(var(--e-tinta-sombra),.07),2px 0 0 rgba(255,255,255,.9)}
body.app.shell .cab-metricas .metrica:nth-child(-n+2){box-shadow:0 1px 0 rgba(var(--e-tinta-sombra),.07),0 2px 0 rgba(255,255,255,.9)}
body.app.shell .cab-metricas .metrica:nth-child(1){box-shadow:1px 0 0 rgba(var(--e-tinta-sombra),.07),2px 0 0 rgba(255,255,255,.9),
  0 1px 0 rgba(var(--e-tinta-sombra),.07),0 2px 0 rgba(255,255,255,.9)}
body.app.shell .cab-metricas .metrica:hover{background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(241,244,248,.6));box-shadow:inherit}
body.app.shell .cab-metricas .m-v{font-size:1.75rem}
/* escala del precio: tu rango, la media del BdE y el Euríbor */
.m-precio{display:flex;flex-direction:column;gap:6px;margin-top:auto}
.mp-pista{position:relative;display:block;height:10px;border-radius:999px;background:linear-gradient(180deg,var(--e-pozo-1),var(--e-pozo-2));
  box-shadow:var(--e-pozo)}
.mp-rango{position:absolute;top:1px;bottom:1px;left:var(--a);width:calc(var(--b) - var(--a));border-radius:999px;
  background:linear-gradient(180deg,#4a74da,#1d3f8f);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 1px 3px rgba(29,63,143,.45);
  transform-origin:left;animation:a-ancho .9s var(--ease) .35s both}
.mp-eur,.mp-bde{position:absolute;top:-4px;bottom:-4px;left:var(--x);width:2px;margin-left:-1px;border-radius:2px}
.mp-eur{background:#8a6a2e}.mp-bde{background:#2b3445}
.mp-ley{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:.7rem;color:var(--f-tenue)}
.mp-ley i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:4px;vertical-align:-1px}
.mp-ley i.eur{background:#8a6a2e}.mp-ley i.bde{background:#2b3445}
.mp-ley i.just{background:#9aa7bd}.mp-ley i.neg{background:#b4483a}
/* reparto de lo que pagas sobre la media: justificado por tu riesgo / negociable */
.m-reparto{display:flex;height:10px;margin-top:auto;border-radius:999px;overflow:hidden;background:linear-gradient(180deg,var(--e-pozo-1),var(--e-pozo-2));
  box-shadow:var(--e-pozo)}
.m-reparto i{width:var(--w);transform-origin:left;animation:a-ancho .9s var(--ease) .35s both}
.m-reparto i.just{background:linear-gradient(180deg,#b3bfd3,#8c9ab3)}
.m-reparto i.neg{background:linear-gradient(180deg,#d0675a,#a63d30)}
/* tu siguiente paso: la pieza de acción, en un tono más hondo y con su propio volumen */
body.app.shell .cab-paso{background:linear-gradient(165deg,#2f3d57 0%,#1f2a3f 70%);color:#eef1f7;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 0 0 1px rgba(10,16,28,.5),0 2px 3px rgba(10,16,28,.25),0 24px 40px -18px rgba(10,16,28,.55)}
body.app.shell .cab-paso .m-et,body.app.shell .cab-paso .m-et .ico{color:#b9c4d8}
body.app.shell .cab-paso .paso-titulo{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3)}
body.app.shell .cab-paso .paso-efecto{color:#c9d2e3}
body.app.shell .cab-paso .btn-p{background:linear-gradient(180deg,#ffffff,#e7ecf5);color:#1b2b4d;
  box-shadow:inset 0 1px 0 #fff,0 0 0 1px rgba(0,0,0,.25),0 8px 16px -8px rgba(0,0,0,.55)}
body.app.shell .cab-paso .paso-exp{border-top-color:rgba(255,255,255,.12);color:#e6eaf3}
body.app.shell .cab-paso .paso-exp small{color:#aab6cb}
body.app.shell .cab-paso svg.anillo circle:not(.anillo-v){stroke:rgba(255,255,255,.14)}
body.app.shell .cab-paso svg.anillo .anillo-v{stroke:#8fb0ff}
body.app.shell .cab-paso::after{background:radial-gradient(360px circle at var(--lx,50%) var(--ly,0%),rgba(255,255,255,.18),transparent 60%);mix-blend-mode:normal}
/* simulador y «tu negocio» en la misma fila */
body.app.shell .w-negocio .mini-kpis li{border-bottom-color:rgba(var(--e-tinta-sombra),.07)}
body.app.shell .mini-kpis li{grid-template-columns:minmax(0,1fr) auto 96px}
body.app.shell .mini-kpis i{display:block;overflow:hidden}
body.app.shell .mini-kpis i svg{width:100%;height:auto;max-height:30px;display:block}
.mp-ley>span{display:inline-flex;align-items:center;white-space:nowrap}

/* =====================================================================================================================
   LIENZO SIN FICHAS (9-oct, usuario: «el formato fichas cuadradas no me convence, ni el contraste de colores»).
   Dentro de la lámina, el contenido fluye en bandas: objetos con su propia sombra (el dial), cifras grandes con su gráfico
   y líneas finas que separan; nada de recuadros. Paleta tonal (tinta, pizarra, perla) con un solo acento azul apagado;
   ámbar y ladrillo solo cuando significan algo.
   ===================================================================================================================== */
body.app.shell{
  --f-acento:#3b5a96; --f-acento-2:#4a6cab; --f-acento-velo:rgba(59,90,150,.08);
  --f-tinta:#1c2333; --f-tinta-2:#323b4e; --f-suave:#566074; --f-tenue:#7a8396;
  --f-ok:#2f7a68; --f-warn:#b07a2a; --f-ko:#a8493c;
}
/* mandos más tonales: el primario deja de ser un azul saturado */
body.app.shell .btn-p{background:linear-gradient(180deg,#4d6aa6,#3b5690);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25),inset 0 -1px 0 rgba(0,0,0,.12),0 0 0 1px rgba(30,45,80,.35),0 8px 18px -10px rgba(40,60,110,.5)}
body.app.shell .btn-p:hover{background:linear-gradient(180deg,#5573b0,#40609b)}
body.app.shell .sb-emp-ini{background:linear-gradient(145deg,#5a77b3,#3b5690)}

/* ---- Inicio: banda principal, sin recuadros */
body.app.shell .cabina{grid-template-columns:minmax(300px,360px) minmax(0,1fr);grid-template-areas:"nota cifras" "paso paso";gap:8px 40px;
  align-items:center}
body.app.shell .cab-nota{grid-area:nota;background:none;box-shadow:none;padding:0;border-radius:0}
body.app.shell .cab-nota::after{display:none}
body.app.shell .cab-nota[data-inclina]{transform:none}
body.app.shell .cab-gauge{background:none;box-shadow:none;padding:0;margin:0}
body.app.shell .cab-gauge::after{display:none}
body.app.shell .cab-gauge svg.g-dial{max-width:340px;filter:drop-shadow(0 18px 22px rgba(var(--e-tinta-sombra),.22)) drop-shadow(0 4px 6px rgba(var(--e-tinta-sombra),.12))}
body.app.shell .cab-nota-pie{border-top:1px solid rgba(var(--e-tinta-sombra),.08);box-shadow:0 1px 0 rgba(255,255,255,.9) inset}
body.app.shell .cab-metricas{grid-area:cifras;grid-template-columns:repeat(2,minmax(0,1fr));background:none;box-shadow:none;border-radius:0;overflow:visible;gap:0}
body.app.shell .cab-metricas .metrica{padding:22px 26px;background:none!important;box-shadow:none!important;border-radius:14px}
body.app.shell .cab-metricas .metrica:nth-child(odd){border-right:1px solid rgba(var(--e-tinta-sombra),.08)}
body.app.shell .cab-metricas .metrica:nth-child(-n+2){border-bottom:1px solid rgba(var(--e-tinta-sombra),.08)}
body.app.shell .cab-metricas .metrica:hover{background:rgba(255,255,255,.55)!important}
body.app.shell .cab-metricas .m-v{font-size:2.15rem;letter-spacing:-.02em}
/* el siguiente paso: una banda tonal a todo el ancho, no un bloque oscuro */
body.app.shell .cab-paso{grid-area:paso;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:6px 22px;
  margin-top:18px;padding:16px 22px;border-radius:16px;color:inherit;
  background:linear-gradient(90deg,rgba(59,90,150,.10),rgba(59,90,150,.04) 60%,rgba(255,255,255,.4));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8),inset 0 0 0 1px rgba(59,90,150,.12)}
body.app.shell .cab-paso .m-et,body.app.shell .cab-paso .m-et .ico{color:var(--f-acento)}
body.app.shell .cab-paso .paso-titulo{color:var(--f-tinta);text-shadow:none;font-size:1.02rem}
body.app.shell .cab-paso .paso-efecto{color:var(--f-suave)}
body.app.shell .cab-paso .btn-p{background:linear-gradient(180deg,#4d6aa6,#3b5690);color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 0 0 1px rgba(30,45,80,.35),0 8px 18px -10px rgba(40,60,110,.5)}
body.app.shell .cab-paso .paso-exp{margin:0;padding:0 0 0 22px;border-top:0;border-left:1px solid rgba(59,90,150,.18);color:inherit}
body.app.shell .cab-paso .paso-exp small{color:var(--f-tenue)}
body.app.shell .cab-paso svg.anillo circle:not(.anillo-v){stroke:rgba(var(--e-tinta-sombra),.10)}
body.app.shell .cab-paso svg.anillo .anillo-v{stroke:var(--f-acento)}
body.app.shell .cab-paso::after{display:none}
body.app.shell .cab-paso[data-inclina]{transform:none}
/* simulador y «tu negocio»: columnas abiertas separadas por una línea */
body.app.shell .widgets{gap:0;margin-top:30px;border-top:1px solid rgba(var(--e-tinta-sombra),.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
body.app.shell .widgets>.widget.relieve{background:none;box-shadow:none;border-radius:0;padding:26px 30px 10px}
body.app.shell .widgets>.widget.relieve::after{display:none}
body.app.shell .widgets>.widget.relieve:hover{transform:none}
body.app.shell .widgets>.widget.relieve+.widget.relieve{border-left:1px solid rgba(var(--e-tinta-sombra),.08)}
body.app.shell .widgets-3{margin-top:0}
body.app.shell .widgets-3>.widget{padding:26px 30px}
body.app.shell .widgets-3>.widget+.widget{border-left:1px solid rgba(var(--e-tinta-sombra),.08)}
@media (max-width:1100px){
  body.app.shell .cabina{grid-template-columns:1fr;grid-template-areas:"nota" "cifras" "paso"}
  body.app.shell .cab-paso{grid-template-columns:1fr;justify-items:start}
  body.app.shell .cab-paso .paso-exp{padding:12px 0 0;border-left:0;border-top:1px solid rgba(59,90,150,.18)}
  body.app.shell .widgets>.widget.relieve+.widget.relieve,body.app.shell .widgets-3>.widget+.widget{border-left:0;border-top:1px solid rgba(var(--e-tinta-sombra),.08)}
}

/* ---- grados y bandas sin verde: azules (buenos), pizarra (medio), ámbar y ladrillo (malos) */
body.app.shell :is(.tr-g,.esc-g).g1{background:linear-gradient(180deg,#3d5c9c,#2f4c87);color:#fff}
body.app.shell :is(.tr-g,.esc-g).g2{background:linear-gradient(180deg,#5272b0,#41619f);color:#fff}
body.app.shell :is(.tr-g,.esc-g).g3{background:linear-gradient(180deg,#7790c2,#6680b6);color:#fff}
body.app.shell :is(.tr-g,.esc-g).g4{background:linear-gradient(180deg,#9aabc9,#8a9cbd);color:#fff}
body.app.shell :is(.tr-g,.esc-g).g5{background:linear-gradient(180deg,#d4ad6a,#c49a52);color:#fff}
body.app.shell :is(.tr-g,.esc-g).g6{background:linear-gradient(180deg,#c99047,#b77d35);color:#fff}
body.app.shell :is(.tr-g,.esc-g).g7{background:linear-gradient(180deg,#be6a57,#ab5644);color:#fff}
body.app.shell :is(.tr-g,.esc-g).g8{background:linear-gradient(180deg,#a3493b,#8e3a2e);color:#fff}
body.app.shell :is(.tr-g,.esc-g){box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(var(--e-tinta-sombra),.18)}
body.app.shell .banda-A{color:#2f4c87!important}body.app.shell .banda-B{color:#4a65a0!important}
body.app.shell .banda-C{color:#a8782c!important}body.app.shell .banda-D{color:#a3493b!important}
body.app.shell .estado-ok{color:#2f7a68}
body.app.shell{--f-ok:#2d6b8a;--f-ok-velo:rgba(45,107,138,.09)}
body.app.shell .estado-ok,body.app.shell .mini-kpis em.kpi-verde{color:#2d6b8a}
body.app.shell .cab-metricas .metrica{border-radius:0}
body.app.shell .cab-metricas .metrica:hover{background:linear-gradient(180deg,rgba(255,255,255,.6),rgba(255,255,255,0))!important}
body.app.shell .sim-pista{background:linear-gradient(180deg,var(--e-pozo-1),var(--e-pozo-2));box-shadow:var(--e-pozo)}
body.app.shell .sim-pista i{background:linear-gradient(180deg,#5d7cba,#3b5690);box-shadow:inset 0 1px 0 rgba(255,255,255,.3)}
body.app.shell .sim-pista i[data-est=warn]{background:linear-gradient(180deg,#cf9d4c,#b07a2a)}
body.app.shell .sim-pista i[data-est=ko]{background:linear-gradient(180deg,#bf6556,#a8493c)}
body.app.shell .sim-pista em{background:#3b5690}
body.app.shell .sim-leyenda i.rec{background:#5d7cba}
body.app.shell .estado.estado-ok::before,body.app.shell .cab-nota-cab .estado-ok::before{background:#2d6b8a}

/* ---------------------------------------------------------------- el lienzo en todas las pantallas */
/* secciones: sin caja; las separa el espacio y, cuando hace falta, una línea fina con canto de luz */
body.app.shell .app-contenido .relieve:not(.metrica):not(.btn):not(.mesa-g){background:none;box-shadow:none;border-radius:0}
body.app.shell .app-contenido .relieve:not(.metrica)::after{display:none}
body.app.shell .app-contenido .relieve:hover{transform:none}
body.app.shell .app-contenido>.seccion+.seccion,body.app.shell .app-contenido>.resultado+.seccion,body.app.shell .app-contenido>.seccion+.resultado{
  padding-top:26px;border-top:1px solid rgba(var(--e-tinta-sombra),.07);box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
/* portadas de pantalla: cabecera abierta, sin recuadro */
body.app.shell .portada,body.app.shell .plan-cabina,body.app.shell .bienvenida{padding:4px 0 8px}
body.app.shell .instrumento{padding:6px 0 0}
/* radiografías y KPI: filas de cifras con líneas finas, sin fichas ni barras de color */
body.app.shell .radiografia{border-top:0;gap:0}
body.app.shell .rx{border-right:1px solid rgba(var(--e-tinta-sombra),.07);border-bottom:1px solid rgba(var(--e-tinta-sombra),.07);padding:16px 20px 14px}
body.app.shell .rx::before{left:20px;top:auto;bottom:-1px;width:28px;height:2px;border-radius:2px}
body.app.shell .rx b{font-family:var(--f-sans);font-weight:600;letter-spacing:-.015em}
/* la radiografía como hoja técnica: tres columnas como mucho, filas separadas por una línea con canto de luz y la marca
   de estado sobre la línea (no una ficha por cifra; con textos largos no deja huérfanos de 1 en una rejilla de 5) */
body.app.shell .radiografia{grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));column-gap:34px}
body.app.shell .radiografia .rx{border-right:0;border-bottom:0;border-top:1px solid rgba(var(--e-tinta-sombra),.09);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85);padding:16px 2px 18px}
body.app.shell .radiografia .rx::before{left:0;top:-1px;bottom:auto;width:30px;height:2px}
body.app.shell .rx-neutro::before{background:rgba(var(--e-tinta-sombra),.22)}
body.app.shell .rx small{max-width:44ch}
/* deuda objetivo: barra en un carril hundido, tramos con cuerpo y una ranura de luz entre corto y largo */
body.app.shell .obj-barra{height:18px;padding:3px;gap:2px;border-radius:999px;background:linear-gradient(180deg,var(--e-pozo-1),var(--e-pozo-2));box-shadow:var(--e-pozo)}
body.app.shell .obj-barra i{border-radius:999px;opacity:1;box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 1px 2px rgba(var(--e-tinta-sombra),.25)}
body.app.shell i.obj-cp{background:linear-gradient(180deg,#d2a660,#b07a2a)}
body.app.shell i.obj-lp{background:linear-gradient(180deg,#6683bd,#3b5690)}
body.app.shell .obj-ley i.obj-cp,body.app.shell .obj-ley i:first-of-type{box-shadow:none}
/* vías para financiarte: columnas abiertas con un filo a la izquierda que lleva el color del encaje, sin tarjetas */
body.app.shell .vias-grid{gap:30px 0}
body.app.shell .via{background:none!important;box-shadow:none!important;border-radius:0!important;border-top:0;
  border-left:1px solid rgba(var(--e-tinta-sombra),.1);padding:2px 26px 4px 22px;position:relative}
body.app.shell .via::after{display:none}
body.app.shell .via::before{content:"";position:absolute;left:-1px;top:0;width:2px;height:34px;border-radius:2px;background:var(--c)}
body.app.shell .via-encaje{display:inline-flex;align-items:center;gap:6px;letter-spacing:.02em}
body.app.shell .via h4{font:500 1.12rem/1.25 var(--f-serif);letter-spacing:-.005em}
body.app.shell .via ul{list-style:none;padding:0}
body.app.shell .via ul li{position:relative;padding-left:14px}
body.app.shell .via ul li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:1px;background:rgba(var(--e-tinta-sombra),.35)}
body.app.shell .via-no-encaja{opacity:.62}
body.app.shell .ops-notas li{box-shadow:inset 1px 0 0 rgba(var(--e-tinta-sombra),.14)}
body.app.shell .ops-notas li.ops-caro{box-shadow:inset 2px 0 0 #a8493c}
body.app.shell .ops-notas li.ops-barato{box-shadow:inset 2px 0 0 #2d6b8a}
body.app.shell .kpi-grid{border-top:0;border-bottom:0}
/* pasos del plan: lista con separadores, no tarjetas */
body.app.shell .lp-paso details{background:none;box-shadow:none;border-radius:0;border-bottom:1px solid rgba(var(--e-tinta-sombra),.08)}
/* avisos y franjas: bandas tonales */
body.app.shell .franja{border-radius:14px;box-shadow:inset 0 1px 0 rgba(255,255,255,.7),inset 0 0 0 1px rgba(var(--e-tinta-sombra),.07)}
/* tablas: cabecera tonal, filas con línea fina, sin rejilla de caja */
body.app.shell .dash-t{border-collapse:separate;border-spacing:0}
body.app.shell .dash-t th{background:none;border-bottom:1px solid rgba(var(--e-tinta-sombra),.12);font-weight:600}
body.app.shell .dash-t tbody tr{transition:background .2s}
body.app.shell .dash-t tbody tr:hover{background:rgba(255,255,255,.6)}

/* tablas de cifras: sin la raya vertical tras la primera columna (rejilla de hoja de cálculo); mejora/empeora con la paleta
   tonal (azul petróleo / ladrillo), nunca el verde del estilo antiguo */
body.app.shell{--ok:#2d6b8a;--ko:#a8493c}
body.app.shell .dash-t th:first-child,body.app.shell .dash-t td:first-child{border-right:0}
body.app.shell .dash-t th.mini,body.app.shell .dash-t td.mini{border-right:0}
body.app.shell .dash-t td{background:none}
body.app.shell .dash-t tbody tr:hover td{background:none}
body.app.shell :is(.yoy,.pctl).verde{color:#2d6b8a}body.app.shell :is(.yoy,.pctl).rojo{color:#a8493c}
body.app.shell .dash-t tr.sep td{font:600 .7rem var(--f-sans);letter-spacing:.12em;color:var(--f-tenue);padding-top:22px;border-bottom:1px solid rgba(var(--e-tinta-sombra),.12)}

/* ---------------------------------------------------------------- Plan: el trayecto de grados como una regla continua */
body.app.shell .trayecto{gap:0;border-radius:999px;padding:0;box-shadow:var(--e-pozo);background:linear-gradient(180deg,var(--e-pozo-1),var(--e-pozo-2));
  margin:14px 0 26px;perspective:none}
body.app.shell .trayecto .tr-g{height:26px;border-radius:0;opacity:.9;font:600 .78rem var(--f-sans);
  box-shadow:inset -1px 0 0 rgba(255,255,255,.45);animation:a-entrar .5s var(--ease) both;animation-delay:calc(var(--i) * 35ms)}
body.app.shell .trayecto .tr-g:first-child{border-radius:999px 0 0 999px}
body.app.shell .trayecto .tr-g:last-child{border-radius:0 999px 999px 0;box-shadow:none}
body.app.shell .trayecto .tr-g.hoy,body.app.shell .trayecto .tr-g.meta{opacity:1;z-index:1;transform:scaleY(1.45);border-radius:9px;
  box-shadow:0 0 0 2px #fff,0 6px 14px -4px rgba(var(--e-tinta-sombra),.45)}
body.app.shell .trayecto .tr-g em{position:absolute;top:calc(100% + 8px);transform:scaleY(.69);font:600 .72rem var(--f-sans);color:var(--f-tinta-2);font-style:normal}
body.app.shell .trayecto .tr-g.camino{opacity:1;background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.25) 0 4px,transparent 4px 8px)}

/* ---------------------------------------------------------------- Bancos: índice de la página como pestañas, no píldoras */
body.app.shell .anclas{gap:2px;margin:0 0 22px;padding:0;border-bottom:1px solid rgba(var(--e-tinta-sombra),.09);box-shadow:0 1px 0 rgba(255,255,255,.9)}
body.app.shell .anclas a{border-radius:0;background:none!important;padding:10px 12px;font:550 .82rem var(--f-sans);color:var(--f-suave);
  box-shadow:inset 0 -2px 0 transparent;transition:color .2s,box-shadow .25s}
body.app.shell .anclas a:hover{color:var(--f-acento);box-shadow:inset 0 -2px 0 var(--f-acento)}

/* ---------------------------------------------------------------- Bancos: el talón vuelve a ser un objeto (un cheque) */
body.app.shell .talon{border-radius:14px;min-height:240px;transform:rotate(-1.2deg);
  background:repeating-linear-gradient(135deg,rgba(59,90,150,.035) 0 1px,transparent 1px 7px),
    radial-gradient(120% 80% at 50% 0%,rgba(255,255,255,.95),rgba(255,255,255,0) 60%),linear-gradient(165deg,#fdfdfb,#eef0f4);
  box-shadow:inset 0 1px 0 #fff,0 0 0 1px rgba(var(--e-tinta-sombra),.08),0 3px 6px rgba(var(--e-tinta-sombra),.10),
             0 28px 50px -22px rgba(var(--e-tinta-sombra),.45);transition:transform .5s var(--ease)}
body.app.shell .talon:hover{transform:rotate(0deg) translateY(-3px)}
body.app.shell .talon::before{display:block;content:"";position:absolute;left:-1px;top:16px;bottom:16px;width:9px;
  background:radial-gradient(circle at 0 50%,var(--e-lamina-2) 0 3.6px,transparent 4.2px) left top/9px 13px repeat-y}
body.app.shell .talon::after{display:block;content:"";position:absolute;inset:10px;border:1px dashed rgba(var(--e-tinta-sombra),.14);border-radius:9px;pointer-events:none}
body.app.shell .talon-micro{display:block;color:rgba(var(--e-tinta-sombra),.32)}
body.app.shell .talon b{font-size:3rem;letter-spacing:-.03em;color:var(--f-tinta);text-shadow:0 1px 0 #fff}
body.app.shell .talon-caro b{color:#a8493c}
body.app.shell .talon-ok b{color:var(--f-ok)}
@media (prefers-reduced-motion:reduce){body.app.shell .talon{transform:none}}

/* ---------------------------------------------------------------- Análisis y Expediente */
body.app.shell .spark-wrap{background:none;box-shadow:none;padding:6px 0}
body.app.shell .kpi{grid-template-columns:minmax(0,1fr) 84px}
body.app.shell .kpi-v{font-family:var(--f-sans);font-weight:600;font-size:1.7rem}
body.app.shell .kpi-mini svg{width:84px}
/* las barras crecen desde su base */
@keyframes gb-crece{from{transform:scaleY(0)}}
body.app.shell .gb-barra{transform-box:fill-box;transform-origin:50% 100%;animation:gb-crece .8s var(--ease) both;animation-delay:calc(var(--i) * 60ms + 150ms)}
/* niveles del expediente: el acento, no el verde */
body.app.shell .nivel-pasos li.hecho .nivel-punto{background:linear-gradient(180deg,#5d7cba,#3b5690);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 6px 14px -8px rgba(40,60,110,.8)}
body.app.shell .nivel{background:none;box-shadow:none}
@media (prefers-reduced-motion:reduce){body.app.shell .gb-barra{animation:none}}
body.app.shell .kpi-mini{width:84px;overflow:hidden}
body.app.shell .kpi-mini svg,body.app.shell .mini-kpis i svg{width:100%!important;height:auto!important;max-height:32px}

/* ---------------------------------------------------------------- Tesorería y Mesa */
body.app.shell .cj-linea{stroke:#3b5a96;stroke-width:2.4;filter:url(#cjs)}
body.app.shell .cj-banda{fill:rgba(59,90,150,.07)}
body.app.shell .cj-p{stroke:#3b5a96;stroke-width:2.2}
@keyframes cj-area{from{opacity:0}}
body.app.shell .cj-area{animation:cj-area 1.2s ease .4s both}
/* las gestiones con cada banco: columnas abiertas, no tarjetas */
body.app.shell .mesa-g{background:none!important;box-shadow:none!important;border-radius:0!important;
  border-left:1px solid rgba(var(--e-tinta-sombra),.09);padding-left:22px!important}
body.app.shell .mesa-g::after{display:none}
@media (max-width:640px){
  body.app.shell .cab-metricas{grid-template-columns:1fr}
  body.app.shell .cab-metricas .metrica{padding:16px 4px;border-right:0!important;border-bottom:1px solid rgba(var(--e-tinta-sombra),.08)}
  body.app.shell .cab-metricas .metrica:last-child{border-bottom:0}
  body.app.shell .cab-metricas .m-v{font-size:1.9rem}
  body.app.shell .cab-gauge svg.g-dial{max-width:300px}
  body.app.shell .app-cuerpo{padding:16px 16px 32px}
}
@keyframes rd-abre{from{transform:scale(.3);opacity:0}}
body.app.shell .rd-forma{animation:rd-abre 1s cubic-bezier(.2,.85,.25,1.1) .2s both}
@media (prefers-reduced-motion:reduce){body.app.shell .rd-forma{animation:none}}

/* ---------------------------------------------------------------- restos del estilo antiguo y barra de carga */
body.app.shell .pie::before,body.app.shell .pie::after{display:none!important}
body.app.shell .pie{border-top:1px solid rgba(var(--e-tinta-sombra),.07)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
.escena-carga{position:fixed;left:0;top:0;height:2px;width:100%;z-index:90;pointer-events:none;transform-origin:left;transform:scaleX(0);
  background:linear-gradient(90deg,#3b5a96,#8aa3d6);box-shadow:0 0 8px rgba(59,90,150,.6);opacity:0}
html.escena-navega .escena-carga{opacity:1;animation:escena-carga 8s cubic-bezier(.1,.7,.2,1) forwards}
@keyframes escena-carga{0%{transform:scaleX(0)}15%{transform:scaleX(.35)}60%{transform:scaleX(.75)}100%{transform:scaleX(.92)}}

/* ---------------------------------------------------------------- objetos con inclinación 3D y reflejo */
body.app.shell [data-objeto]{position:relative;transform-style:preserve-3d;
  transform:perspective(800px) rotateX(var(--orx,0deg)) rotateY(var(--ory,0deg));transition:transform .45s cubic-bezier(.2,.8,.2,1)}
body.app.shell .talon[data-objeto]{transform:perspective(800px) rotateX(var(--orx,0deg)) rotateY(var(--ory,0deg)) rotate(-1.2deg)}
body.app.shell .talon[data-objeto]:hover{transform:perspective(800px) rotateX(var(--orx,0deg)) rotateY(var(--ory,0deg)) rotate(0deg) translateY(-3px)}
body.app.shell .cab-gauge[data-objeto]::before{content:"";position:absolute;inset:0;pointer-events:none;border-radius:50% 50% 12px 12px;z-index:2;opacity:0;
  background:radial-gradient(220px circle at var(--olx,50%) var(--oly,20%),rgba(255,255,255,.55),transparent 60%);mix-blend-mode:soft-light;transition:opacity .4s}
body.app.shell .cab-gauge[data-objeto]:hover::before{opacity:1}
@media (prefers-reduced-motion:reduce),(hover:none){body.app.shell [data-objeto]{transform:none!important}}
/* el radar del Rating, plano: Firefox deja en blanco un SVG con filtro dentro de un contexto «preserve-3d» (y aquí no hay
   hijos en 3D: la inclinación es de la figura entera) */
body.app.shell .rating-radar[data-objeto]{transform-style:flat}

/* ---------------------------------------------------------------- Análisis: la película de la PD se dibuja al llegar */
@keyframes spd-traza{from{stroke-dasharray:0 100}to{stroke-dasharray:100 0}}
body.app.shell .spd-linea{animation:spd-traza 1.1s cubic-bezier(.3,.7,.2,1) .2s both}
body.app.shell .spd-area{animation:cj-area 1s ease .7s both}
body.app.shell .spd-p{animation:a-entrar .5s var(--ease) both;animation-delay:calc(var(--i) * 180ms + .35s)}
body.app.shell .spark-wrap{margin:4px 0 18px}
@media (prefers-reduced-motion:reduce){body.app.shell :is(.spd-linea,.spd-area,.spd-p){animation:none}}
body.app.shell .del-ej button{background:none!important;box-shadow:none!important;border:0!important;padding:0 2px!important;min-height:0!important;
  width:auto!important;height:auto!important;margin-left:4px;color:var(--f-tenue);opacity:.5;font-size:.85rem;transition:opacity .2s,color .2s}
body.app.shell .del-ej button:hover{opacity:1;color:#a8493c}
body.app.shell .res-ej button:hover{color:#2c4a8e}

/* cascada de caja: los escalones aparecen uno tras otro */
body.app.shell .gc-b{animation:a-entrar .5s var(--ease) both;animation-delay:calc(var(--i) * 70ms + .1s)}
@media (prefers-reduced-motion:reduce){body.app.shell .gc-b{animation:none}}
/* posición en el sector: una regla de percentiles (cuartiles marcados, la mediana más fuerte) con tu punto */
.pct-regla{display:inline-block;position:relative;vertical-align:middle;width:128px;height:7px;margin-right:14px;border-radius:4px;
  background:linear-gradient(90deg,transparent calc(25% - .5px),rgba(255,255,255,.95) calc(25% - .5px) calc(25% + .5px),transparent calc(25% + .5px) calc(50% - 1px),
    rgba(255,255,255,1) calc(50% - 1px) calc(50% + 1px),transparent calc(50% + 1px) calc(75% - .5px),rgba(255,255,255,.95) calc(75% - .5px) calc(75% + .5px),transparent calc(75% + .5px)),
    linear-gradient(180deg,#c3cad6,#d8dde5);box-shadow:inset 0 1px 2px rgba(20,28,42,.25),0 1px 0 rgba(255,255,255,.9)}
.pct-regla i{position:absolute;top:50%;width:11px;height:11px;border-radius:50%;transform:translate(-50%,-50%);background:#5d6b82;
  box-shadow:0 0 0 2px #fff,0 2px 4px rgba(20,28,42,.3);animation:pct-llega .9s cubic-bezier(.2,.8,.2,1) .2s both}
.pct-regla.pct-verde i{background:#2d6b8a}.pct-regla.pct-rojo i{background:#a8493c}
@keyframes pct-llega{from{left:0!important;opacity:0}}
@media (max-width:640px){.pct-regla{width:64px;margin-right:8px}}

/* ---------------------------------------------------------------- agenda: cada fecha es una hoja de calendario */
body.app.shell .ag-hacienda{--c:#2f4c87}body.app.shell .ag-registro{--c:#5d6b82}
body.app.shell .ag-banco{--c:#b07a2a}body.app.shell .ag-documento{--c:#2d6b8a}
body.app.shell .ag-dia{flex-direction:column-reverse;justify-content:flex-end;height:46px;border-top:0;border-radius:9px;overflow:hidden;
  background:linear-gradient(180deg,#fff,#f1f3f6);
  box-shadow:0 0 0 1px rgba(var(--e-tinta-sombra),.08),0 2px 3px rgba(var(--e-tinta-sombra),.12),0 6px 12px -6px rgba(var(--e-tinta-sombra),.3)}
body.app.shell .ag-dia small{display:block;width:100%;text-align:center;padding:2px 0 1px;font:650 .56rem/1.35 var(--f-sans);letter-spacing:.06em;
  text-transform:uppercase;color:#fff;background:linear-gradient(180deg,color-mix(in srgb,var(--c) 82%,#fff),var(--c))}
body.app.shell .ag-dia b{margin-top:5px;font:600 1.08rem/1 var(--f-sans);letter-spacing:-.01em}
body.app.shell .agenda-lista li:hover .ag-dia{transform:translateY(-1px) rotate(-2deg);transition:transform .25s var(--ease)}

/* ---------------------------------------------------------------- Avisos: el informe del mes sin caja */
body.app.shell .informe-mes{padding:4px 0 8px}
body.app.shell .informe-mes p{color:var(--f-tinta-2)}
body.app.shell details.informe-comentario{background:none!important;box-shadow:none!important;border:0!important;border-radius:0!important;padding:0!important;margin:0}
body.app.shell details.informe-comentario summary{display:inline-flex;align-items:center;gap:6px;padding:0;font:550 .86rem var(--f-sans);color:var(--f-acento);list-style:none}
body.app.shell details.informe-comentario summary::before{content:"+";font-weight:600}
body.app.shell details.informe-comentario[open] summary::before{content:"−"}
body.app.shell details.informe-comentario summary::after{content:none!important}
body.app.shell .grupo-avisos{padding:4px 0 10px!important}

/* ---------------------------------------------------------------- Impuestos y Vigilancia: el documento sellado */
body.app.shell .portada.con-sello{grid-template-columns:minmax(0,1fr) minmax(220px,290px)}
body.app.shell .portada.con-sello h2{max-width:28ch}
.hoja-sello{--tinta:#5d6b82;position:relative;z-index:1;margin:8px 22px 8px 0;justify-self:end;width:100%;max-width:270px;aspect-ratio:.82;border-radius:5px;padding:24px 24px;
  background:linear-gradient(180deg,#fff,#f5f6f8);transform:rotate(1.6deg);
  box-shadow:inset 0 1px 0 #fff,0 0 0 1px rgba(20,28,42,.06),0 3px 6px -2px rgba(20,28,42,.16),0 22px 40px -18px rgba(20,28,42,.45)}
.hoja-sello::before{content:"";position:absolute;inset:6px -6px -6px 6px;z-index:-1;border-radius:5px;background:linear-gradient(180deg,#f7f8fa,#e8ebf0);
  transform:rotate(-3.4deg);box-shadow:0 0 0 1px rgba(20,28,42,.05),0 14px 28px -16px rgba(20,28,42,.4)}
.hs-tit{display:block;font:650 .6rem var(--f-sans);letter-spacing:.2em;text-transform:uppercase;color:#7a8496}
.hs-renglones{position:absolute;left:24px;right:24px;top:52px;height:150px;opacity:.9;
  background:linear-gradient(90deg,rgba(20,28,42,.1) 0 62%,transparent 62%) 0 0/100% 6px no-repeat,
    linear-gradient(90deg,rgba(20,28,42,.07) 0 88%,transparent 88%) 0 22px/100% 5px no-repeat,
    linear-gradient(90deg,rgba(20,28,42,.07) 0 76%,transparent 76%) 0 38px/100% 5px no-repeat,
    linear-gradient(90deg,rgba(20,28,42,.07) 0 92%,transparent 92%) 0 54px/100% 5px no-repeat,
    linear-gradient(90deg,rgba(20,28,42,.07) 0 54%,transparent 54%) 0 70px/100% 5px no-repeat,
    linear-gradient(90deg,rgba(20,28,42,.07) 0 84%,transparent 84%) 0 96px/100% 5px no-repeat,
    linear-gradient(90deg,rgba(20,28,42,.07) 0 68%,transparent 68%) 0 112px/100% 5px no-repeat,
    linear-gradient(90deg,rgba(20,28,42,.12) 0 34%,transparent 34%) 0 144px/100% 1px no-repeat}
.hs-sello{position:absolute;right:8px;bottom:10px;width:156px;height:156px;color:var(--tinta);opacity:.86;mix-blend-mode:multiply;
  transform:rotate(-13deg);animation:sello-cae .7s cubic-bezier(.3,1.4,.5,1) .45s both}
.sello-ok{--tinta:#2d6b8a}.sello-warn{--tinta:#b07a2a}.sello-ko{--tinta:#a8493c}.sello-neutro{--tinta:#6b778c}
@keyframes sello-cae{0%{transform:rotate(-13deg) scale(1.7);opacity:0}55%{transform:rotate(-13deg) scale(.94);opacity:.9}100%{transform:rotate(-13deg) scale(1);opacity:.86}}
.hoja-sello:hover{transform:rotate(.4deg) translateY(-3px);transition:transform .4s cubic-bezier(.2,.8,.2,1)}
@media (prefers-reduced-motion:reduce){.hs-sello{animation:none}}
@media (max-width:860px){body.app.shell .portada.con-sello{grid-template-columns:1fr}.hoja-sello{justify-self:center;max-width:230px;margin:6px auto 18px}}
/* avisos: la agenda como columna abierta junto a las alertas, alineada arriba */
body.app.shell .avisos-agenda{position:static;padding:0 0 0 26px;border-left:1px solid rgba(var(--e-tinta-sombra),.09);box-shadow:inset 1px 0 0 rgba(255,255,255,.8)}
@media (max-width:1000px){body.app.shell .avisos-agenda{padding:18px 0 0;border-left:0;box-shadow:none;border-top:1px solid rgba(var(--e-tinta-sombra),.09)}}
/* la película de la PD tiene su versión estrecha para el móvil; la tabla de evolución deja fuera las minigráficas */
.sparkline-pd-movil{display:none}
@media (max-width:640px){
  .sparkline-pd:not(.sparkline-pd-movil){display:none}.sparkline-pd-movil{display:block}
  body.app.shell .dash-t th.mini,body.app.shell .dash-t td.mini{display:none}
  body.app.shell .dash-t td:first-child,body.app.shell .dash-t th:first-child{background:#f2f4f7;min-width:150px}
  .hoja-sello{max-width:200px}
}
/* Rating: evolución del score, barras que crecen desde la base */
@keyframes ges-crece{from{transform:scaleY(0);opacity:0}}
body.app.shell .ges-b{transform-box:fill-box;transform-origin:bottom;animation:ges-crece .8s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i) * 120ms + .15s)}
@media (prefers-reduced-motion:reduce){body.app.shell .ges-b{animation:none}}

/* Bancos: cuotas de cada mes (barras que crecen) con su leyenda; botones de quitar en tablas, discretos */
@keyframes gsd-crece{from{transform:scaleY(0)}}
body.app.shell .gsd-b{transform-box:fill-box;transform-origin:bottom;animation:gsd-crece .6s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i) * 22ms + .1s)}
@media (prefers-reduced-motion:reduce){body.app.shell .gsd-b{animation:none}}
.g-leyenda{display:flex;flex-wrap:wrap;gap:6px 20px;margin:6px 0 0;font-size:.76rem;color:var(--f-tenue)}
.g-leyenda span{display:inline-flex;align-items:center;gap:7px}
.g-leyenda i{display:inline-block}
.gl-barra{width:8px;height:14px;border-radius:2px;background:linear-gradient(180deg,#6a86bf,#3b5690)}
.gl-punto{width:9px;height:9px;border-radius:50%;box-shadow:0 0 0 1.5px #fff,0 1px 2px rgba(20,28,42,.25)}
.gl-fin{background:#a8493c}.gl-renueva{background:#b07a2a}
body.app.shell .dash-t .btn-icono{background:none!important;box-shadow:none!important;border:0!important;width:28px;height:28px;
  color:var(--f-tenue);opacity:.55;border-radius:8px;transition:opacity .2s,color .2s,background .2s}
body.app.shell .dash-t .btn-icono:hover{opacity:1;color:#a8493c;background:rgba(168,73,60,.08)!important}

/* ---------------------------------------------------------------- Bancos: el simulador como un panel de mandos */
/* el formulario es una bandeja hundida; las opciones, teclas con cuerpo que se hunden al elegirlas */
body.app.shell .app-contenido .rs-form{background:linear-gradient(180deg,#e4e8ee,#eef1f5)!important;border-radius:20px!important;
  box-shadow:inset 0 2px 6px rgba(20,28,42,.11),inset 0 0 0 1px rgba(20,28,42,.05),0 1px 0 rgba(255,255,255,.95)!important}
body.app.shell .rs-accion,body.app.shell .rs-op{background:linear-gradient(180deg,#fff,#f4f5f8);border:0;
  box-shadow:inset 0 1px 0 #fff,0 0 0 1px rgba(20,28,42,.07),0 2px 3px rgba(20,28,42,.08),0 8px 14px -10px rgba(20,28,42,.35);
  transition:transform .15s var(--ease),box-shadow .2s,background .2s}
body.app.shell .rs-accion:hover,body.app.shell .rs-op:hover{transform:translateY(-1px)}
body.app.shell .rs-accion:has(input:checked),body.app.shell .rs-op:has(input:checked){transform:translateY(1px);
  background:linear-gradient(180deg,#e9eef8,#f5f7fc);box-shadow:inset 0 2px 4px rgba(20,28,42,.13),inset 0 0 0 1.5px #3b5a96}
body.app.shell .rs-accion:has(input:checked) b,body.app.shell .rs-op:has(input:checked) b{color:#22408f}
body.app.shell .rs-campos{border-top:1px solid rgba(20,28,42,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}
body.app.shell .rs-campos input:not([type=checkbox]){background:linear-gradient(180deg,#f6f7f9,#fff)!important;border:0!important;border-radius:10px!important;
  box-shadow:inset 0 1px 3px rgba(20,28,42,.14),inset 0 0 0 1px rgba(20,28,42,.08),0 1px 0 #fff!important}
body.app.shell .rs-campos input:not([type=checkbox]):focus{box-shadow:inset 0 1px 3px rgba(20,28,42,.14),0 0 0 2px rgba(59,90,150,.45)!important;outline:0}

/* ---------------------------------------------------------------- Expediente: la cobertura como un anillo con cuerpo */
body.app.shell .nivel:has(.nivel-anillo){grid-template-columns:150px minmax(0,1fr) minmax(0,1.25fr)}
.nivel-anillo{margin:0;width:150px}
.nivel-anillo svg{display:block;width:100%;height:auto}
@keyframes na-llena{from{stroke-dasharray:0 100}}
.na-arco{animation:na-llena 1.4s cubic-bezier(.2,.8,.2,1) .3s both}
@media (prefers-reduced-motion:reduce){.na-arco{animation:none}}
@media (max-width:980px){body.app.shell .nivel:has(.nivel-anillo){grid-template-columns:110px minmax(0,1fr)}.nivel-anillo{width:110px}
  body.app.shell .nivel:has(.nivel-anillo) .nivel-pasos{grid-column:1 / -1}}
@media (max-width:640px){body.app.shell .nivel:has(.nivel-anillo){grid-template-columns:1fr;gap:14px}
  .nivel-anillo{width:118px}body.app.shell .nivel h2{font-size:1.8rem}}

/* ---------------------------------------------------------------- el Analista: una segunda lámina que flota sobre la app */
body.app.shell .app-chat{top:14px;right:14px;bottom:14px;width:min(420px,calc(100vw - 28px));border-radius:22px;overflow:hidden;
  background:linear-gradient(180deg,var(--e-lamina-1),var(--e-lamina-2));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95),0 0 0 1px rgba(var(--e-tinta-sombra),.10),0 24px 48px -20px rgba(var(--e-tinta-sombra),.45),
             0 60px 120px -40px rgba(var(--e-tinta-sombra),.55);transform:translateX(calc(100% + 30px))}
body.app.shell .app-chat.abierto{transform:none}
body.app.shell .chat-velo{background:rgba(28,35,51,.18);-webkit-backdrop-filter:blur(3px) saturate(.9);backdrop-filter:blur(3px) saturate(.9)}
body.app.shell .chat-cab{border-bottom:1px solid rgba(var(--e-tinta-sombra),.08);box-shadow:0 1px 0 rgba(255,255,255,.85)}
body.app.shell .chat-cab b::before{background:#3b5a96;box-shadow:0 0 0 4px rgba(59,90,150,.14);animation:chat-pulso 2.4s ease-in-out infinite}
@keyframes chat-pulso{50%{box-shadow:0 0 0 7px rgba(59,90,150,.06)}}
body.app.shell .chat-cerrar{width:30px;height:30px;border-radius:50%;border:0;background:linear-gradient(180deg,#fff,#eef1f5);color:var(--f-suave);cursor:pointer;
  box-shadow:inset 0 1px 0 #fff,0 0 0 1px rgba(20,28,42,.08),0 2px 4px rgba(20,28,42,.12)}
/* los mensajes del analista, como notas en el margen; los tuyos, como fichas pequeñas con cuerpo */
body.app.shell .msg.asistente{padding-left:14px;box-shadow:inset 2px 0 0 rgba(59,90,150,.35)}
body.app.shell .msg.usuario{background:linear-gradient(180deg,#4a68ad,#2c4a8e);color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 6px 14px -8px rgba(44,74,142,.7)}
body.app.shell .chat-sug .chip{background:linear-gradient(180deg,#fff,#f2f4f7);
  box-shadow:inset 0 1px 0 #fff,0 0 0 1px rgba(20,28,42,.08),0 2px 3px rgba(20,28,42,.08)}
body.app.shell .chat-form{border-top:1px solid rgba(var(--e-tinta-sombra),.08);background:rgba(255,255,255,.35)}
body.app.shell .chat-form input{background:linear-gradient(180deg,#f3f5f8,#fbfcfd)!important;border:0!important;border-radius:12px!important;
  box-shadow:inset 0 1px 3px rgba(20,28,42,.14),inset 0 0 0 1px rgba(20,28,42,.08),0 1px 0 #fff!important}
body.app.shell .chat-form button{border-radius:12px;background:linear-gradient(180deg,#4a68ad,#2c4a8e);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 6px 14px -8px rgba(44,74,142,.7)}
@media (max-width:640px){body.app.shell .app-chat{top:8px;right:8px;bottom:8px;width:calc(100vw - 16px);border-radius:18px}}
@media (prefers-reduced-motion:reduce){body.app.shell .chat-cab b::before{animation:none}}

/* ---------------------------------------------------------------- administración: la misma escena (menú sobre el fondo, lámina) */
body.app.shell.admin .app-side{background:transparent;border-right:0;box-shadow:none}
body.app.shell.admin .app-side .marca-logo b,body.app.shell.admin .app-side .marca-logo small{color:#1a2233;text-shadow:0 1px 0 rgba(255,255,255,.45)}
body.app.shell.admin .admin-sub{color:rgba(26,34,51,.6)}
body.app.shell.admin .app-side .app-nav a{color:#1d2535;border-radius:10px;transition:background .25s,box-shadow .25s}
body.app.shell.admin .app-side .app-nav a .ico{color:rgba(26,34,51,.58)}
body.app.shell.admin .app-side .app-nav a:hover{background:rgba(255,255,255,.38);box-shadow:inset 0 1px 0 rgba(255,255,255,.5)}
body.app.shell.admin .app-side .app-nav a.on{background:linear-gradient(180deg,#fff,#f1f4f3);color:var(--f-acento);
  box-shadow:inset 0 1px 0 #fff,0 0 0 1px rgba(var(--e-tinta-sombra),.08),0 2px 3px rgba(var(--e-tinta-sombra),.10),0 10px 20px -10px rgba(var(--e-tinta-sombra),.40)}
body.app.shell.admin .app-side .app-nav a.on .ico{color:var(--f-acento)}
body.app.shell.admin .app-side-pie{border-top-color:rgba(26,34,51,.12)}
body.app.shell.admin .app-side-pie a{color:#2b3445}
body.app.shell.admin .app-cuerpo{width:auto;max-width:none;margin:14px 14px 14px 0;border-radius:24px;padding:26px 34px 48px;
  background:linear-gradient(180deg,var(--e-lamina-1),var(--e-lamina-2));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 0 0 0 1px rgba(255,255,255,.6),0 0 0 1px rgba(var(--e-tinta-sombra),.10),
             0 2px 4px rgba(var(--e-tinta-sombra),.08),0 24px 48px -20px rgba(var(--e-tinta-sombra),.35),0 60px 120px -40px rgba(var(--e-tinta-sombra),.45)}
body.app.shell.admin .kpi-grid{border-top:1px solid rgba(var(--e-tinta-sombra),.08);border-bottom:1px solid rgba(var(--e-tinta-sombra),.08)}
body.app.shell.admin .kpi{background:none}
@media (max-width:860px){body.app.shell.admin .app-cuerpo{margin:8px;border-radius:18px;padding:18px}}
/* Rating: fortalezas, penalizaciones y palancas con el título encima de su explicación (no se parten en dos columnas) */
body.app.shell .sc-tres .tarjeta-cab{flex-direction:column;align-items:flex-start;gap:2px;margin-bottom:14px}

/* ---------------------------------------------------------------- subidas: las vías alternativas, plegadas y con el estilo de la app */
body.app.shell details.otra-via{margin:18px 0 0;padding:0;background:none!important;border:0!important;box-shadow:none!important;border-radius:0!important}
body.app.shell details.otra-via>summary{display:inline-flex;align-items:center;gap:8px;cursor:pointer;list-style:none;font:550 .88rem var(--f-sans);color:var(--f-acento)}
body.app.shell details.otra-via>summary::-webkit-details-marker{display:none}
body.app.shell details.otra-via>summary::before{content:"+";display:grid;place-items:center;width:20px;height:20px;border-radius:50%;font-weight:600;
  background:linear-gradient(180deg,#fff,#eef1f5);box-shadow:inset 0 1px 0 #fff,0 0 0 1px rgba(20,28,42,.08),0 1px 2px rgba(20,28,42,.12)}
body.app.shell details.otra-via[open]>summary::before{content:"−"}
body.app.shell details.otra-via>summary::after{content:none!important}
body.app.shell .expres{background:none!important;border:0!important;box-shadow:none!important;border-radius:0!important;padding:14px 0 0!important;margin-top:0!important}
body.app.shell .expres label{text-transform:none!important;letter-spacing:0!important;font:550 .82rem var(--f-sans)!important;color:var(--f-tinta-2)!important}
body.app.shell .expres input:not([type=file]):not([type=checkbox]),body.app.shell .expres textarea,body.app.shell .expres select{
  background:linear-gradient(180deg,#f3f5f8,#fbfcfd)!important;border:0!important;border-radius:12px!important;
  box-shadow:inset 0 1px 3px rgba(20,28,42,.14),inset 0 0 0 1px rgba(20,28,42,.08),0 1px 0 #fff!important}
body.app.shell .expres details.pega{background:none!important;border:0!important;padding:0!important}
body.app.shell .expres details.pega summary{font:550 .82rem var(--f-sans);color:var(--f-tinta-2)}
body.app.shell .expres .o-div{display:none}
/* el selector de ficheros nativo, como una tecla de la app (en todas las pantallas) */
body.app.shell input[type=file]{font:400 .86rem var(--f-sans);color:var(--f-suave);padding:8px;border-radius:12px;width:100%;box-sizing:border-box;
  background:linear-gradient(180deg,#eef1f5,#f6f7f9);box-shadow:inset 0 1px 3px rgba(20,28,42,.12),inset 0 0 0 1px rgba(20,28,42,.07)}
body.app.shell input[type=file]::file-selector-button{margin-right:12px;padding:7px 14px;border:0;border-radius:9px;cursor:pointer;
  font:600 .82rem var(--f-sans);color:var(--f-tinta);background:linear-gradient(180deg,#fff,#eef1f5);
  box-shadow:inset 0 1px 0 #fff,0 0 0 1px rgba(20,28,42,.1),0 2px 4px rgba(20,28,42,.12)}
body.app.shell input[type=file]::file-selector-button:hover{color:var(--f-acento)}
body.app.shell .dropzona-caja input[type=file]{background:none;box-shadow:none}
/* móvil: el título de cada bloque encima de su explicación (no se parte en dos columnas estrechas) */
@media (max-width:640px){body.app.shell .w-cab,body.app.shell .seccion-cab{flex-direction:column;align-items:flex-start;gap:2px}}

/* ---------------------------------------------------------------- campos de formulario: carril hundido en toda la app */
body.app.shell .app-contenido :is(input:not([type=range]):not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]):not([type=submit]),select,textarea){
  background:linear-gradient(180deg,#f1f3f7,#fafbfc)!important;border:0!important;border-radius:11px!important;color:var(--f-tinta);
  box-shadow:inset 0 1px 3px rgba(20,28,42,.13),inset 0 0 0 1px rgba(20,28,42,.08),0 1px 0 #fff!important;transition:box-shadow .2s}
body.app.shell .app-contenido :is(input:not([type=range]):not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea):focus{
  outline:0;box-shadow:inset 0 1px 3px rgba(20,28,42,.13),0 0 0 2px rgba(59,90,150,.45),0 1px 0 #fff!important}
body.app.shell .app-contenido :is(input,textarea)::placeholder{color:#97a0b0}

/* ---------------------------------------------------------------- el analista: identidad, saludo, tarjetas y mensajes */
.an-avatar{display:inline-grid;flex:none;width:38px;height:38px;border-radius:50%;
  filter:drop-shadow(0 4px 6px rgba(20,28,42,.28)) drop-shadow(0 1px 1px rgba(20,28,42,.2))}
.an-avatar svg{width:100%;height:100%}
.an-avatar.mini{width:26px;height:26px;margin-top:2px;filter:drop-shadow(0 2px 3px rgba(20,28,42,.25))}
.an-aguja{transform-origin:20px 24px;animation:an-respira 4s ease-in-out infinite}
@keyframes an-respira{0%,100%{transform:rotate(0)}50%{transform:rotate(-14deg)}}
.msg.pensando .an-aguja{animation:an-piensa .9s ease-in-out infinite}
@keyframes an-piensa{0%,100%{transform:rotate(-60deg)}50%{transform:rotate(18deg)}}
body.app.shell .an-id{display:flex;gap:12px;align-items:center}
body.app.shell .chat-cab b::before{content:none}
body.app.shell .chat-cab .an-id b{font:500 1.28rem/1.1 var(--f-serif);color:var(--f-tinta)}
body.app.shell .chat-cab .an-id span{margin-top:3px;font-size:.74rem}
/* saludo: la voz del analista, en serif, y cuatro preguntas con el adelanto de su respuesta */
.an-hola{display:flex;flex-direction:column;gap:12px;padding:6px 2px 4px;transition:opacity .35s,transform .35s}
.an-hola-ida{opacity:0;transform:translateY(-8px)}
.an-saludo{margin:0;font:420 1.32rem/1.35 var(--f-serif);color:var(--f-tinta);letter-spacing:-.01em}
.an-saludo b{font-weight:500;color:#22408f}
.an-lema{margin:0;font-size:.9rem;line-height:1.55;color:var(--f-suave)}
.an-tarjetas{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}
.an-tarjeta{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:13px 14px 12px;text-align:left;cursor:pointer;border:0;
  border-radius:14px;background:linear-gradient(180deg,#fff,#f3f5f8);font:inherit;color:var(--f-tinta);
  box-shadow:inset 0 1px 0 #fff,0 0 0 1px rgba(20,28,42,.07),0 2px 3px rgba(20,28,42,.07),0 10px 18px -12px rgba(20,28,42,.35);
  transition:transform .2s var(--ease),box-shadow .2s;animation:a-entrar .5s var(--ease) both;animation-delay:calc(var(--i) * 70ms + .1s)}
.an-tarjeta:hover{transform:translateY(-2px);box-shadow:inset 0 1px 0 #fff,0 0 0 1px rgba(59,90,150,.25),0 4px 6px rgba(20,28,42,.08),0 16px 26px -14px rgba(20,28,42,.4)}
.an-tarjeta:active{transform:translateY(1px)}
.an-t-ico{display:grid;place-items:center;width:28px;height:28px;margin-bottom:4px;border-radius:9px;color:#fff;
  background:linear-gradient(180deg,#5d7cba,#2f4c87);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 3px 6px -2px rgba(44,74,142,.6)}
.an-tarjeta b{font:600 .86rem/1.25 var(--f-sans)}
.an-tarjeta small{font:500 .76rem/1.3 var(--f-sans);color:#3b5a96}
/* mensajes */
body.app.shell .msg.asistente{display:flex;gap:10px;max-width:100%;padding-left:0;box-shadow:none;font:400 1rem/1.62 var(--f-serif)}
body.app.shell .msg-cuerpo{min-width:0;flex:1;padding-left:12px;box-shadow:inset 2px 0 0 rgba(59,90,150,.28)}
body.app.shell .msg-texto b{font-family:var(--f-sans);font-weight:650;color:#22408f;font-size:.94em;letter-spacing:-.005em}
body.app.shell .msg-texto ul{margin:.4em 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
body.app.shell .msg-texto li{position:relative;padding-left:14px;font-size:.95em}
body.app.shell .msg-texto li::before{content:"";position:absolute;left:0;top:.68em;width:6px;height:6px;border-radius:50%;background:#8aa3d6}
body.app.shell .msg.pensando .msg-texto{font:500 .86rem var(--f-sans);color:var(--f-tenue);font-style:normal}
body.app.shell .msg.pensando .msg-texto::after{content:"";display:inline-block;width:20px;height:6px;margin-left:6px;vertical-align:middle;
  background:radial-gradient(circle,#8aa3d6 2.2px,transparent 2.6px) 0 50%/7px 6px repeat-x;animation:a-puntos 1s steps(3) infinite}
.msg-fuentes{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0 0}
.msg-fuentes span{font:600 .62rem var(--f-sans);letter-spacing:.08em;text-transform:uppercase;color:#5d6b82;padding:3px 8px;border-radius:999px;
  background:rgba(59,90,150,.07);box-shadow:inset 0 0 0 1px rgba(59,90,150,.12)}
.msg-siguen{display:flex;flex-wrap:wrap;gap:6px;padding-left:36px;animation:a-entrar .4s var(--ease) both}
body.app.shell .msg.usuario{max-width:84%;font-size:.92rem;border-radius:16px 16px 4px 16px;padding:10px 14px}
body.app.shell .chat-hist{gap:16px;padding:20px 20px 16px}
/* el campo de pregunta: carril hundido con botón redondo */
body.app.shell .chat-form{align-items:center;gap:10px;padding:12px 16px}
body.app.shell .chat-form input{border-radius:999px!important;padding:12px 16px!important;font-size:.92rem}
body.app.shell .chat-form button{flex:none;width:42px;height:42px;padding:0;border-radius:50%;display:grid;place-items:center}
body.app.shell .chat-form button:disabled{opacity:.55}
@media (prefers-reduced-motion:reduce){.an-aguja,.msg.pensando .an-aguja,.an-tarjeta,.msg-siguen{animation:none}}

/* ---------------------------------------------------------------- Rating: la IF-PYME de cada banco frente a la nuestra */
.ifp-fila{padding:4px 0 18px;border-bottom:1px solid rgba(var(--e-tinta-sombra),.08);margin-bottom:16px}
.ifp-cab{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.ifp-cab b{font:500 1.15rem var(--f-serif);color:var(--f-tinta)}
.ifp-cab small{color:var(--f-tenue);font-size:.8rem}
.ifp-regla{position:relative;display:grid;grid-template-columns:repeat(4,1fr);padding:4px;border-radius:999px;margin:26px 0 30px;
  background:linear-gradient(180deg,#d6dbe3,#e9ecf1);box-shadow:inset 0 2px 5px rgba(20,28,42,.16),inset 0 0 0 1px rgba(20,28,42,.05),0 1px 0 #fff}
.ifp-t{height:26px;display:grid;place-items:center;font:600 .72rem var(--f-sans);color:#fff;opacity:.9;box-shadow:inset -1px 0 0 rgba(255,255,255,.45)}
.ifp-t0{background:#2f4c87;border-radius:999px 0 0 999px}.ifp-t1{background:#6680b6}.ifp-t2{background:#c49a52}
.ifp-t3{background:#ab5644;border-radius:0 999px 999px 0;box-shadow:none}
.ifp-m{position:absolute;left:calc(4px + (100% - 8px) * (var(--p) + .5) / 4);transform:translateX(-50%);font:600 .7rem var(--f-sans);font-style:normal;
  white-space:nowrap;padding:3px 9px;border-radius:999px;color:#fff;box-shadow:0 0 0 2px #fff,0 4px 10px -3px rgba(20,28,42,.45)}
.ifp-banco{top:-22px;background:#1c2333}
.ifp-odilo{bottom:-24px;background:#3b5a96}
.ifp-lectura{margin:0 0 10px;color:var(--f-tinta-2);max-width:70ch}
.ifp-grupos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 24px}
.ifp-grupos li{display:flex;flex-direction:column;gap:2px;padding-top:10px;border-top:1px solid rgba(var(--e-tinta-sombra),.08)}
.ifp-grupos span{font:550 .74rem var(--f-sans);color:var(--f-tenue)}.ifp-grupos b{font:600 .92rem var(--f-sans);color:var(--f-tinta)}
.ifp-grupos small{font-size:.74rem;color:var(--f-suave)}
.ifp-vacia p{margin:0 0 14px;max-width:76ch;color:var(--f-tinta-2);line-height:1.6}
@media (max-width:640px){.ifp-grupos{grid-template-columns:1fr}.ifp-t{font-size:.6rem}}

/* «Dinos tu actividad» (A1, revisión e2e): franja con el buscador de CNAE, en el tono del acento, sin caja blanca */
body.app.shell .franja-actividad{align-items:center;flex-wrap:wrap;background:linear-gradient(180deg,rgba(59,90,150,.08),rgba(59,90,150,.04));
  color:#2c4a8e;box-shadow:inset 3px 0 0 #3b5a96,inset 0 0 0 1px rgba(59,90,150,.10);margin-bottom:14px}
body.app.shell .franja-actividad>div{flex:1 1 320px}
body.app.shell .franja-actividad b{color:#1c2333}
body.app.shell .franja-actividad p{color:#4a5468}
body.app.shell .franja-actividad .fa-campo{flex:1 1 260px;margin:0}
body.app.shell .franja-actividad .fa-campo input{width:100%}
@media (max-width:640px){body.app.shell .franja-actividad .btn{width:100%}}

/* Metodología (revisión e2e, B5): la cadena del documento al precio es también el índice de la página */
.cadena li>a{display:block;color:inherit;text-decoration:none;border-radius:10px;transition:background .2s}
.cadena li>a:hover{background:rgba(59,90,150,.07)}
.metodo-portada~.seccion{scroll-margin-top:84px}

/* Comisiones que podrías reclamar (#13): por entidad, sin cajas; reclamable en ladrillo, a revisar en arena */
body.app.shell .reclamables{margin:22px 0 6px}
body.app.shell .reclamables h4{margin:0 0 10px;font:600 1.02rem var(--f-sans);color:#1c2333}
body.app.shell .reclamables h4 small{display:block;margin-top:2px;font:400 .8rem var(--f-sans);color:var(--f-tenue)}
body.app.shell .rc-cifras{margin-bottom:10px}
body.app.shell details.rc-entidad{margin:0!important;padding:12px 0!important;border:0!important;border-top:1px solid rgba(28,35,51,.08)!important;
  background:none!important;box-shadow:none!important;border-radius:0!important}
body.app.shell details.rc-entidad>summary::after{display:none!important}
body.app.shell details.rc-entidad>summary{display:flex;align-items:baseline;justify-content:space-between;gap:12px;cursor:pointer;list-style:none}
body.app.shell details.rc-entidad>summary::-webkit-details-marker{display:none}
body.app.shell details.rc-entidad>summary b{font:600 .95rem var(--f-sans);color:#1c2333}
body.app.shell details.rc-entidad>summary span{font:500 .84rem var(--f-sans);color:#a8493c;white-space:nowrap}
body.app.shell .rc-cargos{list-style:none;margin:10px 0 12px;padding:0;display:grid;gap:8px}
body.app.shell .rc-cargos li{display:grid;grid-template-columns:96px 90px 1fr;gap:2px 14px;padding:8px 12px;border-radius:10px;
  background:linear-gradient(180deg,rgba(176,122,42,.07),rgba(176,122,42,.03));box-shadow:inset 3px 0 0 #c49a52}
body.app.shell .rc-cargos li.rc-si{background:linear-gradient(180deg,rgba(168,73,60,.08),rgba(168,73,60,.03));box-shadow:inset 3px 0 0 #a8493c}
body.app.shell .rc-cargos li span{font:500 .8rem var(--f-sans);color:var(--f-tenue)}
body.app.shell .rc-cargos li b{font:600 .88rem var(--f-sans);color:#1c2333;text-align:right;font-variant-numeric:tabular-nums}
body.app.shell .rc-cargos li i{font:400 .82rem var(--f-sans);color:#4a5468;font-style:normal;overflow-wrap:anywhere}
body.app.shell .rc-cargos li small{grid-column:1/-1;font:400 .78rem/1.45 var(--f-sans);color:var(--f-tenue)}
@media (max-width:640px){body.app.shell .rc-cargos li{grid-template-columns:1fr auto}
  body.app.shell .rc-cargos li i{grid-column:1/-1}
  body.app.shell details.rc-entidad>summary{flex-direction:column;gap:2px}}

/* Consola: buscador, filas de la ficha y acciones (9-oct) */
body.app.shell.admin .admin-buscar{position:relative;display:flex;align-items:center}
body.app.shell.admin .admin-buscar input{width:260px;max-width:52vw;padding:8px 34px 8px 12px;border-radius:10px;font:500 .86rem var(--f-sans)}
body.app.shell.admin .admin-buscar .ico{position:absolute;right:11px;color:var(--f-tenue);pointer-events:none}
body.app.shell.admin .admin-fila{margin:.35em 0;line-height:1.5}
body.app.shell.admin .admin-fila .estado{margin-right:4px}
body.app.shell.admin .admin-acciones{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
body.app.shell.admin .admin-acciones form{margin:0}
body.app.shell.admin .admin-acciones select{margin-left:6px}
@media (max-width:760px){body.app.shell.admin .app-cabecera{flex-direction:column;align-items:flex-start;gap:10px}
  body.app.shell.admin .admin-buscar input{width:100%;max-width:none}}

/* Plan · «Con tus cifras»: lecturas del perfil (sector, territorio, forma) con la fuente debajo, sin cajas */
body.app.shell .lecturas-perfil{margin:4px 0 18px;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px 28px}
body.app.shell .lecturas-perfil h4{grid-column:1/-1;margin:0;font:600 .78rem var(--f-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--f-tenue)}
body.app.shell .lp-item{padding:2px 0 2px 14px;box-shadow:inset 2px 0 0 rgba(59,90,150,.45)}
body.app.shell .lp-item b{font:600 .95rem var(--f-sans);color:#1c2333}
body.app.shell .lp-item p{margin:4px 0 4px;font:400 .9rem/1.55 var(--f-sans);color:#3a4356}
body.app.shell .lp-item small{font:400 .76rem var(--f-sans);color:var(--f-tenue)}

/* Rating · prueba de estrés del banco (EBA): tres lecturas en fila, con el color tonal del resultado, sin cajas */
body.app.shell .estres-filas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:6px 0 10px}
body.app.shell .estres-f{display:flex;flex-direction:column;gap:3px;padding:4px 0 4px 14px;box-shadow:inset 3px 0 0 #2d6b8a}
body.app.shell .estres-f.estres-warn{box-shadow:inset 3px 0 0 #b07a2a}
body.app.shell .estres-f.estres-ko{box-shadow:inset 3px 0 0 #a8493c}
body.app.shell .estres-f span{font:500 .84rem var(--f-sans);color:#4a5468}
body.app.shell .estres-f b{font:600 1.7rem var(--f-sans);color:#1c2333;font-variant-numeric:tabular-nums}
body.app.shell .estres-f b small{font:400 .85rem var(--f-sans);color:var(--f-tenue)}
body.app.shell .estres-f>small{font:400 .78rem/1.4 var(--f-sans);color:var(--f-tenue)}
@media (max-width:760px){body.app.shell .estres-filas{grid-template-columns:1fr}}

/* Aviso estándar junto a la nota (riesgo legal, investigación del 9-oct §6.2 #10): discreto, siempre presente */
body.app.shell .cab-aviso{margin:6px 0 0;font:400 .74rem var(--f-sans);color:var(--f-tenue)}
body.app.shell .aviso-calif{margin-top:12px;max-width:72ch}

/* Plan · licitaciones abiertas que encajan con la empresa; Riesgos · avisos de contratación pública (9-oct). Sin cajas:
   línea lateral tonal, cifra a la derecha y el porqué del encaje debajo */
body.app.shell .licitaciones{list-style:none;margin:6px 0 12px;padding:0;display:grid;gap:16px}
body.app.shell .licitaciones li{padding:2px 0 2px 16px;box-shadow:inset 2px 0 0 rgba(45,107,138,.55)}
body.app.shell .lic-cab{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
body.app.shell .lic-fin{font:600 .74rem var(--f-sans);letter-spacing:.05em;text-transform:uppercase;color:var(--f-tenue)}
body.app.shell .lic-fin.lic-urgente{color:#b07a2a}
body.app.shell .lic-imp{font:600 1.05rem var(--f-sans);color:#1c2333;font-variant-numeric:tabular-nums;white-space:nowrap}
body.app.shell .lic-obj{margin:4px 0;font:500 .95rem/1.45 var(--f-sans);color:#1c2333}
body.app.shell .lic-obj a{color:inherit;text-decoration:none;background-image:linear-gradient(rgba(45,107,138,.35),rgba(45,107,138,.35));
  background-size:100% 1px;background-repeat:no-repeat;background-position:0 100%}
body.app.shell .lic-obj a:hover{background-image:linear-gradient(#2d6b8a,#2d6b8a)}
body.app.shell .lic-pie{margin:0;display:flex;flex-wrap:wrap;gap:4px 14px;font:400 .8rem/1.4 var(--f-sans);color:var(--f-tenue)}
body.app.shell .lic-pie .lic-por{color:#2d6b8a}
body.app.shell .contratacion-avisos li small{display:block;margin-top:2px;font:400 .76rem var(--f-sans);color:var(--f-tenue)}
@media (max-width:760px){body.app.shell .lic-cab{flex-direction:column;gap:2px}}

/* =====================================================================================================================
   SISTEMA COMÚN (10-oct). Una sola hoja para toda la app (style.css ya no entra en ninguna pantalla de la app):
   · retícula: la lámina en una columna de 1320 px; dentro, rejillas de 2 y 3 columnas con el mismo hueco;
   · ritmo vertical: 32 px entre secciones, separadas por un filete con canto de luz; 14 px entre el título y su contenido;
   · ancho de lectura: los párrafos, como mucho 72 caracteres;
   · títulos: la portada de cada pantalla (estado, frase, cifras, acciones y un objeto físico) y, debajo, secciones con un
     título corto en sans y su explicación en gris al lado; nada de serif, mayúsculas espaciadas ni etiquetas;
   · tablas: cifras a la derecha, en columnas tabulares (Inter), cabecera tonal;
   · detalle en desplegables con cheurón; foco visible y contraste AA en todo el texto.
   ===================================================================================================================== */
body.app.shell{
  /* contraste AA sobre la lámina (#eceef2-#f6f7f9): el gris «tenue» pasa de 3,3:1 a 4,8:1 */
  --f-tenue:#5f687a; --f-suave:#4c5568;
  /* el ámbar de «atención» como texto: #b07a2a daba 3,2:1; este, 4,8:1 (las barras y rellenos siguen en #b07a2a) */
  --f-warn:#8d5f1c;
  --ritmo:32px; --ritmo-s:14px; --ancho-lectura:72ch; --hueco-col:40px;
}
body.app.shell .sb-grupo{color:rgba(26,34,51,.82)}
body.app.shell .sb-email{color:#232b3b}
body.app.shell .app-contenido{gap:var(--ritmo)}
body.app.shell .app-contenido>:is(.seccion,.resultado,.expres,.rejilla-2,.rejilla-3,.lienzo-fila)+:is(.seccion,.resultado,.expres,.rejilla-2,.rejilla-3,.lienzo-fila){
  padding-top:calc(var(--ritmo) - 6px);border-top:1px solid rgba(var(--e-tinta-sombra),.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
body.app.shell .seccion{gap:var(--ritmo-s)}
/* títulos de sección: uno solo para toda la app (también en los bloques heredados .resultado/.expres de consultor y consola) */
body.app.shell :is(.seccion-cab,.w-cab,.tarjeta-cab){display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 14px}
body.app.shell :is(.seccion-cab h3,.w-cab h3,.tarjeta-cab h3,.resultado>h3,.expres>h3){
  margin:0;font:600 1.02rem/1.3 var(--f-sans);letter-spacing:-.01em;color:var(--f-tinta)}
body.app.shell :is(.resultado,.expres)>h3{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 14px;margin:0 0 var(--ritmo-s)}
body.app.shell :is(.seccion-cab p,.w-cab .tenue,.tarjeta-cab p,.cat){margin:0;font:450 .8rem/1.45 var(--f-sans);color:var(--f-tenue);
  letter-spacing:0;text-transform:none;background:none;border:0;padding:0}
body.app.shell .seccion-cab .enlace-mas,body.app.shell .w-cab .enlace-mas{margin:0 0 0 auto}
body.app.shell :where(.seccion,.resultado,.expres) h4{margin:14px 0 6px;font:600 .9rem var(--f-sans);color:var(--f-tinta)}
/* párrafos: ancho de lectura */
body.app.shell .app-contenido :is(p.fine,p.nota-fuente,.portada-entradilla,.seccion-cab p,.ops-notas li,.lectura){max-width:var(--ancho-lectura)}
body.app.shell .app-contenido p.fine{font-size:.8rem;line-height:1.5;color:var(--f-suave)}
body.app.shell .nota-fuente{font-size:.78rem;line-height:1.5;color:var(--f-tenue)}
/* tablas: cifras a la derecha y tabulares; la etiqueta, a la izquierda */
body.app.shell .dash-t th{text-align:right;font:550 .74rem var(--f-sans);color:var(--f-tenue);letter-spacing:0;text-transform:none;
  background:linear-gradient(180deg,rgba(var(--e-tinta-sombra),.025),rgba(var(--e-tinta-sombra),.045));border-bottom:1px solid rgba(var(--e-tinta-sombra),.12)}
body.app.shell .dash-t :is(th,td):first-child,body.app.shell .dash-t :is(th,td).izq,body.app.shell .dash-t td.et{text-align:left}
body.app.shell .dash-t :is(td.v,td.num){text-align:right;font-family:"Inter",var(--f-sans);font-feature-settings:"tnum" 1,"cv11" 1;font-variant-numeric:tabular-nums}
body.app.shell .dash-t tr.sep td{font:600 .78rem var(--f-sans);letter-spacing:0;text-transform:none;color:var(--f-tinta-2);padding-top:20px}
body.app.shell .dash-t tr.total td{font-weight:650;color:var(--f-tinta)}
body.app.shell :is(.dash-scroll,.table-scroll){overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
/* desplegables con cheurón, sin caja: el resumen en el acento */
body.app.shell details.pliegue{border-top:1px solid rgba(var(--e-tinta-sombra),.08);padding:12px 0 0}
body.app.shell details.pliegue>summary{display:inline-flex;align-items:center;gap:8px;padding-right:22px;font:550 .86rem var(--f-sans);color:var(--f-acento)}
body.app.shell details.pliegue>summary:hover{color:#2c4a8e}
body.app.shell details.pliegue[open]>summary{margin-bottom:12px}
/* foco: siempre visible, también sobre los mandos con relieve */
body.app.shell :is(a,button,summary,[tabindex]):focus-visible{outline:2px solid var(--f-acento);outline-offset:2px;border-radius:6px}
body.app.shell .tabbar :is(a,button):focus-visible{outline-offset:-2px}
/* fuera restos: ningún eyebrow en mayúsculas ni filete dorado */
body.app.shell .eyebrow{display:block;margin:0 0 8px;font:600 .8rem var(--f-sans);letter-spacing:0;text-transform:none;color:var(--f-tenue)}
body.app.shell .eyebrow::before{content:none}
body.app.shell .eyebrow i{font-style:normal;color:var(--f-tenue)}
body.app.shell .seccion-cab .enlace-mas+.enlace-mas{margin-left:14px}
body.app.shell .cifras-3{grid-template-columns:repeat(3,minmax(0,1fr))}
body.app.shell .cifra b.neg{color:var(--f-ko)}

/* ---------------------------------------------------------------- Análisis: el balance como objeto */
/* las dos columnas del balance de situación sobre una hoja (como el cheque de Bancos y el documento sellado de Impuestos):
   cada masa con su alto real, en la paleta tonal (azules para el activo, petróleo para lo propio, arena para lo que se debe) */
.balance-obj{--bo-alto:208px;position:relative;z-index:1;justify-self:end;width:100%;max-width:340px;margin:6px 14px 6px 0;padding:18px 20px 34px;
  border-radius:6px;background:linear-gradient(180deg,#fff,#f4f5f8);transform:rotate(-1.4deg);
  box-shadow:inset 0 1px 0 #fff,0 0 0 1px rgba(20,28,42,.06),0 3px 6px -2px rgba(20,28,42,.16),0 26px 44px -20px rgba(20,28,42,.45)}
.balance-obj::before{content:"";position:absolute;inset:7px -7px -7px 7px;z-index:-1;border-radius:6px;background:linear-gradient(180deg,#f7f8fa,#e8ebf0);
  transform:rotate(3deg);box-shadow:0 0 0 1px rgba(20,28,42,.05),0 14px 28px -16px rgba(20,28,42,.4)}
.balance-obj figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding-bottom:10px;
  border-bottom:1px solid rgba(20,28,42,.1);font:600 .82rem var(--f-sans);color:var(--f-tinta)}
.balance-obj figcaption span{font:500 .76rem var(--f-sans);color:var(--f-tenue);font-variant-numeric:lining-nums proportional-nums}
.bo-s em{font-variant-numeric:lining-nums proportional-nums!important}
.bo-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px;height:var(--bo-alto);margin-top:14px}
.bo-col{position:relative;display:flex;flex-direction:column-reverse;gap:2px;height:100%;
  box-shadow:0 1px 0 rgba(20,28,42,.18)}
.bo-col>small{position:absolute;left:0;right:0;bottom:-22px;text-align:center;font:550 .7rem var(--f-sans);color:var(--f-suave);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.bo-s{display:flex;flex-direction:column;justify-content:center;min-height:0;height:var(--h);padding:0 10px;border-radius:3px;overflow:hidden;
  font-style:normal;box-shadow:inset 0 1px 0 rgba(255,255,255,.35),inset 0 -1px 0 rgba(20,28,42,.08);
  transform-origin:50% 100%;animation:bo-crece .75s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i,0) * 110ms + .25s)}
.bo-s b{font:600 .72rem/1.2 var(--f-sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bo-s em{font:500 .7rem/1.2 var(--f-sans);font-style:normal;opacity:.9;font-variant-numeric:tabular-nums}
.bo-bajo b,.bo-bajo em{display:none}
.bo-anc{background:linear-gradient(180deg,#b1bfd7,#98a9c7);color:#1c2333}
.bo-ac{background:linear-gradient(180deg,#5372b0,#3b5690);color:#fff}
.bo-pn{background:linear-gradient(180deg,#3d7e9b,#2d6b8a);color:#fff}
.bo-pnc{background:linear-gradient(180deg,#ead5a8,#ddc189);color:#2a1f0c}
.bo-pc{background:linear-gradient(180deg,#d8aa66,#c98f45);color:#24180a}
.bo-hueco{background:repeating-linear-gradient(135deg,rgba(20,28,42,.05) 0 6px,transparent 6px 12px);box-shadow:inset 0 0 0 1px rgba(20,28,42,.08);animation:none}
.bo-nota{margin:30px 0 -16px;font:600 .74rem var(--f-sans);color:var(--f-ko)}
@keyframes bo-crece{from{transform:scaleY(0);opacity:0}}
.balance-obj:hover{transform:rotate(-.4deg) translateY(-3px);transition:transform .45s cubic-bezier(.2,.8,.2,1)}
@media (prefers-reduced-motion:reduce){.bo-s{animation:none}.balance-obj,.balance-obj:hover{transform:none}}
@media (max-width:860px){.balance-obj{justify-self:center;margin:10px auto 8px;max-width:320px;transform:rotate(-1deg)}}
/* la película de la probabilidad de impago, en un pozo (instrumento hundido) */
body.app.shell .analisis-portada h2{max-width:30ch}
body.app.shell .analisis-portada{align-items:start}
body.app.shell .pelicula-pd{margin:0;padding:8px 14px 2px;border-radius:14px;background:linear-gradient(180deg,var(--e-pozo-1),var(--e-pozo-2));box-shadow:var(--e-pozo)}
/* estados financieros: los totales marcan la estructura; el año anterior y la variación, en segundo plano */
body.app.shell .estados-t td.ant{color:var(--f-suave)}
body.app.shell .estados-t td.var{color:var(--f-tenue);font-size:.78rem}
body.app.shell .estados-t tr.total td{border-top:1px solid rgba(var(--e-tinta-sombra),.14)}
body.app.shell .estados-t tr.total td.et{font-weight:650;color:var(--f-tinta)}
/* Circular 6/2016: la categoría y sus tres bloques en una fila de cifras, sin ficha */
body.app.shell .circular-fila{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));column-gap:28px}
body.app.shell .circular-fila>div{display:flex;flex-direction:column;gap:3px;padding:12px 2px 14px;border-top:1px solid rgba(var(--e-tinta-sombra),.09);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85)}
body.app.shell .circular-fila span{font:550 .76rem var(--f-sans);color:var(--f-tenue)}
body.app.shell .circular-fila b{font:600 1.15rem/1.25 var(--f-sans);color:var(--f-tinta)}
body.app.shell .circular-fila b small{font-size:.8rem;color:var(--f-tenue);font-weight:500}
body.app.shell .circular-cat b{font-size:1.25rem}
body.app.shell .circular-barra{display:block;height:6px;margin-top:6px;border-radius:6px;overflow:hidden;background:linear-gradient(180deg,var(--e-pozo-1),var(--e-pozo-2));box-shadow:var(--e-pozo)}
body.app.shell .circular-barra>i{display:block;height:100%;border-radius:inherit;background:linear-gradient(180deg,#5d7cba,#3b5690);transform-origin:left;
  animation:a-ancho .9s var(--ease) .3s both}
body.app.shell .flujo-cifras{margin:0 0 6px}
@media (max-width:640px){
  /* en el móvil, las tres cifras en una fila compacta (no tres bloques apilados) */
  body.app.shell .cifras-3{grid-template-columns:repeat(3,minmax(0,1fr))}
  body.app.shell .cifras-3 .cifra{padding:12px 8px 0 0;margin-right:8px}
  body.app.shell .cifras-3 .cifra>span{font-size:.72rem;line-height:1.3;min-height:2.6em}
  body.app.shell .cifras-3 .cifra b{font-size:1.3rem}
  body.app.shell .cifras-3 .cifra b small{font-size:.72rem}
  body.app.shell .cifras-3 .cifra>small{font-size:.68rem;line-height:1.35}
  body.app.shell .seccion-cab .enlace-mas+.enlace-mas{margin-left:0}
  /* el índice de la página se desliza: un velo a la derecha avisa de que hay más */
  body.app.shell .anclas{-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);mask-image:linear-gradient(90deg,#000 85%,transparent)}
}

/* ---------------------------------------------------------------- portadas: la misma frase en todas las pantallas */
body.app.shell :is(.portada,.plan-cabina,.nivel,.bienvenida) h2{font:600 clamp(1.35rem,2vw,1.7rem)/1.25 var(--f-sans);letter-spacing:-.015em;color:var(--f-tinta);margin:0}
body.app.shell .portada-linea{margin:0 0 12px}
/* subidas: la zona única y los selectores de fichero de los formularios, en español y con foco visible */
body.app.shell .dropzona{gap:20px 28px}
body.app.shell .dropzona h3{margin:0;font:600 1.02rem/1.3 var(--f-sans);color:var(--f-tinta)}
body.app.shell .dropzona p.fine{margin:6px 0 0}
body.app.shell .dropzona-caja{background:linear-gradient(180deg,var(--e-pozo-1),var(--e-pozo-2));box-shadow:var(--e-pozo);color:var(--f-suave)}
body.app.shell .dropzona-caja::before{border-color:rgba(var(--e-tinta-sombra),.22)}
body.app.shell .dropzona-caja .dz-ico{color:var(--f-acento)}
body.app.shell .dropzona-caja:focus-within{box-shadow:var(--e-pozo),0 0 0 2px var(--f-acento)}
body.app.shell .dropzona-caja.con-ficheros{color:var(--f-ok)}
body.app.shell .subida-caja.fichero{flex:1 1 280px;flex-direction:row;justify-content:flex-start;min-height:50px;padding:10px 16px;text-align:left;font-size:.86rem}
body.app.shell .subida-caja.fichero::before{inset:5px}
body.app.shell .subida-caja.fichero span{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
body.app.shell .subida-caja.fichero:hover{transform:none}
/* Mi expediente: portada con el anillo, grupos con su medidor, otras vías y la biblioteca */
body.app.shell .nivel{padding:4px 0 8px}
body.app.shell .nivel .portada-entradilla{margin-top:10px}
body.app.shell .nivel-pasos b{font-weight:600}
.medidor{display:inline-flex;gap:3px;margin-right:8px;vertical-align:1px}
.medidor i{width:16px;height:6px;border-radius:3px;background:linear-gradient(180deg,var(--e-pozo-1),var(--e-pozo-2));box-shadow:inset 0 1px 1px rgba(20,28,42,.12)}
.medidor i.m-ok{background:linear-gradient(180deg,#3d7e9b,#2d6b8a);box-shadow:inset 0 1px 0 rgba(255,255,255,.3)}
.medidor i.m-warn{background:linear-gradient(180deg,#cf9d4c,#b07a2a)}
.medidor i.m-ko{background:linear-gradient(180deg,#bf6556,#a8493c)}
body.app.shell .docs-cuenta{display:inline-flex;align-items:center;font-variant-numeric:lining-nums proportional-nums}
body.app.shell .docs-grupos{display:flex;flex-direction:column;gap:var(--ritmo)}
body.app.shell .docs{border-top-color:rgba(var(--e-tinta-sombra),.12)}
body.app.shell .doc{border-bottom-color:rgba(var(--e-tinta-sombra),.07)}
body.app.shell .doc summary{padding:12px 8px}
body.app.shell .doc details[open] summary{background:rgba(255,255,255,.55)}
body.app.shell .doc-subir label{position:relative}
body.app.shell .vias-subida{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
body.app.shell .vias-subida details.otra-via{margin:0;width:100%}
body.app.shell .vias-subida .enlace-mas{margin-top:2px}
body.app.shell details.otra-via>form{margin-top:10px;max-width:880px}
body.app.shell .expres .row-send{align-items:flex-end}
body.app.shell .puntuales{list-style:none;margin:0;padding:0;border-top:1px solid rgba(var(--e-tinta-sombra),.1)}
body.app.shell .puntuales>li{border-bottom:1px solid rgba(var(--e-tinta-sombra),.07)}
body.app.shell .pliegue-fila>summary{display:flex;align-items:center;justify-content:space-between;gap:8px 18px;flex-wrap:wrap;padding:12px 30px 12px 8px}
body.app.shell .pliegue-fila>summary::after{top:50%;margin-top:-6px}
body.app.shell .pliegue-fila>summary:hover{background:rgba(255,255,255,.55)}
body.app.shell .pliegue-fila[open]>summary{background:rgba(255,255,255,.55)}
body.app.shell .pliegue-fila>.row2{padding:6px 8px 18px}
.pt-quien,.pt-nota{display:flex;flex-direction:column;gap:2px;min-width:0}
.pt-quien b{font:600 .92rem var(--f-sans);color:var(--f-tinta)}
.pt-quien small,.pt-nota small{font:450 .78rem var(--f-sans);color:var(--f-tenue)}
.pt-nota{align-items:flex-end;text-align:right}
.pt-nota b{font:650 .9rem var(--f-sans)}
body.app.shell .docs-t td.fichero-nombre{color:var(--f-suave);font-size:.8rem;overflow-wrap:anywhere;white-space:normal}
body.app.shell .doc-abrir{display:inline-flex;align-items:center;gap:6px;font:550 .82rem var(--f-sans);text-decoration:none;white-space:nowrap}
body.app.shell .doc-abrir:hover{text-decoration:underline}
body.app.shell .docs-otro{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 16px;margin-top:6px}
body.app.shell .docs-tipo{display:flex;flex-direction:column;gap:6px;min-width:150px}
body.app.shell .app-contenido>:is(.dropzona,.docs-grupos,.seccion)+:is(.docs-grupos,.seccion){
  padding-top:calc(var(--ritmo) - 6px);border-top:1px solid rgba(var(--e-tinta-sombra),.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
body.app.shell .docs-grupos>.seccion+.seccion{padding-top:calc(var(--ritmo) - 6px);border-top:1px solid rgba(var(--e-tinta-sombra),.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
@container contenido (max-width:760px){
  /* los tres niveles, en una fila compacta también en el móvil */
  body.app.shell .nivel-pasos{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
  body.app.shell .nivel-pasos::before{display:block;left:16px;right:16px}
  body.app.shell .nivel-pasos small{display:none}
  body.app.shell .nivel-pasos b{font-size:.78rem;line-height:1.3}
  body.app.shell .nivel-punto{width:30px;height:30px;margin-bottom:4px}
}
@media (max-width:640px){
  body.app.shell .dropzona p.fine{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  body.app.shell .pt-nota{align-items:flex-start;text-align:left}
  body.app.shell .docs-otro>*,body.app.shell .docs-otro .btn{width:100%}
  body.app.shell .docs-t .th-fichero,body.app.shell .docs-t td.fichero-nombre{display:none}
}

/* ---------------------------------------------------------------- Mesa: la regla de precios y las entidades en columnas */
/* todo lo que se compara en la misma escala: tu precio objetivo (banda petróleo), la TAE de mercado y lo que pagas hoy
   (líneas), y cada oferta por su coste efectivo (un mando con el nombre de la entidad; la mejor, en petróleo) */
.regla-precios{margin:2px 0 0;padding:0 6px}
.rp-pista{position:relative;height:12px;margin:46px 0 46px;border-radius:999px;background:linear-gradient(180deg,var(--e-pozo-1),var(--e-pozo-2));box-shadow:var(--e-pozo)}
.regla-precios.rp-sin .rp-pista{margin:18px 0 16px}
.rp-objetivo{position:absolute;top:-3px;bottom:-3px;left:var(--a);width:calc(var(--b) - var(--a));border-radius:999px;
  background:linear-gradient(180deg,rgba(61,126,155,.32),rgba(45,107,138,.42));box-shadow:inset 0 0 0 1px rgba(45,107,138,.45);
  transform-origin:left;animation:a-ancho .9s cubic-bezier(.2,.8,.2,1) .2s both}
.rp-linea{position:absolute;top:-10px;bottom:-10px;left:var(--x);width:2px;margin-left:-1px;border-radius:2px}
.rp-tae{background:#323b4e}
.rp-hoy{background:#a8493c}
:is(.rp-objetivo,.rp-linea)>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.rp-of{position:absolute;left:var(--x);top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;
  background:radial-gradient(circle at 38% 30%,#fff,#e6eaf0 70%);box-shadow:0 0 0 2px #3b5690,0 3px 6px rgba(20,28,42,.3);
  animation:rp-llega .8s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i) * 90ms + .35s)}
.rp-of>b,.rp-of>em{position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap;font-style:normal}
.rp-of>b{bottom:calc(100% + 18px);font:600 .74rem var(--f-sans);color:var(--f-tinta)}
.rp-of>em{bottom:calc(100% + 4px);font:500 .72rem var(--f-sans);color:var(--f-suave);font-variant-numeric:lining-nums proportional-nums}
.rp-of.rp-abajo>b{bottom:auto;top:calc(100% + 4px)}
.rp-of.rp-abajo>em{bottom:auto;top:calc(100% + 18px)}
.rp-of.rp-mejor{background:radial-gradient(circle at 38% 30%,#5f9ab6,#2d6b8a 70%);box-shadow:0 0 0 2px #fff,0 0 0 4px #2d6b8a,0 4px 8px rgba(20,28,42,.32)}
.rp-of.rp-mejor>b,.rp-of.rp-mejor>em{color:#245a75;font-weight:650}
@keyframes rp-llega{from{left:0;opacity:0}}
.regla-precios figcaption{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:6px 12px;font:500 .74rem var(--f-sans);color:var(--f-tenue)}
.rp-ext:last-child{grid-column:3;grid-row:1;text-align:right}
.rp-ext{font-variant-numeric:lining-nums proportional-nums;white-space:nowrap}
.rp-ley{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 16px}
.rp-ley>span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.rp-ley i{display:inline-block;flex:none}
.rp-ley .l-obj{width:16px;height:8px;border-radius:4px;background:rgba(45,107,138,.4);box-shadow:inset 0 0 0 1px rgba(45,107,138,.5)}
.rp-ley .l-tae{width:2px;height:12px;background:#323b4e}
.rp-ley .l-hoy{width:2px;height:12px;background:#a8493c}
.rp-ley .l-of{width:10px;height:10px;border-radius:50%;background:#fff;box-shadow:0 0 0 2px #3b5690}
@media (prefers-reduced-motion:reduce){.rp-of,.rp-objetivo{animation:none}}
/* las entidades: columnas abiertas con el nombre, su estado como texto con punto y la oferta como cifra grande */
body.app.shell .mesa-gestiones{gap:22px 0;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
body.app.shell .mesa-g{gap:8px;padding:2px 22px 4px!important}
body.app.shell .mesa-g header b{font:600 1.04rem var(--f-sans);color:var(--f-tinta)}
body.app.shell .mesa-g header small{font:600 .72rem var(--f-sans);letter-spacing:0;color:var(--f-tenue)}
body.app.shell .mesa-estado{display:inline-flex;align-items:center;gap:6px;margin-left:auto;padding:0;border-radius:0;background:none!important;
  font:600 .76rem var(--f-sans);color:var(--f-suave)}
body.app.shell .mesa-estado::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.85}
body.app.shell .estado-oferta .mesa-estado,body.app.shell .estado-contraoferta .mesa-estado{color:var(--f-acento)}
body.app.shell .estado-firmado .mesa-estado,body.app.shell .estado-firmado_parcial .mesa-estado{color:#2d6b8a}
body.app.shell .estado-denegado .mesa-estado{color:#a8493c}
body.app.shell .mesa-fecha{margin:0;font:450 .8rem var(--f-sans);color:var(--f-tenue)}
body.app.shell .mesa-sin{margin:2px 0;font:500 .86rem var(--f-sans);color:var(--f-tenue)}
body.app.shell .mesa-oferta{padding:12px 0 6px;border-top:1px solid rgba(var(--e-tinta-sombra),.08)}
body.app.shell .mesa-oferta.mesa-mejor{margin:0 -22px 0 -23px;padding:12px 22px 8px;background:linear-gradient(90deg,rgba(45,107,138,.09),transparent 75%);box-shadow:inset 2px 0 0 #2d6b8a}
body.app.shell .mesa-of-cifras{gap:2px 14px}
body.app.shell .mesa-of-cifras b{font:600 1.75rem/1 var(--f-sans);letter-spacing:-.02em;color:var(--f-tinta);font-variant-numeric:lining-nums proportional-nums}
body.app.shell .mesa-of-cifras span{font:500 .84rem var(--f-sans);color:var(--f-suave)}
body.app.shell .mesa-of-cifras strong{font-weight:650;color:var(--f-tinta-2)}
body.app.shell .mesa-of-linea{margin:6px 0 0;font:450 .82rem var(--f-sans);color:var(--f-suave)}
body.app.shell .mesa-lecturas{list-style:none;margin:8px 0 2px;padding:0;display:flex;flex-direction:column;gap:3px}
body.app.shell .mesa-lecturas li{position:relative;padding-left:14px;font:500 .78rem/1.4 var(--f-sans);color:var(--f-suave)}
body.app.shell .mesa-lecturas li::before{content:"";position:absolute;left:1px;top:.5em;width:6px;height:6px;border-radius:50%;background:rgba(var(--e-tinta-sombra),.3)}
body.app.shell .mesa-lecturas li.lec-ok{color:#245a75}body.app.shell .mesa-lecturas li.lec-ok::before{background:#2d6b8a}
body.app.shell .mesa-lecturas li.lec-warn{color:#8a5c18}body.app.shell .mesa-lecturas li.lec-warn::before{background:#b07a2a}
body.app.shell .mesa-lecturas .ico{vertical-align:-2px}
body.app.shell .mesa-lecturas:empty{display:none}
body.app.shell :is(details.mesa-registrar,details.mesa-aceptar,details.mesa-apetito){margin:4px 0 0;padding:9px 0 0;border:0;border-top:1px solid rgba(var(--e-tinta-sombra),.07)}
body.app.shell details.mesa-apetito>summary{font:550 .82rem var(--f-sans);color:var(--f-suave)}
body.app.shell details.mesa-apetito[open]>summary{color:var(--f-tinta-2)}
body.app.shell details.mesa-apetito p{margin:8px 0 2px}
body.app.shell :is(.mesa-registrar,.mesa-aceptar)>summary{font:550 .84rem var(--f-sans);color:var(--f-acento)}
body.app.shell :is(.mesa-registrar,.mesa-aceptar) form{margin-top:10px}
body.app.shell .mesa-estados{gap:8px;padding-top:10px;margin-top:4px;border-top:1px solid rgba(var(--e-tinta-sombra),.07)}
body.app.shell .mesa-estados .btn{min-height:32px;padding:5px 12px;font-size:.8rem}
body.app.shell .mesa-ahorro{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:0;font:450 .84rem var(--f-sans);color:var(--f-suave);max-width:var(--ancho-lectura)}
body.app.shell .mesa-ahorro .estado{font-size:.95rem}
/* nueva operación: la bandeja de mandos y, al lado, a quién presentarla (cada entidad, plegada) */
body.app.shell .mesa-nueva{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);gap:20px 36px;align-items:start}
body.app.shell .mesa-sugeridas h4{margin:4px 0 10px}
body.app.shell .sugeridas{list-style:none;margin:0;padding:0;border-top:1px solid rgba(var(--e-tinta-sombra),.1)}
body.app.shell .sugeridas>li{border-bottom:1px solid rgba(var(--e-tinta-sombra),.07)}
body.app.shell .sugeridas summary{display:flex;flex-direction:column;gap:2px;padding:10px 26px 10px 2px}
body.app.shell .sugeridas summary::after{top:16px}
body.app.shell .sugeridas summary b{font:600 .9rem var(--f-sans);color:var(--f-tinta)}
body.app.shell .sugeridas summary small{font:450 .78rem/1.4 var(--f-sans);color:var(--f-suave)}
body.app.shell .sugeridas details p{margin:0 0 12px}
@media (max-width:1000px){body.app.shell .mesa-nueva{grid-template-columns:1fr}}
@media (max-width:640px){
  body.app.shell .mesa-g{padding:2px 0 4px 14px!important}
  body.app.shell .mesa-oferta.mesa-mejor{margin:0 0 0 -15px;padding:12px 0 8px 14px}
  body.app.shell .rp-of>b{font-size:.68rem}
  body.app.shell .rp-ley{grid-column:1 / -1;grid-row:2;justify-content:flex-start}
}

/* ---------------------------------------------------------------- Rating: el dial físico en la portada; bloques junto a las variables */
body.app.shell .rating-portada{grid-template-columns:minmax(0,1fr) minmax(280px,360px)}
.rating-dial{margin:0;display:flex;flex-direction:column;align-items:center;gap:10px;justify-self:center}
.rating-dial svg{display:block;width:100%;max-width:340px;height:auto;filter:drop-shadow(0 18px 22px rgba(20,28,42,.22)) drop-shadow(0 4px 6px rgba(20,28,42,.12))}
.rating-dial figcaption{font:500 .76rem var(--f-sans);color:var(--f-tenue);text-align:center}
/* el radar de los cinco bloques encabeza fortalezas, penalizaciones y palancas */
body.app.shell .sc-tres.sc-con-radar{grid-template-columns:minmax(240px,300px) repeat(3,minmax(0,1fr));gap:26px 34px;align-items:start}
body.app.shell .sc-con-radar .rating-radar{margin-top:-6px}
body.app.shell .sc-con-radar .rating-radar svg{max-width:300px}
body.app.shell .estres-f b{font-variant-numeric:lining-nums proportional-nums}
body.app.shell .sector-primera{margin:0;font-size:.92rem;line-height:1.6;color:var(--f-tinta-2)}
body.app.shell .ops-notas.notas-2{grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:10px 34px}
body.app.shell .ops-notas li{font-size:.86rem;line-height:1.55}
@media (max-width:1200px){body.app.shell .sc-tres.sc-con-radar{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){body.app.shell .sc-tres.sc-con-radar{grid-template-columns:1fr}body.app.shell .sc-con-radar .rating-radar svg{max-width:280px}
  /* las cuatro cifras de una portada, en 2 × 2 (no cuatro bloques apilados) */
  body.app.shell .cifras-4{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px}
  body.app.shell .cifras-4 .cifra{padding:12px 0;margin:0;border-right:0}
  body.app.shell .cifras-4 .cifra b{font-size:1.45rem}}
@media (max-width:860px){body.app.shell .rating-portada{grid-template-columns:1fr}.rating-dial{order:-1}.rating-dial svg{max-width:280px}}

/* ---------------------------------------------------------------- Avisos: el informe del mes como una hoja que se descarga */
body.app.shell .avisos-portada{grid-template-columns:minmax(0,1fr) minmax(220px,280px)}
.hoja-informe{position:relative;z-index:1;justify-self:end;display:flex;flex-direction:column;gap:6px;width:100%;max-width:250px;aspect-ratio:.76;
  margin:8px 26px 8px 0;padding:22px 22px 18px;border-radius:5px;text-decoration:none;color:var(--f-tinta);
  background:linear-gradient(180deg,#fff,#f5f6f8);transform:rotate(1.8deg);transition:transform .45s cubic-bezier(.2,.8,.2,1);
  box-shadow:inset 0 1px 0 #fff,0 0 0 1px rgba(20,28,42,.06),0 3px 6px -2px rgba(20,28,42,.16),0 22px 40px -18px rgba(20,28,42,.45)}
.hoja-informe::before,.hoja-informe::after{content:"";position:absolute;z-index:-1;border-radius:5px;background:linear-gradient(180deg,#f7f8fa,#e8ebf0);
  box-shadow:0 0 0 1px rgba(20,28,42,.05),0 14px 28px -16px rgba(20,28,42,.4)}
.hoja-informe::before{inset:6px -6px -6px 6px;transform:rotate(-3.2deg)}
.hoja-informe::after{inset:12px -12px -12px 12px;transform:rotate(-6deg);opacity:.7}
.hoja-informe:hover{transform:rotate(.4deg) translateY(-4px)}
.hi-marca{font:600 .58rem var(--f-sans);letter-spacing:.24em;color:#7d8596}
.hi-tit{margin-top:14px;font:500 .78rem var(--f-sans);color:var(--f-suave)}
.hi-mes{font:600 1.32rem/1.15 var(--f-sans);letter-spacing:-.01em;color:var(--f-tinta)}
.hi-emp{font:500 .74rem var(--f-sans);color:var(--f-tenue);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hi-renglones{flex:1;margin:12px 0 6px;opacity:.9;
  background:linear-gradient(90deg,rgba(20,28,42,.1) 0 70%,transparent 70%) 0 0/100% 5px no-repeat,
    linear-gradient(90deg,rgba(20,28,42,.07) 0 92%,transparent 92%) 0 16px/100% 4px no-repeat,
    linear-gradient(90deg,rgba(20,28,42,.07) 0 80%,transparent 80%) 0 28px/100% 4px no-repeat,
    linear-gradient(90deg,rgba(59,90,150,.28) 0 40%,rgba(45,107,138,.28) 40% 64%,rgba(176,122,42,.3) 64% 76%,transparent 76%) 0 48px/100% 22px no-repeat,
    linear-gradient(90deg,rgba(20,28,42,.07) 0 88%,transparent 88%) 0 82px/100% 4px no-repeat,
    linear-gradient(90deg,rgba(20,28,42,.07) 0 62%,transparent 62%) 0 94px/100% 4px no-repeat}
.hi-pdf{align-self:flex-end;display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:8px;font:600 .74rem var(--f-sans);color:var(--f-acento);
  background:linear-gradient(180deg,#fff,#eef1f5);box-shadow:inset 0 1px 0 #fff,0 0 0 1px rgba(20,28,42,.08),0 2px 4px rgba(20,28,42,.12)}
.hoja-informe:hover .hi-pdf{color:#2c4a8e}
@media (prefers-reduced-motion:reduce){.hoja-informe,.hoja-informe:hover{transform:none}}
@media (max-width:860px){body.app.shell .avisos-portada{grid-template-columns:1fr}.hoja-informe{justify-self:center;margin:6px auto 18px;max-width:210px}}
/* alertas: grupos con su recuento, sin cajas; la agenda como columna abierta */
body.app.shell .avisos-rejilla{gap:var(--ritmo) 40px}
body.app.shell .avisos-col{gap:var(--ritmo)}
body.app.shell .avisos-col>.seccion+.seccion{padding-top:calc(var(--ritmo) - 6px);border-top:1px solid rgba(var(--e-tinta-sombra),.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
body.app.shell .grupo-avisos{padding:0!important;background:none!important;box-shadow:none!important}
body.app.shell .grupo-avisos h4{display:flex;align-items:baseline;gap:8px;margin:6px 0 4px}
body.app.shell .grupo-avisos h4 small{font:500 .74rem var(--f-sans);color:var(--f-tenue)}
body.app.shell .aviso-items li{border-top-color:rgba(var(--e-tinta-sombra),.07)}
body.app.shell .aviso-items time{font-variant-numeric:lining-nums proportional-nums}
body.app.shell .feed a{align-items:center}
body.app.shell .feed a>div{flex:1;min-width:0}
body.app.shell .feed .feed-ir{color:var(--f-tenue);transition:transform .25s var(--ease),color .2s}
body.app.shell .feed a:hover .feed-ir{color:var(--f-acento);transform:translateX(3px)}
body.app.shell .informes-hist a{display:inline-flex;align-items:center;gap:6px}
body.app.shell .informe-mes{padding:0}
body.app.shell .avisos-pend{padding:0!important;background:none!important;box-shadow:none!important}
body.app.shell .filtros-avisos label span{white-space:nowrap}
@media (max-width:640px){
  body.app.shell .filtros-avisos{max-width:100%;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}
  body.app.shell .aviso-items li{grid-template-columns:10px minmax(0,1fr);row-gap:2px}
  body.app.shell .aviso-items time{grid-column:2}
  .hoja-informe{max-width:170px;padding:16px 16px 14px}
  .hi-mes{font-size:1.1rem}
}

/* ---------------------------------------------------------------- Mi cuenta: ajustes con índice fijo y filas de título + campos */
body.app.shell .ajustes{display:grid;grid-template-columns:200px minmax(0,1fr);gap:0 48px;align-items:start}
body.app.shell .ajustes-indice{position:sticky;top:96px;display:flex;flex-direction:column;gap:2px;padding:4px 0}
body.app.shell .ajustes-indice a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;text-decoration:none;
  font:550 .86rem var(--f-sans);color:var(--f-tinta-2);transition:background .2s,color .2s}
body.app.shell .ajustes-indice a .ico{color:var(--f-tenue)}
body.app.shell .ajustes-indice a:hover{background:rgba(255,255,255,.6);color:var(--f-acento)}
body.app.shell .ajustes-indice a:hover .ico{color:var(--f-acento)}
body.app.shell .ajustes-indice .indice-peligro{margin-top:8px;color:#8a3a2f}
body.app.shell .ajustes-cuerpo{display:flex;flex-direction:column;min-width:0}
body.app.shell .ajuste{display:grid;grid-template-columns:minmax(200px,280px) minmax(0,1fr);gap:14px 40px;padding:26px 0;scroll-margin-top:80px;
  border-top:1px solid rgba(var(--e-tinta-sombra),.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
body.app.shell .ajuste:first-child{padding-top:4px;border-top:0;box-shadow:none}
body.app.shell .ajuste-cab h3{margin:0 0 6px;font:600 1.02rem/1.3 var(--f-sans);color:var(--f-tinta)}
body.app.shell .ajuste-cab p{margin:0;font:450 .82rem/1.55 var(--f-sans);color:var(--f-suave)}
body.app.shell .ajuste .cuenta-form{padding:0;gap:14px;background:none;box-shadow:none}
body.app.shell .ajuste .campos-2,body.app.shell .ajuste .campos-3{gap:14px 18px}
body.app.shell .ajuste label{font:550 .8rem var(--f-sans);color:var(--f-tinta-2)}
body.app.shell .ajuste :is(.campos-2,.campos-3) label,body.app.shell .ajuste .campo-ancho{gap:6px}
body.app.shell .ajuste .campo-ancho{width:100%}
body.app.shell .clave-estado{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0;font-size:.86rem;color:var(--f-suave)}
body.app.shell code.clave,body.app.shell .clave-estado code{padding:3px 8px;border-radius:7px;font:500 .8rem ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--f-tinta);
  background:linear-gradient(180deg,var(--e-pozo-1),var(--e-pozo-2));box-shadow:var(--e-pozo)}
body.app.shell .conectar{padding:16px 0 0;border-radius:0;box-shadow:none;border-top:1px solid rgba(var(--e-tinta-sombra),.08)}
body.app.shell .conectar>b{display:inline-flex;align-items:center;gap:8px;font:600 .92rem var(--f-sans);color:var(--f-tinta)}
body.app.shell .ajuste details.pliegue{width:100%}
body.app.shell .zona-peligro .ajuste-cab h3{color:#8a3a2f}
body.app.shell .btn-peligro{color:#8a3a2f!important;box-shadow:inset 0 1px 0 #fff,0 0 0 1px rgba(168,73,60,.35),0 1px 2px rgba(20,28,42,.08)!important}
body.app.shell .btn-peligro:hover{background:linear-gradient(180deg,#fff,#fbeeec)!important}
body.app.shell .ajuste .cuenta-form>:is(.table-scroll,.conectar){width:100%}
body.app.shell .ajuste .dash-t td.et{white-space:normal;overflow-wrap:anywhere}
body.app.shell #contexto .campos-3{grid-template-columns:repeat(2,minmax(0,1fr))}
body.app.shell #contexto .campos-3 label:last-child{grid-column:1 / -1}
@media (max-width:1100px){body.app.shell .ajuste{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){body.app.shell #contexto .campos-3{grid-template-columns:1fr}}
@media (max-width:900px){
  body.app.shell .ajustes{grid-template-columns:minmax(0,1fr)}
  body.app.shell .ajustes-indice{position:static;flex-direction:row;overflow-x:auto;gap:2px;margin:0 0 6px;padding:0 0 2px;
    border-bottom:1px solid rgba(var(--e-tinta-sombra),.09);scrollbar-width:none}
  body.app.shell .ajustes-indice a{flex:none;border-radius:0;padding:10px 12px;box-shadow:inset 0 -2px 0 transparent}
  body.app.shell .ajustes-indice a .ico{display:none}
  body.app.shell .ajustes-indice .indice-peligro{margin-top:0}
}

/* ---------------------------------------------------------------- consultor: la cartera y la ficha con la portada común */
body.app.shell .portada.portada-sola{grid-template-columns:minmax(0,1fr)}
body.app.shell .portada-sola .cifras{max-width:1000px}
body.app.shell .cartera-portada{grid-template-columns:minmax(0,1fr) minmax(240px,320px)}
body.app.shell .panel-ficha{padding:0!important}
body.app.shell .ficha-cons{gap:var(--ritmo) 48px}
body.app.shell .ficha-cons>.panel-ficha:nth-child(n+3){padding-top:calc(var(--ritmo) - 6px)!important;border-top:1px solid rgba(var(--e-tinta-sombra),.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.9)!important}
body.app.shell .cartera-t td.et a{display:block;text-decoration:none}
body.app.shell .cartera-t td.et small{display:block;margin-top:2px;font-size:.76rem}
body.app.shell .cartera-t td small.tenue{display:block;font-size:.72rem}
@media (max-width:860px){body.app.shell .cartera-portada{grid-template-columns:1fr}}
body.app.shell .app-contenido>.ficha-cons+.panel-ficha{padding-top:calc(var(--ritmo) - 6px)!important;border-top:1px solid rgba(var(--e-tinta-sombra),.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.9)!important}

/* ---------------------------------------------------------------- consola: el mismo sistema (títulos, filetes, avisos, tablas) */
body.app.shell.admin .app-side .app-nav{padding:0;margin:0;max-width:none;overflow:visible}
body.app.shell.admin .app-cuerpo>.resultado{margin-top:0!important}
body.app.shell.admin .app-cuerpo>:is(.resultado,.rejilla-2,.kpi-grid)+:is(.resultado,.rejilla-2,.kpi-grid){margin-top:var(--ritmo)!important;padding-top:calc(var(--ritmo) - 6px);
  border-top:1px solid rgba(var(--e-tinta-sombra),.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
body.app.shell.admin .resultado>h3{font-size:1.02rem}
body.app.shell.admin .resultado>h3 .enlace-mas{margin:0 0 0 auto;font-size:.82rem}
body.app.shell.admin .resultado>h3.h3-sub{margin-top:26px}
body.app.shell.admin .resultado h4{margin:16px 0 6px;font:600 .9rem var(--f-sans);color:var(--f-tinta)}
body.app.shell.admin .admin-msg{margin:0 0 18px}
body.app.shell.admin .admin-msg p{margin:0;font-size:.88rem}
body.app.shell .franja-ok{background:rgba(45,107,138,.09);color:#245a75;box-shadow:inset 3px 0 0 #2d6b8a}
body.app.shell .franja-ok p{color:var(--f-tinta-2)}
body.app.shell.admin .admin-descarga{margin:0 0 10px}
body.app.shell.admin .admin-ko{color:var(--f-ko)}
body.app.shell.admin .admin-pct{width:58px}
body.app.shell.admin .dash-t td :is(select,input){padding:5px 8px;font-size:.8rem}
body.app.shell.admin .dash-t td form{display:inline-flex!important;align-items:center;gap:6px;flex-wrap:nowrap}
body.app.shell.admin .dash-t td.et{white-space:normal;overflow-wrap:break-word;min-width:150px}
body.app.shell.admin .dash-t td.et:first-child{min-width:220px}
body.app.shell.admin .dash-t td.fine:not(.v){white-space:normal;min-width:120px}
/* fechas y textos en columnas de cifras: con las cifras tabulares de Inter el guion salía ancho («2026 - 10 - 08») */
body.app.shell .dash-t td.v.fine,body.app.shell .dash-t td.fine{font-family:var(--f-sans);font-feature-settings:normal;font-variant-numeric:lining-nums proportional-nums}
body.app.shell .dash-t th::first-letter{text-transform:uppercase}
body.app.shell .dash-t td.izq{text-align:left}
body.app.shell.admin .rejilla-2>.resultado{margin-top:0!important}

/* ---------------------------------------------------------------- contraste AA en los textos de estado y fuera mayúsculas espaciadas */
body.app.shell .banda-C{color:#8d5f1c!important}
body.app.shell .lic-fin.lic-urgente{color:#8d5f1c}
body.app.shell :is(.lecturas-perfil h4,.lic-fin){text-transform:none;letter-spacing:0}
body.app.shell .lecturas-perfil h4{font-size:.86rem;color:var(--f-tinta-2)}
body.app.shell.admin .admin-sub{color:rgba(26,34,51,.82)}
/* móvil: ninguna columna crece por el contenido que no parte (filtros que se deslizan, tablas con nombres largos) */
@media (max-width:1000px){body.app.shell .avisos-rejilla{grid-template-columns:minmax(0,1fr)}}
body.app.shell :is(.avisos-col,.ajustes-cuerpo,.ajuste>*){min-width:0}
@media (max-width:640px){
  body.app.shell.admin .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.app.shell.admin .kpi{padding:12px 12px}
  body.app.shell.admin .kpi-v{font-size:1.4rem}
  /* la primera celda de la cabecera, con el mismo tono que el resto de la cabecera */
  body.app.shell .dash-t th:first-child{background:linear-gradient(180deg,#e9ebef,#e6e9ee)}
}
/* garantías (Bancos): sin el verde salvia ni el rojo saturado de la capa anterior; ladrillo para el aval personal y
   petróleo para lo que no compromete a los socios */
body.app.shell .gt-personal{--c:#a8493c}body.app.shell .gt-ninguna{--c:#2d6b8a}body.app.shell .gt-sgr{--c:#3b5690}
body.app.shell .gt-publica{--c:#5d7cba}body.app.shell .gt-hipotecaria{--c:#5d6b82}
/* la vista completa heredada («Ver todo») usa variables de la hoja antigua en estilos en línea: con la paleta tonal
   (antes caían en su respaldo verde) */
body.app.shell{--acento:#3b5a96;--oro:#b07a2a;--linea:rgba(28,35,51,.1)}
/* marcas de estado en los bloques heredados (antes, emojis ✅ ⚠️ 🔴 ℹ️): un punto del color tonal del estado */
:is(.punto-ok,.punto-warn,.punto-ko,.punto-info){display:inline-block;width:8px;height:8px;margin:0 6px 1px 0;border-radius:50%;vertical-align:middle}
.punto-ok{background:#2d6b8a}.punto-warn{background:#b07a2a}.punto-ko{background:#a8493c}.punto-info{background:#8aa3d6}

/* =====================================================================================================================
   13-OCT · INICIO, PLAN, BANCOS, TESORERÍA, IMPUESTOS Y VIGILANCIA AL NIVEL DE MESA, RATING Y ANÁLISIS. La misma gramática:
   portada (estado, frase, entradilla, cifras con su instrumento, acciones y un objeto físico a la derecha) y, debajo, secciones
   con título corto y explicación en gris, separadas por un filete; lo esencial a la vista y el detalle en desplegables.
   ===================================================================================================================== */

/* ---------------------------------------------------------------- Inicio: la frase, las cuatro cifras y el dial como objeto */
body.app.shell .inicio-portada{grid-template-columns:minmax(0,1fr) minmax(280px,340px);align-items:start}
body.app.shell .inicio-portada h2{max-width:26ch}
body.app.shell .inicio-portada .cab-provisional{display:inline-flex;align-items:flex-start;gap:8px;margin:12px 0 0;max-width:var(--ancho-lectura);
  font:550 .82rem/1.45 var(--f-sans);color:var(--f-warn);text-decoration:none}
body.app.shell .inicio-portada .cab-provisional .ico{flex:none;margin-top:2px}
body.app.shell .inicio-portada .cab-provisional:hover{text-decoration:underline;text-underline-offset:3px}
/* las cuatro cifras: una hoja de instrumentos de 2 × 2 con filetes, alineada con el texto (sin fichas) */
body.app.shell .inicio-cifras{margin-top:22px;border-top:1px solid var(--f-linea-2)}
body.app.shell .inicio-cifras .metrica{padding:18px 24px 18px 0}
body.app.shell .inicio-cifras .metrica:nth-child(even){padding:18px 0 18px 24px}
body.app.shell .inicio-cifras .m-v{font-size:1.95rem}
body.app.shell .inicio-cifras .m-pie{line-height:1.45}
/* el dial: el objeto de la portada, con banda, grado e impago debajo como en la esfera de un instrumento */
body.app.shell .inicio-dial{grid-area:auto;position:relative;display:flex;flex-direction:column;gap:12px;margin:0;padding:6px 0 0;align-self:center}
body.app.shell .inicio-dial .cab-gauge svg.g-dial{max-width:320px}
body.app.shell .inicio-dial .cab-nota-pie{padding-top:12px}
body.app.shell .inicio-dial figcaption{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
body.app.shell .inicio-dial .cab-mas{margin:0}
body.app.shell .inicio-dial .cab-sello{right:-4px;top:-12px}
/* el siguiente paso: una banda tonal con el texto, la acción y el expediente (antes se partía en dos filas) */
body.app.shell .app-contenido>.cab-paso{margin-top:0}
body.app.shell .cab-paso .cp-texto{display:flex;flex-direction:column;gap:3px;min-width:0}
body.app.shell .cab-paso .cp-texto p{margin:0}
body.app.shell .cab-paso .paso-titulo{font:600 1rem/1.4 var(--f-sans)}
body.app.shell .cab-paso .m-et{white-space:nowrap}
.cp-anillo{position:relative;display:grid;place-items:center;flex:none;width:40px;height:40px}
.cp-anillo svg.anillo{position:absolute;inset:0}
.cp-anillo>.ico{position:relative;color:var(--f-acento)}
body.app.shell .cab-paso .paso-exp b{font-weight:600}
/* las filas de abajo: sin margen propio (el ritmo lo da la lámina), con su filete */
body.app.shell .app-contenido>.widgets{margin-top:0}
body.app.shell .widgets-3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));border-top:1px solid rgba(var(--e-tinta-sombra),.08);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
body.app.shell .app-contenido>.widgets+.widgets-3{margin-top:calc(var(--ritmo) * -1)}
body.app.shell .widgets .w-cab .tenue{font-size:.8rem}
body.app.shell .w-negocio .w-cab{flex-wrap:wrap}
body.app.shell .feed a .feed-ir{flex:none;margin-left:auto;align-self:center}
/* tu negocio: cinco indicadores en una fila, cada uno con su variación y su tendencia */
.negocio-kpis{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}
.negocio-kpis li{display:flex;flex-direction:column;gap:3px;min-width:0;padding:4px 20px 2px;border-left:1px solid rgba(var(--e-tinta-sombra),.08)}
.negocio-kpis li:first-child{padding-left:0;border-left:0}
.nk-et{font:550 .8rem var(--f-sans);color:var(--f-tenue)}
.negocio-kpis b{font:600 1.45rem/1.15 var(--f-sans);letter-spacing:-.015em;color:var(--f-tinta);font-variant-numeric:lining-nums proportional-nums;
  text-shadow:0 1px 0 rgba(255,255,255,.9)}
.negocio-kpis b small{font:500 .78rem var(--f-sans);color:var(--f-tenue)}
.negocio-kpis em{font:550 .76rem var(--f-sans);font-style:normal;color:var(--f-tenue);font-variant-numeric:lining-nums proportional-nums}
.negocio-kpis em.kpi-verde{color:#2d6b8a}.negocio-kpis em.kpi-rojo{color:var(--f-ko)}
.negocio-kpis i{display:block;margin-top:4px;max-width:150px}
.negocio-kpis i svg{display:block;width:100%!important;height:auto!important;max-height:30px}
@container contenido (max-width:900px){
  body.app.shell .inicio-portada{grid-template-columns:1fr}
  body.app.shell .inicio-dial{order:-1;align-self:stretch;max-width:360px;margin:0 auto;width:100%}
  .negocio-kpis{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:16px}
  .negocio-kpis li:nth-child(3n+1){padding-left:0;border-left:0}
}
@media (max-width:1100px){body.app.shell .cab-paso{grid-template-columns:auto minmax(0,1fr)}
  body.app.shell .cab-paso .btn{grid-column:1 / -1;justify-self:start}
  body.app.shell .cab-paso .paso-exp{grid-column:1 / -1;padding:12px 0 0;border-left:0;border-top:1px solid rgba(59,90,150,.18)}}
@media (max-width:640px){
  body.app.shell .inicio-cifras{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.app.shell .inicio-cifras .metrica,body.app.shell .inicio-cifras .metrica:nth-child(even){padding:14px 10px 14px 0;border-bottom:1px solid rgba(var(--e-tinta-sombra),.08)}
  body.app.shell .inicio-cifras .metrica:nth-child(even){padding-left:12px}
  body.app.shell .inicio-cifras .metrica:nth-child(odd){border-right:1px solid rgba(var(--e-tinta-sombra),.08)!important}
  body.app.shell .inicio-cifras .metrica:nth-last-child(-n+2){border-bottom:0}
  body.app.shell .inicio-cifras .m-v{font-size:1.4rem}
  body.app.shell .inicio-cifras .m-et{font-size:.74rem}
  body.app.shell .inicio-cifras .m-pie{font-size:.7rem}
  body.app.shell .inicio-cifras .mp-ley{font-size:.64rem}
  body.app.shell .cab-paso{grid-template-columns:1fr;padding:16px}
  body.app.shell .cab-paso .btn{width:100%;justify-content:center}
  .negocio-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .negocio-kpis li,.negocio-kpis li:nth-child(3n+1){padding:10px 0 4px 12px;border-left:1px solid rgba(var(--e-tinta-sombra),.08)}
  .negocio-kpis li:nth-child(odd){padding-left:0;border-left:0}
  .negocio-kpis b{font-size:1.2rem}
}
/* columnas de Inicio en la retícula de la lámina: la primera, a ras del texto de la portada; las demás, tras su filete */
body.app.shell .widgets>.widget.relieve,body.app.shell .widgets-3>.widget{padding:26px 30px 22px}
body.app.shell .widgets>.widget:first-child,body.app.shell .widgets-3>.widget:first-child{padding-left:0}
body.app.shell .widgets>.widget:last-child,body.app.shell .widgets-3>.widget:last-child{padding-right:0}
body.app.shell .paso-exp .cp-anillo{display:grid;place-items:center;flex:none;width:40px;height:40px}
@media (max-width:1100px){
  body.app.shell .widgets>.widget.relieve,body.app.shell .widgets-3>.widget,body.app.shell .widgets>.widget:first-child,
  body.app.shell .widgets-3>.widget:first-child{padding:24px 0 20px}
}
@media (max-width:640px){body.app.shell .widgets .w-cab{flex-wrap:nowrap}body.app.shell .widgets .w-cab .tenue{display:none}}
@media (max-width:1100px){body.app.shell .widgets,body.app.shell .widgets-3{grid-template-columns:minmax(0,1fr)}}
body.app.shell .cab-paso .paso-exp{max-width:330px}
@media (max-width:1100px){body.app.shell .cab-paso .paso-exp{max-width:none}}
/* bienvenida: lo que el banco comprueba, en columnas abiertas con su filete (antes, cuatro recuadros con borde) */
body.app.shell .bv-docs{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:16px 28px}
body.app.shell .bv-docs div{padding:2px 0 2px 14px;border-radius:0;box-shadow:inset 1px 0 0 rgba(var(--e-tinta-sombra),.14)}
body.app.shell .bv-docs b .ico{color:var(--f-acento)}
body.app.shell .bv-docs span{line-height:1.5}
body.app.shell .expediente-cab h3{margin:0;font:600 1.02rem/1.3 var(--f-sans);letter-spacing:-.01em;color:var(--f-tinta)}
body.app.shell .expediente-cab p{margin:2px 0 0;font:450 .8rem/1.45 var(--f-sans);color:var(--f-tenue)}

/* ---------------------------------------------------------------- Plan: portada con las cifras antes → después y la escala como objeto */
body.app.shell .plan-cab{grid-template-columns:minmax(0,1fr) minmax(250px,300px);align-items:start}
body.app.shell .plan-cab h2{max-width:24ch}
/* antes → después: la misma fila de cifras que el resto de portadas (filetes verticales, sin recuadro) */
body.app.shell .plan-cab .plan-cab-cifras{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:24px 0 0;padding:0;border:0;
  border-top:1px solid var(--f-linea-2)}
body.app.shell .plan-cab .antes-despues{padding:14px 18px 2px 0;margin-right:18px;border:0;border-right:1px solid var(--f-linea);gap:4px}
body.app.shell .plan-cab .antes-despues:last-child{border-right:0;margin-right:0}
body.app.shell .plan-cab .ad-et{font:550 .8rem var(--f-sans);color:var(--f-tenue)}
body.app.shell .plan-cab .ad-v{gap:6px}
body.app.shell .plan-cab .ad-a{font:500 .95rem var(--f-sans);color:var(--f-tenue)}
body.app.shell .plan-cab .ad-v b{font:600 1.6rem/1.1 var(--f-sans);letter-spacing:-.02em}
body.app.shell .plan-cab .ad-v b small{font:500 .78rem var(--f-sans);letter-spacing:0}
body.app.shell .plan-cab .ad-ahorro .ad-v b{color:#245a75}
body.app.shell .plan-cab .ad-pie{font-size:.74rem;line-height:1.4;color:var(--f-suave)}
/* la escala del banco: una hoja con los ocho grados; hoy y la meta resaltan, el camino entre medias, a media luz */
.plan-escala{position:relative;z-index:1;justify-self:end;width:100%;max-width:290px;margin:4px 12px 6px 0;padding:18px 20px 16px;border-radius:6px;
  background:linear-gradient(180deg,#fff,#f4f5f8);transform:rotate(-1.2deg);transition:transform .45s cubic-bezier(.2,.8,.2,1);
  box-shadow:inset 0 1px 0 #fff,0 0 0 1px rgba(20,28,42,.06),0 3px 6px -2px rgba(20,28,42,.16),0 26px 44px -20px rgba(20,28,42,.45)}
.plan-escala::before{content:"";position:absolute;inset:7px -7px -7px 7px;z-index:-1;border-radius:6px;background:linear-gradient(180deg,#f7f8fa,#e8ebf0);
  transform:rotate(3deg);box-shadow:0 0 0 1px rgba(20,28,42,.05),0 14px 28px -16px rgba(20,28,42,.4)}
.plan-escala:hover{transform:rotate(-.3deg) translateY(-3px)}
.plan-escala figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding-bottom:10px;
  border-bottom:1px solid rgba(20,28,42,.1);font:600 .82rem var(--f-sans);color:var(--f-tinta)}
.plan-escala figcaption span{font:500 .72rem var(--f-sans);color:var(--f-tenue)}
.plan-escala ol{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.pe-fila{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:12px;min-height:26px}
.pe-fila .esc-g{height:24px;border-radius:6px;font:600 .76rem var(--f-sans);opacity:.3;
  animation:pe-entra .5s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i) * 40ms + .15s)}
.pe-fila span{font:500 .76rem/1.3 var(--f-sans);color:var(--f-tenue);font-variant-numeric:lining-nums proportional-nums}
.pe-fila span:empty{height:1px;background:linear-gradient(90deg,rgba(20,28,42,.1),rgba(20,28,42,0))}
.pe-fila.camino .esc-g{opacity:.62}
.pe-fila.hoy .esc-g,.pe-fila.meta .esc-g{opacity:1;transform:scale(1.1);box-shadow:0 0 0 2px #fff,0 6px 12px -4px rgba(20,28,42,.45)}
.pe-fila.hoy span{color:var(--f-tinta)}.pe-fila.hoy span b{font-weight:650}
.pe-fila.meta span{color:#245a75}.pe-fila.meta span b{font-weight:650}
@keyframes pe-entra{from{opacity:0;transform:translateX(-8px)}}
@media (prefers-reduced-motion:reduce){.pe-fila .esc-g{animation:none}.plan-escala,.plan-escala:hover{transform:none}}
/* los efectos de cada paso, como texto con separadores (no pastillas) */
body.app.shell .lp-chips{gap:2px 0;align-items:baseline}
body.app.shell .chip-ef{padding:0;border-radius:0;background:none;font:500 .78rem var(--f-sans);color:var(--f-suave);white-space:nowrap;
  font-variant-numeric:lining-nums proportional-nums}
body.app.shell .chip-ef+.chip-ef::before{content:"·";margin:0 8px;color:var(--f-tenue)}
body.app.shell .chip-ef b{font-weight:650;color:var(--f-tinta)}
body.app.shell .chip-ok,body.app.shell .chip-ok b{color:#245a75;font-weight:600}
body.app.shell .chip-warn,body.app.shell .chip-warn b{color:var(--f-warn)}
/* subtítulos dentro de una sección (también conviene, revisa con tu gestoría…): el mismo título pequeño de toda la app */
body.app.shell .plan-otras-t{margin:18px 0 4px;font:600 .92rem var(--f-sans);color:var(--f-tinta)}
body.app.shell .ops-notas>li:only-child{grid-column:1 / -1}
body.app.shell .limites{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
body.app.shell .limites>li:only-child{grid-column:1 / -1;max-width:var(--ancho-lectura)}
/* antes de cerrar el año: filas con filete, título y efectos en una línea, el quién y el coste debajo (sin recuadros) */
body.app.shell .cierre-lista{gap:0;margin:0 0 6px;border-top:1px solid rgba(var(--e-tinta-sombra),.1)}
body.app.shell .cierre-lista>li{padding:16px 0 18px;gap:6px;border-bottom:1px solid rgba(var(--e-tinta-sombra),.07)}
body.app.shell .cierre-cab b{font:600 .95rem var(--f-sans);color:var(--f-tinta)}
body.app.shell .cierre-lista p{max-width:var(--ancho-lectura);font-size:.9rem}
body.app.shell .cierre-pie{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;font-size:.82rem;color:var(--f-suave)}
body.app.shell .cierre-pie form{margin-left:auto}
/* el perfil: lo genérico, plegado; dentro, las listas en tres columnas y los apoyos de tu comunidad en una fila de cifras */
body.app.shell .perfil-pliegue>.rejilla-3{margin-top:4px}
body.app.shell .perfil-rejilla h4{margin:0 0 10px;font:600 .9rem var(--f-sans);color:var(--f-tinta)}
body.app.shell .perfil-rejilla .lista-sc b{font-weight:550;font-size:.88rem}
body.app.shell .perfil-pliegue .territorio{margin-top:18px;padding:0;border-top:1px solid rgba(var(--e-tinta-sombra),.08)}
body.app.shell .perfil-pliegue .territorio>div{padding:14px 22px 6px 0}
body.app.shell .perfil-pliegue .territorio>div+div{padding-left:22px}
body.app.shell .territorio b{font:600 1.02rem var(--f-sans)}
@container contenido (max-width:900px){
  body.app.shell .plan-cab{grid-template-columns:1fr}
  .plan-escala{order:-1;justify-self:center;margin:4px auto 10px;transform:rotate(-.8deg)}
  body.app.shell .plan-cab .plan-cab-cifras{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.app.shell .plan-cab .antes-despues:nth-child(2n){border-right:0;margin-right:0}
  body.app.shell .plan-cab .antes-despues:nth-child(-n+2){padding-bottom:12px;border-bottom:1px solid var(--f-linea)}
  body.app.shell .perfil-pliegue .territorio>div,body.app.shell .perfil-pliegue .territorio>div+div{padding:12px 0}
}
@media (max-width:640px){
  .plan-escala{max-width:320px;padding:14px 16px 46px}
  .plan-escala ol{flex-direction:row;gap:4px}
  .pe-fila{display:block;flex:1;min-height:0}
  .pe-fila .esc-g{height:30px}
  .pe-fila span{display:none}
  .pe-fila.hoy span,.pe-fila.meta span{display:block;position:absolute;left:16px;right:16px;bottom:24px;text-align:center}
  .pe-fila.meta span{bottom:8px}
  body.app.shell .plan-cab .ad-v b{font-size:1.35rem}
  body.app.shell .cierre-pie form{margin-left:0;width:100%}
}

/* ---------------------------------------------------------------- suavidad común (13-oct, fundador: «profesional, estilizado, suave») */
/* los desplegables se abren con un fundido corto; las cifras que cambian en simuladores y palancas, con un leve paso */
@keyframes plg-abre{from{opacity:0;transform:translateY(-4px)}}
body.app.shell details[open]>:not(summary){animation:plg-abre .32s cubic-bezier(.2,.8,.2,1) both}
body.app.shell details>summary{transition:color .2s}
body.app.shell :is(.sim-salida b,.w-control output){transition:color .25s}
body.app.shell .esc-cursor{transition:left .45s cubic-bezier(.2,.8,.2,1)}
@media (prefers-reduced-motion:reduce){body.app.shell details[open]>:not(summary){animation:none}}
body.app.shell .lic-imp{font-family:var(--f-sans);font-feature-settings:normal;font-variant-numeric:lining-nums proportional-nums;letter-spacing:-.005em}
@media (max-width:640px){
  body.app.shell .lp-chips{flex-direction:column;align-items:flex-start;gap:3px}
  body.app.shell .cierre-cab .lp-chips{width:100%}
  body.app.shell .chip-ef+.chip-ef::before{content:none}
}
@media (max-width:640px){.plan-escala.plan-escala-vacia{padding-bottom:14px}}
.plan-escala-vacia .esc-g{opacity:.22}
body.app.shell .plan-cab .ad-ahorro .ad-v b{font-size:1.3rem;white-space:nowrap}

/* ---------------------------------------------------------------- Bancos: cifras en una fila, alta plegada, método junto al gráfico */
/* las cifras de una sección (tus operaciones, CIRBE, cuentas) en una sola fila: sin el huérfano de dos bajo tres */
body.app.shell .radiografia.rx-fila{grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));column-gap:28px}
body.app.shell .rx-fila .rx b{font-size:1.4rem;letter-spacing:-.015em}
body.app.shell .rx-fila .rx small{max-width:none}
/* el alta de operaciones y la importación, en un desplegable con el formulario a ras de la retícula */
body.app.shell details.pool-alta{margin-top:6px}
body.app.shell .pool-alta .pool-form{padding:0!important;margin-top:4px}
body.app.shell .pool-alta .pool-form>h4{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
body.app.shell .pool-alta .pool-importar{margin-top:20px;padding-top:18px;border-top:1px solid rgba(var(--e-tinta-sombra),.08)}
body.app.shell .pool-alta .pool-mas{margin-top:12px}
/* la portada: la lectura de tu caso como entradilla, con más aire; las cifras, con el mismo peso que en el resto */
body.app.shell .banca-portada .portada-entradilla{font-size:.98rem;line-height:1.6;color:var(--f-tinta-2)}
body.app.shell .banca-portada .cifra>small{line-height:1.4}
@media (max-width:640px){
  body.app.shell .radiografia.rx-fila{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px}
  body.app.shell .rx-fila .rx b{font-size:1.15rem}
  body.app.shell .rx-fila .rx small{font-size:.72rem}
}
body.app.shell .garantias-cab .kpi-t{padding-left:0}
/* en el móvil, tus operaciones como filas apiladas (entidad y producto a la izquierda; pendiente y tipo a la derecha), no una tabla
   que se desliza de lado */
@media (max-width:640px){
  body.app.shell .pool-tabla thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  body.app.shell .pool-tabla,body.app.shell .pool-tabla tbody{display:block;width:100%}
  body.app.shell .pool-tabla tr{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:2px 14px;padding:12px 0;
    border-bottom:1px solid rgba(var(--e-tinta-sombra),.08)}
  body.app.shell .pool-tabla td,body.app.shell .pool-tabla td:first-child{display:block;padding:0;border:0;min-width:0;background:none;
    white-space:normal;text-align:left;position:static}
  body.app.shell .pool-tabla td:nth-child(1){grid-column:1;grid-row:1;font-weight:600;color:var(--f-tinta)}
  body.app.shell .pool-tabla td:nth-child(2){grid-column:1;grid-row:2;font-size:.82rem}
  body.app.shell .pool-tabla td:nth-child(3){grid-column:2;grid-row:1;text-align:right;font-weight:600}
  body.app.shell .pool-tabla td:nth-child(4){grid-column:2;grid-row:2;text-align:right;font-size:.82rem}
  body.app.shell .pool-tabla td:nth-child(5){grid-column:1;grid-row:3;font-size:.8rem;color:var(--f-suave)}
  body.app.shell .pool-tabla td:nth-child(5)::before{content:"vence ";color:var(--f-tenue)}
  body.app.shell .pool-tabla td:nth-child(6){grid-column:2;grid-row:3;text-align:right}
  body.app.shell .pool-tabla tbody tr:hover{background:none}
}
@media (max-width:640px){
  body.app.shell .dash-t.pool-tabla td:is(:nth-child(1),:nth-child(2),:nth-child(5)){text-align:left}
  body.app.shell .pool-grafico .g-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
  body.app.shell .pool-grafico .g-wrap>svg{min-width:640px}
}

/* ---------------------------------------------------------------- Tesorería: portada con la semana que manda como hoja de calendario */
body.app.shell .caja-portada{grid-template-columns:minmax(0,1fr) minmax(200px,250px);align-items:center}
body.app.shell .caja-portada h2{max-width:26ch}
body.app.shell .caja-portada .subida-mini{margin-top:22px}
body.app.shell .caja-portada .portada-texto>p.fine{margin:14px 0 0}
/* la hoja: un taco de calendario con anillas, el mes en la cabecera, el día grande y la cifra de esa semana */
.hoja-semana{--c:#3b5690;position:relative;z-index:1;justify-self:center;display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;
  max-width:220px;margin:18px 18px 10px 0;padding:0 0 18px;border-radius:12px;overflow:visible;text-align:center;
  background:linear-gradient(180deg,#fff,#f3f4f7);transform:rotate(2deg);transition:transform .45s cubic-bezier(.2,.8,.2,1);
  box-shadow:inset 0 -1px 0 rgba(20,28,42,.06),0 0 0 1px rgba(20,28,42,.07),0 3px 6px -2px rgba(20,28,42,.16),0 24px 42px -18px rgba(20,28,42,.45)}
.hoja-semana::before{content:"";position:absolute;inset:auto 6px -6px 6px;height:12px;z-index:-1;border-radius:0 0 12px 12px;
  background:linear-gradient(180deg,#e9ecf1,#dfe3ea);box-shadow:0 10px 18px -12px rgba(20,28,42,.45)}
.hoja-semana:hover{transform:rotate(.4deg) translateY(-3px)}
.hsm-ko{--c:#a8493c}.hsm-warn{--c:#b07a2a}.hsm-vacia{--c:#7a8396}
.hsm-mes{align-self:stretch;padding:16px 0 9px;border-radius:12px 12px 0 0;font:650 .74rem var(--f-sans);letter-spacing:.12em;text-transform:uppercase;color:#fff;
  background:linear-gradient(180deg,color-mix(in srgb,var(--c) 80%,#fff),var(--c));box-shadow:inset 0 -1px 0 rgba(0,0,0,.12)}
.hsm-dia{margin-top:8px;font:600 4.2rem/1 var(--f-sans);letter-spacing:-.04em;color:var(--f-tinta);font-variant-numeric:lining-nums proportional-nums;
  text-shadow:0 1px 0 #fff}
.hsm-et{margin-top:2px;font:550 .76rem var(--f-sans);color:var(--f-tenue)}
.hsm-cifra{margin-top:8px;font:600 1.15rem var(--f-sans);letter-spacing:-.01em;color:var(--c);font-variant-numeric:lining-nums proportional-nums}
.hoja-semana small{font:500 .72rem var(--f-sans);color:var(--f-tenue)}
.hsm-anillas{position:absolute;top:-7px;left:22%;right:22%;height:16px;pointer-events:none;
  background:radial-gradient(circle at 8px 8px,#fdfdfd 0 4px,#9aa3b2 4.5px 5.5px,transparent 6px) 0 0/calc(100% / 3) 16px repeat-x}
@media (prefers-reduced-motion:reduce){.hoja-semana,.hoja-semana:hover{transform:none}}
/* la previsión: el gráfico a lo ancho, sin caja */
body.app.shell .caja-grafico{margin:4px 0 0}
/* ¿y si te paga tarde?: las tres cifras en fila y la lectura debajo; el selector de días, a la derecha del título */
body.app.shell .cj-escenario{padding:0;margin:0}
body.app.shell .seccion-cab .w-segmentos{margin-left:auto}
.cj-esc-cifras{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--f-linea-2)}
.cj-esc-cifras .cifra b{font-size:1.55rem}
/* lo que tardan las Administraciones: una barra por órgano frente a los 30 días legales */
body.app.shell .aapp-pmp{padding:0}
.aapp-l{list-style:none;margin:0;padding:0;border-top:1px solid rgba(var(--e-tinta-sombra),.1)}
.aapp-l li{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(120px,1fr) 80px;grid-template-areas:"org barra dias" "org pie pie";align-items:center;
  gap:2px 18px;padding:11px 0;border-bottom:1px solid rgba(var(--e-tinta-sombra),.07)}
.aapp-org{grid-area:org;font:500 .9rem var(--f-sans);color:var(--f-tinta)}
.aapp-barra{grid-area:barra;position:relative;height:8px;border-radius:999px;background:linear-gradient(180deg,var(--e-pozo-1),var(--e-pozo-2));box-shadow:var(--e-pozo)}
.aapp-barra::after{content:"";position:absolute;top:-3px;bottom:-3px;left:33.3%;width:2px;border-radius:2px;background:#323b4e;opacity:.55}
.aapp-barra i{display:block;width:var(--w);height:100%;border-radius:inherit;background:linear-gradient(180deg,#5d7cba,#3b5690);transform-origin:left;
  animation:a-ancho .9s cubic-bezier(.2,.8,.2,1) .2s both}
.aapp-barra i.lento{background:linear-gradient(180deg,#cf9d4c,#b07a2a)}
.aapp-l b{grid-area:dias;justify-self:end;font:600 .95rem var(--f-sans);color:var(--f-tinta);font-variant-numeric:lining-nums proportional-nums;white-space:nowrap}
.aapp-l small{grid-area:pie;font:450 .74rem var(--f-sans);color:var(--f-tenue)}
/* reclamar una factura: el formulario plegado, a ras de la retícula */
body.app.shell .recl-pliegue .recl-form{padding:0!important;margin-top:6px}
@container contenido (max-width:900px){
  body.app.shell .caja-portada{grid-template-columns:1fr}
  .hoja-semana{order:-1;margin:12px auto 6px;max-width:190px}
}
@media (max-width:640px){
  .hoja-semana{max-width:170px}.hsm-dia{font-size:3.4rem}
  .cj-esc-cifras{grid-template-columns:repeat(3,minmax(0,1fr))}
  .cj-esc-cifras .cifra{padding:12px 8px 0 0;margin-right:8px}
  .cj-esc-cifras .cifra>span{font-size:.72rem;line-height:1.3;min-height:2.6em}
  .cj-esc-cifras .cifra b{font-size:1.15rem}
  body.app.shell .seccion-cab .w-segmentos{margin-left:0}
  .aapp-l li{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"org dias" "barra barra" "pie pie";gap:6px 12px}
}
body.app.shell .g-caja-movil .cj-linea{filter:url(#cjs-m)}
body.app.shell .seccion>details.pliegue:first-child{border-top:0;padding-top:0}

/* ---------------------------------------------------------------- Impuestos: cifras en la portada, modelos como lista, la agenda por meses */
body.app.shell .fiscal-cifras{max-width:760px}
body.app.shell .fiscal-cifras .cifra b{font-size:1.75rem}
body.app.shell .fiscal-cifras .cifra>small{line-height:1.4}
body.app.shell a.cifra-enlace:hover>span{color:var(--f-acento)}
/* tus modelos: una lista con su icono de documento, sin pastillas */
.modelos-l{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:0 24px;
  border-top:1px solid rgba(var(--e-tinta-sombra),.1)}
.modelos-l li{display:flex;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid rgba(var(--e-tinta-sombra),.07);
  font:550 .86rem var(--f-sans);color:var(--f-tinta-2);font-variant-numeric:lining-nums proportional-nums}
.modelos-l .ico{color:var(--f-acento);flex:none}
/* la agenda: sin tarjeta blanca; cada mes con su cabecera y cada fecha como una hoja de calendario */
body.app.shell .agenda-larga{background:none;border-radius:0;box-shadow:none;padding:0}
body.app.shell .agenda-lista li.ag-mes{display:block;padding:18px 0 6px;border-bottom:1px solid rgba(var(--e-tinta-sombra),.12);
  font:600 .8rem var(--f-sans);color:var(--f-tenue)}
body.app.shell .agenda-lista li.ag-mes::first-letter{text-transform:uppercase}
body.app.shell .agenda-lista li.ag-mes:first-child{padding-top:2px}
body.app.shell .agenda-larga li:not(.ag-mes){padding:11px 0;border-bottom:1px solid rgba(var(--e-tinta-sombra),.07)}
body.app.shell .agenda-larga .ag-en{font:500 .78rem var(--f-sans);color:var(--f-tenue);white-space:nowrap}
body.app.shell details.agenda-resto{margin-top:8px}
@media (max-width:640px){
  body.app.shell .fiscal-cifras .cifra b{font-size:1.25rem}
  .modelos-l{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}
  body.app.shell .agenda-larga li:not(.ag-mes){grid-template-columns:44px minmax(0,1fr)}
  body.app.shell .agenda-larga .ag-en{grid-column:2;margin-top:-6px}
}
@media (max-width:640px){
  /* las comprobaciones cortas (Impuestos, Vigilancia), en dos columnas; el documento sellado, más pequeño tras el texto */
  body.app.shell .radiografia.rx-compacta{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px}
  body.app.shell .rx-compacta .rx b{font-size:1.1rem}
  body.app.shell .rx-compacta .rx small{font-size:.72rem}
  .hoja-sello{max-width:160px;margin:4px auto 6px}
  .hs-sello{width:104px;height:104px}
  .hs-renglones{top:44px;height:110px}
  body.app.shell .fiscal-cifras{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.app.shell .fiscal-cifras .cifra:nth-child(3){grid-column:1 / -1;border-top:1px solid var(--f-linea);margin-top:10px}
  body.app.shell .fiscal-cifras .cifra:nth-child(2){border-right:0}
}

/* ---------------------------------------------------------------- Vigilancia: cifras en la portada, formulario a ras, vigilados en lista */
body.app.shell .vig-cifras{max-width:760px}
body.app.shell .vig-cifras .cifra b{font-size:1.75rem}
body.app.shell .vig-form{padding:0;gap:10px;align-items:stretch}
body.app.shell .vig-form .campos-3{width:100%;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) auto;align-items:end}
body.app.shell .vigilados{gap:0 28px;border-top:1px solid rgba(var(--e-tinta-sombra),.1)}
body.app.shell .vigilados li{padding:10px 0;border-radius:0;box-shadow:none;border-bottom:1px solid rgba(var(--e-tinta-sombra),.07)}
body.app.shell .vigilados li b{font:600 .9rem var(--f-sans);color:var(--f-tinta)}
body.app.shell .vigilados li .btn{background:none!important;box-shadow:none!important;color:var(--f-tenue);opacity:.7}
body.app.shell .vigilados li .btn:hover{opacity:1;color:#a8493c}
body.app.shell .organo-l{margin:0}
@media (max-width:640px){
  body.app.shell .vig-cifras .cifra b{font-size:1.3rem}
  body.app.shell .vig-form .campos-3{grid-template-columns:1fr}
  body.app.shell .vig-form .btn{width:100%;justify-content:center}
}

/* ---------------------------------------------------------------- Ver todo: el expediente completo, por grupos, con el sistema */
/* los grupos (tus cuentas, tu deuda, impuestos, vigilancia, documentos): un título mayor con un filete doble encima */
body.app.shell .todo-grupo{margin:12px 0 -6px;padding-top:30px;border-top:1px solid rgba(var(--e-tinta-sombra),.14);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),inset 0 3px 0 -2px rgba(var(--e-tinta-sombra),.06);
  font:600 1.3rem/1.25 var(--f-sans);letter-spacing:-.015em;color:var(--f-tinta);scroll-margin-top:84px}
body.app.shell .app-contenido>.todo-grupo+.seccion{padding-top:0;border-top:0;box-shadow:none}
/* la portada: el estado con el indicador de la probabilidad de impago como objeto */
body.app.shell .todo-portada{grid-template-columns:minmax(0,1fr) minmax(220px,280px);align-items:center}
body.app.shell .todo-portada .portada-linea b{font-weight:650}
.todo-gauge{margin:0;justify-self:center;width:100%;max-width:260px}
.todo-gauge svg{display:block;width:100%;height:auto;filter:drop-shadow(0 14px 18px rgba(20,28,42,.18)) drop-shadow(0 3px 5px rgba(20,28,42,.1))}
body.app.shell .todo-vetos{margin:18px 0 0}
body.app.shell .todo-palanca{margin:16px 0 0;max-width:var(--ancho-lectura);font-size:.9rem;color:var(--f-tinta-2)}
/* el score: dial, lo que suma y resta, y el radar en una fila */
.todo-score{display:grid;grid-template-columns:minmax(200px,260px) minmax(0,1fr) minmax(220px,300px);gap:20px 34px;align-items:center}
.todo-score figure{margin:0}
.todo-score figure svg{display:block;width:100%;height:auto}
.todo-score-txt .lista-sc span{display:block;font-size:.8rem;color:var(--f-suave)}
/* el historial de análisis puntuales: filas con filete (antes, una tarjeta por subida) */
.historial-l{list-style:none;margin:0;padding:0;border-top:1px solid rgba(var(--e-tinta-sombra),.1)}
.historial-l>li{display:flex;flex-direction:column;gap:10px;padding:16px 0 18px;border-bottom:1px solid rgba(var(--e-tinta-sombra),.07)}
.hist-cab{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;font-size:.84rem}
.hist-cab>b{font:600 .95rem var(--f-sans);color:var(--f-tinta)}
.hist-fecha{margin-left:auto;font-size:.78rem;color:var(--f-tenue);font-variant-numeric:lining-nums proportional-nums}
body.app.shell .historial-l .row2{gap:14px 40px}
body.app.shell .historial-l .palanca{font-size:.88rem;line-height:1.5;color:var(--f-tinta-2)}
body.app.shell .historial-l .linea-estado{margin:10px 0 0}
body.app.shell .historial-l form{margin-top:10px}
/* enlaces con cifras en negrita: el peso del enlace, no uno mayor */
body.app.shell .enlace-mas b{font-weight:inherit}
body.app.shell .chat-f input{min-width:0}
@container contenido (max-width:900px){
  body.app.shell .todo-portada{grid-template-columns:1fr}
  .todo-gauge{order:-1;max-width:200px}
  .todo-score{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .todo-score-txt{grid-column:1 / -1;grid-row:2}
}
@media (max-width:640px){
  body.app.shell .todo-grupo{font-size:1.12rem;padding-top:24px}
  .todo-score{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
  .hist-fecha{margin-left:0;flex-basis:100%}
  body.app.shell .historial-l .row2{grid-template-columns:1fr}
  body.app.shell .chat-f{flex-direction:column}
}
body.app.shell .seccion .linea-estado+.linea-estado{margin-top:-6px}
body.app.shell .avisos-lista small{font-family:var(--f-sans);font-feature-settings:normal;font-variant-numeric:lining-nums proportional-nums}
body.app.shell details.todo-via{max-width:none}
body.app.shell details.todo-via form{margin-top:12px}
/* un desplegable cerrado dentro de otro abierto mantiene su cheurón hacia abajo (la regla base usaba «details[open] summary»,
   que también giraba el de los desplegables anidados) */
body.app.shell details:not([open])>summary::after{transform:rotate(45deg)}
/* estados vacíos guiados, a ras de la retícula */
body.app.shell .vacio-guia{padding:0}

/* ---------------------------------------------------------------- Revisar cifras: comprobaciones en vivo, campos en la tabla, barra fija */
body.app.shell .revisar-portada h2{max-width:30ch}
.revisar-anios{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:14px 0 0;font:500 .84rem var(--f-sans);color:var(--f-tenue)}
.revisar-anios a{font-weight:600;color:var(--f-acento);text-decoration:none;font-variant-numeric:lining-nums proportional-nums}
.revisar-anios a:hover{text-decoration:underline;text-underline-offset:3px}
body.app.shell .revisar-faltan{margin:16px 0 0}
.identidades{list-style:none;margin:18px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:6px 28px;
  border-top:1px solid var(--f-linea-2);padding-top:14px}
.identidades li{display:flex;align-items:flex-start;gap:8px;font:500 .84rem/1.4 var(--f-sans);color:var(--f-suave)}
.identidades .ico{flex:none;margin-top:1px}
.identidades .ident-ok .ico{color:#2d6b8a}
.identidades .ident-ko{color:var(--f-ko)}.identidades .ident-ko .ico{color:var(--f-ko)}
/* la tabla: código tenue, partida a la izquierda, el campo como un carril hundido alineado a la derecha */
body.app.shell .revisar-t td{padding-top:6px;padding-bottom:6px;vertical-align:middle}
body.app.shell .revisar-t .rv-cod{font:500 .76rem var(--f-sans);color:var(--f-tenue);width:1%;white-space:nowrap}
.rv-nucleo{color:#b07a2a}
body.app.shell .revisar-t .rv-et{white-space:normal;min-width:220px;font-size:.88rem;color:var(--f-tinta-2)}
body.app.shell .revisar-t .rv-et label{cursor:text}
body.app.shell .revisar-t .rv-campo{width:12em;max-width:100%;padding:6px 10px;text-align:right;font-family:"Inter",var(--f-sans);
  font-feature-settings:"tnum" 1;font-size:.88rem}
body.app.shell .revisar-t .rv-ant{color:var(--f-tenue);font-size:.84rem}
body.app.shell .revisar-t tr.rv-falta td{background:rgba(168,73,60,.05)}
body.app.shell .revisar-t tr.rv-falta .rv-campo{box-shadow:var(--e-pozo),0 0 0 1.5px rgba(168,73,60,.55)}
/* la barra de guardar: fija al pie de la lámina mientras se revisa */
.revisar-barra{position:sticky;bottom:12px;z-index:5;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px 12px;margin-top:6px;
  padding:12px 14px;border-radius:14px;background:rgba(246,247,249,.9);-webkit-backdrop-filter:saturate(150%) blur(12px);backdrop-filter:saturate(150%) blur(12px);
  box-shadow:inset 0 1px 0 #fff,0 0 0 1px rgba(20,28,42,.07),0 12px 26px -14px rgba(20,28,42,.4)}
.rb-estado{margin-right:auto;font:500 .82rem var(--f-sans);color:var(--f-suave);font-variant-numeric:lining-nums proportional-nums}
.rv-hist{list-style:none;margin:0;padding:0;border-top:1px solid rgba(var(--e-tinta-sombra),.1)}
.rv-hist li{display:grid;grid-template-columns:150px 90px minmax(0,1fr);gap:4px 14px;padding:8px 0;border-bottom:1px solid rgba(var(--e-tinta-sombra),.07);
  font:450 .84rem var(--f-sans);color:var(--f-suave);font-variant-numeric:lining-nums proportional-nums}
.rv-hist time{color:var(--f-tenue)}.rv-hist b{font-weight:600;color:var(--f-tinta)}
@media (max-width:1000px){.revisar-barra{bottom:84px;bottom:calc(84px + env(safe-area-inset-bottom))}}
@media (hover:none){.revisar-barra{background:rgba(246,247,249,.98);-webkit-backdrop-filter:none;backdrop-filter:none}}   /* sticky sin vidrio en táctil (ver .tb-flota) */
@media (max-width:640px){
  body.app.shell .revisar-t .rv-cod,body.app.shell .revisar-t th:first-child{display:none}
  body.app.shell .revisar-t .rv-et{min-width:150px;font-size:.82rem;position:static;background:none}
  body.app.shell .revisar-t .rv-campo{width:8.5em}
  body.app.shell .revisar-t .rv-ant,body.app.shell .revisar-t th:last-child{display:none}
  .revisar-barra{padding:10px}.revisar-barra .btn{flex:1 1 140px;justify-content:center}
  .rb-estado{flex-basis:100%}
  .rv-hist li{grid-template-columns:1fr auto}.rv-hist span{grid-column:1 / -1}
}
@media (max-width:640px){.revisar-barra .btn{padding:9px 12px;font-size:.84rem;white-space:nowrap}}

/* ---------------------------------------------------------------- Metodología, Seguridad y Glosario: que no desentonen */
/* metodología: el índice de la cadena con su explicación debajo; las variables partiendo línea; la clase de cada ficha como texto */
body.app.shell .cadena a{display:flex;flex-direction:column;gap:1px;text-decoration:none;color:inherit}
body.app.shell .cadena a:hover b{color:var(--f-acento)}
body.app.shell .cadena li::before{font:600 .76rem var(--f-sans)}
body.app.shell .dash-t td.metodo-vars{white-space:normal;min-width:320px;line-height:1.6}
body.app.shell .dash-t td.metodo-si{white-space:normal;min-width:260px}
body.app.shell .qeq-col>b{font:600 1rem var(--f-sans)}
body.app.shell .ficha-clase{padding:0;border-radius:0;background:none!important;display:inline-flex;align-items:center;gap:6px;font:600 .74rem var(--f-sans);color:#2d6b8a}
body.app.shell .ficha-clase::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
body.app.shell .ficha-clase.ficha-proxy{color:var(--f-warn)}
/* la ficha se abre con el mismo cheurón que el resto de desplegables (antes, un «+») */
body.app.shell .ficha summary::before{content:"";top:18px;right:6px;width:7px;height:7px;border:solid currentColor;border-width:0 1.6px 1.6px 0;
  transform:rotate(45deg);opacity:.7;font:inherit;transition:transform .3s cubic-bezier(.2,.8,.2,1)}
body.app.shell .ficha[open] summary::before{transform:translateY(3px) rotate(225deg)}
body.app.shell .ficha:target{background:linear-gradient(90deg,rgba(59,90,150,.07),transparent)}
@media (max-width:640px){
  body.app.shell .qeq ul{font-size:.82rem}
  body.app.shell .qeq-col{padding:14px 0 4px}
  body.app.shell .dash-t td.metodo-vars{min-width:240px}
}
/* seguridad: portada con un candado como objeto; los cuatro apartados en dos columnas, sin recuadros */
body.app.shell .seg-portada{grid-template-columns:minmax(0,1fr) minmax(160px,220px)}
body.app.shell .seg-portada h2{max-width:24ch}
.seg-candado{margin:0;justify-self:center;width:100%;max-width:170px;transform:rotate(-4deg);transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.seg-candado svg{display:block;width:100%;height:auto;filter:drop-shadow(0 22px 26px rgba(20,28,42,.28)) drop-shadow(0 4px 6px rgba(20,28,42,.16))}
.seg-candado:hover{transform:rotate(0) translateY(-3px)}
body.app.shell .seg-rejilla{gap:var(--ritmo) var(--hueco-col)}
body.app.shell .seg-sec{padding:0;margin:0;background:none;box-shadow:none}
body.app.shell .seg-lista{gap:16px}
body.app.shell .seg-lista li{grid-template-columns:24px minmax(0,1fr)}
body.app.shell .seg-lista li>.ico{color:var(--f-acento)}
body.app.shell .seg-lista b{font:600 .92rem/1.4 var(--f-sans)}
body.app.shell .seg-lista p{font-size:.86rem;color:var(--f-suave);max-width:60ch}
body.app.shell .seg-rejilla>.seg-sec:nth-child(n+3){padding-top:calc(var(--ritmo) - 6px);border-top:1px solid rgba(var(--e-tinta-sombra),.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
@media (prefers-reduced-motion:reduce){.seg-candado,.seg-candado:hover{transform:none}}
@container contenido (max-width:900px){
  body.app.shell .seg-portada{grid-template-columns:1fr}.seg-candado{order:-1;max-width:110px}
  body.app.shell .seg-rejilla>.seg-sec:nth-child(n+2){padding-top:calc(var(--ritmo) - 6px);border-top:1px solid rgba(var(--e-tinta-sombra),.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
}
/* glosario: el buscador como un carril hundido, las letras como índice y los términos en dos columnas */
.glosario-buscar{position:relative;display:block;max-width:560px;margin:22px 0 0}
.glosario-buscar>.ico{position:absolute;left:14px;top:50%;margin-top:-8.5px;color:var(--f-tenue);pointer-events:none}
body.app.shell .glosario-buscar input{width:100%;padding:12px 14px 12px 42px;font-size:.95rem}
.glosario-letras{display:flex;flex-wrap:wrap;gap:2px;margin:14px 0 0}
.glosario-letras a{display:grid;place-items:center;min-width:30px;height:30px;padding:0 6px;border-radius:8px;text-decoration:none;
  font:600 .8rem var(--f-sans);color:var(--f-suave);transition:background .2s,color .2s}
.glosario-letras a:hover{background:rgba(255,255,255,.7);color:var(--f-acento)}
body.app.shell .glosario-l li{position:relative}
.glosario-ancla{position:absolute;top:-90px}
body.app.shell .glosario-l b{font:600 .95rem var(--f-sans)}
body.app.shell .glosario-l p{color:var(--f-suave);max-width:62ch}
body.app.shell .glosario-l li:target{background:linear-gradient(90deg,rgba(59,90,150,.08),transparent);box-shadow:inset 2px 0 0 var(--f-acento);padding-left:12px}
@media (max-width:640px){.glosario-letras a{min-width:34px;height:34px}}
body.app.shell .glosario-buscar input[type=search]{padding-left:42px!important}
body.app.shell .rv-nucleo{color:var(--f-warn)}
/* vías que no encajan: atenuadas por tono (no por opacidad, que dejaba el texto por debajo de AA) */
body.app.shell .via-no-encaja{opacity:1}
body.app.shell .via-no-encaja .via-encaje{color:var(--f-tenue)}
body.app.shell .via-no-encaja :is(h4,.via-quien,ul,.via-aporta){color:var(--f-tenue)}
body.app.shell .via-no-encaja .via-paso{color:#5c6f99}
body.app.shell .cab-paso .m-et.estado-ko,body.app.shell .cab-paso .m-et.estado-ko .ico{color:var(--f-ko)}
@media (max-width:640px){
  /* en el móvil, el dial más compacto: la frase y las cifras entran en la primera pantalla */
  body.app.shell .inicio-dial .cab-gauge svg.g-dial{max-width:230px}
  body.app.shell .inicio-dial{gap:8px;padding:0}
  body.app.shell .inicio-dial .cab-nota-pie b{font-size:1.15rem}
  body.app.shell .inicio-dial figcaption{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:2px 12px}
}
body.app.shell .plan-cab .ad-igual :is(.ad-a,.ad-flecha){display:none}
