/* Demo: firma contable con IA (prefijo ct-). Se apoya en el kit dx (dx.css). */
.dx[data-demo="contabilidad"]{--ct-h:calc(var(--dx-h,580px) - 104px);--ct-warn-line:#efd08c}
.ct-sw{display:inline-grid}
.ct-sw > *{grid-area:1/1;display:inline-flex;justify-content:flex-end}
.ct-sw > [hidden]{display:none}
.ct-lbl{margin:2px 4px 6px;font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--dx-ink-3)}

/* 1 · Bandeja */
.ct-inbox{display:grid;grid-template-columns:206px minmax(0,1fr) 248px;gap:12px;height:var(--ct-h)}
.ct-convs{display:flex;flex-direction:column;padding:10px;overflow:hidden}
.ct-search{display:flex;align-items:center;gap:7px;height:32px;margin-bottom:10px;padding:0 10px;border-radius:99px;background:var(--dx-canvas);font-size:11.5px;color:var(--dx-ink-3)}
.ct-search svg{width:14px;height:14px}
.ct-conv-list{display:grid;gap:2px}
.ct-conv{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 7px;border-radius:12px;transition:background-color .35s}
.ct-conv .dx-av{width:28px;height:28px;font-size:10px}
.ct-conv-t{display:grid;min-width:0}
.ct-conv-t b{font-size:12px;color:var(--dx-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-conv-t span{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--dx-ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-conv-t span svg{width:12px;height:12px;flex:none}
.ct-conv-m{display:grid;justify-items:end;gap:3px}
.ct-conv-m small{font-size:10px;color:var(--dx-ink-3)}
.ct-badge{display:grid;place-items:center;min-width:17px;height:17px;padding:0 5px;border-radius:99px;background:var(--grad-cta);font-style:normal;font-size:9.5px;font-weight:700;color:#fff}
.ct-badge[hidden]{display:none}
.ct-conv.is-on{background:var(--dx-peach)}
.ct-conv.is-on b{color:var(--dx-acc-ink)}

.ct-thread{display:flex;flex-direction:column;min-height:0;padding:0;overflow:hidden}
.ct-thread-h{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--dx-line)}
.ct-thread-h b{display:block;font-size:13px;color:var(--dx-ink)}
.ct-thread-h .dx-muted{display:block;font-size:11px}
.ct-thread-h .sp{flex:1}
.ct-chat{flex:1;min-height:0;justify-content:flex-end;border-radius:0;padding:12px 14px;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 48px);mask-image:linear-gradient(180deg,transparent 0,#000 48px)}
.ct-chat .dx-msg{max-width:78%}
.ct-compose{display:flex;align-items:center;gap:10px;height:42px;margin:8px 10px 10px;padding:0 8px 0 14px;border-radius:99px;background:var(--dx-canvas);border:1px solid var(--dx-line);font-size:12px;color:var(--dx-ink-3)}
.ct-compose span{flex:1}
.ct-compose svg{width:16px;height:16px}
.ct-compose svg:last-child{width:30px;height:30px;padding:7px;border-radius:50%;background:var(--grad-cta);color:#fff}
.ct-img{display:grid;gap:5px;width:172px;margin:-2px -4px 6px;padding:5px;border-radius:7px;background:rgba(17,27,33,.06)}
.ct-mini{position:relative;display:grid;align-content:start;gap:5px;height:118px;padding:12px 14px;border-radius:4px;background:linear-gradient(160deg,#fffdf7,#f3ede2);box-shadow:0 1px 3px rgba(0,0,0,.18);transform:rotate(-2deg) scale(.96)}
.ct-mini b{width:58%;height:7px;border-radius:2px;background:#4a4f66}
.ct-mini i{height:4px;border-radius:2px;background:#cfc6b8}
.ct-mini i:nth-of-type(2){width:80%}.ct-mini i:nth-of-type(3){width:64%}
.ct-mini em{position:absolute;right:12px;bottom:12px;width:26px;height:26px;background:conic-gradient(#3a3f55 25%,transparent 0 50%,#3a3f55 0 75%,transparent 0) 0 0/8px 8px;opacity:.7}
.ct-img-c{display:flex;align-items:center;gap:5px;font-size:10.5px;color:#54656f}
.ct-img-c svg{width:12px;height:12px}
.ct-audio{display:flex;align-items:center;gap:8px;min-width:190px}
.ct-audio .pl{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#1f8f61;color:#fff;flex:none}
.ct-audio .pl svg{width:12px;height:12px;fill:currentColor}
.ct-audio .pl svg + svg,.ct-audio.is-play .pl svg:first-child{display:none}
.ct-audio.is-play .pl svg + svg{display:block}
.ct-audio .wv{position:relative;flex:1;display:flex;align-items:center;gap:2px;height:24px}
.ct-audio .wv i{flex:1;height:calc(var(--h) * 1%);min-height:3px;border-radius:2px;background:#9fb3bd}
.ct-audio .wv::after{content:"";position:absolute;left:0;top:50%;width:11px;height:11px;margin:-5.5px 0 0 -5.5px;border-radius:50%;background:#1f8f61;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.ct-audio.is-play .wv i,.ct-audio.is-done .wv i{background:#1f8f61}
.ct-audio.is-play .wv i{transition:background-color .12s calc(var(--i) * 105ms)}
.ct-audio.is-play .wv::after,.ct-audio.is-done .wv::after{left:100%}
.ct-audio.is-play .wv::after{transition:left 1.9s linear}
.ct-file{display:flex;align-items:center;gap:8px;min-width:200px;margin:-2px -4px 6px;padding:8px 10px;border-radius:7px;background:rgba(17,27,33,.06)}
.ct-file > svg{width:26px;height:26px;padding:5px;border-radius:6px;background:#e5484d;color:#fff;flex:none}
.ct-file > span{display:grid}
.ct-file b{font-size:12px;font-weight:600;color:#111b21}
.ct-file small{margin:0;font-size:10px;text-align:left}
/* La foto vuela del chat a «Detectado en el chat» */
.ct-ghost{position:absolute;z-index:7;margin:0;pointer-events:none;transform-origin:0 0;box-shadow:0 18px 30px -12px rgba(0,6,42,.45)}
.ct-audio b{font-size:10.5px;font-weight:500;color:#54656f}
.ct-trx{display:block;margin-top:6px;padding:4px 0 2px 8px;border-left:2px solid var(--peach-300);font-size:11.5px;font-style:italic;color:var(--dx-ink-2)}
.ct-trx:empty{display:none}
.ct-trx::before{content:"Transcripción";display:block;font-size:9.5px;font-style:normal;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--dx-acc-ink)}
.ct-bot{display:flex;align-items:center;gap:4px;margin-bottom:2px;font-size:10px;font-weight:700;color:var(--dx-acc-ink)}
.ct-bot svg{width:11px;height:11px}

.ct-side{display:grid;grid-template-rows:auto 1fr;gap:12px;min-height:0}
.ct-slot{display:grid;margin-bottom:8px}
.ct-slot > *{grid-area:1/1}
.ct-wait{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:104px;padding:12px;border-radius:12px;border:1.5px dashed var(--dx-line-2);font-size:11px;text-align:center;color:var(--dx-ink-3);transition:opacity .3s}
.ct-wait svg{width:20px;height:20px}
.ct-slot:has(.ct-dcard.is-in) .ct-wait{opacity:0}
html:not(.js):not(.js-motion) .ct-wait{opacity:0}
.ct-dcard{display:grid;gap:10px;padding:11px;border-radius:12px;background:#fff;border:1px solid var(--peach-200);box-shadow:0 0 0 3px rgba(229,97,45,.1),0 14px 26px -20px rgba(179,61,24,.6)}
.ct-dcard-t{display:grid;min-width:0}
.ct-dcard-t b{font-size:12.5px;color:var(--dx-ink)}
.ct-dcard-t .dx-muted{font-size:10.5px}
.ct-thumb{position:relative;display:grid;align-content:start;gap:3px;width:34px;height:42px;padding:6px 5px;border-radius:4px;background:#fffdf7;border:1px solid var(--dx-line-2);box-shadow:0 3px 8px -4px rgba(0,6,42,.3);transform:rotate(-4deg);flex:none}
.ct-thumb i{height:2px;border-radius:2px;background:#cfc6b8}
.ct-thumb b{position:absolute;right:4px;bottom:4px;width:9px;height:9px;background:#5a5f75;opacity:.6}
.ct-track{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:0;padding:0;list-style:none;counter-reset:ct}
.ct-track li{position:relative;display:grid;gap:4px;font-size:10px;font-weight:600;color:var(--dx-ink-3)}
.ct-track li::before{content:"";height:4px;border-radius:4px;background:var(--dx-line);transition:background .4s}
.ct-track li.is-done{color:var(--dx-ok)}
.ct-track li.is-done::before{background:var(--dx-ok)}
.ct-track li.is-now{color:var(--dx-acc-ink)}
.ct-track li.is-now::before{background:linear-gradient(90deg,var(--dx-acc) 0 40%,var(--peach-100) 40%) 0 0/250% 100%;animation:ctLoad 1.1s linear infinite}
@keyframes ctLoad{from{background-position:100% 0}to{background-position:-50% 0}}
.ct-old{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px 4px 0;border-top:1px solid var(--dx-line);font-size:11px}
.ct-old > svg{width:16px;height:16px;color:var(--dx-ok)}
.ct-old b{display:block;font-size:11.5px;color:var(--dx-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-old .dx-muted{font-size:10.5px}
.ct-chan{display:grid;gap:8px;margin:0 0 12px;padding:0;list-style:none}
.ct-chan li{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:8px;font-size:12px}
.ct-chan svg{width:16px;height:16px;color:var(--dx-acc-ink)}
.ct-chan b{font-size:13px;color:var(--dx-ink)}
.ct-read-p{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px;font-size:11.5px;color:var(--dx-ink-3)}
.ct-read-p b{font-size:12px;color:var(--dx-ink)}

/* 2 · Lectura de la factura */
.ct-read{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:14px;height:var(--ct-h)}
.ct-photo{display:flex;flex-direction:column;gap:8px;min-height:0;padding:12px;border-radius:var(--dx-r);background:radial-gradient(120% 90% at 20% 10%,#efe6d9,#d9cab6 70%,#cdbca5);box-shadow:inset 0 0 0 1px rgba(0,0,0,.04)}
.ct-photo-in{position:relative;flex:1;display:grid;place-items:center;min-height:0;border-radius:10px;overflow:hidden}
.ct-photo-in::after{content:"";position:absolute;inset:0;background:linear-gradient(112deg,transparent 38%,rgba(255,255,255,.34) 48%,transparent 58%);pointer-events:none;transition:opacity .8s}
.ct-photo.is-flat .ct-photo-in::after{opacity:.35}
.ct-photo-b{display:flex;flex-wrap:wrap;gap:6px}
.ct-photo-b .dx-tag{background:rgba(255,255,255,.86)}
.ct-photo-b .dx-tag.ai{background:var(--dx-peach)}.ct-photo-b .dx-tag.info{background:var(--dx-info-bg)}
.ct-ph > *{justify-content:flex-start}
.ct-ph .dx-tag{animation:dxToast .4s var(--spring) both}
.ct-paper{position:relative;display:grid;gap:9px;width:min(94%,430px);padding:15px 16px 13px;border-radius:3px;background:linear-gradient(180deg,#fffefa,#fbf7ef);box-shadow:0 26px 34px -18px rgba(0,6,42,.6),0 2px 6px rgba(0,0,0,.1);transform:var(--ct-pre,translate(0,0)) perspective(900px) rotateX(14deg) rotate(-5deg) scale(calc(.9 * var(--ct-ps,1)));transition:transform 1s var(--spring),box-shadow 1s var(--ease);font-size:10px;line-height:1.45;color:#4a4f66}
.ct-photo.is-flat .ct-paper{transform:var(--ct-pre,translate(0,0)) perspective(900px) rotateX(0) rotate(0) scale(var(--ct-ps,1));box-shadow:0 14px 26px -16px rgba(0,6,42,.45),0 1px 3px rgba(0,0,0,.08)}
.ct-crn{position:absolute;inset:-9px;pointer-events:none}
.ct-crn i{position:absolute;width:20px;height:20px;border:3px solid var(--dx-acc);opacity:0;transform:scale(1.6);transition:opacity .3s,transform .5s var(--spring)}
.ct-crn i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0;border-top-left-radius:6px;transform-origin:0 0}
.ct-crn i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0;border-top-right-radius:6px;transform-origin:100% 0}
.ct-crn i:nth-child(3){right:0;bottom:0;border-left:0;border-top:0;border-bottom-right-radius:6px;transform-origin:100% 100%}
.ct-crn i:nth-child(4){left:0;bottom:0;border-right:0;border-top:0;border-bottom-left-radius:6px;transform-origin:0 100%}
.ct-photo.is-det .ct-crn i{opacity:1;transform:none}
.ct-photo.is-det .ct-crn i:nth-child(2){transition-delay:.06s}.ct-photo.is-det .ct-crn i:nth-child(3){transition-delay:.12s}.ct-photo.is-det .ct-crn i:nth-child(4){transition-delay:.18s}
.ct-photo.is-det .ct-paper{box-shadow:0 0 0 2px rgba(229,97,45,.35),0 26px 34px -18px rgba(0,6,42,.6)}
.ct-p-h{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:8px;align-items:start;padding-bottom:8px;border-bottom:1px solid #e9e1d4}
.ct-p-h > span:nth-child(2){display:grid}
.ct-p-h b{font-size:10.5px;color:#22273f}
.ct-p-logo{display:grid;place-items:center;width:26px;height:26px;border-radius:7px;background:#3a3f55;color:#fff;font-size:9px;font-weight:700}
.ct-p-no{display:grid;justify-items:end;text-align:right}
.ct-p-no b{max-width:118px;font-size:8.5px;letter-spacing:.04em}
.ct-p-no span{font-size:11px;font-weight:700;color:#22273f}
.ct-p-meta{display:flex;flex-wrap:wrap;gap:4px 16px}
.ct-p-meta > span{display:grid}
.ct-p-meta b{color:#22273f}
.ct-blur{display:inline-block;filter:blur(1.7px)}
.ct-p-items{display:grid;grid-template-columns:minmax(0,1fr) 30px 70px;gap:3px 8px;padding:6px 0;border-top:1px dashed #e2d8c8;border-bottom:1px dashed #e2d8c8}
.ct-p-items .th{font-size:8.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#8a8ea3}
.ct-p-items > span:nth-child(3n),.ct-p-items > span:nth-child(3n-1){text-align:right;font-variant-numeric:tabular-nums}
.ct-p-tot{display:grid;justify-items:end;gap:2px;font-variant-numeric:tabular-nums}
.ct-p-tot b{display:inline-block;min-width:70px;color:#22273f;text-align:right}
.ct-p-tot .big{font-size:11px;font-weight:700;color:#22273f}
.ct-p-ft{display:flex;align-items:center;gap:8px;font-size:8px;color:#8a8ea3}
.ct-qr{width:30px;height:30px;flex:none;background:conic-gradient(#3a3f55 25%,transparent 0 50%,#3a3f55 0 75%,transparent 0) 0 0/7px 7px,repeating-linear-gradient(90deg,#3a3f55 0 2px,transparent 2px 5px);background-blend-mode:multiply;opacity:.75;border:2px solid #3a3f55}
[data-b]{position:relative;border-radius:3px;transition:box-shadow .35s,background-color .35s}
[data-b].is-hit{background:rgba(229,97,45,.1);box-shadow:0 0 0 1.5px var(--dx-acc)}
[data-b].is-doubt{background:rgba(232,170,20,.2);box-shadow:0 0 0 1.5px #d99a00;animation:ctDoubt 1.3s var(--ease-io) infinite}
@keyframes ctDoubt{50%{box-shadow:0 0 0 4px rgba(217,154,0,.25)}}
.ct-photo .dx-scan{height:70px;background:linear-gradient(180deg,rgba(229,97,45,0),rgba(229,97,45,.28) 60%,rgba(255,255,255,.7) 62%,rgba(229,97,45,0) 64%)}

.ct-read-r{display:grid;align-content:start;gap:12px;min-width:0}
.ct-fields{padding:12px}
.ct-fields-h{display:flex;align-items:center;justify-content:space-between;margin:0 4px 6px}
.ct-fields-h .dx-h5{margin:0}
.ct-fields-h .dx-muted{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.ct-fld{display:grid;grid-template-columns:minmax(0,1fr) 92px;align-items:center;gap:10px;min-height:36px;padding:5px 8px;border-radius:10px;border:1px solid transparent;opacity:.3;transition:opacity .35s,background-color .35s,border-color .35s}
.ct-fld.is-in{opacity:1}
.ct-fld-t{display:grid;grid-template-columns:118px auto auto;justify-content:start;align-items:center;gap:8px;min-width:0}
.ct-fld-t > span:first-child{font-size:11.5px;color:var(--dx-ink-3)}
.ct-fld-t b{font-size:12.5px;font-weight:600;color:var(--dx-ink);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-fld-t .dx-tag{height:19px;padding:0 7px;font-size:10px}
.ct-conf{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px}
.ct-meter{display:block;height:6px;border-radius:9px;background:var(--dx-line);overflow:hidden}
.ct-meter i{display:block;height:100%;width:calc(var(--p,0) * 1%);border-radius:inherit;background:var(--dx-ok);transition:width .5s var(--ease),background-color .3s}
.ct-conf b{min-width:30px;font-size:11px;color:var(--dx-ink-2);text-align:right}
.ct-fld.is-doubt{background:var(--dx-warn-bg);border-color:var(--ct-warn-line)}
.ct-fld.is-doubt .ct-meter i{background:#d99a00}
.ct-fld.is-doubt .ct-conf b{color:var(--dx-warn)}
.ct-fld.is-ok{background:var(--dx-ok-bg)}
.ct-fld.is-ok .ct-conf b{color:var(--dx-ok)}
.ct-dslot{display:grid;margin-top:8px}
.ct-dslot > *{grid-area:1/1}
.ct-doubt{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:6px 8px;padding:9px 10px;border-radius:12px;background:var(--dx-warn-bg);border:1px dashed #e2b54a;font-size:11.5px;color:var(--dx-warn)}
.ct-doubt > svg{width:16px;height:16px}
.ct-doubt.ok{grid-template-columns:18px minmax(0,1fr);background:var(--dx-ok-bg);border:1px solid #c7e8d4;color:var(--dx-ok)}
.ct-doubt.ok > span{display:grid;gap:1px}
.ct-doubt.ok b{font-size:12.3px;color:var(--dx-ok)}
.ct-doubt.ok b + span{color:#2d6a4a}
.ct-doubt:not(.is-in){pointer-events:none}
.ct-opts{grid-column:2;display:flex;flex-wrap:wrap;gap:6px}
.ct-opt{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:99px;background:#fff;border:1px solid var(--dx-line-2);font-size:11.5px;font-weight:600;color:var(--dx-ink);transition:transform .15s}
.ct-opt.is-sug{border-color:var(--peach-200);background:var(--dx-peach);color:var(--dx-acc-ink)}
.ct-heard p{font-style:italic}
.ct-heard .dx-row{flex-wrap:wrap;gap:6px}

/* 3 · Causación */
.ct-je{position:relative;display:grid;border-radius:var(--dx-r);background:#fff;border:1px solid var(--dx-line);overflow:hidden}
.ct-tr{display:grid;grid-template-columns:76px minmax(0,1.7fr) minmax(0,1fr) 108px 108px;align-items:center;gap:12px;min-height:42px;padding:6px 14px;border-top:1px solid var(--dx-line);font-size:12.5px}
.ct-tr:first-child{border-top:0}
.ct-tr > *{min-width:0}
.ct-tr > .dx-num,.ct-tr > b{text-align:right}
.ct-tr.th{min-height:32px;background:var(--dx-canvas);font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--dx-ink-3)}
.ct-tr.th > span:nth-child(4),.ct-tr.th > span:nth-child(5){text-align:right}
.ct-tr[data-pop]{transform:translateX(-10px)}
.ct-tr[data-pop].is-in{transform:none}
.ct-acc{justify-self:start;padding:3px 7px;border-radius:7px;background:var(--dx-peach);font-family:inherit;font-variant-numeric:tabular-nums;font-size:11.5px;font-weight:600;color:var(--dx-acc-ink)}
.ct-nm{color:var(--dx-ink);line-height:1.3}
.ct-ter{font-size:11.5px;color:var(--dx-ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-tr.tot{min-height:46px;background:var(--dx-canvas);font-size:13px;color:var(--dx-ink)}
.ct-tr.tot > b{font-size:14px;font-weight:700}
.ct-bal{display:inline-flex;align-items:center;gap:7px;justify-self:start;height:28px;padding:0 11px;border-radius:99px;background:var(--dx-warn-bg);color:var(--dx-warn);font-size:12px;transition:background-color .4s,color .4s}
.ct-bal svg{width:15px;height:15px;transition:transform .6s var(--spring);transform:rotate(-8deg)}
.ct-bal b{font-weight:600}
.ct-bal.is-ok{background:var(--dx-ok-bg);color:var(--dx-ok)}
.ct-bal.is-ok svg{transform:none}
.ct-stamp{position:absolute;right:26%;top:34%;display:grid;justify-items:center;padding:6px 14px;border:3px solid var(--dx-ok);border-radius:10px;color:var(--dx-ok);background:rgba(231,246,238,.6);transform:rotate(-9deg) scale(1.8);opacity:0;pointer-events:none;transition:transform .45s var(--spring),opacity .25s}
.ct-stamp b{font-size:17px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.ct-stamp span{font-size:10.5px;font-weight:600;letter-spacing:.06em}
.ct-stamp.is-in{opacity:.92;transform:rotate(-9deg) scale(1)}
.ct-je.is-stamped{animation:ctThump .5s var(--ease) .18s}
@keyframes ctThump{30%{transform:translateY(2px) scale(.996)}60%{transform:translateY(-1px)}}
.ct-below{align-items:start}
.ct-why{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.ct-why li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:8px;align-items:start;font-size:12px;color:var(--dx-ink-2)}
.ct-why svg{width:24px;height:24px;padding:5px;border-radius:8px;background:var(--dx-peach);color:var(--dx-acc-ink)}
.ct-checks{display:grid;gap:6px;margin:0 0 12px;padding:0;list-style:none;font-size:12.3px}
.ct-checks li{display:flex;align-items:center;gap:8px;color:var(--dx-ink-2)}
.ct-checks svg{width:15px;height:15px;color:var(--dx-ok)}
.ct-checks li[data-ck] svg{color:var(--dx-ink-3);transition:color .3s}
.ct-checks li[data-ck].is-ok svg{color:var(--dx-ok)}
.ct-checks li.me svg{color:var(--dx-acc-ink)}
.ct-ok .dx-row{flex-wrap:wrap;gap:8px}
.ct-ok .dx-btn.dx-hint::after{bottom:auto;top:calc(100% + 8px)}
.ct-done{display:flex;align-items:center;gap:6px;margin:10px 0 0;font-size:12px;font-weight:600;color:var(--dx-ok)}
.ct-done svg{width:16px;height:16px;flex:none}
.ct-done[hidden]{display:none}

/* 4 · Conciliación bancaria */
.ct-rec{display:grid;grid-template-columns:minmax(0,1fr) 258px;gap:14px;align-items:start}
.ct-rec-t{display:grid;border-radius:var(--dx-r);background:#fff;border:1px solid var(--dx-line);overflow:hidden}
.ct-rec-h,.ct-rr{display:grid;grid-template-columns:minmax(0,1.08fr) 30px minmax(0,1fr) 24px;align-items:center;gap:8px;padding:0 12px}
.ct-rec-h{min-height:34px;background:var(--dx-canvas);font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--dx-ink-3)}
.ct-rec-h span{display:flex;align-items:center;gap:6px}
.ct-rec-h svg{width:14px;height:14px}
.ct-rr{min-height:52px;border-top:1px solid var(--dx-line);transition:background-color .4s}
.ct-ex{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;font-size:12px;color:var(--dx-ink)}
.ct-ex small{font-size:10.5px;color:var(--dx-ink-3);font-variant-numeric:tabular-nums}
.ct-ex > span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-ex b{font-size:12.3px;font-weight:600;color:var(--dx-ink)}
.ct-ex b.pos{color:var(--dx-ok)}
.ct-lnk{position:relative;display:grid;place-items:center;height:100%}
.ct-lnk::before{content:"";position:absolute;left:-4px;right:-4px;top:50%;border-top:1.5px dashed var(--dx-line-2);transition:border-color .3s}
.ct-lnk svg{position:relative;width:22px;height:22px;padding:4px;border-radius:50%;background:#fff;border:1px solid var(--dx-line-2);color:var(--dx-ink-3);transform:scale(.8);transition:all .4s var(--spring)}
.ct-led{position:relative;display:grid;min-width:0;padding:4px 0;font-size:11px;color:var(--dx-ink-3)}
.ct-led b{font-family:inherit;font-variant-numeric:tabular-nums;font-size:11px;font-weight:600;color:var(--dx-ink)}
.ct-led span{display:flex;align-items:center;gap:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-led span svg{width:12px;height:12px;flex:none}
.ct-led > *{opacity:0;transform:translateX(-6px);transition:opacity .35s,transform .45s var(--ease)}
.ct-led::before{content:"";position:absolute;left:0;top:50%;width:70%;height:8px;margin-top:-4px;border-radius:6px;background:linear-gradient(90deg,var(--dx-line) 0 30%,#f7efe6 50%,var(--dx-line) 70%) 0 0/300% 100%;animation:ctShim 1.4s linear infinite;transition:opacity .25s}
@keyframes ctShim{from{background-position:100% 0}to{background-position:-100% 0}}
.ct-rs{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--dx-line);color:#fff;transform:scale(.6);opacity:.5;transition:all .4s var(--spring)}
.ct-rs svg{width:13px;height:13px}
.ct-rr.is-m .ct-led > *{opacity:1;transform:none}
.ct-rr.is-m .ct-led::before,.ct-rr.is-hot .ct-led::before{opacity:0;animation:none}
.ct-rr.is-m .ct-lnk::before{border-top:1.5px solid #7fcb9f}
.ct-rr.is-m .ct-lnk svg{transform:none;background:var(--dx-ok-bg);border-color:#a9dcbd;color:var(--dx-ok)}
.ct-rr.is-m .ct-rs{transform:none;opacity:1;background:var(--dx-ok)}
.ct-rr.is-m{animation:ctFlash .9s var(--ease) both}
@keyframes ctFlash{from{background:var(--dx-ok-bg)}to{background:transparent}}
.ct-rr.is-m.is-new{animation:none}
.ct-rr.is-new{background:linear-gradient(90deg,var(--dx-ok-bg),#fff 70%)}
.ct-rr.is-hot{background:var(--dx-peach)}
.ct-rr.is-hot .ct-led > *{opacity:1;transform:none}
.ct-rr.is-hot .ct-led b{font-family:inherit;color:var(--dx-acc-ink)}
.ct-rr.is-hot .ct-led span{color:var(--dx-acc-ink)}
.ct-rr.is-hot .ct-rs{transform:none;opacity:1;background:#d99a00}
.ct-rec-r{display:grid;gap:10px;min-width:0}
.ct-rk-g{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0}
.ct-rk-g > :nth-child(n+3){grid-column:1/-1}
.ct-rk{display:grid;gap:2px;padding:10px 12px;border-radius:12px;background:#fff;border:1px solid var(--dx-line)}
.ct-rk > span{font-size:11px;color:var(--dx-ink-3)}
.ct-rk > b{font-size:17px;font-weight:650;letter-spacing:-.01em;color:var(--dx-ink)}
.ct-rk:nth-child(-n+2) > b{font-size:14.5px}
.ct-rk.diff{border-left:3px solid #d99a00}
.ct-rk.diff > b{color:var(--dx-warn)}
.ct-rk .dx-row{font-size:11px;color:var(--dx-ink-3)}
.ct-pp{font-size:13px;color:var(--dx-ink)}
.ct-rk .dx-bar-p{margin-top:5px}
.ct-sug p{font-size:12px}
.ct-sug .acts .dx-btn{height:30px;padding:0 11px;font-size:11.5px}
.ct-note{font-size:10.5px;color:var(--dx-ink-3)}

/* 5 · Calendario tributario */
.ct-cal{display:grid;grid-template-columns:282px minmax(0,1fr);gap:14px;align-items:start}
.ct-month .dx-h5{margin:0}
.ct-legend{display:flex;align-items:center;gap:5px;font-size:10.5px;color:var(--dx-ink-3)}
.ct-legend i{width:8px;height:8px;margin-left:5px;border-radius:50%}
.ct-legend .d-r,.ct-days .d-r::after{background:var(--dx-acc)}
.ct-legend .d-n,.ct-days .d-n::after{background:var(--magenta,#e61b57)}
.ct-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;margin-top:10px}
.ct-days > span{position:relative;display:grid;place-items:center;height:36px;border-radius:10px;font-size:12px;font-weight:500;color:var(--dx-ink);font-variant-numeric:tabular-nums}
.ct-days .wd{height:22px;font-size:10px;font-weight:600;color:var(--dx-ink-3)}
.ct-days .past{color:#b9b3c4}
.ct-days .hol{color:var(--dx-bad)}
.ct-days .today{background:var(--dx-ink);color:#fff;font-weight:700}
.ct-days .due{background:var(--dx-peach)}
.ct-days .due::after{content:"";position:absolute;bottom:5px;width:5px;height:5px;border-radius:50%;transform:scale(0);transition:transform .4s var(--spring)}
.ct-month.is-in .due::after{transform:scale(1)}
.ct-month.is-in [data-day="14"]::after{transition-delay:.06s}.ct-month.is-in [data-day="16"]::after{transition-delay:.12s}
.ct-month.is-in [data-day="19"]::after{transition-delay:.18s}.ct-month.is-in [data-day="21"]::after{transition-delay:.24s}
.ct-month.is-in [data-day="22"]::after{transition-delay:.3s}
.ct-fine{display:flex;gap:6px;margin:10px 0 0;font-size:10.5px;line-height:1.35;color:var(--dx-ink-3)}
.ct-fine svg{width:13px;height:13px;flex:none;margin-top:1px}
.ct-dues{display:grid;gap:2px;padding:12px}
.ct-dues > .dx-row{margin:0 2px 6px}
.ct-dues .dx-h5{margin:0}
.ct-dues > .dx-row .dx-muted{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.ct-due{display:grid;grid-template-columns:28px minmax(0,1fr) minmax(0,1.25fr) 66px 150px;align-items:center;gap:10px;min-height:52px;padding:4px 6px;border-radius:12px;border-top:1px solid var(--dx-line)}
.ct-due .dx-av{width:28px;height:28px;font-size:10px}
.ct-due-c{display:grid;min-width:0}
.ct-due-c b{font-size:12.3px;color:var(--dx-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-due-c span{font-size:10.5px;color:var(--dx-ink-3)}
.ct-due-o{display:grid;justify-items:start;gap:3px;min-width:0}
.ct-ob{font-size:11.5px;color:var(--dx-ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.ct-ob::before{content:"";display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:var(--dx-acc);vertical-align:1px}
.ct-ob.renta::before{background:var(--magenta,#e61b57)}
.ct-due-o .dx-tag{height:19px;padding:0 7px;font-size:10px}
.ct-due-d{display:grid;text-align:right}
.ct-due-d b{font-size:12.3px;color:var(--dx-ink)}
.ct-due-d span{font-size:10.5px;color:var(--dx-ink-3)}
.ct-due-s{justify-self:end}
.ct-due-s .b .dx-tag{animation:dxToast .45s var(--spring) both}
.ct-phone .dx-msg{font-size:11.5px}

/* 6 · Tablero */
.ct-kpis .dx-kpi{padding:10px 12px}
.ct-kpis .dx-kpi b{font-size:20px}
.ct-kpis .dx-kpi b span{font-size:inherit;color:inherit}
.ct-kpis .dx-kpi b small{font-size:12px;font-weight:500;color:var(--dx-ink-3)}
.ct-ring-k .dx-row{gap:8px}
.ct-ring{width:30px;height:30px;transform:rotate(-90deg);flex:none}
.ct-ring circle{fill:none;stroke-width:4.5}
.ct-ring .trk{stroke:var(--dx-line)}
.ct-ring .val{stroke:var(--dx-ok);stroke-linecap:round;stroke-dasharray:94.25;stroke-dashoffset:calc(94.25 - 94.25 * var(--p,0) / 100);transition:stroke-dashoffset 1s var(--ease)}
.ct-dash{display:grid;grid-template-columns:minmax(0,1.28fr) minmax(0,1fr);gap:12px;align-items:start}
.ct-dash-l{display:grid;gap:12px;min-width:0}
.ct-board{padding:12px}
.ct-board .dx-h5{margin:0}
.ct-kb{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}
.ct-kc{display:grid;align-content:start;gap:6px;min-width:0;min-height:150px;padding:8px;border-radius:12px;background:var(--dx-canvas)}
.ct-kc > p{display:flex;align-items:center;justify-content:space-between;margin:0 2px;font-size:10.5px;font-weight:600;color:var(--dx-ink-3)}
.ct-kc > p i{font-style:normal;color:var(--dx-ink)}
.ct-kl{display:grid;gap:6px}
.ct-ki{display:flex;align-items:center;gap:7px;min-width:0;padding:7px;border-radius:10px;background:#fff;border:1px solid var(--dx-line);box-shadow:0 1px 2px rgba(18,22,51,.04)}
.ct-ki .dx-av{width:22px;height:22px;font-size:8.5px}
.ct-ki > span{display:grid;min-width:0}
.ct-ki b{font-size:11.5px;color:var(--dx-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-ki > span > span{font-size:10px;color:var(--dx-ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-ki[data-ki="cm"]{border-color:var(--peach-200);box-shadow:0 0 0 3px rgba(229,97,45,.1)}
.ct-ki[data-ki="cm"].is-sent{border-color:#bfe3cd;box-shadow:0 0 0 3px rgba(19,122,70,.1)}
.ct-more{font-size:10.5px;color:var(--dx-ink-3);text-align:center}
.ct-hours{padding:12px}
.ct-hb{display:grid;gap:7px;margin:0;padding:0;list-style:none}
.ct-hb li{display:grid;grid-template-columns:84px minmax(0,1fr) 34px;align-items:center;gap:8px;font-size:11px;color:var(--dx-ink-2)}
.ct-hb li > i{display:block;height:8px;border-radius:9px;background:var(--dx-line);overflow:hidden}
.ct-hb li > i b{display:block;height:100%;width:calc(var(--w) * 1%);border-radius:inherit;background:var(--peach-300);transform:scaleX(0);transform-origin:left;transition:transform .9s var(--ease)}
.ct-hb li.is-hl > i b{background:var(--grad)}
.ct-hb li.is-hl{font-weight:600;color:var(--dx-ink)}
.ct-hb li > b{font-size:11px;color:var(--dx-ink);text-align:right}
.ct-hb.is-in li > i b{transform:scaleX(1)}
.ct-hb.is-in li:nth-child(2) > i b{transition-delay:.08s}.ct-hb.is-in li:nth-child(3) > i b{transition-delay:.16s}
.ct-hb.is-in li:nth-child(4) > i b{transition-delay:.24s}.ct-hb.is-in li:nth-child(5) > i b{transition-delay:.32s}
.ct-repc{padding:12px}
.ct-repc .dx-h5{margin:0}
.ct-rep{margin:10px 0;padding:12px;gap:8px;transform:rotate(.6deg)}
.ct-rep .hd > span:first-child{display:grid}
.ct-rep .hd .dx-muted{font-size:10.5px}
.ct-rep-l{padding:3px 8px;border-radius:7px;background:var(--grad);color:#fff;font-size:10px;font-weight:700;font-style:italic}
.ct-rep-k{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.ct-rep-k span{display:grid;padding:6px 8px;border-radius:8px;background:var(--dx-canvas);font-size:10px;color:var(--dx-ink-3)}
.ct-rep-k b{font-size:13px;color:var(--dx-ink);font-variant-numeric:tabular-nums}
.ct-rep-k b.ok{color:var(--dx-ok)}
.ct-rep-ch{max-height:62px}
.ct-rep-ch .ct-area{fill:url(#ctArea);opacity:0;transition:opacity .8s .7s}
.ct-rep-ch.is-in .ct-area{opacity:1}
.ct-rep-ch .ct-dot{fill:#fff;stroke:var(--dx-acc);stroke-width:2;opacity:0;transition:opacity .3s 1.4s}
.ct-rep-ch.is-in .ct-dot{opacity:1}
.ct-rep-cap{font-size:10px}
.ct-rep-l2{display:grid;gap:4px;margin:0;padding:6px 0 0;border-top:1px solid var(--dx-line);list-style:none;font-size:10.5px;color:var(--dx-ink-2)}
.ct-rep-l2 li{display:flex;align-items:center;gap:6px}
.ct-rep-l2 svg{width:12px;height:12px;color:var(--dx-acc-ink);flex:none}
.ct-rep-a{flex-wrap:wrap;gap:8px}
.ct-sent{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--dx-ok)}
.ct-sent svg{width:16px;height:16px}
.ct-sent[hidden]{display:none}

/* Teléfono del cliente (recordatorio): en escritorio aparece sobre el calendario, no sobre la lista */
@media (min-width:761px){.ct-phone{right:auto;left:112px}}

/* Pantallas medianas */
@media (max-width:1060px) and (min-width:761px){
  .ct-inbox{grid-template-columns:minmax(0,1fr) 230px}
  .ct-convs{display:none}
  .ct-due{grid-template-columns:28px minmax(0,1fr) minmax(0,1.1fr) 60px 118px}
  .ct-tr{grid-template-columns:70px minmax(0,1.6fr) minmax(0,.9fr) 92px 92px}
  .ct-fld-t{grid-template-columns:100px auto}
  .ct-fld-t .dx-tag{display:none}
}

/* Celular: una columna; la pantalla se desplaza sola (d.reveal) */
@media (max-width:760px){
  .dx[data-demo="contabilidad"]{--ct-h:auto}
  .ct-inbox,.ct-read,.ct-rec,.ct-cal,.ct-dash{grid-template-columns:minmax(0,1fr);height:auto}
  .ct-thread{height:372px}
  .ct-chat .dx-msg{max-width:86%}
  .ct-side{grid-template-rows:auto}
  .ct-photo{height:350px}
  .ct-paper{--ct-ps:.74;--ct-pre:translate(-50%,-50%);position:absolute;left:50%;top:50%;width:400px;max-width:none;font-size:10px}
  .ct-fld{grid-template-columns:minmax(0,1fr) 74px;gap:8px;padding:5px 6px}
  .ct-fld-t{grid-template-columns:minmax(0,1fr);gap:1px}
  .ct-fld-t > span:first-child{font-size:10.5px}
  .ct-fld-t .dx-tag{display:none}
  .ct-tr{grid-template-columns:52px minmax(0,1fr) 66px 66px;gap:7px;padding:6px 10px;font-size:11.5px}
  .ct-acc{font-size:10.5px;padding:2px 5px}
  .ct-nm{font-size:11px}
  .ct-tr.tot{font-size:12px}
  .ct-tr.tot > b{font-size:12.5px}
  .ct-bal{height:24px;padding:0 8px;font-size:10.5px;white-space:nowrap}
  .ct-tr.tot > span:first-child{display:none}
  .ct-tr.tot .ct-bal{grid-column:1/3}
  .ct-stamp{right:auto;left:16%;top:47%;padding:4px 10px}
  .ct-stamp b{font-size:14px}
  .ct-rec-r{display:contents}
  .ct-rk-g{order:-1}
  .ct-rec-h{display:none}
  .ct-rr{grid-template-columns:22px minmax(0,1fr) 22px;grid-template-areas:"ex ex ex" "ln led rs";row-gap:2px;padding:8px 10px}
  .ct-ex{grid-area:ex}.ct-lnk{grid-area:ln}.ct-led{grid-area:led}.ct-rs{grid-area:rs}
  .ct-lnk::before{display:none}
  .ct-lnk svg{width:20px;height:20px;padding:3px}
  .ct-led{display:flex;gap:6px;align-items:center}
  .ct-rk > b{font-size:15px}
  .ct-days > span{height:32px}
  .ct-due{grid-template-columns:28px minmax(0,1fr) auto;grid-template-areas:"av c d" "av o s";row-gap:4px;padding:8px 4px}
  .ct-due > .dx-av{grid-area:av;align-self:start}
  .ct-due-c{grid-area:c}.ct-due-o{grid-area:o}.ct-due-d{grid-area:d}.ct-due-s{grid-area:s;align-self:end}
  .ct-due-o .dx-tag{display:none}
  .ct-kpis .dx-kpi b{font-size:18px}
  .ct-kb{gap:6px}
  .ct-kc{padding:6px}
  .ct-ki{padding:5px}
  .ct-ki .dx-av{display:none}
  .ct-hb li{grid-template-columns:78px minmax(0,1fr) 32px}
  .ct-rep{transform:none}
}
