/* Demo: cartera, pagos y flujo de caja (prefijo fz-). Usa los tokens del kit (--dx-*) y del sitio (--peach-*, --grad). */
.dx[data-demo="finanzas"]{--fz-a0:linear-gradient(180deg,#7ad7a3,#2a9a5f);--fz-a1:linear-gradient(180deg,var(--peach-200),var(--peach-300));
  --fz-a2:linear-gradient(180deg,#f2925f,#e5612d);--fz-a3:linear-gradient(180deg,#ef5a82,#e61b57);--fz-a4:linear-gradient(180deg,#c9372c,#8f1c14)}
.fz-sm{font-size:11.5px}
.fz-r{text-align:right;justify-self:end}
.fz-sw{display:inline-flex;align-items:center}
.fz-sw > [data-k]{display:none}
.fz-sw[data-s="a"] > [data-k="a"],.fz-sw[data-s="b"] > [data-k="b"],.fz-sw[data-s="c"] > [data-k="c"]{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;animation:fzSw .4s var(--ease) both}
.fz-sw-blk,.fz-sw-blk > [data-k]{width:100%}
.dx-fast .fz-sw > [data-k]{animation:none}
@keyframes fzSw{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}
.fz-kpis .dx-kpi b{font-size:21px}
.fz-kpis .dx-kpi{position:relative;overflow:hidden}
.fz-kpis .dx-kpi::after{content:"";position:absolute;left:14px;right:14px;bottom:0;height:2px;border-radius:2px;background:var(--grad);opacity:.0;transition:opacity .4s}
.fz-kpis .dx-kpi:first-child::after{opacity:.7}

/* 1 · Cartera por edades */
.fz-cgrid{grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);align-items:start}
.fz-aging{display:grid;gap:10px}
.fz-aging .dx-h5,.fz-prio .dx-h5,.fz-list .dx-h5{margin:0}
.fz-bars{--bmax:168px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;height:236px;padding:4px 2px 0;border-bottom:1px solid var(--dx-line)}
.fz-b{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px;min-width:0;padding-bottom:6px}
.fz-b em{font-style:normal;font-size:11.5px;font-weight:650;color:var(--dx-ink);opacity:0;transform:translateY(4px);transition:opacity .4s var(--ease),transform .4s var(--ease)}
.fz-b i{display:block;width:min(46px,100%);height:calc(var(--h) * var(--bmax));border-radius:9px 9px 4px 4px;transform:scaleY(0);transform-origin:bottom;transition:transform .9s var(--ease);box-shadow:0 8px 16px -12px rgba(179,61,24,.6)}
.fz-b span{font-size:11.5px;font-weight:600;color:var(--dx-ink-2)}
.fz-b small{margin-top:-4px;font-size:10px;color:var(--dx-ink-3)}
.fz-b.a0 i{background:var(--fz-a0)}.fz-b.a1 i{background:var(--fz-a1)}.fz-b.a2 i{background:var(--fz-a2)}.fz-b.a3 i{background:var(--fz-a3)}.fz-b.a4 i{background:var(--fz-a4)}
.fz-aging.is-in .fz-b i{transform:none}
.fz-aging.is-in .fz-b em{opacity:1;transform:none}
.fz-aging.is-in .fz-b:nth-child(2) i{transition-delay:.08s}.fz-aging.is-in .fz-b:nth-child(3) i{transition-delay:.16s}
.fz-aging.is-in .fz-b:nth-child(4) i{transition-delay:.24s}.fz-aging.is-in .fz-b:nth-child(5) i{transition-delay:.32s}
.fz-aging.is-in .fz-b em{transition-delay:.7s}
.fz-stack{display:flex;gap:2px;height:8px;border-radius:9px;overflow:hidden;background:var(--dx-line)}
.fz-stack i{display:block;width:0;height:100%;transition:width 1s var(--ease) .3s}
.fz-stack i.a0{background:#3fb075}.fz-stack i.a1{background:var(--peach-300)}.fz-stack i.a2{background:#e5612d}.fz-stack i.a3{background:#e61b57}.fz-stack i.a4{background:#a3241a}
.fz-aging.is-in .fz-stack i{width:calc(var(--w) * 1%)}
.fz-aging .dx-row b{color:var(--dx-ink);font-size:12px}
.fz-age{display:inline-grid;place-items:center;min-width:40px;height:21px;padding:0 7px;border-radius:99px;font-size:10.5px;font-weight:700;font-variant-numeric:tabular-nums}
.fz-age.a0{background:var(--dx-ok-bg);color:var(--dx-ok)}.fz-age.a1{background:var(--dx-peach);color:var(--dx-acc-ink)}
.fz-age.a2{background:var(--dx-peach-2);color:#a5360f}.fz-age.a3{background:#fde3ea;color:#b0123f}.fz-age.a4{background:var(--dx-bad-bg);color:var(--dx-bad)}
.fz-prio{display:grid;gap:10px}
.fz-ptab{--cols:minmax(0,1fr) 46px 104px 140px}
.fz-rows{display:grid}
.fz-rows > .dx-tr:first-child{border-top:1px solid var(--dx-line)}
.fz-rows > .dx-tr{background:#fff}
.fz-rows > .dx-tr.is-hot{background:var(--dx-peach)}
.fz-foot{display:flex;justify-content:space-between;min-height:34px;background:var(--dx-canvas);font-size:11.5px;color:var(--dx-ink-3)}
.fz-foot .fz-r{display:inline-flex;align-items:center;gap:4px;font-weight:600;color:var(--dx-acc-ink)}
.fz-foot svg{width:13px;height:13px}
.fz-ptab .fz-rows .dx-tr{min-height:46px}
.fz-cl{display:flex;align-items:center;gap:9px;min-width:0}
.fz-cl > span:last-child{display:grid;min-width:0}
.fz-cl b,.fz-cl small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fz-cl b{font-size:12.4px;font-weight:600;color:var(--dx-ink)}
.fz-cl small{font-size:10.5px;color:var(--dx-ink-3)}
.fz-cl .dx-ic{width:28px;height:28px;border-radius:9px}
.fz-cl .dx-ic svg{width:14px;height:14px}
.fz-ptab b.dx-num{font-size:12.5px;color:var(--dx-ink)}
.fz-act{display:flex;justify-content:flex-end}
.fz-act .dx-tag{height:22px;font-size:10.5px}
.dx-btn.fz-go{height:26px;padding:0 11px;font-size:11.5px}
.fz-prio .dx-row .dx-tag{height:20px;font-size:10.5px}
.fz-note{display:flex;align-items:center;gap:6px;margin:0;font-size:11px;color:var(--dx-ink-3)}
.fz-note svg{width:13px;height:13px;color:var(--dx-acc);flex:none}
.dx-tr.is-hot{box-shadow:inset 3px 0 0 var(--dx-acc)}

/* 2 · Cobros: bandeja, conversación y ficha */
.fz-inbox{display:grid;grid-template-columns:226px minmax(0,1fr) 256px;gap:12px;height:478px;min-height:0}
.fz-list{display:flex;flex-direction:column;gap:6px;padding:12px 10px;overflow:hidden}
.fz-list > .dx-row{padding:0 4px}
.fz-tabs{display:flex;gap:4px;margin:2px 0 4px;padding:0 2px}
.fz-tabs span{padding:3px 8px;border-radius:99px;background:var(--dx-canvas);font-size:10.5px;font-weight:600;color:var(--dx-ink-3)}
.fz-tabs span.is-on{background:var(--dx-ink);color:#fff}
.fz-ci{display:grid;grid-template-columns:28px minmax(0,1fr) auto;grid-template-rows:auto auto auto;align-items:center;column-gap:9px;row-gap:2px;padding:8px 9px;border-radius:12px;border:1px solid transparent}
.fz-ci .dx-av{grid-row:1/3;align-self:start;width:28px;height:28px;font-size:10px}
.fz-ci.is-on{background:var(--dx-peach);border-color:var(--peach-200)}
.fz-ci > b{grid-column:2/4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.6px;color:var(--dx-ink)}
.fz-ci-tm{grid-column:3;grid-row:3;justify-self:end;align-self:end;font-size:9.5px;color:var(--dx-ink-3)}
.fz-ci-p{grid-column:2/4;grid-row:2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;color:var(--dx-ink-3)}
.fz-ci-s{grid-column:2/4;grid-row:3;justify-self:start;margin-top:3px}
.fz-ci .dx-tag{height:18px;padding:0 6px;font-size:9.5px}
.fz-ci .dx-tag svg{width:10px;height:10px}
.fz-thread{display:flex;flex-direction:column;min-height:0;padding:0;overflow:hidden}
.fz-th-top{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--dx-line);background:#fff}
.fz-th-top b{display:block;font-size:13px;color:var(--dx-ink)}
.fz-th-top small{display:block;font-size:10.5px;color:var(--dx-ink-3)}
.fz-th-top .sp{flex:1}
.fz-th-top .dx-tag{height:20px;font-size:10.5px}
.fz-chat{flex:1;min-height:0;justify-content:flex-end;border-radius:0;padding:12px 14px}
.fz-chat .dx-msg{max-width:82%}
.fz-chat .dx-msg.out small::after{content:" ✓✓";color:#53bdeb;letter-spacing:-2px}
.fz-lnk{display:block;margin-top:4px;padding:6px 8px;border-radius:6px;background:rgba(0,0,0,.05);color:var(--dx-acc-ink);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.fz-compose{display:flex;align-items:center;gap:10px;padding:9px 12px;border-top:1px solid var(--dx-line);background:#fff}
.fz-compose span{flex:1;display:flex;align-items:center;height:32px;padding:0 14px;border-radius:99px;background:var(--dx-canvas);font-size:12px;color:var(--dx-ink-3)}
.fz-compose svg{width:18px;height:18px;color:var(--dx-acc)}
.fz-ctx{align-content:start;gap:10px;min-height:0}
.fz-client{display:grid;gap:7px}
.fz-client .dx-row b{display:block;font-size:12.6px;color:var(--dx-ink)}
.fz-client .dx-row small{display:block;font-size:10.5px;color:var(--dx-ink-3)}
.fz-kv{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11.8px}
.fz-kv > span:first-child{color:var(--dx-ink-3)}
.fz-kv b{color:var(--dx-ink)}
.fz-hist{display:grid;gap:5px;padding-top:2px;font-size:11.8px;color:var(--dx-ink-3)}
.fz-hist small{font-size:10.5px;color:var(--dx-ink-3)}
.fz-dots{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:3px}
.fz-dots i{height:10px;border-radius:3px;background:#3fb075}
.fz-dots i.late{background:#f2b33d}
.fz-prop{gap:8px}
.fz-prop p{font-size:11.8px;line-height:1.4}
.fz-cuotas{display:grid;gap:5px}
.fz-cuota{display:grid;grid-template-columns:20px minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:6px 8px;border-radius:10px;background:var(--dx-canvas);font-size:11.8px;color:var(--dx-ink-2)}
.fz-cuota > b:first-child{display:grid;place-items:center;width:20px;height:20px;border-radius:7px;background:var(--grad-cta);color:#fff;font-size:10.5px}
.fz-cuota small{font-size:10.5px;color:var(--dx-ink-3)}
.fz-cuota b.dx-num{color:var(--dx-ink)}
.fz-prop .acts,.fz-prop .acts > .fz-sw,.fz-prop .acts > .fz-sw > [data-k]{width:100%}
.fz-prop .acts > .fz-sw > [data-k="a"]{flex-direction:column;align-items:stretch;gap:6px}
.fz-prop .acts .dx-tag{height:24px;font-size:10.5px}
.fz-prop .acts .dx-btn{height:32px}
.fz-dec{display:inline-flex;align-items:center;justify-content:center;gap:5px;font-size:11px;color:var(--dx-ink-3)}
.fz-dec svg{width:13px;height:13px}
.fz-prop.is-ok{background:linear-gradient(#fff,#fff) padding-box,linear-gradient(var(--dx-ok),var(--dx-ok)) border-box;box-shadow:0 10px 22px -18px rgba(19,122,70,.6)}

/* 3 · Aprobación (capa sobre la app) */
.fz-modal{position:absolute;inset:42px 0 0;z-index:5;display:grid;place-items:center;padding:16px;background:rgba(18,22,51,.24);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);transition:opacity .35s var(--ease),visibility 0s}
.fz-modal.is-off{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .35s var(--ease),visibility 0s .35s}
.fz-sheet{display:grid;gap:11px;width:min(440px,100%);padding:18px;border-radius:22px;background:#fff;box-shadow:var(--sh-3);transition:transform .55s var(--spring)}
.fz-modal.is-off .fz-sheet{transform:translateY(26px) scale(.96)}
.fz-sh-top{display:flex;align-items:center;gap:10px}
.fz-sh-top small{display:block;font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--dx-ink-3)}
.fz-sh-top b{display:block;font-size:16px;letter-spacing:-.01em;color:var(--dx-ink)}
.fz-sh-top .sp{flex:1}
.fz-sh-top .dx-ic{width:38px;height:38px;border-radius:12px;background:var(--grad-cta);color:#fff}
.fz-sh-top .dx-ic svg{width:19px;height:19px}
.fz-sh-sum{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:12px;background:var(--dx-canvas);font-size:12px;color:var(--dx-ink-2)}
.fz-sh-sum b{font-size:15px;color:var(--dx-ink)}
.fz-plan{display:grid}
.fz-pq{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:10px;padding:7px 2px;border-bottom:1px dashed var(--dx-line-2)}
.fz-pq:last-child{border-bottom:0}
.fz-pq-n{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--peach-200);font-size:10.5px;font-weight:700;color:var(--dx-acc-ink)}
.fz-pq b{display:block;font-size:12.4px;color:var(--dx-ink)}
.fz-pq small{display:block;font-size:10.5px;color:var(--dx-ink-3)}
.fz-checks{display:grid;gap:5px;margin:0;padding:0;list-style:none;font-size:11.8px;color:var(--dx-ink-2)}
.fz-checks li{display:flex;align-items:center;gap:7px}
.fz-checks svg{width:14px;height:14px;color:var(--dx-ok);flex:none}
.fz-by{display:flex;align-items:center;gap:6px;margin:0;font-size:11px;color:var(--dx-ink-3)}
.fz-by svg{width:13px;height:13px;color:var(--dx-acc);flex:none}
.fz-acts{justify-content:flex-end;gap:8px}
.fz-sw-blk > [data-k="a"]{justify-content:flex-end}
.fz-sheet > .fz-sw-blk{margin-top:18px}
.fz-stamp{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:10px 12px;border-radius:12px;background:var(--dx-ok-bg);color:var(--dx-ok);font-size:12.5px;font-weight:650}
.fz-stamp svg{width:17px;height:17px}

/* 4 · Conciliación */
.fz-pill{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 12px;border-radius:99px;background:#fff;border:1px solid var(--dx-line);font-size:11.5px;color:var(--dx-ink-3)}
.fz-pill b{font-size:13.5px;color:var(--dx-ok)}
.fz-recon{grid-template-columns:minmax(0,1fr) minmax(0,1.16fr);align-items:stretch;height:318px}
.fz-movs{display:flex;flex-direction:column;gap:8px;overflow:hidden}
.fz-feed{display:grid;grid-auto-rows:max-content;gap:6px;align-content:start;min-height:0;-webkit-mask-image:linear-gradient(#000 82%,transparent);mask-image:linear-gradient(#000 82%,transparent)}
.fz-movs .dx-h5{margin:0}
.fz-mv{display:grid;grid-template-columns:32px minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;column-gap:10px;row-gap:2px;padding:6px 10px;border-radius:12px;border:1px solid var(--dx-line);background:#fff}
.fz-mv[hidden]{display:none}
.fz-mv > .dx-ic{grid-row:1/3}
.fz-mv-t{grid-row:1/3;display:grid;min-width:0}
.fz-mv-t b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--dx-ink)}
.fz-mv-t small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;color:var(--dx-ink-3)}
.fz-in{justify-self:end;font-size:12.4px;color:var(--dx-ok)}
.fz-mv-s{justify-self:end}
.fz-mv .dx-tag{height:20px;padding:0 7px;font-size:10px}
.fz-mv .dx-tag svg{width:11px;height:11px}
.fz-sug{display:grid;justify-items:end;gap:1px}
.fz-sug small{font-size:9.5px;color:var(--dx-ink-3)}
.fz-mv.is-new.is-in{border-color:var(--peach-200);box-shadow:0 0 0 3px rgba(229,97,45,.12);animation:fzIn .6s var(--spring) both}
@keyframes fzIn{from{opacity:0;transform:translateY(-10px) scale(.97)}to{opacity:1;transform:none}}
.fz-kb{overflow:visible;height:100%}
.fz-kcol{min-height:0}
.fz-kcol{min-height:0;padding:9px}
.fz-kcol > p{margin:0}
.fz-kcol > p .dx-num{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:99px;background:#fff;border:1px solid var(--dx-line);font-size:10.5px;color:var(--dx-ink-2)}
.fz-kcol[data-col="pagadas"]{background:rgba(230,246,236,.55);border-color:#bfe3cd}
.fz-cards{display:grid;gap:8px;align-content:start}
.fz-inv{display:grid;gap:4px;padding:10px;border-radius:12px;background:#fff;border:1px solid var(--dx-line);box-shadow:0 1px 2px rgba(18,22,51,.05);font-size:11.5px;transition:border-color .3s,box-shadow .3s}
.fz-inv-h{display:flex;align-items:center;justify-content:space-between;gap:6px}
.fz-inv-h > b{font-size:12px;color:var(--dx-ink)}
.fz-inv-n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dx-ink-3);font-size:11px}
.fz-inv-v{font-size:13px;color:var(--dx-ink)}
.fz-inv .dx-tag{height:19px;padding:0 6px;font-size:10px}
.fz-inv .dx-tag svg{width:10px;height:10px}
.fz-inv .fz-age{height:19px;min-width:36px;font-size:10px}
.fz-q{height:6px;margin-top:3px}
.fz-q i{background:linear-gradient(90deg,#3fb075,#2a9a5f)}
.fz-qt{font-size:10px;color:var(--dx-ink-3)}
.fz-inv.is-hot{border-color:var(--peach-200);box-shadow:0 0 0 3px rgba(229,97,45,.14)}
.fz-kcol[data-col="pagadas"] .fz-inv{border-color:#cdebd9}

/* Registro de cruces: cada criterio se enciende al cruzar el pago con su factura */
.fz-match{display:grid;gap:8px;padding:12px 14px}
.fz-match .dx-h5{margin:0}
.fz-match .dx-row .dx-tag{height:20px;font-size:10.5px}
.fz-mlog{display:grid;grid-auto-rows:max-content;gap:5px;align-content:start;height:122px;overflow:hidden}
.fz-mrow{display:grid;grid-template-columns:34px minmax(0,1fr) 262px 14px 170px 118px;align-items:center;gap:10px;min-height:37px;padding:3px 10px;border-radius:11px;background:var(--dx-canvas);border:1px solid transparent;transition:background-color .4s,border-color .4s,box-shadow .4s}
.fz-mrow[hidden]{display:none}
.fz-mrow.is-new.is-in{background:#fff;border-color:var(--peach-200);box-shadow:0 0 0 3px rgba(229,97,45,.1);animation:fzIn .6s var(--spring) both}
.fz-mrow.is-new.is-done{background:#fff;border-color:var(--dx-line);box-shadow:none}
.fz-mt{font-size:10.5px;color:var(--dx-ink-3);font-variant-numeric:tabular-nums}
.fz-mm{display:flex;align-items:center;gap:8px;min-width:0}
.fz-mm .dx-ic{width:26px;height:26px;border-radius:8px}
.fz-mm .dx-ic svg{width:13px;height:13px}
.fz-mm > span:last-child{display:grid;min-width:0}
.fz-mm b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.8px;color:var(--dx-ink)}
.fz-mm small{font-size:10.5px;font-weight:650;color:var(--dx-ok)}
.fz-mi{display:none;font-weight:500;color:var(--dx-ink-3)}
.fz-crits{display:flex;flex-wrap:wrap;gap:5px}
.fz-crit{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px 0 6px;border-radius:99px;background:#fff;border:1px solid var(--dx-line);font-size:10.5px;font-weight:600;color:var(--dx-ink-3);white-space:nowrap;transition:background-color .3s,color .3s,border-color .3s}
.fz-crit svg{display:none;width:11px;height:11px}
.fz-crit i{width:10px;height:10px;border-radius:50%;border:1.5px dashed var(--dx-line-2);flex:none}
.fz-crit.is-ok{background:var(--dx-ok-bg);border-color:#cdebd9;color:var(--dx-ok);animation:fzPop .4s var(--spring)}
.fz-crit.is-ok svg{display:block}
.fz-crit.is-ok i{display:none}
.fz-crit.is-na{background:transparent;border-style:dashed}
.fz-crit.is-na i{width:8px;height:2px;border:0;border-radius:2px;background:var(--dx-ink-3)}
@keyframes fzPop{from{transform:scale(.8)}60%{transform:scale(1.08)}to{transform:none}}
.fz-marr svg{display:block;width:14px;height:14px;color:var(--dx-ink-3)}
.fz-minv{display:grid;min-width:0}
.fz-minv b{font-size:11.8px;color:var(--dx-ink)}
.fz-minv small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;color:var(--dx-ink-3)}
.fz-mst{justify-self:end}
.fz-mst .dx-tag,.fz-mrow .fz-sw .dx-tag{height:21px;font-size:10.5px}
.fz-mrow .fz-sw{justify-self:end}

/* 5 · Cuentas por pagar */
.fz-ap{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:start}
.fz-aptab{display:grid;gap:10px}
.fz-aptab .dx-h5,.fz-flow .dx-h5,.fz-sched .dx-h5{margin:0}
.fz-aptab .dx-row .dx-tag{height:20px;font-size:10.5px}
.fz-ptab2{--cols:minmax(0,1fr) 46px 104px 50px 116px}
.fz-ptab2 .dx-tr:not(.th){min-height:44px}
.fz-ptab2 .dx-tr > span:nth-child(2){font-size:11.5px;color:var(--dx-ink-3)}
.fz-ptab2 .dx-tag{height:21px;font-size:10.5px}
.fz-ap2{display:inline-flex;gap:4px}
.fz-ap2 i{width:11px;height:11px;border-radius:50%;border:2px solid var(--dx-line-2);background:#fff;transition:background-color .4s,border-color .4s,transform .4s var(--spring)}
.fz-ap2 i.is-on{border-color:var(--dx-ok);background:var(--dx-ok)}
.fz-ap2 i[data-dot].is-on{transform:scale(1.15)}
.fz-flow{display:grid;gap:8px;transition:box-shadow .4s,border-color .4s}
.fz-flow.is-in{border-color:var(--peach-200);box-shadow:0 0 0 3px rgba(229,97,45,.1)}
.fz-3w{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.fz-3w-c{position:relative;display:grid;gap:1px;min-width:0;padding:8px 9px;border-radius:11px;background:var(--dx-canvas);border:1px solid var(--dx-line);transition:background-color .35s,border-color .35s}
.fz-3w-c small{font-size:10.3px;color:var(--dx-ink-3);white-space:nowrap}
.fz-3w-c b{font-size:11.8px;color:var(--dx-ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.fz-3w-c em{font-style:normal;font-size:10px;color:var(--dx-ink-3)}
.fz-3w-k{position:absolute;right:7px;bottom:7px;display:grid;place-items:center;width:16px;height:16px;border-radius:50%;border:1.5px dashed var(--dx-line-2);background:#fff;transition:background-color .3s,border-color .3s}
.fz-3w-k svg{width:10px;height:10px;color:#fff;opacity:0}
.fz-3w-c.is-in{background:var(--dx-ok-bg);border-color:#cdebd9}
.fz-3w-c.is-in .fz-3w-k{border:0;background:var(--dx-ok);animation:fzPop .4s var(--spring)}
.fz-3w-c.is-in .fz-3w-k svg{opacity:1}
.fz-flow > .dx-row .dx-tag{height:20px;font-size:10.5px}
.fz-tl li{padding-bottom:9px;font-size:11.8px}
.fz-tl li::before{top:22px}
.fz-tl .dx-muted{display:block;font-size:10.5px}
.fz-tl li > small,.fz-tl li > .fz-sw small{font-size:10.5px;color:var(--dx-ink-3)}
.fz-tl li.is-now b{color:var(--dx-acc-ink)}
.fz-safe{display:flex;align-items:center;gap:6px;margin:0;font-size:11px;font-weight:600;color:var(--dx-ok)}
.fz-safe svg{width:14px;height:14px}
.fz-flow > .fz-sw .dx-btn{width:100%}
.fz-flow > .fz-sw,.fz-flow > .fz-sw > [data-k]{width:100%}
.fz-flow > .fz-sw .dx-tag{height:30px;width:100%;justify-content:center;font-size:11.5px}
.fz-sched{display:grid;gap:9px}
.fz-sched .dx-row b{color:var(--dx-ink)}
.fz-days{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.fz-day{display:grid;align-content:start;gap:5px;min-height:76px;padding:7px;border-radius:12px;background:var(--dx-canvas);border:1px dashed var(--dx-line-2)}
.fz-day > span:first-child{font-size:10.5px;font-weight:650;letter-spacing:.03em;text-transform:uppercase;color:var(--dx-ink-3)}
.fz-pay{display:grid;gap:1px;padding:5px 8px;border-radius:9px;background:#fff;border:1px solid var(--dx-line);font-size:10.5px}
.fz-pay[hidden]{display:none}
.fz-pay b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.8px;color:var(--dx-ink)}
.fz-pay em{font-style:normal;font-weight:650;color:var(--dx-acc-ink);font-variant-numeric:tabular-nums}
.fz-pay.is-new.is-in{background:var(--dx-peach);border-color:var(--peach-200);animation:fzIn .6s var(--spring) both}

/* 6 · Flujo de caja */
.fz-cfgrid{grid-template-columns:minmax(0,1.62fr) minmax(0,1fr);align-items:start}
.fz-cfcard{display:grid;gap:6px}
.fz-cfcard .dx-h5{margin:0}
.fz-leg{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--dx-ink-3)}
.fz-leg i{width:14px;height:3px;border-radius:3px;margin-left:6px}
.fz-leg i.l0{background:var(--dx-acc)}.fz-leg i.l1{background:var(--dx-ok)}
.fz-cf text,.fz-cf .lb{font-size:9.5px}
.fz-cf .lb.fz-dt{font-size:8.5px;opacity:.85}
.fz-band{fill:var(--dx-bad);opacity:0;transition:opacity .5s var(--ease)}
.fz-cf.is-alert .fz-band{opacity:.08}
.fz-cf.is-scn .fz-band{opacity:0}
.fz-min{stroke:var(--dx-bad);stroke-width:1.2;stroke-dasharray:4 4;opacity:.65}
.fz-cf .fz-min-t{fill:var(--dx-bad);font-weight:650}
.fz-area{opacity:0;transition:opacity .9s var(--ease) .9s}
.fz-cf.is-in .fz-area{opacity:1}
.fz-cf .fz-base{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);transition:stroke-dashoffset 1.8s var(--ease),opacity .6s,stroke .6s}
.fz-cf.is-in .fz-base{stroke-dashoffset:0}
.fz-cf.is-scn .fz-base{opacity:.35;stroke:var(--dx-ink-3)}
.fz-cf.is-scn .fz-area{opacity:.35}
.fz-scn{fill:none;stroke:var(--dx-ok);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:var(--len);stroke-dashoffset:var(--len);transition:stroke-dashoffset 1.5s var(--ease)}
.fz-cf.is-scn .fz-scn{stroke-dashoffset:0}
.fz-cf .pt{fill:#fff;stroke:var(--dx-acc);stroke-width:2;opacity:0;transition:opacity .35s 1.5s}
.fz-cf.is-in .pt{opacity:1}
.fz-cf .pt.pt-bad{fill:var(--dx-bad);stroke:#fff;transform-box:fill-box;transform-origin:center}
.fz-cf.is-alert .pt-bad{animation:fzPt 1.3s var(--ease-io) infinite}
.fz-cf.is-scn .pt{opacity:.35}
.fz-cf.is-scn .pt-bad{animation:none;opacity:.3}
@keyframes fzPt{0%,100%{transform:scale(1)}50%{transform:scale(1.45)}}
.fz-cf .pt-ok{fill:var(--dx-ok);stroke:#fff;stroke-width:2;opacity:0;transition:opacity .4s 1.1s}
.fz-cf.is-scn .pt-ok{opacity:1}
.fz-call{opacity:0;transition:opacity .4s var(--ease)}
.fz-call text{fill:#fff;font-size:10.5px;font-weight:700;text-anchor:middle}
.fz-call.bad rect{fill:var(--dx-bad)}.fz-call.ok rect{fill:var(--dx-ok)}
.fz-cf.is-alert .fz-call.bad{opacity:1}
.fz-cf.is-scn .fz-call.bad{opacity:0}
.fz-cf.is-scn .fz-call.ok{opacity:1;transition-delay:1.1s}
.fz-cfside{position:relative;gap:10px}
.fz-wait{position:absolute;left:0;right:0;top:0;z-index:1;display:grid;gap:7px;padding:14px;border-radius:var(--dx-r);background:#fff;border:1px dashed var(--dx-line-2);transition:opacity .35s var(--ease),visibility 0s}
.fz-wait .who{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--dx-acc-ink)}
.fz-wait .who svg{width:14px;height:14px;animation:fzSpin 2.4s linear infinite}
.fz-wait small{font-size:11.3px;color:var(--dx-ink-3)}
.fz-wait i{display:block;height:9px;border-radius:9px;background:linear-gradient(90deg,var(--dx-line) 25%,#fff 50%,var(--dx-line) 75%);background-size:200% 100%;animation:fzSk 1.1s linear infinite}
.fz-wait i:nth-of-type(1){width:92%}.fz-wait i:nth-of-type(2){width:70%}.fz-wait i:nth-of-type(3){width:82%}
.fz-wait.is-out{opacity:0;visibility:hidden;transition:opacity .3s var(--ease),visibility 0s .3s}
@keyframes fzSpin{to{transform:rotate(360deg)}}
.fz-show-m{display:none}
.fz-alert{display:grid;gap:9px;padding:12px 13px;border-radius:var(--dx-r);background:var(--dx-bad-bg);border:1px solid #f6cdc8;transition:opacity .45s var(--ease),transform .5s var(--spring),background-color .5s,border-color .5s}
.fz-al-h{display:flex;align-items:flex-start;gap:10px}
.fz-al-h .dx-ic{background:#fff;color:var(--dx-bad);transition:color .4s}
.fz-al-h .fz-sw svg{width:16px;height:16px}
.fz-al-h b{display:block;font-size:12.6px;color:var(--dx-bad);transition:color .4s}
.fz-al-h small{display:block;margin-top:1px;font-size:11px;color:var(--dx-ink-2)}
.fz-alert.is-ok{background:var(--dx-ok-bg);border-color:#cdebd9}
.fz-alert.is-ok .fz-al-h .dx-ic,.fz-alert.is-ok .fz-al-h b{color:var(--dx-ok)}
.fz-wfs{display:grid;gap:6px;padding:9px 10px;border-radius:11px;background:rgba(255,255,255,.75)}
.fz-wf{display:grid;grid-template-columns:minmax(0,1fr) 58px 66px;align-items:center;gap:8px;font-size:11.2px;color:var(--dx-ink-2)}
.fz-wf > span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .4s}
.fz-wf-b{height:7px;border-radius:7px;background:var(--dx-line);overflow:hidden}
.fz-wf-b i{display:block;width:0;height:100%;border-radius:inherit;background:#e88d84;transition:width .8s var(--ease),opacity .4s}
.fz-wf.in .fz-wf-b i{background:#3fb075}
.fz-wf.imp .fz-wf-b i{background:var(--dx-bad)}
.fz-alert.is-in .fz-wf-b i{width:calc(var(--p) * 1%)}
.fz-alert.is-in .fz-wf:nth-child(2) i{transition-delay:.08s}.fz-alert.is-in .fz-wf:nth-child(3) i{transition-delay:.16s}
.fz-alert.is-in .fz-wf:nth-child(4) i{transition-delay:.24s}.fz-alert.is-in .fz-wf:nth-child(5) i{transition-delay:.32s}
.fz-wf > b{justify-self:end;font-size:11.2px;color:var(--dx-ink);white-space:nowrap}
.fz-wf.in > b{color:var(--dx-ok)}
.fz-wf.imp > b{color:var(--dx-bad)}
.fz-wf.imp.is-moved > span:first-child{text-decoration:line-through;color:var(--dx-ink-3)}
.fz-wf.imp.is-moved .fz-wf-b i{opacity:.18}
.fz-wf > b .dx-tag{height:18px;padding:0 7px;font-size:9.8px}
.fz-wf-end{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 10px;font-size:11.5px;font-weight:600;color:var(--dx-ink-2)}
.fz-bad,.fz-good{font-size:14.5px;letter-spacing:-.01em}
.fz-bad{color:var(--dx-bad)}.fz-good{color:var(--dx-ok)}
.fz-scard p{font-size:12px;line-height:1.42}
.fz-mini{display:grid;gap:4px;margin:0;padding:0;list-style:none;font-size:11.3px;color:var(--dx-ink-2)}
.fz-mini li{display:flex;align-items:center;gap:6px}
.fz-mini svg{width:13px;height:13px;color:var(--dx-ok);flex:none}
.fz-scard .acts .dx-tag{height:auto;min-height:24px;padding:4px 9px;white-space:normal;font-size:10.8px;line-height:1.3}
.fz-kpis em.down,.fz-kpis em.up{font-style:normal}

/* 7 · Resumen para gerencia */
.fz-ggrid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch}
.fz-ggrid .dx-card{display:grid;gap:6px;align-content:start}
.fz-ggrid .dx-h5{margin:0}
.fz-rec{max-height:156px}
.fz-meta{stroke:var(--dx-ink-3);stroke-width:1.2;stroke-dasharray:4 4}
.fz-rec .fz-meta-t{font-size:9.5px;font-weight:600;fill:var(--dx-ink-3)}
.fz-rec .vl,.fz-rec .fz-meta-t{paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round}
.fz-budget{gap:9px!important}
.fz-bud{display:grid;grid-template-columns:118px minmax(0,1fr) 42px;align-items:center;gap:10px;font-size:11.8px;color:var(--dx-ink-2)}
.fz-bud b{text-align:right;color:var(--dx-ink)}
.fz-bud-b{height:9px;border-radius:9px;background:var(--dx-line);overflow:hidden}
.fz-bud-b i{display:block;width:0;height:100%;border-radius:inherit;background:var(--peach-300);transition:width 1s var(--ease)}
.fz-bud.over .fz-bud-b i{background:var(--dx-acc)}
.fz-bud.bad .fz-bud-b i{background:var(--dx-bad)}
.fz-bud.bad b{color:var(--dx-bad)}
.fz-budget.is-in .fz-bud-b i{width:calc(var(--p) * 1%)}
.fz-budget.is-in .fz-bud:nth-of-type(3) i{transition-delay:.1s}.fz-budget.is-in .fz-bud:nth-of-type(4) i{transition-delay:.2s}.fz-budget.is-in .fz-bud:nth-of-type(5) i{transition-delay:.3s}.fz-budget.is-in .fz-bud:nth-of-type(6) i{transition-delay:.4s}
.fz-sum{gap:8px}
.fz-sum .dx-row .dx-tag{height:21px;font-size:10.5px}
.fz-notes{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.fz-notes li{display:flex;align-items:flex-start;gap:8px;font-size:12.2px;line-height:1.4;color:var(--dx-ink)}
.fz-notes svg{width:14px;height:14px;margin-top:2px;color:var(--dx-acc);flex:none}
.fz-notes li > span{flex:1;min-height:17px}
.fz-notes li > span:empty::before{content:"";display:block;width:72%;height:9px;margin-top:4px;border-radius:9px;background:linear-gradient(90deg,var(--dx-line) 25%,#fff 50%,var(--dx-line) 75%);background-size:200% 100%;animation:fzSk 1.1s linear infinite}
.fz-notes li:nth-child(2) > span:empty::before{width:84%}.fz-notes li:nth-child(3) > span:empty::before{width:60%}
@keyframes fzSk{from{background-position:100% 0}to{background-position:-100% 0}}
.fz-notes .is-typing::after{content:"";display:inline-block;width:2px;height:13px;margin-left:2px;vertical-align:-2px;background:var(--dx-acc);animation:fzCaret 1s steps(1) infinite}
@keyframes fzCaret{50%{opacity:0}}
.fz-sum-f{display:flex;align-items:center;gap:6px;margin:0;padding-top:6px;border-top:1px dashed var(--dx-line-2);font-size:11px;color:var(--dx-ink-3)}
.fz-sum-f svg{width:13px;height:13px;flex:none}

/* Sin JS: el estado inicial se ve completo (las animaciones dependen de .is-in) */
html:not(.js):not(.js-motion) .dx .fz-b i,html:not(.js):not(.js-motion) .dx .fz-b em{opacity:1;transform:none}
html:not(.js):not(.js-motion) .dx .fz-stack i{width:calc(var(--w) * 1%)}
html:not(.js):not(.js-motion) .dx .fz-cf .fz-base{stroke-dashoffset:0}
html:not(.js):not(.js-motion) .dx .fz-cf .fz-area,html:not(.js):not(.js-motion) .dx .fz-cf .pt{opacity:1}
html:not(.js):not(.js-motion) .dx .fz-bud-b i{width:calc(var(--p) * 1%)}
html:not(.js):not(.js-motion) .dx .fz-rec .bar{transform:none}
html:not(.js):not(.js-motion) .dx .fz-rec .vl{opacity:1}

/* Celular: una columna, pantallas con scroll interno; el guion desplaza la vista con d.reveal */
@media (max-width:760px){
  .fz-kpis .dx-kpi{padding:10px 11px}
  .fz-kpis .dx-kpi b{font-size:15px}
  .fz-kpis .dx-kpi span,.fz-kpis .dx-kpi em{font-size:10.5px}
  .fz-cgrid,.fz-recon,.fz-ap,.fz-cfgrid,.fz-ggrid{grid-template-columns:minmax(0,1fr)}
  .fz-bars{--bmax:112px;height:166px;gap:6px}
  .fz-b span{font-size:10.5px}
  .fz-aging > .dx-row:last-child{flex-wrap:wrap;row-gap:2px}
  .fz-ptab{--cols:minmax(0,1fr) 92px 34px}
  .fz-ptab .fz-act .fz-t{display:none}
  .fz-ptab .fz-act .dx-tag,.fz-ptab .dx-btn.fz-go{width:30px;height:28px;padding:0;justify-content:center;gap:0}
  .fz-ptab .fz-act .dx-tag svg,.fz-ptab .dx-btn.fz-go svg{width:14px;height:14px}
  .fz-ptab .dx-tr{gap:8px;padding:6px 8px}
  .fz-ptab .fz-cl .dx-av{width:24px;height:24px;font-size:9.5px}
  .fz-ptab{--cols:minmax(0,1fr) 84px 32px}
  .fz-ptab .fz-cl b{white-space:normal;line-height:1.25;font-size:12px}
  .fz-inbox{grid-template-columns:minmax(0,1fr);height:auto}
  .fz-thread{height:372px}
  .fz-chat{padding:10px}
  .fz-chat .dx-msg{max-width:88%;font-size:12px}
  .fz-th-top .dx-tag{display:none}
  .fz-modal{inset:36px 0 0;padding:10px}
  .fz-by{display:none}
  .fz-sheet{padding:15px;gap:9px;border-radius:20px}
  .fz-checks li:nth-child(3){display:none}
  .fz-kb{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .fz-kcol{min-height:290px;padding:6px;gap:6px}
  .fz-kcol > p{flex-wrap:wrap;gap:2px;font-size:10px;line-height:1.2}
  .fz-inv{padding:7px;gap:3px}
  .fz-inv-h{flex-wrap:wrap;gap:3px}
  .fz-inv-h > b{font-size:11px}
  .fz-inv-n{font-size:10px}
  .fz-inv-v{font-size:11px}
  .fz-mv{grid-template-columns:28px minmax(0,1fr) auto;column-gap:8px;padding:7px 8px}
  .fz-mv > .dx-ic{width:28px;height:28px}
  .fz-mv-t b{font-size:11.3px}
  .fz-in{font-size:11.3px}
  .fz-ptab2{--cols:minmax(0,1fr) 92px 46px}
  .fz-ptab2 .dx-tr{gap:8px;padding:6px 8px}
  .fz-ptab2 .fz-cl .dx-ic{display:none}
  .fz-days{grid-template-columns:minmax(0,1fr)}
  .fz-day{display:flex;flex-wrap:wrap;align-items:center;min-height:0;padding:6px 8px}
  .fz-day > span:first-child{width:52px}
  .fz-sched .dx-row{flex-wrap:wrap}
  .fz-sched .dx-h5{width:100%}
  .fz-show-m{display:block}
  .fz-cf text,.fz-cf .lb,.fz-call text{font-size:11px}
  .fz-rec text,.fz-rec .lb,.fz-rec .vl{font-size:13.5px}
  .fz-rec .fz-meta-t{font-size:12.5px}
  .fz-bud{grid-template-columns:104px minmax(0,1fr) 40px}
  .fz-ago{display:none}
  .fz-foot{min-height:32px;padding:6px 8px;font-size:10.5px}
  /* Conciliación en el celular: registro de cruces arriba y tablero abajo (el extracto completo se ve en escritorio) */
  .fz-recon{display:contents}
  .fz-movs{display:none}
  .dx-screen[data-screen="bancos"] > .dx-head{order:0}
  .fz-match{order:1;padding:11px}
  .fz-kb{order:2;height:auto}
  .fz-mlog{height:auto;max-height:238px;-webkit-mask-image:linear-gradient(#000 78%,transparent);mask-image:linear-gradient(#000 78%,transparent)}
  .fz-mrow{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"mm st" "cr cr";row-gap:6px;column-gap:8px;padding:8px 9px}
  .fz-mt,.fz-marr,.fz-minv{display:none}
  .fz-mi{display:inline}
  .fz-mm{grid-area:mm}.fz-crits{grid-area:cr;gap:4px;flex-wrap:nowrap}.fz-mst{grid-area:st}
  .fz-crit{height:20px;padding:0 6px 0 5px;font-size:10px}
  .fz-minv b{font-size:11px}
  .fz-wf{grid-template-columns:minmax(0,1fr) 46px 64px}
  /* Gerencia: el título del resumen va en su propia línea y la pastilla de revisión debajo */
  .fz-sum .dx-row{flex-wrap:wrap;row-gap:6px}
  .fz-sum .dx-row .who{flex-basis:100%}
}
