/* Cosapi Contabilidad · tema claro (14/11/2026). Inspirado en el lenguaje de diseño de interfere.com (referencia que
   eligió el usuario; no se copian sus archivos, logos, imágenes ni fuentes de pago): fondo blanco, resplandor pastel
   animado, riel lateral claro con íconos en cuadritos de color, propiedades en dos columnas, pestañas segmentadas,
   botones blancos con sombra finísima y el principal en negro, atajos de teclado y casi sin textos explicativos.
   Letra Inter (OFL, assets/fonts/OFL-Inter.txt). Íconos Lucide (ISC). Se carga al final de todas las hojas. */
@font-face{font-family:"Inter";src:url("assets/fonts/inter-latin-wght.woff2") format("woff2");font-weight:100 900;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";src:url("assets/fonts/inter-latin-ext-wght.woff2") format("woff2");font-weight:100 900;font-display:swap;unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  color-scheme:light;
  --x-bg:#ffffff;--x-panel:#ffffff;--x-panel-2:#f7f7f8;--x-rail:#f9f9fa;--x-hover:rgba(0,0,0,.035);--x-vidrio:rgba(255,255,255,.88);
  --x-line:rgba(0,0,0,.08);--x-line-2:rgba(0,0,0,.14);
  --x-ink:rgba(0,0,0,.875);--x-ink-2:rgba(0,0,0,.72);--x-muted:rgba(0,0,0,.55);--x-faint:rgba(0,0,0,.4);
  --x-black:#111113;--x-link:#2f63e6;--x-azul-bg:rgba(47,99,230,.1);
  --x-ok:#1f8a5b;--x-ok-bg:#e8f6ef;--x-warn:#a65f00;--x-warn-bg:#fdf3e2;--x-bad:#cf3a3a;--x-bad-bg:#fdecec;--x-pend:#6a4fd1;--x-pend-bg:#f1edfd;
  --x-sombra-btn:0 0 0 .5px rgba(0,0,0,.08),0 1px 1px -1px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.05);
  --x-sombra-card:0 0 0 1px rgba(0,0,0,.06),0 2px 4px rgba(0,0,0,.025),0 10px 28px rgba(0,0,0,.04);
  --x-font:"Inter","InterVariable",-apple-system,BlinkMacSystemFont,"Segoe UI Variable","Segoe UI",system-ui,sans-serif;
  --x-mono:ui-monospace,"Cascadia Code","SF Mono",Menlo,Consolas,monospace;
  /* las demás hojas usan estas variables */
  --f-primary:var(--x-black);--f-primary-hover:#2a2a2e;--f-primary-press:#000;--f-tint:var(--x-panel-2);--f-tint-2:#ededf0;
  --f-canvas:var(--x-bg);--f-surface:var(--x-panel);--f-hairline:var(--x-line);--f-hairline-2:var(--x-line-2);
  --f-ink:var(--x-ink);--f-ink-2:var(--x-ink-2);--f-muted:var(--x-muted);
  --f-ok:var(--x-ok);--f-ok-bg:var(--x-ok-bg);--f-warn:var(--x-warn);--f-warn-bg:var(--x-warn-bg);--f-bad:var(--x-bad);--f-bad-bg:var(--x-bad-bg);
  --f-shadow:none;--f-raised:var(--x-sombra-card);--f-font:var(--x-font);
  --canvas:var(--x-panel);--pergamino:var(--x-bg);--perla:var(--x-panel-2);--filete:var(--x-line);--divisor:var(--x-line);
  --tinta:var(--x-ink);--tinta-80:var(--x-ink-2);--suave:var(--x-muted);--primario:var(--x-black);
  --r-sm:6px;--r-md:8px;--r-lg:12px;--lateral:56px;--alto-top:52px;
}

/* ---------- Base ---------- */
html body{background:var(--x-bg);color:var(--x-ink);font:400 14.5px/1.55 var(--x-font);letter-spacing:-.006em;font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased}
button,input,select,textarea{font-family:var(--x-font)}
a,a:visited{color:var(--x-link)}
::selection{background:rgba(47,99,230,.18)}
:focus-visible{outline:2px solid var(--x-link);outline-offset:2px}
h1,h2,h3,h4{color:var(--x-ink)}
b,strong,th{font-weight:550}

/* Resplandor pastel animado detrás del encabezado (como la portada de la referencia) */
body::before{content:"";position:fixed;z-index:0;pointer-events:none;top:-160px;left:20%;width:80vw;height:520px;
  background:radial-gradient(40% 50% at 30% 50%,rgba(255,170,200,.35),transparent 70%),radial-gradient(40% 55% at 70% 45%,rgba(196,176,255,.38),transparent 70%),radial-gradient(30% 40% at 50% 70%,rgba(255,214,190,.28),transparent 70%);
  filter:blur(40px);animation:resplandor 18s ease-in-out infinite alternate;display:block}
@keyframes resplandor{0%{transform:translate3d(-4%,0,0) scale(1)}50%{transform:translate3d(3%,2%,0) scale(1.06)}100%{transform:translate3d(6%,-1%,0) scale(.98)}}
@media (prefers-reduced-motion:reduce){body::before{animation:none}}
main{position:relative;z-index:1}

