/* =============================================================
   theresa.es — LAS APERTURAS (Rubén, 2026-10-30): «quita las tarjetas grandes de la mayoría de páginas y quiero
   diferentes efectos». Debajo de la frase de cada página, su pantalla sin tarjeta alrededor y con su propio efecto,
   que pasa una vez (`.vx-anima` → `.vx-in`, `partials/_web_vivo.html`). Prefijo `ap-<página>`. Solo `paleta.css`.
   En escritorio la web lleva `zoom: .75`: las medidas son de ese lienzo (1 px = .75 reales).
   ============================================================= */
.ap-mail, .ap-ext, .ap-bolsa, .ap-caja, .ap-camp, .ap-canal, .ap-com, .ap-cont, .ap-fichar, .ap-fact, .ap-firma, .ap-gasto, .ap-docs, .ap-int, .ap-ia, .ap-multi, .ap-onoff, .ap-perm, .ap-rep, .ap-res, .ap-scan, .ap-sop, .ap-tes, .ap-adv, .ap-vac, .ap-ven, .ap-veri { margin: 40px auto 150px; }
.ap-docs { margin-bottom: 60px; }
.ap-chip-ok { background: var(--c-menta-soft); color: var(--c-menta-tx); }

/* ── Agente de email: el buzón y la respuesta que se escribe ── */
.ap-mail { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 80px; max-width: 1400px; }
.ap-mail__lista { list-style: none; margin: 0; padding: 0; }
.ap-mail__lista li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 16px; padding: 24px 22px; border-top: 1px solid var(--c-border); }
.ap-mail__lista li:first-child { border-top: 0; }
.ap-mail__lista li.is-on { border-radius: 20px; border-top-color: transparent; background: var(--c-azul-soft); }
.ap-mail__lista li.is-on + li { border-top-color: transparent; }
.ap-mail__lista b { font-size: 24px; font-weight: 800; letter-spacing: -.02em; color: var(--c-text); }
.ap-mail__lista span { grid-column: 1; font-size: 20px; font-weight: 500; color: var(--c-text2); }
.ap-mail__lista em { grid-column: 2; grid-row: 1 / 3; align-self: center; font-style: normal; padding: 7px 14px; border-radius: 100px; background: var(--c-surface2); font-size: 16px; font-weight: 700; color: var(--c-text2); }
.ap-mail__lista em.ok { background: var(--c-menta-soft); color: var(--c-menta-tx); }
.ap-mail__lista em.ti { background: var(--c-rose-soft); color: var(--c-rose-tx); }
.ap-mail__de { margin: 0; font-size: 23px; font-weight: 800; color: var(--c-text); }
.ap-mail__de span { margin-left: 10px; font-size: 19px; font-weight: 500; color: var(--c-text3); }
.ap-mail__de--t { margin-top: 44px; color: var(--c-azul); }
.ap-mail__txt { margin: 10px 0 0; font-size: 30px; line-height: 1.38; font-weight: 500; letter-spacing: -.01em; color: var(--c-text2); }
.ap-mail__txt--t { min-height: 5.6em; font-weight: 600; color: var(--c-text); }
.ap-mail__si { width: fit-content; margin: 26px 0 0 auto; padding: 14px 22px; border-radius: 22px 22px 6px 22px; background: var(--c-surface2); font-size: 23px; font-weight: 600; color: var(--c-text); transition: opacity .6s ease 5.6s; }
.ap-mail__hecho { width: fit-content; margin: 18px 0 0; padding: 12px 22px; border-radius: 100px; background: var(--g-menta); color: #fff; box-shadow: var(--sombra-menta); font-size: 20px; font-weight: 800; transition: opacity .6s ease 6.3s, transform .6s cubic-bezier(.3,1.5,.5,1) 6.3s; }
.js .ap-mail:not(.vx-in) .ap-mail__si, .js .ap-mail:not(.vx-in) .ap-mail__hecho { opacity: 0; }
.js .ap-mail:not(.vx-in) .ap-mail__hecho { transform: scale(.85); }

/* ── Banco: un rotulador pasa por lo que cuadra ─────────────── */
.ap-ext { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 90px; align-items: center; max-width: 1400px; }
.ap-ext__n { margin: 0; font-size: 190px; font-weight: 800; letter-spacing: -.06em; line-height: .95; color: var(--c-menta-tx); }
.ap-ext__n small { font-size: .46em; letter-spacing: -.02em; }
.ap-ext__s { margin: 16px 0 0; font-size: 28px; font-weight: 600; color: var(--c-text); }
.ap-ext__iva { margin: 36px 0 0; padding-top: 26px; border-top: 1px solid var(--c-border); font-size: 23px; font-weight: 500; color: var(--c-text2); }
.ap-ext__iva b { color: var(--c-rose-tx); font-weight: 800; }
.ap-ext__filas { list-style: none; margin: 0; padding: 0; }
.ap-ext__filas li { position: relative; isolation: isolate; display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 24px 22px; border-bottom: 1px solid var(--c-border); font-size: 20px; font-weight: 500; color: var(--c-text2); }
.ap-ext__filas li::before { content: ""; position: absolute; inset: 6px 0; z-index: -1; border-radius: 14px; transform-origin: 0 50%; transition: transform .9s cubic-bezier(.4,0,.3,1) calc(var(--i) * 420ms + .5s); }
.ap-ext__filas .is-ok::before { background: var(--c-menta-soft); }
.ap-ext__filas .is-no::before { background: var(--c-rose-soft); }
.js .ap-ext:not(.vx-in) .ap-ext__filas li::before { transform: scaleX(0); }
.ap-ext__filas b { display: block; margin-bottom: 3px; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 21px; font-weight: 700; color: var(--c-text); }
.ap-ext__filas strong { flex: none; font-size: 26px; font-weight: 800; letter-spacing: -.02em; font-variant-numeric: tabular-nums; color: var(--c-text); }

/* ── Bolsa de horas: las semanas suben y bajan de una línea ─── */
.ap-bolsa { max-width: 1200px; text-align: center; }
.ap-bolsa__n { margin: 0; font-size: 210px; font-weight: 800; letter-spacing: -.06em; line-height: .95; color: var(--c-azul); }
.ap-bolsa__n small { font-size: .36em; letter-spacing: -.02em; }
.ap-bolsa__s { margin: 18px 0 0; font-size: 27px; font-weight: 500; color: var(--c-text2); }
.ap-bolsa__barras { position: relative; display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 26px; height: 340px; margin-top: 56px; }
.ap-bolsa__barras::before { content: ""; position: absolute; left: 0; right: 0; top: 66%; height: 2px; background: var(--c-border); }
.ap-bolsa__barras i { position: relative; display: block; }
.ap-bolsa__barras i::after { content: ""; position: absolute; left: 0; right: 0; height: calc(var(--h) * .66); transition: transform 1.2s cubic-bezier(.2,.8,.2,1) calc(var(--i) * 120ms + .2s); }
.ap-bolsa__barras .up::after { bottom: 34%; border-radius: 14px 14px 0 0; background: var(--g-azul); transform-origin: 50% 100%; }
.ap-bolsa__barras .dn::after { top: 66%; height: calc(var(--h) * .66); border-radius: 0 0 14px 14px; background: var(--g-rose); transform-origin: 50% 0; }
.js .ap-bolsa:not(.vx-in) .ap-bolsa__barras i::after { transform: scaleY(0); }
.ap-bolsa__eje { display: flex; justify-content: space-between; margin: 14px 0 0; font-size: 19px; font-weight: 600; color: var(--c-text3); }
.ap-bolsa__acc { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 18px; margin: 44px 0 0; font-size: 23px; font-weight: 600; color: var(--c-text); }
.ap-bolsa__acc em { font-style: normal; padding: 13px 26px; border-radius: 100px; background: var(--g-azul); color: #fff; box-shadow: var(--sombra-azul); font-size: 20px; font-weight: 800; }

/* ── Caja: los billetes se apilan ───────────────────────────── */
.ap-caja { max-width: 1300px; }
.ap-caja__montones { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 36px; align-items: end; text-align: center; }
.ap-caja__montones p { order: 2; margin: 0; font-size: 28px; font-weight: 800; letter-spacing: -.02em; color: var(--c-text); }
.ap-caja__montones > div { display: flex; flex-direction: column; align-items: center; }
.ap-caja__montones span { order: 1; display: flex; flex-direction: column-reverse; align-items: center; width: 100%; margin-bottom: 20px; }
.ap-caja__montones small { order: 3; margin-top: 4px; font-size: 20px; font-weight: 500; color: var(--c-text2); }
.ap-caja__montones i { display: block; width: 100%; max-width: 200px; height: 64px; margin-top: -40px; border-radius: 10px; box-shadow: 0 -1px 0 rgba(255,255,255,.5) inset, 0 6px 14px rgba(31, 39, 51, .12); transition: opacity .35s ease calc(var(--i) * 110ms + .2s), transform .55s cubic-bezier(.2,.9,.3,1) calc(var(--i) * 110ms + .2s); }
.js .ap-caja:not(.vx-in) .ap-caja__montones i { opacity: 0; transform: translateY(-60px) rotate(-2deg); }
.b50 i { background: var(--g-rose); } .b20 i { background: var(--g-azul); } .b10 i { background: var(--g-menta); }
.b5 i { background: linear-gradient(165deg, color-mix(in srgb, var(--c-text3) 62%, #fff), var(--c-text3)); }
.ap-caja__montones .bm i { width: 84px; height: 84px; margin-top: -58px; border-radius: 50%; background: linear-gradient(165deg, color-mix(in srgb, var(--c-amarillo) 55%, #fff), var(--c-amarillo)); }
.ap-caja__suma { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 76px 0 0; border-top: 1px solid var(--c-border); }
.ap-caja__suma > div { padding: 30px 36px 0; border-left: 1px solid var(--c-border); }
.ap-caja__suma > div:first-child { border-left: 0; padding-left: 0; }
.ap-caja__suma dt { font-size: 21px; font-weight: 600; color: var(--c-text2); }
.ap-caja__suma dd { margin: 8px 0 0; font-size: 62px; font-weight: 800; letter-spacing: -.04em; color: var(--c-text); }
.ap-caja__suma .is-mal dd { color: var(--c-rose-tx); }

/* ── Campañas: el móvil sube desde abajo ────────────────────── */
.ap-camp { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1fr) 500px minmax(0, 1fr); gap: 70px; align-items: center; max-width: 1400px; margin-bottom: 110px; }
.ap-camp__movil { height: 780px; padding: 16px 16px 0; border-radius: 62px 62px 0 0; background: color-mix(in srgb, var(--c-tinta) 94%, var(--c-azul)); transition: transform 1.8s cubic-bezier(.16,.8,.24,1) .15s; }
.js .ap-camp:not(.vx-in) .ap-camp__movil { transform: translateY(460px); }
.ap-camp__pant { height: 100%; overflow: hidden; padding: 44px 30px 0; border-radius: 48px 48px 0 0; background: var(--c-surface); }
.ap-camp__de { margin: 0; font-size: 20px; font-weight: 800; color: var(--c-text); }
.ap-camp__de span { display: block; font-size: 17px; font-weight: 500; color: var(--c-text2); }
.ap-camp__pant h3 { margin: 22px 0 0; font-size: 36px; font-weight: 800; letter-spacing: -.03em; line-height: 1.1; color: var(--c-text); }
.ap-camp__foto { position: relative; margin-top: 20px; border-radius: 22px; overflow: hidden; aspect-ratio: 4 / 3; }
.ap-camp__foto img { width: 100%; height: 100%; object-fit: cover; }
.ap-camp__foto b { position: absolute; right: 14px; top: 14px; padding: 9px 16px; border-radius: 100px; background: var(--g-rose); color: #fff; font-size: 24px; font-weight: 800; }
.ap-camp__txt { margin: 20px 0 0; font-size: 21px; line-height: 1.4; font-weight: 500; color: var(--c-text2); }
.ap-camp__btn { display: block; margin-top: 18px; padding: 16px; border-radius: 16px; background: var(--g-azul); color: #fff; text-align: center; font-size: 21px; font-weight: 800; }
.ap-camp__dato p { margin: 0 0 30px; font-size: 21px; font-weight: 500; color: var(--c-text2); }
.ap-camp__dato p b { display: block; font-size: 80px; font-weight: 800; letter-spacing: -.05em; line-height: 1; color: var(--c-azul); }
.ap-camp__dato small { font-size: 19px; font-weight: 500; line-height: 1.4; color: var(--c-text3); }
.ap-camp__sale { font-size: 30px !important; font-weight: 800 !important; letter-spacing: -.02em; line-height: 1.16; color: var(--c-text) !important; }
.ap-camp__sale small { display: block; margin-top: 6px; color: var(--c-menta-tx); font-weight: 700; }
.ap-camp__per { margin-bottom: 20px !important; padding-top: 18px; border-top: 1px solid var(--c-border); }
.ap-camp__dato .ap-camp__per b { display: block; font-size: 24px; letter-spacing: -.02em; line-height: 1.2; color: var(--c-text); }

/* ── Canal de denuncias: el código sale letra a letra ───────── */
.ap-canal { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 100px; align-items: center; max-width: 1400px; }
.ap-canal__sub { margin: 0; font-size: 58px; font-weight: 800; letter-spacing: -.04em; line-height: 1.08; color: var(--c-text); text-wrap: balance; }
.ap-canal__ley { margin: 26px 0 0; font-size: 25px; line-height: 1.42; font-weight: 500; color: var(--c-text2); }
.ap-canal__caso { padding-left: 80px; border-left: 1px solid var(--c-border); }
.ap-canal__etq { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin: 0; font-size: 20px; font-weight: 700; color: var(--c-text2); }
.ap-canal__etq em { font-style: normal; padding: 6px 14px; border-radius: 100px; background: var(--c-azul-soft); color: var(--c-azul-tx); font-size: 17px; }
.ap-canal__txt { margin: 22px 0 0; font-size: 29px; line-height: 1.42; font-weight: 500; color: var(--c-text); transition: filter 1.4s ease .3s, opacity 1.4s ease .3s; }
.js .ap-canal:not(.vx-in) .ap-canal__txt { filter: blur(10px); opacity: .4; }
.ap-canal__rec { margin: 42px 0 0; font-size: 20px; font-weight: 700; color: var(--c-menta-tx); }
.ap-canal__cod { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 12px 0 0; font-size: 62px; font-weight: 800; color: var(--c-text); }
.ap-canal__cod i { width: 66px; height: 84px; display: grid; place-items: center; border-radius: 16px; background: var(--c-surface2); font-style: normal; transition: opacity .3s ease calc(var(--i) * 130ms + 1.4s), transform .45s cubic-bezier(.3,1.5,.5,1) calc(var(--i) * 130ms + 1.4s); }
.ap-canal__cod u { text-decoration: none; color: var(--c-text3); }
.js .ap-canal:not(.vx-in) .ap-canal__cod i { opacity: 0; transform: rotateX(80deg); }
.ap-canal__gua { margin: 18px 0 0; font-size: 21px; font-weight: 500; color: var(--c-text2); }

/* ── Comunicación interna: las caras se encienden ───────────── */
.ap-com { max-width: 1120px; text-align: center; }
.ap-com__nota { position: relative; padding: 60px 70px 66px; border-radius: 14px; background: var(--c-surface); box-shadow: 0 30px 70px rgba(31, 39, 51, .12), 0 1px 2px rgba(31, 39, 51, .06); transform: rotate(-.7deg); }
.ap-com__nota::before { content: ""; position: absolute; left: 50%; top: -18px; width: 150px; height: 36px; margin-left: -75px; border-radius: 4px; background: color-mix(in srgb, var(--c-menta) 34%, transparent); transform: rotate(1.4deg); }
.ap-com__de { margin: 0; font-size: 20px; font-weight: 600; color: var(--c-text3); }
.ap-com__nota h3 { margin: 14px 0 0; font-size: 62px; font-weight: 800; letter-spacing: -.04em; line-height: 1.06; color: var(--c-text); }
.ap-com__nota h3 + p { margin: 22px 0 0; font-size: 26px; line-height: 1.42; font-weight: 500; color: var(--c-text2); }
.ap-com__cuenta { margin: 60px 0 0; font-size: 26px; font-weight: 500; color: var(--c-text2); }
.ap-com__cuenta b { font-weight: 800; color: var(--c-text); }
.ap-com__gente { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 26px 0 0; padding: 0; }
.ap-com__gente li { width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; background: var(--g-menta); color: #fff; font-size: 18px; font-weight: 800; transition: background .3s ease calc(var(--i) * 120ms + .4s), color .3s ease calc(var(--i) * 120ms + .4s), transform .4s cubic-bezier(.3,1.6,.5,1) calc(var(--i) * 120ms + .4s); }
.ap-com__gente .is-no { background: var(--c-surface2); color: var(--c-text3); }
.js .ap-com:not(.vx-in) .ap-com__gente li:not(.is-no) { background: var(--c-surface2); color: var(--c-text3); transform: scale(.86); }
.ap-com__falta { margin: 20px 0 0; font-size: 20px; font-weight: 500; color: var(--c-text3); }

/* ── Contabilidad: la línea del año se dibuja ───────────────── */
.ap-cont { max-width: 1400px; }
.ap-cont__cifras { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 60px; margin: 0; }
.ap-cont__cifras dt { font-size: 22px; font-weight: 600; color: var(--c-text2); }
.ap-cont__cifras dd { margin: 6px 0 0; font-size: 86px; font-weight: 800; letter-spacing: -.05em; line-height: 1.02; color: var(--c-text); white-space: nowrap; }
.ap-cont__cifras small { font-size: 21px; font-weight: 600; color: var(--c-text3); }
.ap-cont__cifras .is-res dd { color: var(--c-azul); }
.ap-cont__area { display: block; width: 100%; height: 340px; margin-top: 60px; overflow: visible; }
.ap-cont__l { fill: none; stroke: var(--c-azul); stroke-width: 5; stroke-linecap: round; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 0; transition: stroke-dashoffset 2.6s cubic-bezier(.4,0,.5,1) .3s; }
.js .ap-cont:not(.vx-in) .ap-cont__l { stroke-dashoffset: 1; }
.ap-cont__fondo { transition: opacity 1.4s ease 2.2s; }
.js .ap-cont:not(.vx-in) .ap-cont__fondo { opacity: 0; }
.ap-cont__meses { display: flex; justify-content: space-between; margin: 14px 0 0; font-size: 19px; font-weight: 600; color: var(--c-text3); }

/* ── Control horario: la hora, en grande, y un sello ────────── */
.ap-fichar { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 60px 90px; align-items: center; max-width: 1400px; }
.ap-fichar__hora { position: relative; }
.ap-fichar__n { margin: 0; font-size: 270px; font-weight: 800; letter-spacing: -.07em; line-height: .9; font-variant-numeric: tabular-nums; color: var(--c-text); }
.ap-fichar__s { margin: 22px 0 0; font-size: 30px; font-weight: 600; color: var(--c-text2); }
.ap-fichar__sello { position: absolute; right: 8px; bottom: -14px; padding: 12px 24px; border: 4px solid var(--c-menta-tx); border-radius: 14px; color: var(--c-menta-tx); font-size: 34px; font-weight: 800; letter-spacing: .02em; text-transform: uppercase; transform: rotate(-9deg); transition: transform .5s cubic-bezier(.2,1.2,.4,1) 1.5s, opacity .2s ease 1.5s; }
.js .ap-fichar:not(.vx-in) .ap-fichar__sello { opacity: 0; transform: rotate(-9deg) scale(2.4); }
.ap-fichar__qr { text-align: center; }
.ap-fichar__qr > span { display: inline-block; padding: 26px; border-radius: 30px; background: #fff; box-shadow: 0 24px 60px rgba(31, 39, 51, .12), 0 1px 2px rgba(31, 39, 51, .06); }
.ap-fichar__qr svg { display: block; width: 300px; height: 300px; }
.ap-fichar__qr p { margin: 18px 0 0; font-size: 20px; font-weight: 500; color: var(--c-text2); }
.ap-fichar__gente { grid-column: 1 / -1; list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 0; border-top: 1px solid var(--c-border); }
.ap-fichar__gente li { padding: 28px 28px 0; border-left: 1px solid var(--c-border); transition: opacity .6s ease calc(var(--i) * 260ms + 1.9s); }
.ap-fichar__gente li:first-child { padding-left: 0; border-left: 0; }
.js .ap-fichar:not(.vx-in) .ap-fichar__gente li { opacity: 0; }
.ap-fichar__gente b { display: block; font-size: 26px; font-weight: 800; letter-spacing: -.02em; color: var(--c-text); }
.ap-fichar__gente span { display: block; margin-top: 5px; font-size: 19px; line-height: 1.35; font-weight: 500; color: var(--c-text2); }
.ap-fichar__gente em { display: inline-block; margin-top: 12px; padding: 5px 13px; border-radius: 100px; background: var(--c-menta-soft); color: var(--c-menta-tx); font-style: normal; font-size: 17px; font-weight: 700; }
.ap-fichar__gente .is-aun em { background: var(--c-surface2); color: var(--c-text2); }

/* ── Facturas: el ticket sale de la impresora ───────────────── */
.ap-fact { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 90px; align-items: start; max-width: 1300px; }
.ap-fact__cobro { padding-top: 60px; }
.ap-fact__ok { display: inline-block; margin: 0; padding: 8px 18px; border-radius: 100px; background: var(--g-menta); color: #fff; font-size: 20px; font-weight: 800; }
.ap-fact__cobro h3 { margin: 22px 0 0; font-size: 68px; font-weight: 800; letter-spacing: -.045em; line-height: 1.05; color: var(--c-text); text-wrap: balance; }
.ap-fact__s { margin: 14px 0 0; font-size: 25px; font-weight: 500; color: var(--c-text2); }
.ap-fact__h { margin: 36px 0 0; font-size: 26px; font-weight: 500; color: var(--c-text2); }
.ap-fact__h b { font-weight: 800; color: var(--c-text); }
.ap-fact__btn { display: inline-block; margin-top: 24px; padding: 13px 24px; border-radius: 100px; border: 1px solid var(--c-border); font-size: 20px; font-weight: 700; color: var(--c-text); }
.ap-fact__impresora { position: relative; }
.ap-fact__ranura { position: relative; z-index: 2; display: block; height: 44px; border-radius: 22px; background: var(--g-azul); box-shadow: var(--sombra-azul); }
.ap-fact__salida { overflow: hidden; margin: -22px 34px 0; padding-top: 22px; }
.ap-fact__ticket { padding: 44px 44px 60px; background: var(--c-surface); box-shadow: inset 0 18px 18px -18px rgba(31, 39, 51, .3), inset 0 0 0 1px var(--c-border); font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; text-align: center; transition: transform 3s cubic-bezier(.25,.6,.3,1) .3s; clip-path: polygon(0 0, 100% 0, 100% 98%, 95% 100%, 90% 98%, 85% 100%, 80% 98%, 75% 100%, 70% 98%, 65% 100%, 60% 98%, 55% 100%, 50% 98%, 45% 100%, 40% 98%, 35% 100%, 30% 98%, 25% 100%, 20% 98%, 15% 100%, 10% 98%, 5% 100%, 0 98%); }
.js .ap-fact:not(.vx-in) .ap-fact__ticket { transform: translateY(-100%); }
.ap-fact__ticket b { font-size: 25px; color: var(--c-text); }
.ap-fact__ticket small { display: block; margin-top: 6px; font-size: 16px; line-height: 1.45; color: var(--c-text2); }
.ap-fact__tipo { margin: 24px 0; font-size: 18px; line-height: 1.5; color: var(--c-text); }
.ap-fact__ticket dl { margin: 0 0 22px; }
.ap-fact__ticket dl div { display: flex; justify-content: space-between; padding: 12px 0; border-top: 1px dashed var(--c-border); font-size: 18px; color: var(--c-text); }
.ap-fact__ticket dd { margin: 0; }
.ap-fact__ticket .t { font-size: 25px; font-weight: 800; }

/* ── Firma: la hoja, sola ───────────────────────────────────── */
.ap-firma { max-width: 1120px; }
.ap-firma .vx-papel { zoom: 1.3; }
.ap-firma__datos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; margin: 60px 0 0; }
.ap-firma__datos dt { font-size: 19px; font-weight: 700; color: var(--c-azul); }
.ap-firma__datos dd { margin: 6px 0 0; font-size: 22px; line-height: 1.32; font-weight: 600; color: var(--c-text); }

/* ── Gastos: el visor enfoca y dispara ──────────────────────── */
.ap-gasto { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 110px; align-items: center; max-width: 1400px; }
.ap-gasto__visor { position: relative; padding: 46px; }
.ap-gasto__papel { padding: 40px; background: var(--c-surface); border-radius: 8px; box-shadow: 0 30px 70px rgba(31, 39, 51, .14); transform: rotate(-2deg); font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.ap-gasto__papel b { font-size: 19px; color: var(--c-text); }
.ap-gasto__papel small { display: block; margin: 8px 0 22px; font-size: 16px; line-height: 1.5; color: var(--c-text2); }
.ap-gasto__papel dl { margin: 0; }
.ap-gasto__papel dl div { display: flex; justify-content: space-between; gap: 14px; padding: 12px 0; border-top: 1px dashed var(--c-border); font-size: 17px; color: var(--c-text); }
.ap-gasto__papel dd { margin: 0; white-space: nowrap; }
.ap-gasto__papel .t { font-size: 23px; font-weight: 800; }
.ap-gasto__visor .e { position: absolute; width: 66px; height: 66px; border: 5px solid var(--c-azul); transition: inset 1s cubic-bezier(.2,.8,.2,1) .2s; }
.e1 { left: 0; top: 0; border-right: 0 !important; border-bottom: 0 !important; border-radius: 22px 0 0 0; }
.e2 { right: 0; top: 0; border-left: 0 !important; border-bottom: 0 !important; border-radius: 0 22px 0 0; }
.e3 { left: 0; bottom: 0; border-right: 0 !important; border-top: 0 !important; border-radius: 0 0 0 22px; }
.e4 { right: 0; bottom: 0; border-left: 0 !important; border-top: 0 !important; border-radius: 0 0 22px 0; }
.js .ap-gasto:not(.vx-in) .e1 { left: -50px; top: -50px; }
.js .ap-gasto:not(.vx-in) .e2 { right: -50px; top: -50px; }
.js .ap-gasto:not(.vx-in) .e3 { left: -50px; bottom: -50px; }
.js .ap-gasto:not(.vx-in) .e4 { right: -50px; bottom: -50px; }
.ap-gasto__flash { position: absolute; inset: 0; border-radius: 22px; background: #fff; opacity: 0; pointer-events: none; }
.js .ap-gasto.vx-in .ap-gasto__flash { animation: apFlash .55s ease-out 1.15s 1; }
@keyframes apFlash { 0% { opacity: 0; } 18% { opacity: .95; } 100% { opacity: 0; } }
.ap-gasto__t { margin: 0 0 12px; font-size: 19px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--c-azul); }
.ap-gasto__leido dl { margin: 0; }
.ap-gasto__leido dl div { padding: 22px 0; border-bottom: 1px solid var(--c-border); transition: opacity .5s ease calc(var(--i) * 280ms + 1.6s), transform .5s ease calc(var(--i) * 280ms + 1.6s); }
.js .ap-gasto:not(.vx-in) .ap-gasto__leido dl div { opacity: 0; transform: translateX(-16px); }
.ap-gasto__leido dt { font-size: 19px; font-weight: 600; color: var(--c-text2); }
.ap-gasto__leido dd { margin: 4px 0 0; font-size: 28px; font-weight: 800; letter-spacing: -.02em; color: var(--c-text); }
.ap-gasto__q { margin: 30px 0 0; font-size: 26px; font-weight: 700; color: var(--c-text); }
.ap-gasto__ch { display: flex; flex-wrap: wrap; gap: 10px; margin: 16px 0 0; }
.ap-gasto__ch span { padding: 12px 22px; border-radius: 100px; border: 1px solid var(--c-border); font-size: 20px; font-weight: 700; color: var(--c-text2); }
.ap-gasto__ch .is-on { border-color: transparent; background: var(--g-azul); color: #fff; box-shadow: var(--sombra-azul); }

/* ── Documentos: los anillos se cierran ─────────────────────── */
.ap-docs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 60px; max-width: 1240px; text-align: center; }
.ap-docs__uno { position: relative; }
.ap-docs__uno svg { display: block; width: 300px; height: 300px; margin: 0 auto 28px; transform: rotate(-90deg); }
.ap-docs__uno circle { fill: none; stroke-width: 9; stroke-linecap: round; }
.ap-docs__uno .f { stroke: var(--c-surface2); }
.ap-docs__uno .v { stroke: var(--c-azul); stroke-dasharray: var(--p) 1; transition: stroke-dasharray 1.8s cubic-bezier(.3,.7,.2,1) calc(var(--i) * 300ms + .2s); }
.ap-docs__uno--firma .v { stroke: var(--c-menta); }
.js .ap-docs:not(.vx-in) .v { stroke-dasharray: 0 1; }
.ap-docs__uno b { position: absolute; left: 0; right: 0; top: 120px; font-size: 42px; font-weight: 800; letter-spacing: -.03em; color: var(--c-text); }
.ap-docs__uno strong { display: block; font-size: 28px; font-weight: 800; letter-spacing: -.02em; color: var(--c-text); }
.ap-docs__uno span { display: block; margin-top: 4px; font-size: 21px; font-weight: 500; color: var(--c-text2); }
.ap-docs__quien { list-style: none; max-width: 1000px; margin: 0 auto 150px; padding: 0; }
.ap-docs__quien li { display: grid; grid-template-columns: 240px minmax(0, 1fr) auto; align-items: center; gap: 20px; padding: 22px 0; border-top: 1px solid var(--c-border); font-size: 22px; font-weight: 500; color: var(--c-text2); }
.ap-docs__quien b { font-size: 25px; font-weight: 800; letter-spacing: -.02em; color: var(--c-text); }
.ap-docs__quien em { font-style: normal; padding: 7px 15px; border-radius: 100px; background: var(--c-surface2); font-size: 18px; font-weight: 700; color: var(--c-text2); }
.ap-docs__quien em.ok { background: var(--c-menta-soft); color: var(--c-menta-tx); }

/* ── Integraciones: las herramientas se juntan ──────────────── */
.ap-int { display: grid; grid-template-columns: minmax(0, 1fr) 240px minmax(0, 1fr); grid-template-rows: auto auto; gap: 44px 40px; align-items: center; max-width: 1300px; }
.ap-int__orbe { grid-column: 2; grid-row: 1 / 3; width: 220px; height: 220px; margin: 0 auto; transition: transform 1.2s cubic-bezier(.3,1.4,.5,1) .6s; }
.js .ap-int:not(.vx-in) .ap-int__orbe { transform: scale(.7); }
.ap-int__p { padding: 44px 46px; border-radius: 34px; background: var(--c-surface2); transition: transform 1.5s cubic-bezier(.16,.8,.24,1) .1s, opacity 1s ease .1s; }
.ap-int__p--a { grid-column: 1; grid-row: 1; } .ap-int__p--b { grid-column: 1; grid-row: 2; } .ap-int__p--c { grid-column: 3; grid-row: 1; } .ap-int__p--d { grid-column: 3; grid-row: 2; }
.js .ap-int:not(.vx-in) .ap-int__p--a, .js .ap-int:not(.vx-in) .ap-int__p--b { opacity: 0; transform: translateX(-200px); }
.js .ap-int:not(.vx-in) .ap-int__p--c, .js .ap-int:not(.vx-in) .ap-int__p--d { opacity: 0; transform: translateX(200px); }
.ap-int__p b { display: block; font-size: 36px; font-weight: 800; letter-spacing: -.03em; line-height: 1.12; color: var(--c-text); }
.ap-int__p span { display: block; margin-top: 10px; font-size: 23px; line-height: 1.38; font-weight: 500; color: var(--c-text2); }

/* ── Inteligencia artificial: la orden se escribe ───────────── */
.ap-ia { max-width: 1180px; }
.ap-ia__orden { display: flex; align-items: center; gap: 26px; min-height: 130px; margin: 0; padding: 26px 40px 26px 26px; border-radius: 100px; background: var(--c-surface); box-shadow: 0 24px 60px rgba(31, 39, 51, .13), 0 0 0 1px var(--c-border); font-size: 44px; font-weight: 700; letter-spacing: -.03em; color: var(--c-text); }
.ap-ia__orden img { flex: none; width: 76px; height: 76px; margin: 0; }
.ap-ia__hecho { list-style: none; margin: 56px 0 0; padding: 0 0 0 40px; }
.ap-ia__hecho li { position: relative; padding: 18px 0 18px 44px; transition: opacity .6s ease calc(var(--i) * 520ms + 2.2s), transform .6s ease calc(var(--i) * 520ms + 2.2s); }
.ap-ia__hecho li::before { content: ""; position: absolute; left: 0; top: 26px; width: 22px; height: 22px; border-radius: 50%; background: var(--g-menta); box-shadow: var(--sombra-menta); }
.js .ap-ia:not(.vx-in) .ap-ia__hecho li { opacity: 0; transform: translateY(14px); }
.ap-ia__hecho b { display: block; font-size: 32px; font-weight: 800; letter-spacing: -.025em; color: var(--c-text); }
.ap-ia__hecho span { display: block; margin-top: 4px; font-size: 23px; font-weight: 500; color: var(--c-text2); }
.ap-ia__mas { margin: 50px 0 0; padding-top: 34px; border-top: 1px solid var(--c-border); font-size: 25px; line-height: 1.6; font-weight: 500; color: var(--c-text3); }

/* ── Varios locales: caen las chinchetas ────────────────────── */
.ap-multi { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 70px; align-items: center; max-width: 1400px; }
.ap-multi__mapa { position: relative; aspect-ratio: 700 / 560; }
.ap-multi__mapa svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.costa { fill: var(--c-bg); stroke: var(--c-border); stroke-width: 2; }
.ap-multi__mapa .pin { position: absolute; display: flex; flex-direction: column; align-items: flex-start; padding-left: 40px; transition: transform .7s cubic-bezier(.3,1.5,.5,1) calc(var(--i) * 260ms + .3s), opacity .3s ease calc(var(--i) * 260ms + .3s); }
.js .ap-multi:not(.vx-in) .pin { opacity: 0; transform: translateY(-70px); }
.ap-multi__mapa .pin i { position: absolute; left: 0; top: 2px; width: 30px; height: 30px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); background: var(--g-azul); box-shadow: var(--sombra-azul); }
.ap-multi__mapa .is-ojo i { background: var(--g-rose); box-shadow: var(--sombra-rose); }
.ap-multi__mapa .pin b { font-size: 24px; font-weight: 800; letter-spacing: -.02em; white-space: nowrap; color: var(--c-text); }
.ap-multi__mapa .pin small { font-size: 18px; font-weight: 600; color: var(--c-text2); }
.ap-multi__t { margin: 0; font-size: 21px; font-weight: 700; color: var(--c-azul); }
.ap-multi__sede dl { display: flex; gap: 44px; margin: 14px 0 30px; }
.ap-multi__sede dd { margin: 0; font-size: 72px; font-weight: 800; letter-spacing: -.05em; line-height: 1; color: var(--c-text); }
.ap-multi__sede dt { margin-top: 4px; font-size: 19px; font-weight: 600; color: var(--c-text2); }
.ap-multi__sede dl div { display: flex; flex-direction: column-reverse; justify-content: flex-end; }
.ap-multi__sede ul { list-style: none; margin: 0; padding: 0; }
.ap-multi__sede li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 16px; padding: 20px 0; border-top: 1px solid var(--c-border); }
.ap-multi__sede li b { font-size: 23px; font-weight: 800; letter-spacing: -.02em; line-height: 1.22; color: var(--c-text); }
.ap-multi__sede li span { grid-column: 1; font-size: 19px; font-weight: 500; color: var(--c-text2); }
.ap-multi__sede em { grid-column: 2; grid-row: 1 / 3; align-self: center; font-style: normal; padding: 9px 18px; border-radius: 100px; background: var(--g-azul); color: #fff; font-size: 18px; font-weight: 700; }
.ap-multi__sede em.ok { background: var(--c-menta-soft); color: var(--c-menta-tx); }

/* ── Altas y bajas: dos caminos que avanzan ─────────────────── */
.ap-onoff { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 120px; max-width: 1240px; }
.ap-onoff__col h3 { margin: 0; font-size: 58px; font-weight: 800; letter-spacing: -.04em; line-height: 1.05; color: var(--c-text); }
.ap-onoff__s { margin: 10px 0 40px; font-size: 24px; font-weight: 500; color: var(--c-text2); }
.ap-onoff__col ol { position: relative; list-style: none; margin: 0; padding: 0 0 0 54px; }
.ap-onoff__col ol::before { content: ""; position: absolute; left: 13px; top: 12px; bottom: 30px; width: 3px; border-radius: 3px; background: linear-gradient(180deg, var(--c-menta) 0%, var(--c-menta) var(--hasta, 100%), var(--c-border) var(--hasta, 100%)); transform-origin: 50% 0; transition: transform 2.4s cubic-bezier(.3,.3,.3,1) .2s; }
.ap-onoff__col--baja ol { --hasta: 44%; }
.js .ap-onoff:not(.vx-in) .ap-onoff__col ol::before { transform: scaleY(0); }
.ap-onoff__col li { position: relative; padding-bottom: 32px; font-size: 22px; line-height: 1.36; font-weight: 500; color: var(--c-text2); transition: opacity .5s ease calc(var(--i) * 420ms + .4s); }
.ap-onoff__col li::before { content: ""; position: absolute; left: -54px; top: 0; width: 30px; height: 30px; border-radius: 50%; background: var(--g-menta); box-shadow: 0 0 0 6px var(--c-surface); }
.ap-onoff__col li.is-no::before { background: var(--c-surface2); box-shadow: 0 0 0 6px var(--c-surface), inset 0 0 0 2px var(--c-border); }
.js .ap-onoff:not(.vx-in) .ap-onoff__col li:not(.is-no) { opacity: .25; }
.ap-onoff__col li b { display: block; font-size: 28px; font-weight: 800; letter-spacing: -.02em; color: var(--c-text); }
.ap-onoff__fin { margin: 4px 0 0; font-size: 23px; font-weight: 800; color: var(--c-menta-tx); }
.ap-onoff__col--baja .ap-onoff__fin { color: var(--c-azul); }

/* ── Permisos: el mazo se va resolviendo ────────────────────── */
.ap-perm { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 90px; align-items: center; max-width: 1400px; }
.ap-perm__h { margin: 0; font-size: 62px; font-weight: 800; letter-spacing: -.04em; line-height: 1.08; color: var(--c-text); }
.ap-perm__s { margin: 24px 0 0; font-size: 25px; line-height: 1.42; font-weight: 500; color: var(--c-text2); }
.ap-perm__mazo { position: relative; height: 300px; }
.ap-perm__mazo article { position: absolute; inset: 0; padding: 44px 48px; border-radius: 32px; background: var(--c-surface); box-shadow: 0 24px 60px rgba(31, 39, 51, .14), 0 0 0 1px var(--c-border); }
.ap-perm__mazo b { display: block; font-size: 34px; font-weight: 800; letter-spacing: -.03em; line-height: 1.14; color: var(--c-text); }
.ap-perm__mazo span { display: block; margin-top: 10px; font-size: 23px; font-weight: 500; color: var(--c-text2); }
.ap-perm__mazo p { display: flex; gap: 10px; margin: 26px 0 0; }
.ap-perm__mazo em { font-style: normal; padding: 12px 24px; border-radius: 100px; border: 1px solid var(--c-border); font-size: 20px; font-weight: 700; color: var(--c-text2); }
.ap-perm__mazo em.si { border-color: transparent; background: var(--g-azul); color: #fff; }
.ap-perm__fin { display: flex; flex-direction: column; justify-content: center; text-align: center; background: var(--g-menta) !important; box-shadow: var(--sombra-menta) !important; }
.ap-perm__fin b, .ap-perm__fin span { color: #fff !important; }
.ap-perm__c { transition: transform .9s cubic-bezier(.5,0,.2,1) calc(var(--i) * 620ms + .9s), opacity .6s ease calc(var(--i) * 620ms + 1.1s); }
.ap-perm__c.der { transform: translateX(120%) rotate(12deg); opacity: 0; }
.ap-perm__c.izq { transform: translateX(-120%) rotate(-12deg); opacity: 0; }
.js .ap-perm:not(.vx-in) .ap-perm__c { opacity: 1; transform: none; }

/* ── Reportes: las hojas salen del montón ───────────────────── */
.ap-rep { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: 70px; align-items: center; max-width: 1400px; }
.ap-rep__hojas { position: relative; height: 640px; }
.ap-rep__h { position: absolute; left: 0; top: 0; width: 470px; height: 620px; padding: 44px 40px; background: var(--c-surface); border-radius: 12px; box-shadow: 0 24px 60px rgba(31, 39, 51, .14), 0 0 0 1px var(--c-border); transition: transform 1.6s cubic-bezier(.16,.8,.24,1) .2s; }
.ap-rep__h b { display: block; font-size: 32px; font-weight: 800; letter-spacing: -.03em; line-height: 1.12; color: var(--c-text); }
.ap-rep__h small { display: block; margin: 6px 0 26px; font-size: 18px; font-weight: 500; color: var(--c-text2); }
.ap-rep__h p { display: flex; justify-content: space-between; gap: 14px; margin: 0; padding: 20px 0; border-top: 1px solid var(--c-border); }
.ap-rep__h u { text-decoration: none; font-size: 20px; font-weight: 500; color: var(--c-text2); }
.ap-rep__h strong { font-size: 25px; font-weight: 800; letter-spacing: -.02em; color: var(--c-text); }
.ap-rep__h .lin { display: block; height: 16px; margin-top: 18px; border-radius: 8px; background: var(--c-surface2); }
.ap-rep__h .lin.c { width: 30%; background: var(--c-azul-soft); }
.h1 { z-index: 3; } .h2 { z-index: 2; transform: translateX(210px); } .h3 { z-index: 1; transform: translateX(420px); }
.js .ap-rep:not(.vx-in) .h2, .js .ap-rep:not(.vx-in) .h3 { transform: translateX(10px); }
.ap-rep__h.h2 b { margin-bottom: 26px; padding-left: 240px; font-size: 25px; }
.ap-rep__h.h2 p { padding-left: 240px; flex-direction: column; gap: 2px; }
.ap-rep__h.h3 b, .ap-rep__h.h3 small, .ap-rep__h.h3 .lin { margin-left: 240px; }
.ap-rep__h.h3 b { font-size: 24px; }
.ap-rep__h.h3 small { font-size: 18px; }
.ap-rep__f { margin: 0; font-size: 38px; font-weight: 800; letter-spacing: -.03em; color: var(--c-text); overflow-wrap: anywhere; }
.ap-rep__p { margin: 10px 0 0; font-size: 23px; line-height: 1.4; font-weight: 500; color: var(--c-text2); }
.ap-rep__baja > span { display: inline-block; margin-top: 24px; padding: 16px 30px; border-radius: 100px; background: var(--g-azul); color: #fff; box-shadow: var(--sombra-azul); font-size: 21px; font-weight: 800; }

/* ── Reseñas: las estrellas se llenan ───────────────────────── */
.ap-res { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 110px; align-items: center; max-width: 1400px; }
.ap-res__n { margin: 0; font-size: 210px; font-weight: 800; letter-spacing: -.06em; line-height: .95; color: var(--c-text); }
.ap-res__e { position: relative; width: fit-content; margin: 10px 0 0; font-size: 56px; letter-spacing: .04em; line-height: 1; color: var(--c-surface2); }
.ap-res__e i { position: absolute; left: 0; top: 0; width: 94%; overflow: hidden; white-space: nowrap; font-style: normal; color: var(--c-amarillo); transition: width 1.8s cubic-bezier(.3,.7,.2,1) .3s; }
.js .ap-res:not(.vx-in) .ap-res__e i { width: 0; }
.ap-res__s { margin: 14px 0 0; font-size: 22px; font-weight: 500; color: var(--c-text2); }
.ap-res__bar { list-style: none; margin: 34px 0 0; padding: 0; }
.ap-res__bar li { display: grid; grid-template-columns: 24px minmax(0, 1fr) 70px; align-items: center; gap: 14px; margin-top: 12px; font-size: 19px; font-weight: 700; color: var(--c-text2); }
.ap-res__bar u { text-decoration: none; }
.ap-res__bar i { display: block; height: 12px; border-radius: 12px; background: linear-gradient(90deg, var(--c-amarillo) 0 var(--w), var(--c-surface2) var(--w)); }
.ap-res__bar small { font-size: 18px; font-weight: 600; text-align: right; }
.ap-res__cita { margin: 0; }
.ap-res__cita > p:first-child { margin: 0; font-size: 62px; font-weight: 800; letter-spacing: -.04em; line-height: 1.1; color: var(--c-text); text-wrap: balance; }
.ap-res__cita footer { margin-top: 20px; font-size: 22px; font-weight: 500; color: var(--c-text2); }
.ap-res__resp { margin: 46px 0 0; padding: 26px 30px; border-radius: 24px 24px 24px 6px; background: var(--c-azul-soft); font-size: 24px; line-height: 1.4; font-weight: 600; color: var(--c-text); }
.ap-res__resp small { display: block; margin-bottom: 6px; font-size: 17px; font-weight: 700; color: var(--c-azul-tx); }
.ap-res__acc { display: flex; gap: 10px; margin: 16px 0 0; }
.ap-res__acc em { font-style: normal; padding: 12px 24px; border-radius: 100px; border: 1px solid var(--c-border); font-size: 20px; font-weight: 700; color: var(--c-text2); }
.ap-res__acc .si { border-color: transparent; background: var(--g-azul); color: #fff; box-shadow: var(--sombra-azul); }

/* ── Escáner de nóminas: las hojas vuelan a su dueño ────────── */
.ap-scan { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 80px; align-items: center; max-width: 1400px; }
.ap-scan__vuelo { position: relative; height: 640px; }
.ap-scan__rutas { position: absolute; inset: 0; width: 100%; height: 100%; }
.ap-scan__rutas path { fill: none; stroke: var(--c-border); stroke-width: 2; vector-effect: non-scaling-stroke; }
.ap-scan__pdf { position: absolute; left: 0; top: 50%; width: 230px; height: 280px; margin-top: -140px; padding: 26px; border-radius: 14px; background: var(--c-surface); box-shadow: 8px 8px 0 -1px var(--c-surface2), 16px 16px 0 -2px var(--c-surface2), 0 24px 60px rgba(31, 39, 51, .16), 0 0 0 1px var(--c-border); z-index: 2; }
.ap-scan__pdf b { display: block; font-size: 58px; font-weight: 800; letter-spacing: -.04em; color: var(--c-rose); }
.ap-scan__pdf small { display: block; margin-top: 12px; font-size: 14px; line-height: 1.4; font-weight: 600; color: var(--c-text2); overflow-wrap: anywhere; }
.ap-scan__vuelo .hoja { position: absolute; left: 60px; top: 50%; width: 92px; height: 120px; margin-top: -60px; border-radius: 8px; background: var(--c-azul-soft); box-shadow: 0 8px 20px rgba(31, 39, 51, .16); opacity: 0; }
.js .ap-scan.vx-in .hoja { animation: apVuela 1.5s cubic-bezier(.4,0,.2,1) calc(var(--i) * 300ms + .4s) 1 both; }
@keyframes apVuela { 0% { opacity: 0; transform: none; } 15% { opacity: 1; } 85% { opacity: 1; } 100% { opacity: 0; transform: translate(520px, var(--y)) rotate(6deg) scale(.5); } }
.ap-scan__vuelo ul { list-style: none; position: absolute; right: 0; top: 0; bottom: 0; display: flex; flex-direction: column; justify-content: center; gap: 44px; margin: 0; padding: 0; }
.ap-scan__vuelo li { width: 86px; height: 86px; border-radius: 50%; display: grid; place-items: center; background: var(--g-menta); box-shadow: var(--sombra-menta); color: #fff; font-size: 17px; font-weight: 800; transition: background .4s ease calc(var(--i) * 300ms + 1.7s), color .4s ease calc(var(--i) * 300ms + 1.7s), box-shadow .4s ease calc(var(--i) * 300ms + 1.7s); }
.js .ap-scan:not(.vx-in) .ap-scan__vuelo li { background: var(--c-surface2); color: var(--c-text2); box-shadow: none; }
.ap-scan__n { margin: 0; font-size: 190px; font-weight: 800; letter-spacing: -.06em; line-height: .95; color: var(--c-azul); }
.ap-scan__n small { font-size: .4em; letter-spacing: -.02em; }
.ap-scan__s { margin: 14px 0 0; font-size: 26px; line-height: 1.42; font-weight: 500; color: var(--c-text2); }
.ap-scan__ojo { margin: 34px 0 0; padding-top: 24px; border-top: 1px solid var(--c-border); font-size: 21px; line-height: 1.42; font-weight: 500; color: var(--c-text2); }
.ap-scan__ojo b { display: block; margin-bottom: 4px; font-size: 25px; font-weight: 800; letter-spacing: -.02em; color: var(--c-text); }

/* ── Soporte: una conversación, sin caja ────────────────────── */
.ap-sop { display: flex; flex-direction: column; gap: 22px; max-width: 1040px; }
.ap-sop__m { width: fit-content; max-width: 78%; margin: 0; padding: 26px 32px; font-size: 27px; line-height: 1.38; font-weight: 500; transition: opacity .6s ease calc(var(--i) * 900ms + .3s), transform .6s cubic-bezier(.2,.8,.2,1) calc(var(--i) * 900ms + .3s); }
.js .ap-sop:not(.vx-in) .ap-sop__m, .js .ap-sop:not(.vx-in) .ap-sop__fin { opacity: 0; transform: translateY(16px); }
.ap-sop__m small { display: block; margin-bottom: 6px; font-size: 18px; font-weight: 700; opacity: .75; }
.ap-sop__m.yo { align-self: flex-end; border-radius: 30px 30px 8px 30px; background: var(--g-azul); color: #fff; }
.ap-sop__m.te { border-radius: 30px 30px 30px 8px; background: var(--c-surface2); color: var(--c-text); }
.ap-sop__m.per { border-radius: 30px 30px 30px 8px; background: var(--c-menta-soft); color: var(--c-text); }
.ap-sop__fin { align-self: center; margin: 14px 0 0; padding: 14px 30px; border-radius: 100px; background: var(--g-menta); box-shadow: var(--sombra-menta); color: #fff; font-size: 23px; font-weight: 800; transition: opacity .6s ease calc(var(--i) * 900ms + .3s), transform .6s ease calc(var(--i) * 900ms + .3s); }

/* ── Tesorería: cada recordatorio sale ──────────────────────── */
.ap-tes { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 100px; align-items: center; max-width: 1400px; }
.ap-tes__t { margin: 0; font-size: 24px; font-weight: 600; color: var(--c-text2); }
.ap-tes__n { margin: 10px 0 0; font-size: 150px; font-weight: 800; letter-spacing: -.06em; line-height: 1; white-space: nowrap; color: var(--c-menta-tx); }
.ap-tes__d { margin: 20px 0 0; font-size: 30px; font-weight: 500; color: var(--c-text2); }
.ap-tes__d b { font-weight: 800; color: var(--c-rose-tx); }
.ap-tes__deben { list-style: none; margin: 0; padding: 0; }
.ap-tes__deben li { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 26px 0; border-top: 1px solid var(--c-border); font-size: 21px; font-weight: 500; color: var(--c-text2); }
.ap-tes__deben li:first-child { border-top: 0; }
.ap-tes__deben b { display: block; margin-bottom: 3px; font-size: 29px; font-weight: 800; letter-spacing: -.02em; color: var(--c-text); }
.ap-tes__deben em { position: relative; flex: none; display: grid; font-style: normal; font-size: 19px; font-weight: 700; text-align: center; }
.ap-tes__deben s, .ap-tes__deben u { grid-area: 1 / 1; padding: 11px 20px; border-radius: 100px; text-decoration: none; transition: opacity .5s ease calc(var(--i) * 500ms + 1.2s); }
.ap-tes__deben s { background: var(--g-azul); color: #fff; opacity: 0; }
.ap-tes__deben u { background: var(--c-menta-soft); color: var(--c-menta-tx); }
.js .ap-tes:not(.vx-in) .ap-tes__deben s { opacity: 1; }
.js .ap-tes:not(.vx-in) .ap-tes__deben u { opacity: 0; }

/* ── Theresa Advice: lo que más dinero mueve, primero ───────── */
.ap-adv { max-width: 1300px; }
.ap-adv__sem { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 30px; margin: 0; padding-bottom: 36px; border-bottom: 1px solid var(--c-border); }
.ap-adv__sem dd { margin: 0; font-size: 60px; font-weight: 800; letter-spacing: -.04em; line-height: 1; color: var(--c-text); }
.ap-adv__sem dt { margin-top: 6px; font-size: 20px; font-weight: 600; color: var(--c-text2); }
.ap-adv__lista { list-style: none; margin: 44px 0 0; padding: 0; }
.ap-adv__lista li { position: relative; display: grid; grid-template-columns: 330px minmax(0, 1fr); gap: 20px 44px; align-items: center; padding: 30px 0; }
.ap-adv__lista li > i { grid-column: 1 / -1; display: block; order: -1; height: 16px; width: var(--w); border-radius: 16px; background: var(--g-azul); transform-origin: 0 50%; transition: transform 1.6s cubic-bezier(.2,.8,.2,1) calc(var(--i) * 300ms + .2s); }
.js .ap-adv:not(.vx-in) .ap-adv__lista li > i { transform: scaleX(0); }
.ap-adv__lista .is-aviso > i { background: var(--g-rose); }
.ap-adv__lista strong { font-size: 76px; font-weight: 800; letter-spacing: -.05em; line-height: 1; white-space: nowrap; color: var(--c-text); }
.ap-adv__lista .is-aviso strong { color: var(--c-rose-tx); }
.ap-adv__lista div b { display: block; font-size: 19px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--c-azul); }
.ap-adv__lista .is-aviso div b { color: var(--c-rose-tx); }
.ap-adv__lista div span { display: block; margin-top: 5px; font-size: 24px; line-height: 1.38; font-weight: 500; color: var(--c-text2); }

/* ── Vacaciones: el año, entero ─────────────────────────────── */
.ap-vac { max-width: 1400px; }
.ap-vac__cab { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px 40px; margin-bottom: 50px; }
.ap-vac__n { display: flex; align-items: flex-end; gap: 20px; margin: 0; font-size: 150px; font-weight: 800; letter-spacing: -.06em; line-height: .86; color: var(--c-menta-tx); }
.ap-vac__n small { margin-bottom: 10px; max-width: 8em; font-size: 28px; font-weight: 700; letter-spacing: -.02em; line-height: 1.16; color: var(--c-text); }
.ap-vac__s { margin: 0 0 10px; font-size: 23px; font-weight: 500; color: var(--c-text2); }

/* ── Ventas: la barra de cómo te pagan se reparte ───────────── */
.ap-ven { max-width: 1400px; }
.ap-ven__cifras { display: grid; grid-template-columns: minmax(0, 5fr) repeat(3, minmax(0, 3fr)); gap: 44px; align-items: end; margin: 0; }
.ap-ven__cifras dt { font-size: 21px; font-weight: 600; color: var(--c-text2); }
.ap-ven__cifras dd { margin: 6px 0 0; font-size: 56px; font-weight: 800; letter-spacing: -.04em; line-height: 1.04; white-space: nowrap; color: var(--c-text); }
.ap-ven__cifras .is-gran dd { font-size: 120px; letter-spacing: -.055em; line-height: .96; color: var(--c-azul); }
.ap-ven__cifras .is-mal dd { color: var(--c-rose-tx); }
.ap-ven__cifras small { font-size: 19px; font-weight: 600; color: var(--c-text3); }
.ap-ven__t { margin: 70px 0 14px; font-size: 19px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--c-text2); }
.ap-ven__barra { display: flex; gap: 6px; height: 104px; }
.ap-ven__barra i { display: flex; align-items: center; justify-content: center; flex: 0 0 auto; width: calc(var(--w) - 5px); overflow: hidden; border-radius: 18px; font-style: normal; font-size: 22px; font-weight: 800; white-space: nowrap; color: #fff; transition: width 1.1s cubic-bezier(.4,0,.2,1) calc(var(--i) * 500ms + .2s); }
.js .ap-ven:not(.vx-in) .ap-ven__barra i { width: 0; }
.ap-ven__barra .a { background: var(--g-azul); } .ap-ven__barra .b { background: var(--g-menta); } .ap-ven__barra .c { background: var(--g-rose); }
.ap-ven__barra .d { background: linear-gradient(165deg, color-mix(in srgb, var(--c-text3) 62%, #fff), var(--c-text3)); font-size: 17px; }
.ap-ven__hoy { list-style: none; margin: 50px 0 0; padding: 0; }
.ap-ven__hoy li { display: grid; grid-template-columns: minmax(0, 1fr) 260px 110px; align-items: center; gap: 20px; padding: 20px 0; border-top: 1px solid var(--c-border); font-size: 21px; font-weight: 500; color: var(--c-text2); }
.ap-ven__hoy b { font-size: 25px; font-weight: 800; letter-spacing: -.02em; color: var(--c-text); }
.ap-ven__hoy strong { text-align: right; font-size: 25px; font-weight: 800; color: var(--c-text); }
.ap-ven__hoy .pen strong { color: var(--c-rose-tx); }

/* ── Verifactu: cae el sello y se enciende la cadena ────────── */
.ap-veri { display: grid; grid-template-columns: 500px minmax(0, 1fr); gap: 110px; align-items: center; max-width: 1240px; }
.ap-veri__ticket { position: relative; padding: 50px 46px 60px; background: var(--c-surface); text-align: center; box-shadow: 0 30px 70px rgba(31, 39, 51, .14), 0 0 0 1px var(--c-border); font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; transform: rotate(-1.4deg); }
.ap-veri__ticket b { font-size: 26px; color: var(--c-text); }
.ap-veri__ticket small { display: block; margin-top: 4px; font-size: 17px; color: var(--c-text2); }
.ap-veri__ticket p { margin: 22px 0; font-size: 18px; line-height: 1.5; color: var(--c-text); }
.ap-veri__ticket dl { margin: 0; }
.ap-veri__ticket dl div { display: flex; justify-content: space-between; padding: 13px 0; border-top: 1px dashed var(--c-border); font-size: 19px; color: var(--c-text); }
.ap-veri__ticket dd { margin: 0; }
.ap-veri__ticket .t { font-size: 27px; font-weight: 800; }
.ap-veri__sello { position: absolute; right: -50px; bottom: -34px; padding: 14px 24px; border: 5px solid var(--c-azul); border-radius: 14px; background: color-mix(in srgb, var(--c-surface) 86%, transparent); color: var(--c-azul); font-family: 'Manrope', system-ui, sans-serif; font-size: 34px; font-weight: 800; letter-spacing: .02em; transform: rotate(-11deg); transition: transform .45s cubic-bezier(.2,1.1,.4,1) .9s, opacity .15s ease .9s; }
.js .ap-veri:not(.vx-in) .ap-veri__sello { opacity: 0; transform: rotate(-11deg) scale(3); }
.ap-veri__ok { margin: 0; font-size: 22px; font-weight: 500; color: var(--c-text2); }
.ap-veri__ok b { display: block; margin-bottom: 6px; font-size: 54px; font-weight: 800; letter-spacing: -.04em; line-height: 1.08; color: var(--c-text); text-wrap: balance; }
.ap-veri__cadena { list-style: none; display: flex; margin: 50px 0 0; padding: 0; }
.ap-veri__cadena li { position: relative; flex: 1; height: 54px; margin-right: 18px; border-radius: 14px; background: var(--g-menta); box-shadow: var(--sombra-menta); transition: background .4s ease calc(var(--i) * 220ms + 1.4s), box-shadow .4s ease calc(var(--i) * 220ms + 1.4s); }
.ap-veri__cadena li:last-child { margin-right: 0; }
.ap-veri__cadena li:not(:last-child)::after { content: ""; position: absolute; right: -18px; top: 50%; width: 18px; height: 5px; margin-top: -2.5px; background: var(--c-menta); }
.js .ap-veri:not(.vx-in) .ap-veri__cadena li { background: var(--c-surface2); box-shadow: none; }
.ap-veri__cad { margin: 22px 0 0; font-size: 21px; font-weight: 500; color: var(--c-text2); }
.ap-veri__cad b { display: block; font-size: 30px; font-weight: 800; letter-spacing: -.02em; color: var(--c-menta-tx); }
.ap-veri__num { display: flex; gap: 60px; margin: 36px 0 0; }
.ap-veri__num dd { margin: 0; font-size: 62px; font-weight: 800; letter-spacing: -.04em; line-height: 1; color: var(--c-text); }
.ap-veri__num dt { margin-top: 4px; font-size: 19px; font-weight: 600; color: var(--c-text2); }
.ap-veri__num div { display: flex; flex-direction: column; }

/* ── Tableta y móvil (sin zoom) ─────────────────────────────── */
@media (max-width: 1023px) {
  .ap-mail, .ap-ext, .ap-bolsa, .ap-caja, .ap-camp, .ap-canal, .ap-com, .ap-cont, .ap-fichar, .ap-fact, .ap-firma, .ap-gasto, .ap-int, .ap-ia, .ap-multi, .ap-onoff, .ap-perm, .ap-rep, .ap-res, .ap-scan, .ap-sop, .ap-tes, .ap-adv, .ap-vac, .ap-ven, .ap-veri { margin: 24px auto 70px; }
  .ap-docs { margin: 24px auto 30px; }
  .ap-mail, .ap-ext, .ap-canal, .ap-fichar, .ap-fact, .ap-gasto, .ap-multi, .ap-onoff, .ap-perm, .ap-rep, .ap-res, .ap-scan, .ap-tes, .ap-veri { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  /* Email */
  .ap-mail__lista li { padding: 14px 12px; }
  .ap-mail__lista b { font-size: 16px; }
  .ap-mail__lista span { font-size: 14px; }
  .ap-mail__lista em { padding: 4px 9px; font-size: 12px; }
  .ap-mail__de { font-size: 16px; } .ap-mail__de span { display: block; margin: 0; font-size: 13px; }
  .ap-mail__de--t { margin-top: 24px; }
  .ap-mail__txt { font-size: 18px; }
  .ap-mail__si { margin-top: 16px; padding: 10px 14px; font-size: 15px; }
  .ap-mail__hecho { margin-top: 10px; padding: 8px 14px; font-size: 14px; }
  /* Banco */
  .ap-ext__n, .ap-scan__n { font-size: 96px; }
  .ap-ext__s { margin-top: 8px; font-size: 18px; }
  .ap-ext__iva { margin-top: 18px; padding-top: 14px; font-size: 16px; }
  .ap-ext__filas li { gap: 10px; padding: 14px 10px; font-size: 13px; }
  .ap-ext__filas b { font-size: 12px; overflow-wrap: anywhere; }
  .ap-ext__filas strong { font-size: 15px; }
  /* Bolsa */
  .ap-bolsa__n { font-size: 104px; }
  .ap-bolsa__s { margin-top: 10px; font-size: 16px; }
  .ap-bolsa__barras { gap: 8px; height: 170px; margin-top: 28px; }
  .ap-bolsa__barras .up::after { border-radius: 8px 8px 0 0; } .ap-bolsa__barras .dn::after { border-radius: 0 0 8px 8px; }
  .ap-bolsa__eje { font-size: 13px; }
  .ap-bolsa__acc { gap: 10px; margin-top: 24px; font-size: 15px; }
  .ap-bolsa__acc em { padding: 10px 18px; font-size: 14px; }
  /* Caja */
  .ap-caja__montones { gap: 8px; }
  .ap-caja__montones p { font-size: 14px; }
  .ap-caja__montones small { font-size: 11px; line-height: 1.25; }
  .ap-caja__montones i { height: 30px; margin-top: -19px; border-radius: 6px; }
  .ap-caja__montones .bm i { width: 34px; height: 34px; margin-top: -22px; }
  .ap-caja__montones span { margin-bottom: 10px; }
  .ap-caja__suma { margin-top: 34px; }
  .ap-caja__suma > div { padding: 14px 10px 0; }
  .ap-caja__suma dt { font-size: 12px; }
  .ap-caja__suma dd { margin-top: 4px; font-size: clamp(18px, 5.4vw, 34px); letter-spacing: -.03em; }
  /* Campañas */
  .ap-camp { grid-template-columns: minmax(0, 1fr); gap: 28px; justify-items: center; }
  .ap-camp__movil { width: 100%; max-width: 340px; height: 500px; padding: 10px 10px 0; border-radius: 40px 40px 0 0; order: -1; }
  .ap-camp__pant { padding: 28px 18px 0; border-radius: 30px 30px 0 0; }
  .ap-camp__de { font-size: 14px; } .ap-camp__de span { font-size: 12px; }
  .ap-camp__pant h3 { margin-top: 12px; font-size: 23px; }
  .ap-camp__foto { margin-top: 12px; border-radius: 14px; }
  .ap-camp__foto b { right: 8px; top: 8px; padding: 5px 10px; font-size: 15px; }
  .ap-camp__txt { margin-top: 12px; font-size: 14px; }
  .ap-camp__btn { margin-top: 10px; padding: 11px; border-radius: 12px; font-size: 14px; }
  .ap-camp__dato { width: 100%; }
  .ap-camp__dato p { margin-bottom: 16px; font-size: 15px; }
  .ap-camp__dato p b { font-size: 46px; }
  .ap-camp__dato small { font-size: 13px; }
  .ap-camp__sale { font-size: 20px !important; }
  .ap-camp__per { margin-bottom: 10px !important; padding-top: 10px; }
  .ap-camp__dato .ap-camp__per b { font-size: 17px; }
  /* Canal */
  .ap-canal__sub { font-size: 32px; }
  .ap-canal__ley { margin-top: 12px; font-size: 16px; }
  .ap-canal__caso { padding-left: 0; border-left: 0; padding-top: 26px; border-top: 1px solid var(--c-border); }
  .ap-canal__etq { gap: 8px; font-size: 13px; } .ap-canal__etq em { font-size: 12px; padding: 3px 10px; }
  .ap-canal__txt { margin-top: 12px; font-size: 18px; }
  .ap-canal__rec { margin-top: 22px; font-size: 14px; }
  .ap-canal__cod { gap: 3px; margin-top: 8px; font-size: clamp(16px, 5.4vw, 30px); }
  .ap-canal__cod i { width: clamp(24px, 7.8vw, 44px); height: clamp(34px, 10.6vw, 58px); border-radius: 8px; }
  .ap-canal__gua { margin-top: 10px; font-size: 14px; }
  /* Comunicación */
  .ap-com__nota { padding: 34px 22px 36px; }
  .ap-com__nota::before { top: -12px; width: 90px; height: 24px; margin-left: -45px; }
  .ap-com__de { font-size: 13px; }
  .ap-com__nota h3 { margin-top: 8px; font-size: 30px; }
  .ap-com__nota h3 + p { margin-top: 12px; font-size: 16px; }
  .ap-com__cuenta { margin-top: 30px; font-size: 15px; }
  .ap-com__gente { gap: 6px; margin-top: 14px; }
  .ap-com__gente li { width: 38px; height: 38px; font-size: 12px; }
  .ap-com__falta { margin-top: 10px; font-size: 13px; }
  /* Contabilidad */
  .ap-cont__cifras { gap: 14px; }
  .ap-cont__cifras dt { font-size: 12px; }
  .ap-cont__cifras dd { margin-top: 2px; font-size: clamp(19px, 5.8vw, 44px); letter-spacing: -.03em; }
  .ap-cont__cifras small { font-size: 11px; line-height: 1.25; display: block; }
  .ap-cont__area { height: 180px; margin-top: 26px; }
  .ap-cont__meses { margin-top: 8px; font-size: 12px; }
  /* Fichar */
  .ap-fichar__n { font-size: clamp(96px, 28vw, 170px); }
  .ap-fichar__s { margin-top: 10px; font-size: 18px; }
  .ap-fichar__sello { right: 0; bottom: 26px; padding: 6px 12px; border-width: 3px; border-radius: 9px; font-size: 17px; }
  .ap-fichar__qr > span { padding: 14px; border-radius: 20px; }
  .ap-fichar__qr svg { width: 170px; height: 170px; }
  .ap-fichar__qr p { margin-top: 10px; font-size: 14px; }
  .ap-fichar__gente { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 14px; }
  .ap-fichar__gente li { padding: 14px 0; border-left: 0; }
  .ap-fichar__gente b { font-size: 17px; }
  .ap-fichar__gente span { margin-top: 3px; font-size: 13px; }
  .ap-fichar__gente em { margin-top: 7px; padding: 3px 9px; font-size: 12px; }
  /* Facturas */
  .ap-fact__cobro { padding-top: 0; }
  .ap-fact__ok { padding: 5px 12px; font-size: 13px; }
  .ap-fact__cobro h3 { margin-top: 12px; font-size: 36px; }
  .ap-fact__s { margin-top: 8px; font-size: 16px; }
  .ap-fact__h { margin-top: 16px; font-size: 16px; }
  .ap-fact__btn { margin-top: 12px; padding: 9px 16px; font-size: 14px; }
  .ap-fact__ranura { height: 28px; }
  .ap-fact__salida { margin: -14px 20px 0; padding-top: 14px; }
  .ap-fact__ticket { padding: 26px 20px 34px; }
  .ap-fact__ticket b { font-size: 17px; }
  .ap-fact__ticket small { font-size: 11px; }
  .ap-fact__tipo { margin: 14px 0; font-size: 13px; }
  .ap-fact__ticket dl { margin-bottom: 14px; }
  .ap-fact__ticket dl div { padding: 8px 0; font-size: 13px; }
  .ap-fact__ticket .t { font-size: 17px; }
  /* Firma */
  .ap-firma .vx-papel { zoom: 1; padding: 22px 18px 40px !important; }
  .ap-firma__datos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 30px; }
  .ap-firma__datos dt { font-size: 13px; }
  .ap-firma__datos dd { margin-top: 3px; font-size: 15px; }
  /* Gastos */
  .ap-gasto__visor { padding: 24px; }
  .ap-gasto__papel { padding: 20px; }
  .ap-gasto__papel b { font-size: 12px; }
  .ap-gasto__papel small { margin: 5px 0 12px; font-size: 11px; }
  .ap-gasto__papel dl div { padding: 7px 0; font-size: 12px; }
  .ap-gasto__papel .t { font-size: 15px; }
  .ap-gasto__visor .e { width: 38px; height: 38px; border-width: 3px; }
  .ap-gasto__t { font-size: 12px; }
  .ap-gasto__leido dl div { padding: 12px 0; }
  .ap-gasto__leido dt { font-size: 13px; }
  .ap-gasto__leido dd { font-size: 17px; }
  .ap-gasto__q { margin-top: 18px; font-size: 17px; }
  .ap-gasto__ch { gap: 6px; margin-top: 10px; }
  .ap-gasto__ch span { padding: 8px 13px; font-size: 13px; }
  /* Documentos */
  .ap-docs { gap: 10px; }
  .ap-docs__uno svg { width: 100%; max-width: 110px; height: auto; margin-bottom: 10px; }
  .ap-docs__uno b { top: clamp(38px, 12vw, 42px); font-size: 14px; }
  .ap-docs__uno strong { font-size: 13px; line-height: 1.2; }
  .ap-docs__uno span { font-size: 11px; line-height: 1.25; }
  .ap-docs__quien { margin-bottom: 70px; }
  .ap-docs__quien li { grid-template-columns: minmax(0, 1fr) auto; gap: 2px 10px; padding: 13px 0; font-size: 14px; }
  .ap-docs__quien b { font-size: 16px; }
  .ap-docs__quien span { grid-column: 1; }
  .ap-docs__quien em { grid-column: 2; grid-row: 1 / 3; padding: 4px 10px; font-size: 12px; }
  /* Integraciones */
  .ap-int { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: none; gap: 12px; }
  .ap-int__orbe { grid-column: 1 / -1; grid-row: 2; width: 110px; height: 110px; }
  .ap-int__p { padding: 18px 16px; border-radius: 20px; }
  .ap-int__p--a { grid-column: 1; grid-row: 1; } .ap-int__p--c { grid-column: 2; grid-row: 1; } .ap-int__p--b { grid-column: 1; grid-row: 3; } .ap-int__p--d { grid-column: 2; grid-row: 3; }
  .ap-int__p b { font-size: 18px; }
  .ap-int__p span { margin-top: 5px; font-size: 13px; }
  .js .ap-int:not(.vx-in) .ap-int__p--a, .js .ap-int:not(.vx-in) .ap-int__p--b, .js .ap-int:not(.vx-in) .ap-int__p--c, .js .ap-int:not(.vx-in) .ap-int__p--d { transform: translateY(30px); }
  /* IA */
  .ap-ia__orden { gap: 12px; min-height: 96px; padding: 14px 20px 14px 14px; border-radius: 30px; font-size: 21px; }
  .ap-ia__orden img { width: 44px; height: 44px; }
  .ap-ia__hecho { margin-top: 26px; padding-left: 8px; }
  .ap-ia__hecho li { padding: 11px 0 11px 28px; }
  .ap-ia__hecho li::before { top: 16px; width: 14px; height: 14px; }
  .ap-ia__hecho b { font-size: 19px; }
  .ap-ia__hecho span { font-size: 14px; }
  .ap-ia__mas { margin-top: 24px; padding-top: 18px; font-size: 15px; }
  /* Locales */
  .ap-multi__mapa .pin { padding-left: 22px; }
  .ap-multi__mapa .pin i { width: 16px; height: 16px; }
  .ap-multi__mapa .pin b { font-size: 12px; }
  .ap-multi__mapa .pin small { font-size: 11px; }
  .ap-multi__t { font-size: 14px; }
  .ap-multi__sede dl { gap: 24px; margin: 8px 0 16px; }
  .ap-multi__sede dd { font-size: 40px; }
  .ap-multi__sede dt { font-size: 13px; }
  .ap-multi__sede li { padding: 13px 0; }
  .ap-multi__sede li b { font-size: 15px; }
  .ap-multi__sede li span { font-size: 13px; }
  .ap-multi__sede em { padding: 6px 12px; font-size: 13px; }
  /* Altas */
  .ap-onoff__col h3 { font-size: 30px; }
  .ap-onoff__s { margin: 6px 0 20px; font-size: 16px; }
  .ap-onoff__col ol { padding-left: 34px; }
  .ap-onoff__col ol::before { left: 9px; }
  .ap-onoff__col li { padding-bottom: 18px; font-size: 14px; }
  .ap-onoff__col li::before { left: -34px; width: 20px; height: 20px; box-shadow: 0 0 0 4px var(--c-surface); }
  .ap-onoff__col li b { font-size: 17px; }
  .ap-onoff__fin { font-size: 15px; }
  /* Permisos */
  .ap-perm__h { font-size: 34px; }
  .ap-perm__s { margin-top: 12px; font-size: 16px; }
  .ap-perm__mazo { height: 220px; overflow: hidden; border-radius: 22px; }
  .ap-perm__mazo article { padding: 22px 20px; border-radius: 22px; }
  .ap-perm__mazo b { font-size: 20px; }
  .ap-perm__mazo span { margin-top: 6px; font-size: 14px; }
  .ap-perm__mazo p { margin-top: 14px; }
  .ap-perm__mazo em { padding: 8px 14px; font-size: 13px; }
  /* Reportes */
  .ap-rep__hojas { height: 390px; }
  .ap-rep__h { width: 72%; height: 370px; padding: 22px 18px; }
  .ap-rep__h b { font-size: 18px; }
  .ap-rep__h small { margin: 3px 0 12px; font-size: 11px; }
  .ap-rep__h p { padding: 10px 0; }
  .ap-rep__h u { font-size: 12px; }
  .ap-rep__h strong { font-size: 14px; }
  .h2 { transform: translateX(12%); } .h3 { transform: translateX(26%); }
  .js .ap-rep:not(.vx-in) .h2, .js .ap-rep:not(.vx-in) .h3 { transform: translateX(4px); }
  .ap-rep__h.h2 b, .ap-rep__h.h2 p, .ap-rep__h.h3 b, .ap-rep__h.h3 small, .ap-rep__h.h3 .lin { display: none; }
  .ap-rep__f { font-size: 22px; }
  .ap-rep__p { margin-top: 6px; font-size: 15px; }
  .ap-rep__baja > span { margin-top: 14px; padding: 12px 20px; font-size: 15px; }
  /* Reseñas */
  .ap-res__n { font-size: 110px; }
  .ap-res__e { font-size: 34px; }
  .ap-res__s { margin-top: 8px; font-size: 15px; }
  .ap-res__bar { margin-top: 18px; }
  .ap-res__bar li { grid-template-columns: 14px minmax(0, 1fr) 42px; gap: 8px; margin-top: 7px; font-size: 13px; }
  .ap-res__bar i { height: 8px; }
  .ap-res__bar small { font-size: 12px; }
  .ap-res__cita > p:first-child { font-size: 31px; }
  .ap-res__cita footer { margin-top: 10px; font-size: 14px; }
  .ap-res__resp { margin-top: 22px; padding: 16px 18px; font-size: 16px; }
  .ap-res__resp small { font-size: 12px; }
  .ap-res__acc em { padding: 9px 16px; font-size: 14px; }
  /* Escáner */
  .ap-scan__vuelo { height: 330px; }
  .ap-scan__pdf { width: 104px; height: 140px; margin-top: -70px; padding: 12px; border-radius: 9px; }
  .ap-scan__pdf b { font-size: 28px; }
  .ap-scan__pdf small { margin-top: 6px; font-size: 9px; }
  .ap-scan__vuelo .hoja { left: 24px; width: 50px; height: 66px; margin-top: -33px; }
  .js .ap-scan.vx-in .hoja { animation-name: apVuelaM; }
  @keyframes apVuelaM { 0% { opacity: 0; transform: none; } 15% { opacity: 1; } 85% { opacity: 1; } 100% { opacity: 0; transform: translate(62vw, calc(var(--y) * .48)) rotate(6deg) scale(.5); } }
  .ap-scan__vuelo ul { gap: 14px; }
  .ap-scan__vuelo li { width: 50px; height: 50px; font-size: 11px; }
  .ap-scan__s { margin-top: 8px; font-size: 16px; }
  .ap-scan__ojo { margin-top: 18px; padding-top: 14px; font-size: 14px; }
  .ap-scan__ojo b { font-size: 17px; }
  /* Soporte */
  .ap-sop { gap: 12px; }
  .ap-sop__m { max-width: 90%; padding: 14px 16px; font-size: 16px; }
  .ap-sop__m small { margin-bottom: 3px; font-size: 12px; }
  .ap-sop__m.yo { border-radius: 20px 20px 6px 20px; }
  .ap-sop__m.te, .ap-sop__m.per { border-radius: 20px 20px 20px 6px; }
  .ap-sop__fin { padding: 10px 20px; font-size: 15px; }
  /* Tesorería */
  .ap-tes__t { font-size: 15px; }
  .ap-tes__n { margin-top: 6px; font-size: clamp(60px, 18vw, 110px); }
  .ap-tes__d { margin-top: 10px; font-size: 18px; }
  .ap-tes__deben li { gap: 10px; padding: 14px 0; font-size: 14px; }
  .ap-tes__deben b { font-size: 18px; }
  .ap-tes__deben em { font-size: 13px; }
  .ap-tes__deben s, .ap-tes__deben u { padding: 7px 12px; }
  /* Advice */
  .ap-adv__sem { gap: 16px 20px; padding-bottom: 20px; }
  .ap-adv__sem > div { flex: 1 1 40%; }
  .ap-adv__sem dd { font-size: 34px; }
  .ap-adv__sem dt { margin-top: 3px; font-size: 13px; }
  .ap-adv__lista { margin-top: 18px; }
  .ap-adv__lista li { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 16px 0; }
  .ap-adv__lista li > i { height: 10px; }
  .ap-adv__lista strong { font-size: 44px; }
  .ap-adv__lista div b { font-size: 12px; }
  .ap-adv__lista div span { font-size: 15px; }
  /* Vacaciones */
  .ap-vac__cab { margin-bottom: 24px; }
  .ap-vac__n { gap: 10px; font-size: 90px; }
  .ap-vac__n small { margin-bottom: 4px; font-size: 18px; }
  .ap-vac__s { margin-bottom: 0; font-size: 15px; }
  /* Ventas */
  .ap-ven__cifras { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 14px; }
  .ap-ven__cifras .is-gran { grid-column: 1 / -1; }
  .ap-ven__cifras dt { font-size: 13px; }
  .ap-ven__cifras dd { margin-top: 3px; font-size: clamp(18px, 5.2vw, 34px); letter-spacing: -.03em; }
  .ap-ven__cifras .is-gran dd { font-size: 68px; }
  .ap-ven__cifras small { display: block; font-size: 11px; line-height: 1.25; }
  .ap-ven__t { margin: 34px 0 8px; font-size: 12px; }
  .ap-ven__barra { gap: 3px; height: 56px; }
  .ap-ven__barra i { width: calc(var(--w) - 2px); border-radius: 10px; font-size: 11px; white-space: normal; text-align: center; line-height: 1.15; }
  .ap-ven__barra .d { font-size: 10px; }
  .ap-ven__hoy { margin-top: 26px; }
  .ap-ven__hoy li { grid-template-columns: minmax(0, 1fr) auto; gap: 2px 10px; padding: 12px 0; font-size: 13px; }
  .ap-ven__hoy b { font-size: 15px; }
  .ap-ven__hoy span { grid-column: 1; }
  .ap-ven__hoy strong { grid-column: 2; grid-row: 1 / 3; font-size: 16px; }
  /* Verifactu */
  .ap-veri__ticket { padding: 28px 22px 36px; }
  .ap-veri__ticket b { font-size: 18px; }
  .ap-veri__ticket small { font-size: 12px; }
  .ap-veri__ticket p { margin: 14px 0; font-size: 13px; }
  .ap-veri__ticket dl div { padding: 8px 0; font-size: 13px; }
  .ap-veri__ticket .t { font-size: 18px; }
  .ap-veri__sello { right: -8px; bottom: -18px; padding: 7px 12px; border-width: 3px; border-radius: 9px; font-size: 18px; }
  .ap-veri__ok { font-size: 15px; }
  .ap-veri__ok b { font-size: 30px; }
  .ap-veri__cadena { margin-top: 24px; }
  .ap-veri__cadena li { height: 32px; margin-right: 10px; border-radius: 9px; }
  .ap-veri__cadena li:not(:last-child)::after { right: -10px; width: 10px; height: 3px; margin-top: -1.5px; }
  .ap-veri__cad { margin-top: 12px; font-size: 14px; }
  .ap-veri__cad b { font-size: 20px; }
  .ap-veri__num { gap: 34px; margin-top: 18px; }
  .ap-veri__num dd { font-size: 36px; }
  .ap-veri__num dt { font-size: 13px; }
}
@media (min-width: 641px) and (max-width: 1023px) {
  .ap-onoff, .ap-fichar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ap-fichar__gente { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  .ap-mail *, .ap-ext *, .ap-bolsa *, .ap-caja *, .ap-camp *, .ap-canal *, .ap-com *, .ap-cont *, .ap-fichar *, .ap-fact *, .ap-gasto *, .ap-docs *, .ap-int *, .ap-ia *, .ap-multi *, .ap-onoff *, .ap-perm *, .ap-rep *, .ap-res *, .ap-scan *, .ap-sop *, .ap-tes *, .ap-adv *, .ap-ven *, .ap-veri * { transition: none !important; animation: none !important; }
}