/* ---------- Barra superior ---------- */
.topbar{height:52px;background:rgba(255,255,255,.8);border-bottom:1px solid var(--x-line);backdrop-filter:saturate(180%) blur(14px)}
.logo img{filter:none;height:26px}
.logo span{color:var(--x-ink);border-left-color:var(--x-line);font:500 15px/1 var(--x-font);letter-spacing:-.01em}
.logo b{font-weight:600}
#estado-ia.pill{background:var(--x-ok-bg);color:var(--x-ok);border-radius:6px;font:500 12px/1 var(--x-font);padding:6px 8px}
.btn-util{background:#fff;color:var(--x-ink);border:0;border-radius:6px;box-shadow:var(--x-sombra-btn);font:500 13px/1 var(--x-font);padding:8px 10px}
.btn-util:hover:not(:disabled){background:var(--x-panel-2)}
.icono-btn{color:var(--x-ink)}
kbd,.kbd{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 4px;margin-left:6px;border-radius:4px;background:var(--x-panel-2);box-shadow:inset 0 0 0 1px var(--x-line);font:500 11px/1 var(--x-font);color:var(--x-muted)}

/* ---------- Riel lateral claro con íconos en cuadritos de color (escritorio) ---------- */
@media (min-width:901px){
  .sidebar{width:56px;padding:10px 8px;background:var(--x-rail);border-right:1px solid var(--x-line);align-items:center;overflow:visible}
  .sidebar nav{gap:4px;justify-items:center}
  .sidebar nav a{position:relative;width:34px;height:34px;min-height:34px;padding:0;justify-content:center;border-radius:8px;font-size:0;color:var(--x-muted);background:none}
  .sidebar nav a .chip,.sidebar nav a.activo .chip{display:grid;place-items:center;width:26px;height:26px;border-radius:7px;color:var(--c,var(--x-muted));background:var(--cb,transparent)}
  .sidebar nav a .lu{width:16px;height:16px}
  .sidebar nav a:hover{background:rgba(0,0,0,.05)}
  .sidebar nav a.activo{background:#fff;box-shadow:var(--x-sombra-btn)}
  .sidebar nav a.activo::before{display:none}
  .sidebar .nav-head{font-size:0;margin:8px 0;width:20px;height:1px;background:var(--x-line);padding:0}
  .sidebar nav a::after{content:attr(data-nombre) attr(data-tecla);position:absolute;left:46px;top:50%;transform:translateY(-50%) translateX(-4px);white-space:pre;background:#fff;color:var(--x-ink);box-shadow:var(--x-sombra-card);font:500 12.5px/1 var(--x-font);padding:7px 9px;border-radius:6px;opacity:0;pointer-events:none;transition:opacity .12s ease,transform .12s ease;z-index:40}
  .sidebar nav a:hover::after,.sidebar nav a:focus-visible::after{opacity:1;transform:translateY(-50%)}
  .sidebar-foot{margin-top:auto;padding:0;border:0;position:relative}
  .sidebar-foot>*:not(.avatar){display:none}
  .avatar{width:30px;height:30px;min-height:30px;padding:0;border-radius:50%;background:#fff;color:var(--x-ink);box-shadow:var(--x-sombra-btn);font:600 11.5px/30px var(--x-font);border:0}
  .avatar:hover:not(:disabled){background:var(--x-panel-2)}
  body.pie-abierto .sidebar-foot>*:not(.avatar){display:block}
  body.pie-abierto .sidebar-foot{position:static}
  body.pie-abierto .sidebar-foot .pie-caja{display:grid;position:fixed;left:64px;bottom:12px;min-width:240px;gap:6px;padding:14px;background:#fff;border-radius:10px;box-shadow:var(--x-sombra-card);z-index:50;color:var(--x-ink-2);font-size:12.5px}
  main{margin-left:56px;max-width:calc(1360px + 56px);padding:calc(52px + 34px) 48px 80px}
}
/* colores de los cuadritos del riel, por módulo */
#menu a[href="#inicio"]{--c:#3d3d42;--cb:rgba(0,0,0,.06)}
#menu a[href="#desistimientos"]{--c:#d6336c;--cb:#fde7ef}
#menu a[href="#reembolsos"]{--c:#2b8a3e;--cb:#e6f6ea}
#menu a[href="#tex"]{--c:#e8590c;--cb:#fff0e6}
#menu a[href="#anticipos"]{--c:#0c8599;--cb:#e3f6f9}
#menu a[href="#matrices"]{--c:#7048e8;--cb:#efeafd}
#menu a[href="#bancos"]{--c:#1c7ed6;--cb:#e6f1fc}
#menu a[href="#descargas"]{--c:#5c5f66;--cb:#efeff1}
#menu a[href="#rimac"]{--c:#e03131;--cb:#fdeaea}
#menu a[href="#ia"]{--c:#f08c00;--cb:#fff4e0}
.sidebar-foot .pie-caja{display:none}
.sidebar-foot .enlace,.sidebar-foot button.enlace{color:var(--x-ink-2);font:500 12.5px/1.6 var(--x-font);text-align:left}
.sidebar-foot .enlace:hover{color:var(--x-link)}
@media (max-width:900px){
  .sidebar{background:var(--x-rail);border-right:1px solid var(--x-line);width:260px}
  .sidebar nav a{color:var(--x-ink-2)}
  .sidebar nav a .chip{color:var(--c);background:var(--cb);border-radius:7px}
  .sidebar nav a.activo{background:#fff;box-shadow:var(--x-sombra-btn);color:var(--x-ink)}
  .sidebar-foot .avatar{display:none}
  .sidebar-foot .pie-caja{display:grid;gap:4px}
}

/* ---------- Encabezado de módulo: limpio, sin explicaciones ---------- */
.page-top{border-bottom:0;padding-bottom:0;margin-bottom:22px;align-items:center}
.pt-ic{display:grid;width:40px;height:40px;border-radius:10px;background:var(--cb,var(--x-panel-2));color:var(--c,var(--x-ink));box-shadow:none}
.pt-ic .lu{width:20px;height:20px}
.pt-pre{font:500 12.5px/1 var(--x-font);letter-spacing:0;text-transform:none;color:var(--x-faint)}
.page-top h1,.titular{font:550 30px/1.15 var(--x-font);letter-spacing:-.02em;color:var(--x-ink)}
#v-desistimientos{--c:#d6336c;--cb:#fde7ef}#v-reembolsos{--c:#2b8a3e;--cb:#e6f6ea}#v-tex{--c:#e8590c;--cb:#fff0e6}#v-anticipos{--c:#0c8599;--cb:#e3f6f9}
#v-matrices{--c:#7048e8;--cb:#efeafd}#v-bancos{--c:#1c7ed6;--cb:#e6f1fc}#v-descargas{--c:#5c5f66;--cb:#efeff1}#v-rimac{--c:#e03131;--cb:#fdeaea}#v-ia{--c:#f08c00;--cb:#fff4e0}

/* Sin textos explicativos: guías, introducciones y descripciones fijas (14/11/2026, pedido del usuario) */
.pt-sub,.ayuda-fila,details.guia,.reem-flujo,.reem-intro,.page-top+p.leido,
.panel>h2+p.leido:not([id]),.panel>.fila.entre:first-child+p.leido:not([id]),.vista>p.leido:not([id]),
.guia,.nota:not([id]):not(label),#v-inicio .bajada{display:none!important}

/* ---------- Paneles ---------- */
.panel,details.panel,.vista>.panel,.vista>section.panel{background:var(--x-panel);border:0;border-radius:12px;box-shadow:var(--x-sombra-card)}
.panel h2,dialog h2,#reem-detalle h2{font:550 15.5px/1.3 var(--x-font);letter-spacing:-.01em;color:var(--x-ink)}
.panel>.fila.entre:first-child,.panel>h2:first-child{border-bottom-color:var(--x-line)}
summary{font:500 14px/1.3 var(--x-font);color:var(--x-ink)}
details.panel>summary::before{border-color:var(--x-faint)}
details.panel>summary .resumen-n{background:var(--x-panel-2);color:var(--x-muted);border-radius:6px}
small,.leido,.nota{color:var(--x-muted)}
label{color:var(--x-muted);font-weight:500}
.seguimiento{background:var(--x-panel-2);border:0;border-radius:10px}
.mat-estado,[role=status].mat-estado{background:#fff;border:0;color:var(--x-ink-2);border-radius:10px;box-shadow:var(--x-sombra-card)}

/* ---------- Botones: blancos con sombra fina; el principal negro ---------- */
button{border-radius:6px;background:#fff;color:var(--x-ink);border:0;box-shadow:var(--x-sombra-btn);font:500 13px/1.2 var(--x-font);min-height:32px;padding:7px 12px;transition:background-color .12s ease,box-shadow .12s ease,transform .08s ease}
button:hover:not(:disabled){background:var(--x-panel-2)}
button:active:not(:disabled){transform:scale(.98)}
button.primary{background:var(--x-black);color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.08);font-weight:500}
button.primary:hover:not(:disabled){background:#2a2a2e}
button:disabled{background:var(--x-panel-2);color:var(--x-faint);box-shadow:none}
button.primary:disabled{background:#c9c9cf;color:#fff}
button.enlace,.enlace{background:none;box-shadow:none;color:var(--x-link);padding:0;min-height:0}
button.enlace:hover:not(:disabled){background:none;text-decoration:underline}
td button,.obs .ir{min-height:28px;padding:5px 10px;font-size:12.5px}

/* ---------- Campos ---------- */
input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{background:#fff;color:var(--x-ink);border:0;box-shadow:inset 0 0 0 1px var(--x-line-2);border-radius:7px;min-height:32px;padding:6px 10px;font:400 13.5px/1.3 var(--x-font)}
input:hover:not(:focus),select:hover:not(:focus),textarea:hover:not(:focus){box-shadow:inset 0 0 0 1px rgba(0,0,0,.22)}
input:focus,select:focus,textarea:focus{box-shadow:inset 0 0 0 1px var(--x-link),0 0 0 3px rgba(47,99,230,.18)}
input::placeholder,textarea::placeholder{color:var(--x-faint)}
input[type=checkbox],input[type=radio]{accent-color:var(--x-black)}
.campos label{color:var(--x-muted);font-size:12px}

/* ---------- Tablas tipo bandeja ---------- */
.tabla{background:#fff;border:0;border-radius:10px;box-shadow:inset 0 0 0 1px var(--x-line)}
table{color:var(--x-ink);font-size:13.5px}
th{background:var(--x-rail);color:var(--x-muted);font:500 12px/1.2 var(--x-font);text-transform:none;letter-spacing:0;border-bottom:1px solid var(--x-line);height:36px}
td{border-bottom:1px solid var(--x-line);color:var(--x-ink);padding:9px 14px}
tbody tr:hover{background:var(--x-hover)}
.v-OK{color:var(--x-ok)}.v-NO{color:var(--x-bad)}

/* ---------- Estado: punto + palabra, como «· Active» en la referencia ---------- */
.est,.tag,.pill:not(#estado-ia){display:inline-flex;align-items:center;gap:6px;border:0;border-radius:6px;font:500 12px/1 var(--x-font);padding:5px 8px;background:var(--x-panel-2);color:var(--x-ink-2)}
.est::before{content:"";display:block;width:6px;height:6px;border-radius:50%;background:currentColor;opacity:1}
.e-ok,.est.est-ok,.est.est-cuadra{background:var(--x-ok-bg);color:var(--x-ok)}
.e-obs,.est.est-revisar{background:var(--x-warn-bg);color:var(--x-warn)}
.e-reg,.est.est-sin{background:var(--x-bad-bg);color:var(--x-bad)}
.e-pend,.est.est-ni{background:var(--x-pend-bg);color:var(--x-pend)}
.est.est-pendiente{background:var(--x-panel-2);color:var(--x-muted)}
.tag.auto{background:var(--x-ok-bg);color:var(--x-ok)}.tag.ia{background:var(--x-pend-bg);color:var(--x-pend)}

/* ---------- Cifras: etiqueta pequeña en mayúsculas, número firme ---------- */
.tarjetas{gap:0;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));background:#fff;border:0;border-radius:12px;box-shadow:var(--x-sombra-card);margin:4px 0 18px;overflow:hidden}
.tarjeta,.tarjeta.e-ok,.tarjeta.e-obs,.tarjeta.e-reg,.tarjeta.e-pend,a.tarjeta{background:none;border:0;border-left:1px solid var(--x-line);border-radius:0;box-shadow:none;padding:14px 18px;color:var(--x-ink)}
.tarjeta:first-child{border-left:0}
.tarjeta strong{font:550 24px/1.15 var(--x-font);letter-spacing:-.02em;color:var(--x-ink)}
.tarjeta span{font:500 11px/1.3 var(--x-font);letter-spacing:.04em;text-transform:uppercase;color:var(--x-faint)}
.tarjeta.e-ok span::before,.tarjeta.e-obs span::before,.tarjeta.e-reg span::before,.tarjeta.e-pend span::before{border-radius:50%;width:6px;height:6px}
.tarjeta.e-ok{--k:var(--x-ok)}.tarjeta.e-obs{--k:var(--x-warn)}.tarjeta.e-reg{--k:var(--x-bad)}.tarjeta.e-pend{--k:var(--x-pend)}
a.tarjeta:hover{background:var(--x-hover);transform:none;box-shadow:none}

/* ---------- Pestañas segmentadas (Activity / Sessions / Findings) ---------- */
.mat-tabs,.pestanas{display:inline-flex;gap:2px;padding:3px;background:var(--x-panel-2);border:0;border-radius:8px;margin:0 0 14px;box-shadow:inset 0 0 0 1px var(--x-line)}
.mat-tabs [role=tab],.pestanas [role=tab]{min-height:28px;padding:5px 12px;margin:0;border:0;border-radius:6px;background:none;box-shadow:none;color:var(--x-muted);font:500 13px/1 var(--x-font)}
.mat-tabs [role=tab]:hover,.pestanas [role=tab]:hover{background:none;color:var(--x-ink)}
.mat-tabs [role=tab][aria-selected=true],.pestanas [role=tab][aria-selected=true]{background:#fff;color:var(--x-ink);box-shadow:var(--x-sombra-btn)}
.reem-atajos button{background:#fff}
.reem-atajos button[aria-pressed=true]{background:var(--x-black);color:#fff;box-shadow:none}

/* ---------- Inicio ---------- */
#v-inicio .page-top.hero{background:none;border:0;box-shadow:none;border-radius:0;padding:12px 0 22px;display:block}
.saludo{font:500 13px/1 var(--x-font);letter-spacing:0;text-transform:none;color:var(--x-faint);margin-bottom:10px}
.titular{font:550 48px/1.05 var(--x-font);letter-spacing:-.025em}
.titular .arcoiris{background:none;color:var(--x-ink);-webkit-text-fill-color:currentColor}
.modulo{background:#fff;border:0;border-radius:12px;box-shadow:var(--x-sombra-card);transition:box-shadow .15s ease,transform .15s ease}
.modulo:hover{background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.08),0 12px 32px rgba(0,0,0,.08);transform:translateY(-2px)}
.modulo::after{border-color:var(--x-faint)}
.modulo:hover::after{border-color:var(--x-ink)}
.chip.grande{width:36px;height:36px;border-radius:9px;box-shadow:none}
.modulo[href="#desistimientos"]{--c:#d6336c;--cb:#fde7ef}.modulo[href="#tex"]{--c:#e8590c;--cb:#fff0e6}.modulo[href="#anticipos"]{--c:#0c8599;--cb:#e3f6f9}
.modulo[href="#matrices"]{--c:#7048e8;--cb:#efeafd}.modulo[href="#bancos"]{--c:#1c7ed6;--cb:#e6f1fc}.modulo[href="#rimac"]{--c:#e03131;--cb:#fdeaea}
.modulo .chip.grande{background:var(--cb);color:var(--c)}
.modulo b{font:550 15px/1.3 var(--x-font)}
.modulo>span:not(.chip){color:var(--x-muted);font-size:13px}
.modulo .hoy{color:var(--x-ink-2)}
#tablero{background:#fff}
.flujo{display:none}

/* ---------- Ventanas ---------- */
dialog{background:#fff;color:var(--x-ink);border:0;border-radius:14px;box-shadow:0 0 0 1px rgba(0,0,0,.08),0 24px 64px rgba(0,0,0,.18)}
dialog::backdrop{background:rgba(250,250,252,.55);backdrop-filter:blur(3px)}
dialog form>.fila:last-child,dialog#detalle form>.fila:last-child{background:var(--x-vidrio);border-top:1px solid var(--x-line)}
.vista-correo,.grafico{background:#fff}
.grafico{border:0;box-shadow:inset 0 0 0 1px var(--x-line);border-radius:10px}
.respaldo-dialogo{background:#fff;color:var(--x-ink)}
.zona.encima{background:var(--x-azul-bg)}
.tex-lista-documentos{display:grid;gap:4px}
.tex-lista-documentos button{text-align:left;justify-content:flex-start;font-size:13px}
.tex-lista-documentos button[aria-pressed=true]{background:var(--x-black);color:#fff}
.tex-doc-grupo{margin:10px 0 2px;font:500 11px/1 var(--x-font);letter-spacing:.04em;text-transform:uppercase;color:var(--x-faint)}

/* ---------- Movimiento ---------- */
.vista:not([hidden])>*{animation:entra .4s cubic-bezier(.2,.8,.2,1) both}
.vista:not([hidden])>*:nth-child(2){animation-delay:.04s}.vista:not([hidden])>*:nth-child(3){animation-delay:.08s}.vista:not([hidden])>*:nth-child(n+4){animation-delay:.12s}
@keyframes entra{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

@media (max-width:900px){
  .page-top h1{font-size:24px}.titular{font-size:34px}
  .tarjetas,#tab-tarjetas{grid-template-columns:1fr 1fr}
  .tarjeta,.tarjeta.e-ok,.tarjeta.e-obs,.tarjeta.e-reg,.tarjeta.e-pend,a.tarjeta{border-left:0;border-top:1px solid var(--x-line);padding:12px}
  .tarjeta:nth-child(even){border-left:1px solid var(--x-line)}
  .tarjeta:nth-child(-n+2){border-top:0}
}

/* ================= Animaciones (14/11/2026) ================= */
/* Títulos: palabra por palabra, de borroso a nítido */
.palabra{display:inline-block;animation:palabra .55s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--k) * 45ms)}
@keyframes palabra{from{opacity:0;filter:blur(6px);transform:translateY(6px)}to{opacity:1;filter:none;transform:none}}

/* Brillo mientras carga */
.cargando{background:linear-gradient(90deg,var(--x-muted) 0%,var(--x-muted) 35%,rgba(0,0,0,.2) 50%,var(--x-muted) 65%,var(--x-muted) 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent!important;animation:brillo 1.4s linear infinite}
@keyframes brillo{from{background-position:100% 0}to{background-position:-150% 0}}

/* Avisos flotantes con el ícono que se dibuja */
.avisos-flotantes{position:fixed;right:20px;bottom:20px;z-index:100;display:grid;gap:8px;justify-items:end;pointer-events:none}
.aviso-flotante{display:flex;align-items:center;gap:10px;max-width:min(420px,calc(100vw - 40px));padding:10px 14px 10px 10px;background:#fff;border-radius:10px;box-shadow:0 0 0 1px rgba(0,0,0,.07),0 12px 32px rgba(0,0,0,.12);font:500 13px/1.35 var(--x-font);color:var(--x-ink);pointer-events:auto;animation:aviso-entra .45s cubic-bezier(.2,1.2,.3,1) both}
.aviso-flotante.sale{animation:aviso-sale .3s ease-out forwards}
.aviso-flotante svg{flex:none;width:22px;height:22px;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.aviso-flotante.ok svg{stroke:var(--x-ok)}.aviso-flotante.mal svg{stroke:var(--x-bad)}
.dibujo circle{stroke-dasharray:63;stroke-dashoffset:63;animation:trazo .5s ease-out .1s forwards}
.dibujo path{stroke-dasharray:24;stroke-dashoffset:24;animation:trazo .35s ease-out .5s forwards}
@keyframes trazo{to{stroke-dashoffset:0}}
@keyframes aviso-entra{from{opacity:0;transform:translateY(14px) scale(.96);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}
@keyframes aviso-sale{to{opacity:0;transform:translateY(8px) scale(.98);filter:blur(3px)}}

/* ================= Revisión de Desistimientos: vista de incidencia ================= */
dialog#detalle{width:min(1360px,97vw);background:#fff}
dialog#detalle form{padding:0;max-height:90vh;display:flex;flex-direction:column}
.incidencia{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);min-height:0;flex:1;overflow:hidden}
.inc-props{padding:24px 24px 28px;border-right:1px solid var(--x-line);overflow:auto;background:linear-gradient(180deg,rgba(253,231,239,.35),transparent 180px)}
.inc-ic{display:grid;place-items:center;width:44px;height:44px;border-radius:11px;background:#fde7ef;color:#d6336c;margin-bottom:14px;animation:entra .5s cubic-bezier(.2,.8,.2,1) both}
.inc-ic .lu{width:22px;height:22px}
.inc-num{margin:0;font:500 12.5px/1 var(--x-font);color:var(--x-faint)}
.inc-titulo{margin:6px 0 4px;font:550 21px/1.2 var(--x-font);letter-spacing:-.015em}
.inc-sub{margin:0 0 18px;font-size:12.5px;color:var(--x-muted);overflow-wrap:anywhere}
.props{display:grid;grid-template-columns:minmax(96px,auto) 1fr;gap:10px 14px;margin:0 0 20px;font-size:13px}
.props dt{color:var(--x-muted)}
.props dd{margin:0;color:var(--x-ink);overflow-wrap:anywhere}
.props dt,.props dd{animation:entra .4s cubic-bezier(.2,.8,.2,1) both}
.mono{font-family:var(--x-mono);font-size:12px}
.inc-et{margin:18px 0 8px;font:500 11px/1 var(--x-font);letter-spacing:.04em;text-transform:uppercase;color:var(--x-faint)}
.inc-props .obs li{background:var(--x-warn-bg);border:0;color:#6b3d00;border-radius:8px;font-size:12.5px}
.inc-cuerpo{display:flex;flex-direction:column;min-width:0;overflow:auto;padding:16px 20px 20px;background:#fff}
.inc-cuerpo .pestanas{align-self:flex-start;position:sticky;top:0;z-index:3}
.pestanas kbd{margin-left:8px}
.inc-pane{animation:entra .3s cubic-bezier(.2,.8,.2,1) both}
.inc-pane h4{margin:20px 0 10px;font:500 11px/1 var(--x-font);letter-spacing:.04em;text-transform:uppercase;color:var(--x-faint)}
.inc-cuerpo .visor{background:var(--x-panel-2);border:0;border-radius:10px;box-shadow:none;padding:10px;position:static}
.inc-cuerpo .visor-barra{border-bottom:0;margin-bottom:6px;color:var(--x-muted)}
.inc-cuerpo .visor canvas{box-shadow:0 0 0 1px var(--x-line),0 6px 20px rgba(0,0,0,.06);border-radius:6px}
.inc-cuerpo .seguimiento{background:var(--x-panel-2);border:0;border-radius:10px;padding:14px 16px;margin:4px 0 12px}
.inc-cuerpo .seguimiento.asiento{background:#fff;box-shadow:inset 0 0 0 1px var(--x-line)}
.nota-campo{display:grid;gap:5px;margin:10px 0;font-size:12px;color:var(--x-muted)}
dialog#detalle form>.fila:last-child{position:static;margin:0;padding:12px 20px;border-top:1px solid var(--x-line);background:#fff}
@media (max-width:900px){.incidencia{grid-template-columns:1fr;overflow:auto}.inc-props{border-right:0;border-bottom:1px solid var(--x-line)}.inc-cuerpo{overflow:visible}}

/* Línea de actividad: punto y texto con su hora */
.linea-tiempo{list-style:none;margin:0;padding:0 0 0 18px;position:relative;display:grid;gap:12px}
.linea-tiempo::before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:1px;background:var(--x-line)}
.linea-tiempo li{position:relative;font-size:13px;color:var(--x-ink-2);animation:entra .35s cubic-bezier(.2,.8,.2,1) both}
.linea-tiempo li::before{content:"";position:absolute;left:-17px;top:6px;width:9px;height:9px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 2px #c9c9d1}

/* Cruce carta, vouchers y Finanzas paso a paso (efecto stop motion con steps) */
.cruce{position:relative;display:grid;grid-template-columns:1fr 18px 1fr 18px 1fr;align-items:center;padding:16px 14px 30px;margin:4px 0 14px;border-radius:12px;background:#fff;box-shadow:inset 0 0 0 1px var(--x-line)}
.cruce-nodo{display:grid;gap:3px;justify-items:center;text-align:center;opacity:0;animation:nodo .42s steps(4,end) both;animation-delay:calc(.15s + var(--k) * .42s)}
.cruce-nodo span{font:500 10.5px/1 var(--x-font);letter-spacing:.05em;text-transform:uppercase;color:var(--x-faint)}
.cruce-nodo b{font:550 13px/1.2 var(--x-font);font-variant-numeric:tabular-nums;color:var(--x-ink)}
.cruce-nodo.vacio b{color:var(--x-faint)}
@keyframes nodo{0%{opacity:0;transform:translateY(8px) scale(.9)}50%{opacity:1;transform:translateY(-2px) scale(1.04)}100%{opacity:1;transform:none}}
.cruce-linea{height:2px;background:repeating-linear-gradient(90deg,var(--x-line-2) 0 4px,transparent 4px 7px);transform-origin:left;transform:scaleX(0);animation:linea .36s steps(6,end) both;animation-delay:calc(.45s + var(--k) * .42s)}
@keyframes linea{to{transform:scaleX(1)}}
.cruce-sello{position:absolute;left:50%;bottom:-11px;transform:translateX(-50%) rotate(-4deg) scale(2.2);opacity:0;padding:5px 12px;border-radius:7px;font:600 12px/1 var(--x-font);letter-spacing:.02em;white-space:nowrap;animation:sello .5s steps(5,end) 1.55s forwards}
.sello-ok{background:var(--x-ok);color:#fff;box-shadow:0 6px 18px rgba(31,138,91,.3)}
.sello-no{background:var(--x-bad);color:#fff;box-shadow:0 6px 18px rgba(207,58,58,.3)}
.sello-pend{background:var(--x-panel-2);color:var(--x-muted);box-shadow:inset 0 0 0 1px var(--x-line)}
@keyframes sello{0%{opacity:0;transform:translateX(-50%) rotate(-12deg) scale(2.2)}60%{opacity:1;transform:translateX(-50%) rotate(-2deg) scale(.92)}100%{opacity:1;transform:translateX(-50%) rotate(-4deg) scale(1)}}
@media (prefers-reduced-motion:reduce){.cruce-nodo,.cruce-linea,.cruce-sello,.palabra{animation:none;opacity:1;transform:none}.cruce-sello{transform:translateX(-50%)}}

/* En la tabla de casos, los resultados del cruce entran como sellos */
#filas .v-OK,#filas .v-NO,#filas .v-OBSERVADO{display:inline-block;animation:sello-celda .4s steps(4,end) both}
@keyframes sello-celda{0%{opacity:0;transform:scale(1.6)}100%{opacity:1;transform:none}}

/* La actividad del caso sin caja propia de desplazamiento */
.historial.linea-tiempo{max-height:none;overflow:visible;border:0;background:none;padding:0 0 0 18px}

/* ===== Pulido (14/11/2026, revisión make-interfaces-feel-better) ===== */
/* Moderación del movimiento: la entrada de una vista solo la primera vez que se abre; la tabla de casos solo al primer pintado */
.vista:not([hidden])>*{animation:none}
.vista.primera-vez>*{animation:entra .35s cubic-bezier(.2,.8,.2,1) both}
#filas .v-OK,#filas .v-NO,#filas .v-OBSERVADO{animation:none}
#filas.recien .v-OK,#filas.recien .v-NO,#filas.recien .v-OBSERVADO{animation:sello-celda .4s steps(4,end) both}
/* Presión táctil: 0.96 */
button:active:not(:disabled){transform:scale(.96)}
/* Ajuste de líneas: títulos equilibrados, párrafos sin palabras huérfanas */
h1,h2,h3,.titular,.inc-titulo{text-wrap:balance}
p,li,.inc-sub{text-wrap:pretty}
/* Área de toque: 40 px en el riel y en el círculo de usuario */
@media (min-width:901px){.sidebar nav a{width:40px;height:40px;min-height:40px}.avatar{position:relative}.avatar::before{content:"";position:absolute;inset:-5px;border-radius:50%}}
/* Radios concéntricos: externo = interno + relleno */
.mat-tabs,.pestanas{border-radius:9px}
.inc-cuerpo .visor{border-radius:14px}.inc-cuerpo .visor canvas{border-radius:4px}
/* Contorno de imágenes: negro puro al 10 % */
.asiento .captura,#mz-vista img,#as-vista img{border:0!important;outline:1px solid oklch(0 0 0 / .1);outline-offset:-1px}

/* ===== Desistimientos y TEX: tablero por estado (14/11/2026) ===== */
.casos-cab{flex-wrap:wrap;gap:10px}
.casos-barra{flex-wrap:wrap;gap:8px;align-items:center}
.casos-barra .pestanas{margin:0}
.casos-barra input[type=search]{min-width:230px}
.tex-barra{margin:6px 0 12px}
.tex-barra label.clave{display:inline-flex;align-items:center;gap:8px}
.kanban{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,1fr);gap:12px;overflow-x:auto;padding:2px 2px 10px;margin:4px 0}
.kanban[hidden]{display:none}
.kb-col{display:flex;flex-direction:column;min-height:140px;max-height:72vh;padding:10px;border-radius:14px;background:var(--x-panel-2);box-shadow:inset 0 0 0 1px var(--x-line)}
.kb-cab{display:flex;align-items:center;gap:8px;padding:4px 4px 10px;font:500 11.5px/1 var(--x-font);letter-spacing:.04em;text-transform:uppercase;color:var(--x-muted)}
.kb-cab b{font-weight:500;color:var(--x-ink-2)}
.kb-punto{flex:none;width:8px;height:8px;border-radius:50%;background:var(--tono)}
.kb-n{margin-left:auto;min-width:22px;text-align:center;padding:4px 7px;border-radius:6px;background:#fff;box-shadow:var(--x-sombra-btn);font:500 11.5px/1 var(--x-font);color:var(--x-ink-2);font-variant-numeric:tabular-nums}
.kb-reg{--tono:var(--x-bad)}.kb-obs{--tono:var(--x-warn)}.kb-pend{--tono:var(--x-pend)}.kb-ok{--tono:var(--x-ok)}.kb-neutro{--tono:#9a9aa3}
.kb-lista{display:flex;flex-direction:column;gap:8px;overflow:auto;padding:1px;min-height:0}
.kb-tarjeta{flex:none;display:grid;gap:6px;width:100%;height:auto;min-height:0;white-space:normal;padding:12px;text-align:left;border-radius:10px;background:#fff;color:var(--x-ink);font:inherit;box-shadow:var(--x-sombra-card);transition:box-shadow .15s ease-out,transform .15s ease-out}
.kb-tarjeta:hover:not(:disabled){background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.09),0 8px 22px rgba(0,0,0,.08);transform:translateY(-1px)}
.kb-fila{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.kb-titulo{font:550 13.5px/1.3 var(--x-font);color:var(--x-ink);overflow-wrap:anywhere;text-wrap:balance}
.kb-chip{flex:none;padding:4px 6px;border-radius:5px;background:var(--x-panel-2);font:500 11px/1 var(--x-font);color:var(--x-muted);font-variant-numeric:tabular-nums}
.kb-sub{font-size:12.5px;line-height:1.35;color:var(--x-muted)}
.kb-base{margin-top:2px}
.kb-monto{font:550 13px/1 var(--x-font);font-variant-numeric:tabular-nums;color:var(--x-ink);white-space:nowrap}
.tarjeta strong{white-space:nowrap}
.kb-marcas{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.kb-m{padding:4px 6px;border-radius:5px;font:500 10.5px/1 var(--x-font);font-style:normal;background:var(--x-panel-2);color:var(--x-muted)}
.kb-m.si{background:var(--x-ok-bg);color:var(--x-ok)}.kb-m.no{background:var(--x-bad-bg);color:var(--x-bad)}.kb-m.duda{background:var(--x-warn-bg);color:var(--x-warn)}
.kb-pie{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;padding-top:8px;border-top:1px solid var(--x-line);font-size:12px;line-height:1.4;color:var(--x-ink-2)}
.kb-vacio{margin:0;padding:18px 0;text-align:center;font-size:12.5px;color:var(--x-faint)}
.kb-mas{justify-self:center;background:none;box-shadow:none;color:var(--x-muted);font-size:12.5px}
.kb-mas:hover:not(:disabled){background:none;color:var(--x-ink)}
@media (max-width:760px){.kanban{grid-auto-columns:85%}}

/* Textos explicativos que sobraban en Desistimientos y TEX */
#od-auto-estado,.control-auto>small,#paso-comunicar>p.leido,#paso-destinatarios p.leido:not([id]),#paso-resumen>p.leido,
#tex-control>p,#exp-panel>p.leido:not([id]),#tri-panel>p.leido:not([id]),#tex-sin>p.leido,.zona small{display:none!important}

/* ===== Efectos de librerías animadas (Magic UI, Aceternity, InspiraUI, Animata, Syntax UI) recreados en CSS ===== */
/* Foco que sigue al mouse (spotlight / glow card) */
.kb-tarjeta,.modulo{position:relative;isolation:isolate}
.kb-tarjeta::before,.modulo::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;opacity:0;transition:opacity .2s ease-out;
  background:radial-gradient(220px circle at var(--mx,50%) var(--my,50%),rgba(112,72,232,.09),transparent 65%)}
.kb-tarjeta:hover::before,.modulo:hover::before{opacity:1}
.modulo::before{height:auto;background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),rgba(214,51,108,.07),transparent 65%)}

/* Botón con destello (shimmer button) al pasar el mouse */
button.primary{position:relative;overflow:hidden;isolation:isolate}
button.primary::after{content:"";position:absolute;inset:0;z-index:-1;transform:translateX(-120%);background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.28) 50%,transparent 70%);transition:transform .6s ease-out}
button.primary:hover:not(:disabled)::after{transform:translateX(120%)}

/* Borde animado (border beam) en el panel «Hoy» de Inicio */
@property --haz{syntax:"<angle>";inherits:false;initial-value:0deg}
#tablero{position:relative;isolation:isolate}
#tablero::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;z-index:2;
  background:conic-gradient(from var(--haz),transparent 0deg 300deg,rgba(214,51,108,.7) 330deg,rgba(112,72,232,.8) 350deg,transparent 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:haz 6s linear infinite}
@keyframes haz{to{--haz:360deg}}

/* Lista animada: tarjetas del tablero una a una en su primer pintado */
.kanban.recien .kb-tarjeta{animation:kb-entra .45s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--k) * 55ms)}
@keyframes kb-entra{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}

/* Dock: los íconos del riel crecen al pasar el mouse, y un poco sus vecinos */
@media (min-width:901px){
  .sidebar nav a .chip{transition:transform .18s cubic-bezier(.2,0,0,1)}
  .sidebar nav a:hover .chip{transform:scale(1.22)}
  .sidebar nav a:hover + a .chip,.sidebar nav a:has(+ a:hover) .chip{transform:scale(1.08)}
}

/* Confeti breve al guardar con éxito */
.confeti{position:fixed;width:0;height:0;z-index:120;pointer-events:none}
.confeti i{position:absolute;left:-3px;top:-3px;width:6px;height:6px;border-radius:2px;animation:confeti .8s cubic-bezier(.2,.8,.3,1) forwards}
.confeti i:nth-child(3n){border-radius:50%}
@keyframes confeti{0%{transform:translate(0,0) scale(.6);opacity:1}70%{opacity:1}100%{transform:translate(var(--dx),calc(var(--dy) + 18px)) rotate(200deg) scale(1);opacity:0}}

@media (prefers-reduced-motion:reduce){#tablero::after,.kanban.recien .kb-tarjeta{animation:none}button.primary::after{display:none}.sidebar nav a:hover .chip{transform:none}}

/* Distintivo propio (sin logo de empresa) */
.marca{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:8px;background:var(--x-black);color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.marca svg{width:16px;height:16px}
.logo span{border-left:0;padding-left:0}
#acceso .marca{justify-self:center;width:40px;height:40px;border-radius:11px}#acceso .marca svg{width:22px;height:22px}
