/* Estilos propios de la app real (sobre castaia.css). Solo tokens var(--c-…), claro y oscuro. */

/* ---------- Inicio de sesión ---------- */
.login{min-height:100dvh;display:grid;place-items:center;padding:var(--sp-5);background:var(--c-bg)}
.login-card{width:min(400px,100%);padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-4)}
.login-logo{color:var(--c-text);margin-bottom:var(--sp-2)}
.login-logo-svg{width:170px;height:auto}
.login-logo-svg path{stroke:none}
.login h1{font-size:var(--fs-xl);font-weight:700}
.login p{font-size:var(--fs-sm);margin-top:calc(-1 * var(--sp-3))}
.login .input{width:100%}
.login-eq summary{cursor:pointer;font-size:var(--fs-sm);color:var(--c-text-2);margin-bottom:var(--sp-2)}
.login-err{background:var(--c-danger-soft);color:var(--c-danger);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm)}
.login .btn-lg{width:100%}
.brand .logo-full path,.brand .logo-sym path{stroke:none}

/* ---------- Navegación: módulos que llegan después ---------- */
.nav-item.pronto{opacity:.45}
.nav-item.pronto:hover{background:none}
.tab.pronto{opacity:.5;cursor:default}
.tab.pronto:hover{color:var(--c-text-2)}

/* ---------- Conexión y sincronización (D-068) ---------- */
.conn.pendiente{color:var(--c-warning)}
.conn.sin-red{color:var(--c-danger)}

/* ---------- Pantalla de ventas ---------- */
.code-row{position:relative}
.resultados{position:absolute;left:var(--sp-4);right:var(--sp-4);top:calc(100% - var(--sp-3));z-index:20;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);box-shadow:var(--shadow-2);max-height:340px;overflow:auto}
.resultado{display:flex;gap:var(--sp-3);align-items:center;width:100%;padding:10px var(--sp-4);border:0;background:none;text-align:left;cursor:pointer;border-bottom:1px solid var(--c-border)}
.resultado:last-child{border-bottom:0}
.resultado:hover,.resultado.sel{background:var(--c-primary-soft)}
.resultado .r-n{flex:1;min-width:0}
.resultado .r-n b{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.resultado .r-n small{color:var(--c-text-3);font-size:var(--fs-xs)}
.resultado .r-p{font-weight:700;font-variant-numeric:tabular-nums}
.sin-resultados{padding:var(--sp-4);color:var(--c-text-3);font-size:var(--fs-sm)}

.qty input{width:44px;border:0;background:none;text-align:center;font-variant-numeric:tabular-nums;outline:none;height:28px}
.qty input:focus{background:var(--c-primary-soft)}
.lines tr.nueva{animation:resalta 1.2s ease-out}
@keyframes resalta{from{background:var(--c-primary-soft)}to{background:transparent}}
.pre-head .input[readonly]{background:var(--c-surface-2);color:var(--c-text-2)}
.pay button[disabled]{opacity:.4;cursor:not-allowed}
.received .input[readonly]{background:var(--c-surface-2)}
.aviso-sync{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-5) 0;font-size:var(--fs-xs);color:var(--c-text-3)}
.aviso-sync.warn{color:var(--c-warning)}
.cobro-err{margin:0 var(--sp-5) var(--sp-4);background:var(--c-danger-soft);color:var(--c-danger);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm)}
.btn[disabled]{opacity:.55;cursor:progress}
.last-sale .folio{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--c-border);padding-bottom:var(--sp-2);margin-bottom:var(--sp-1)}
.last-sale .folio b{font-size:var(--fs-md)}
.last-sale>div>b{font-size:var(--fs-md)}
/* Con el menú y Ágora abiertos el área de trabajo es angosta: se oculta la columna de precio unitario */
@container (max-width:1000px){.lines .col-precio{display:none}}
.lines th,.lines td{padding-left:10px;padding-right:10px}
.pre-chip .x{border:0;background:none;color:var(--c-text-3);cursor:pointer;padding:0 0 0 2px;font-size:15px;line-height:1}
.pre-chip .x:hover{color:var(--c-danger)}

/* ---------- Ágora: Nico llega en el paso 7 (doc 29 §13) ---------- */
.ag-pronto{margin:var(--sp-3) var(--sp-2);padding:var(--sp-3);border-radius:var(--r-md);background:var(--c-ai-soft);color:var(--c-text-2);font-size:var(--fs-sm);line-height:1.45}
.contact.pronto{cursor:default}

/* ---------- Avisos (se apilan, no se enciman) ---------- */
.toasts{position:fixed;bottom:70px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);z-index:80;pointer-events:none;width:max-content;max-width:92vw}
.toast-m{background:var(--c-text);color:var(--c-surface);padding:10px 18px;border-radius:10px;font-size:14px;box-shadow:var(--shadow-2);max-width:min(560px,92vw)}
.toast-error{background:var(--c-danger);color:#fff}
.toast-ok{background:var(--c-primary);color:var(--c-on-primary)}

/* Iframe de impresión del ticket: fuera de la vista */
.impresion{position:fixed;width:0;height:0;border:0;visibility:hidden}

@media (max-width:767px){
  .resultados{left:var(--sp-2);right:var(--sp-2)}
  .toasts{bottom:calc(var(--mbar-h) + 12px)}
  .pre-head .field.col-hide-m{display:none}
}

/* ---------- Agentes IA › Mis agentes (doc 23) ---------- */
.ag-av{border-radius:12px;object-fit:cover;flex:none;display:block}
.ag-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:var(--sp-4)}
.ag-card{display:flex;gap:var(--sp-4);align-items:center;padding:var(--sp-5);text-align:left;cursor:pointer;font:inherit;color:inherit;width:100%}
.ag-card:hover{border-color:var(--c-primary)}
.ag-card .ag-av{border-radius:18px}
.ag-card-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ag-card-t b{font-size:var(--fs-lg)}
.ag-card-t span{font-size:var(--fs-sm);color:var(--c-text-2)}
.ag-card-p{display:flex;gap:6px;flex-wrap:wrap;margin-top:var(--sp-2)}
.ag-card-pronto{flex-direction:column;align-items:flex-start;justify-content:center;border-style:dashed;cursor:default;color:var(--c-text-2);font-size:var(--fs-sm);gap:4px}
.ag-card-pronto:hover{border-color:var(--c-border)}
.ag-muestra{margin-top:var(--sp-5);padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-3);max-width:820px}
.ag-muestra-head{display:flex;gap:var(--sp-4);align-items:flex-start;justify-content:space-between}
.ag-muestra-head .pill{flex:none;white-space:nowrap}
.ag-muestra-head h2{font-size:var(--fs-md);margin:0 0 4px}
.ag-muestra-head p{margin:0;color:var(--c-text-2);font-size:var(--fs-sm);line-height:1.5}
.ag-muestra-texto{font-size:var(--fs-sm)}
.ag-muestra-texto summary{cursor:pointer;color:var(--c-primary)}
.ag-muestra-texto p{margin:var(--sp-2) 0 0;padding:var(--sp-3);background:var(--c-surface-2);border-radius:var(--r-md);line-height:1.5}
.ag-muestra-acc{display:flex;justify-content:flex-end}
@media (max-width:640px){.ag-muestra-head{flex-direction:column}}
.ag-card-pronto b{color:var(--c-text);font-size:var(--fs-md)}
/* «Contratar agentes» es un enlace: cursor de mano y se resalta al pasar */
.ag-card-contratar{cursor:pointer;text-decoration:none;transition:border-color .15s,background .15s}
.ag-card-contratar:hover,.ag-card-contratar:focus-visible{border-color:var(--c-primary);border-style:solid;background:var(--c-primary-soft)}
.ag-card-contratar:hover b,.ag-card-contratar:focus-visible b{color:var(--c-primary)}
.drawer .form-section{padding:0}
.drawer .form-section+.form-section{border-top:0}
.drawer .form-section .sub-title{margin-bottom:var(--sp-2)}
.drawer .input{width:100%}
.ag-help{display:block;font-size:var(--fs-xs);margin-top:6px}
.ag-preview{display:flex;gap:var(--sp-3);align-items:flex-end;padding:var(--sp-4);background:var(--c-surface-2);border-radius:var(--r-lg)}
.ag-preview .msg{background:var(--c-surface);max-width:none}
.ag-pers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2)}
.ag-per{display:flex;flex-direction:column;gap:2px;text-align:left;padding:var(--sp-3);border:1px solid var(--c-border);border-radius:var(--r-md);background:var(--c-surface);cursor:pointer;font:inherit;color:inherit}
.ag-per span{font-size:var(--fs-xs);color:var(--c-text-2)}
.ag-per.active{border-color:var(--c-accent);background:var(--c-ai-soft);box-shadow:inset 0 0 0 1px var(--c-accent)}
.ag-per:disabled{cursor:default}
.ag-avs{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:var(--sp-2)}
.ag-avbtn{aspect-ratio:1;border:2px solid transparent;border-radius:16px;padding:3px;background:none;cursor:pointer;display:grid;place-items:center}
.ag-avbtn img{width:100%;height:100%;border-radius:12px;object-fit:cover;display:block}
.ag-avbtn.active{border-color:var(--c-accent)}
.ag-avbtn:disabled{cursor:default}
.ag-subir{border:2px dashed var(--c-border);color:var(--c-text-2);font-size:var(--fs-xs);gap:2px;align-content:center}
.ag-subir:hover{border-color:var(--c-primary);color:var(--c-primary)}
.ag-err{background:var(--c-danger-soft);color:var(--c-danger);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm)}
.contact .ag-av,.ag-strip .ag-av{border-radius:12px}
@media (max-width:767px){.ag-pers{grid-template-columns:1fr}.drawer{width:100%}}

/* ---------- Ágora: conversación con el agente (doc 06, D-338) ---------- */
.ag-full .chat{flex:1;min-height:0}
button.contact{width:100%;border:0;background:none;font:inherit;color:inherit;text-align:left}
.ag-mini{border:0;background:none;padding:0}
.msg .btn{margin-top:var(--sp-2)}
.msg-botones{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--sp-2)}
.msg-botones .btn{margin:0;height:auto;min-height:30px;padding:4px 10px;white-space:normal;text-align:left;background:var(--c-surface)}
.msg-ver{display:flex;width:fit-content}
.msg-ver svg{width:14px;height:14px}
.msg.sistema{align-self:center;background:var(--c-warning-soft);color:var(--c-warning);font-size:var(--fs-xs)}
.msg-guia{margin:var(--sp-2) 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}
.msg-tabla{overflow-x:auto;margin-top:var(--sp-2)}
.msg-tabla th,.msg-tabla td{padding:4px 8px;font-size:var(--fs-xs)}
.msg.escribiendo{display:flex;gap:4px;align-items:center;padding:12px 14px}
.msg.escribiendo span{width:6px;height:6px;border-radius:50%;background:var(--c-text-3);animation:punto 1.2s infinite ease-in-out}
.msg.escribiendo span:nth-child(2){animation-delay:.15s}.msg.escribiendo span:nth-child(3){animation-delay:.3s}
@keyframes punto{0%,80%,100%{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.composer input{min-width:0}

/* ---------- Bienvenida guiada (D-377) ---------- */
.main{position:relative}
.bienvenida{position:absolute;right:var(--sp-5);bottom:64px;z-index:40;width:min(400px,calc(100% - 32px));display:flex;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);box-shadow:var(--shadow-2);border-color:var(--c-accent)}
.bienvenida .bv-t{display:flex;flex-direction:column;gap:6px;font-size:var(--fs-sm)}
.bienvenida .bv-t b:first-child{font-size:var(--fs-md)}
.bv-b{display:flex;gap:var(--sp-2);margin-top:var(--sp-2)}
@media (max-width:767px){.bienvenida{position:fixed;left:var(--sp-3);right:var(--sp-3);width:auto;bottom:calc(var(--mbar-h) + 64px)}}

/* ---------- Señalar (D-378): flecha flotante con halo ---------- */
.guia-halo{position:fixed;z-index:90;border-radius:14px;pointer-events:none;box-shadow:0 0 0 3px var(--c-accent),0 0 0 9999px rgba(10,14,20,.12);animation:halo 1.4s ease-in-out infinite}
@keyframes halo{0%,100%{box-shadow:0 0 0 3px var(--c-accent),0 0 0 9999px rgba(10,14,20,.12)}50%{box-shadow:0 0 0 7px color-mix(in srgb,var(--c-accent) 45%,transparent),0 0 0 9999px rgba(10,14,20,.12)}}
.guia-flecha{position:fixed;z-index:91;pointer-events:none;display:flex;flex-direction:column;align-items:flex-start;animation:flota 1.2s ease-in-out infinite}
.guia-flecha svg{width:28px;height:28px;stroke:var(--c-accent);stroke-width:2.6;margin-left:calc(var(--px, 50%) - 14px)}
.guia-flecha span{background:var(--c-accent);color:#fff;font-size:var(--fs-sm);font-weight:600;padding:8px 12px;border-radius:10px;box-shadow:var(--shadow-2);max-width:100%}
.guia-flecha span:empty{display:none}
.guia-flecha.arriba{flex-direction:column-reverse;transform:translateY(-100%)}
.guia-flecha.arriba svg{transform:rotate(180deg)}
.guia-flecha.lado{flex-direction:row-reverse;align-items:center;justify-content:flex-start;gap:4px;animation-name:flota-lado}
.guia-flecha.lado svg{margin:0;transform:rotate(90deg);flex:none}
@keyframes flota-lado{0%,100%{translate:0 0}50%{translate:5px 0}}
@keyframes flota{0%,100%{translate:0 0}50%{translate:0 5px}}
@media (prefers-reduced-motion:reduce){.guia-halo,.guia-flecha,.msg.escribiendo span{animation:none}}

/* Ágora: personas y agentes, tiempo real (D-382, D-383, D-384) */
.ag-buscar{padding:0 var(--sp-3) var(--sp-2)}
.ag-buscar .cl-buscar{max-width:none;min-width:0}
.ag-buscar .input{height:34px;font-size:var(--fs-sm)}
.ag-vacio{padding:var(--sp-4);color:var(--c-text-3);font-size:var(--fs-sm);text-align:center}
.ag-escribe,.ag-en-linea{color:var(--c-success);font-style:italic}
.ag-en-linea{font-style:normal}
.ag-conexion{margin:0 var(--sp-3) var(--sp-2);padding:4px var(--sp-3);border-radius:var(--r-full);background:var(--c-surface-2);color:var(--c-text-3);font-size:11px;text-align:center}
.contact{width:100%;border:0;background:none;font:inherit;color:inherit;text-align:left}
.msg.vivo .cursor{display:inline-block;width:7px;height:1em;margin-left:2px;vertical-align:-2px;background:currentColor;opacity:.55;border-radius:1px;animation:ag-parpadeo 1s steps(2) infinite}
@keyframes ag-parpadeo{50%{opacity:0}}
.msg-actividad{display:block;margin-top:4px;font-size:11px;color:var(--c-text-3);font-style:italic}
.msg time{text-align:right}
.msg .tick{margin-left:2px;letter-spacing:-3px}
/* Leído en azul fuerte (D-566): la hora ya no lleva transparencia (apagaba el azul) y el enviado/entregado va más tenue */
.msg.me time{opacity:1;color:rgba(255,255,255,.72)}
.msg.me .tick{color:rgba(255,255,255,.6)}
.msg .tick.leido{color:#5fd0ff;font-weight:800;text-shadow:0 0 2px rgba(0,30,70,.55)}
@media (prefers-reduced-motion:reduce){.msg.vivo .cursor{animation:none}}

/* Barra móvil (D-339): Ágora al centro solo se ve encendida cuando está abierta; lo que aún no existe, apagado */
@media (max-width:767px){
  .mb-agora .mb-ag{background:rgba(255,255,255,.08);color:var(--c-nav-text);box-shadow:inset 0 0 0 1.5px var(--c-brand-jade)}
  .mb-agora.active .mb-ag{background:var(--c-brand-jade);color:#fff;box-shadow:none}
  .mb-agora.active{color:#fff;font-weight:600}
  .mb-it.pronto{opacity:.38}
  .ms-it.pronto{opacity:.4}
  .ms-sec .um-item{width:100%}
}

/* Ventas › Historial (doc 16 §3, D-387) */
.hv-filtros{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center;margin-bottom:var(--sp-4)}
.hv-filtros .input{height:34px;font-size:var(--fs-sm)}

.hv-periodo{overflow-x:auto;max-width:100%}
.hv-lista{overflow:hidden}
.hv-tabla tbody tr{cursor:pointer}
.hv-tabla tr.hv-cancelada td{color:var(--c-text-3)}
.hv-tabla tr.hv-cancelada td b{text-decoration:line-through}
.hv-mas{display:flex;justify-content:center;padding:var(--sp-3);border-top:1px solid var(--c-border)}
.hv-det-head{display:flex;gap:var(--sp-3);align-items:center;flex-wrap:wrap;margin-bottom:var(--sp-4);font-size:var(--fs-sm)}
.hv-partidas td,.hv-partidas th{padding:8px var(--sp-2)}
.hv-sub{display:block;font-size:11px;margin-top:2px}
.hv-totales{margin-top:var(--sp-3);display:flex;flex-direction:column;gap:6px;font-size:var(--fs-sm)}
.hv-totales div{display:flex;justify-content:space-between;font-variant-numeric:tabular-nums}
.hv-totales .t{font-weight:700;font-size:var(--fs-lg);padding:6px 0;border-top:1px dashed var(--c-border);border-bottom:1px dashed var(--c-border)}
.hv-cancelar{margin-top:var(--sp-4)}
.hv-cancelar-acc{display:flex;justify-content:flex-end;gap:var(--sp-2);margin-top:var(--sp-3)}
/* En pantallas angostas cada venta es una tarjeta: folio y total arriba, lo demás abajo */
@container (max-width:640px){
  .hv-tabla thead{display:none}
  .hv-tabla,.hv-tabla tbody{display:block}
  .hv-tabla tr{display:grid;grid-template-columns:1fr auto;gap:2px var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--c-border)}
  .hv-tabla td{display:block;padding:0;border:0;font-size:var(--fs-sm)}
  .hv-tabla td[data-l="Folio"]{grid-column:1}
  .hv-tabla td[data-l="Total"]{grid-column:2;grid-row:1}
  .hv-tabla td[data-l="Fecha"],.hv-tabla td[data-l="Cobró"],.hv-tabla td[data-l="Pago"]{grid-column:1;color:var(--c-text-2)}
  .hv-tabla td[data-l="Estado"]{grid-column:2;grid-row:2;text-align:right}

  .hv-filtros select.input{flex:1;min-width:140px}
}

/* Configuración › Usuarios y permisos (doc 24, D-388) */
.us-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),1fr));gap:var(--sp-3)}
.us-card{display:flex;gap:var(--sp-3);align-items:center;padding:var(--sp-4);text-align:left;cursor:pointer;font:inherit;color:inherit;width:100%}
.us-card:hover{border-color:var(--c-primary)}
.us-card-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:var(--fs-sm)}
.us-card-t b{font-size:var(--fs-md)}
.us-ayuda{font-size:var(--fs-sm);margin:0 0 var(--sp-2)}
.us-sups{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4)}
.us-perm{display:flex;gap:var(--sp-3);align-items:center;justify-content:space-between;padding:var(--sp-2) 0;border-bottom:1px solid var(--c-border)}
.us-perm:last-child{border-bottom:0}
.us-perm-t{min-width:0;display:flex;flex-direction:column;gap:2px;font-size:var(--fs-sm)}
.us-perm-t small{font-size:11px}
.us-perm .seg button:disabled{opacity:.4;cursor:not-allowed}
@media (max-width:767px){.us-perm{flex-direction:column;align-items:stretch}.us-perm .seg{align-self:flex-start}}

/* Solicitudes de autorización en Ágora (doc 17, D-388) */
.sol-card{margin-top:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:10px;background:var(--c-surface);color:var(--c-text);border:1px solid var(--c-border);display:flex;flex-direction:column;gap:6px}
.sol-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:var(--fs-sm)}
.sol-top svg{width:16px;height:16px;fill:none;stroke:var(--c-primary);stroke-width:2}
.sol-acc{display:flex;flex-wrap:wrap;gap:6px}
.sol-motivo{height:32px;font-size:var(--fs-sm);flex-basis:100%}

/* Ágora › Chats con departamento y cargo (D-390) */
.contact .top .ag-cargo{font-size:11px;color:var(--c-text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.chat-head .chat-tarea{margin-left:auto;flex:none;display:inline-flex;align-items:center;gap:5px;color:var(--c-primary);background:var(--c-primary-soft);border-color:transparent;font-weight:600}
.chat-head .chat-tarea svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.chat-head .who{min-width:0}
.chat-head .who b,.chat-head .who small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Ágora › Tareas (D-391): tablero kanban de post-its */
.ag-tareas{flex:1;min-height:0;display:flex;flex-direction:column}
.tb{container-type:inline-size;display:flex;flex-direction:column;flex:1;min-height:0}
.tb-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:0 var(--sp-4) var(--sp-2)}
.tb-bar .seg button{padding:0 var(--sp-2)}
.tb-cuerpo{flex:1;overflow:auto;padding:0 var(--sp-3) var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3)}
.tb-cols{display:grid;grid-template-columns:1fr;gap:var(--sp-3)}
@container (min-width:620px){.tb-cols{grid-template-columns:repeat(4,minmax(0,1fr));align-items:start}}
.tb-col{background:var(--c-surface-2);border-radius:var(--r-md);padding:var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-2);transition:box-shadow .15s}
.tb-col.sobre{box-shadow:inset 0 0 0 2px var(--c-primary)}
.tb-col header{display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-sm);font-weight:600;padding:2px 4px}
.tb-col header em{font-style:normal;font-weight:600;font-size:11px;color:var(--c-text-3);background:var(--c-surface);border-radius:var(--r-full);min-width:20px;text-align:center;padding:1px 6px}
.tb-col[data-col="focus"] header span{color:var(--c-primary)}
.tb-lista{display:flex;flex-direction:column;gap:var(--sp-2);min-height:28px}
.tb-vacia{font-size:var(--fs-xs);color:var(--c-text-3);text-align:center;padding:6px 0;margin:0}
.tb-card{background:color-mix(in srgb,#ffd84d 16%,var(--c-surface));border:1px solid color-mix(in srgb,#e8b400 22%,var(--c-border));border-radius:8px;padding:var(--sp-2) var(--sp-3);display:flex;flex-direction:column;gap:4px;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.06);font-size:var(--fs-sm)}
.tb-card:hover,.tb-card:focus-visible{border-color:var(--c-primary);outline:none}
.tb-card[draggable="true"]{cursor:grab}
.tb-card.arrastrando{opacity:.5}
.tb-card.vencida{border-left:3px solid var(--c-danger)}
.tb-card.hecha{background:var(--c-surface);opacity:.75}
.tb-card.hecha b{text-decoration:line-through;color:var(--c-text-2)}
.tb-card b{font-weight:600;line-height:1.3;overflow-wrap:anywhere}
.tb-espera{font-size:11px;color:var(--c-text-2)}
.tb-meta{display:flex;flex-wrap:wrap;gap:4px;align-items:center;font-size:11px;color:var(--c-text-3)}
.tb-meta i{font-style:normal}
.tb-fecha.mal{color:var(--c-danger);font-weight:600}
.tb-fecha.hoy{color:var(--c-warning,#b7791f);font-weight:600}
.tb-com{display:inline-flex;align-items:center;gap:2px}
.tb-com svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2}
.tb-pie{text-align:center}
.tb-hechas{opacity:.9}
.tb-aviso .sol-top svg{stroke:var(--c-primary)}
.tb-aviso-t{font-weight:600;font-size:var(--fs-sm)}
/* Apuntes (D-515): hojitas personales en Ágora */
.ap{container-type:inline-size;display:flex;flex-direction:column;flex:1;min-height:0;
  --ap-amarillo:#fff3a6;--ap-rosa:#ffd7e4;--ap-verde:#d5f2c8;--ap-azul:#d3e8fd;--ap-morado:#e5dcfb;--ap-naranja:#ffe0c2;--ap-tinta:#2d2a24}
[data-theme="dark"] .ap,[data-theme="dark"] .ap-fantasma{--ap-amarillo:#4d4520;--ap-rosa:#4d2a36;--ap-verde:#27412a;--ap-azul:#223a52;--ap-morado:#372f52;--ap-naranja:#4f3420;--ap-tinta:#ece7da}
.ap-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-2);padding:0 var(--sp-4) var(--sp-2)}
.ap-letra{display:flex;align-items:center;gap:2px;background:var(--c-surface-2);border-radius:var(--r-md);padding:3px}
.ap-b{border:0;background:none;height:28px;min-width:30px;padding:0 6px;border-radius:7px;cursor:pointer;color:var(--c-text-2);font-size:14px;font-weight:600;line-height:1}
.ap-b sub,.ap-b sup{font-size:10px;vertical-align:0;margin-left:1px}
.ap-b:hover:not(:disabled){background:var(--c-surface);color:var(--c-text)}
.ap-b:disabled{opacity:.35;cursor:default}
.ap-b.active{background:var(--c-surface);color:var(--c-text);box-shadow:var(--shadow-1)}
.ap-sep{width:1px;height:18px;background:var(--c-border);margin:0 3px}
.ap-cuerpo{flex:1;overflow:auto;padding:var(--sp-1) var(--sp-3) var(--sp-4)}
.ap-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-auto-rows:4px;column-gap:12px;row-gap:0;align-items:start}
/* Columnas sin huecos: cada apunte ocupa tantas filas de 4 px como mide (+12 de separación); lo calcula apuntes.mjs */
@container (max-width:300px){.ap-grid{grid-template-columns:1fr}}
.ap-card{position:relative;background:var(--ap-amarillo);color:var(--ap-tinta);border-radius:4px 4px 14px 4px;padding:12px 12px 6px;min-height:118px;display:flex;flex-direction:column;
  box-shadow:0 1px 2px rgba(0,0,0,.08),0 4px 10px -6px rgba(0,0,0,.25);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;outline:none;transition:box-shadow .15s}
.ap-card:focus-visible{box-shadow:0 0 0 2px var(--c-primary)}
.ap-c-amarillo{background:var(--ap-amarillo)}.ap-c-rosa{background:var(--ap-rosa)}.ap-c-verde{background:var(--ap-verde)}
.ap-c-azul{background:var(--ap-azul)}.ap-c-morado{background:var(--ap-morado)}.ap-c-naranja{background:var(--ap-naranja)}
.ap-txt{flex:1;white-space:pre-wrap;overflow-wrap:break-word;cursor:text;line-height:1.35;min-height:3em}
.ap-ph{opacity:.5}
.ap-busca{padding:0 var(--sp-4) var(--sp-2)}
.ap-busca[hidden]{display:none}
.ap-busca .cl-buscar{width:100%}
/* Largos (D-516): hasta 12 renglones y «Ver todo»; abierto o editándolo se ve completo */
.ap-txt{max-height:calc(1.35em * 12);overflow:hidden}
.ap-card.ap-todo .ap-txt{max-height:none}
.ap-card.ap-largo:not(.ap-todo) .ap-txt{-webkit-mask-image:linear-gradient(#000 70%,transparent);mask-image:linear-gradient(#000 70%,transparent)}
.ap-ver{display:none;align-self:flex-start;border:0;background:none;color:inherit;font:600 12px/1 var(--font);opacity:.7;padding:6px 0 0;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.ap-ver:hover{opacity:1}
.ap-card.ap-largo .ap-ver{display:block}
/* Fijados (D-516) */
.ap-pin{position:absolute;top:4px;right:4px;width:24px;height:24px;border:0;border-radius:50%;background:transparent;color:inherit;opacity:.7;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.ap-pin:hover{opacity:1;background:rgba(0,0,0,.08)}
.ap-pin svg{width:15px;height:15px;fill:currentColor;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round;transform:rotate(30deg)}
.ap-card.ap-fijado{padding-right:26px}
.ap-card.ap-fijado .ap-i[data-accion="fijar"] svg{fill:currentColor}
.ap-ta{flex:none;width:100%;border:0;background:transparent;color:inherit;font:inherit;line-height:1.35;resize:none;outline:none;padding:0;min-height:5em;overflow:hidden}
.ap-acc{display:flex;align-items:center;justify-content:flex-end;gap:2px;margin-top:6px;min-height:28px;opacity:0;transition:opacity .15s}
.ap-card:hover .ap-acc,.ap-card:focus-within .ap-acc,.ap-card.editando .ap-acc{opacity:1}
@media (hover:none){.ap-acc{opacity:.75}}
.ap-i{width:28px;height:28px;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;opacity:.75}
.ap-i:hover{background:rgba(0,0,0,.08);opacity:1}
[data-theme="dark"] .ap-i:hover{background:rgba(255,255,255,.1)}
.ap-i svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ap-i[data-accion="color"] svg{fill:currentColor;fill-opacity:.15}
.ap-ia{margin-right:auto;font-size:10px;font-weight:700;opacity:.55;letter-spacing:.04em}
.ap-guarda{margin-right:auto;font-size:11px;opacity:.55}
/* Dentro de la tarjeta: en apuntes angostos los colores pasan a otro renglón en vez de salirse (D-562) */
.ap-paleta{position:absolute;right:8px;bottom:38px;max-width:calc(100% - 16px);display:flex;flex-wrap:wrap;justify-content:center;gap:6px;padding:6px;background:var(--c-surface);border-radius:16px;box-shadow:var(--shadow-2);z-index:3}
.ap-paleta button{width:24px;height:24px;border-radius:50%;border:1px solid rgba(0,0,0,.15);cursor:pointer;padding:0}
.ap-paleta button.active{box-shadow:0 0 0 2px var(--c-surface),0 0 0 4px var(--c-primary)}
.ap-hueco{opacity:.3;outline:2px dashed var(--c-border-strong,var(--c-border));outline-offset:-2px;box-shadow:none}
.ap-hueco>*{visibility:hidden}
.ap-fantasma{position:fixed;left:0;top:0;z-index:90;pointer-events:none;box-shadow:0 12px 28px -8px rgba(0,0,0,.4);opacity:.95;
  --ap-amarillo:#fff3a6;--ap-rosa:#ffd7e4;--ap-verde:#d5f2c8;--ap-azul:#d3e8fd;--ap-morado:#e5dcfb;--ap-naranja:#ffe0c2;--ap-tinta:#2d2a24}
.ap-fantasma .ap-acc{opacity:0}
.ap-t-chica{font-size:13px}.ap-t-normal{font-size:15px}.ap-t-grande{font-size:18px}.ap-t-muy_grande{font-size:22px}
.ap-l-sans{font-family:var(--font)}
.ap-l-serif{font-family:Georgia,"Times New Roman",serif}
.ap-l-mono{font-family:ui-monospace,"Cascadia Mono",Consolas,Menlo,monospace}
.ap-l-manuscrita{font-family:"Segoe Print","Bradley Hand","Comic Sans MS","Chalkboard SE",cursive}
.ap-tipo{font-weight:500}
.ap-ayuda{margin:var(--sp-3) 0 0;text-align:center;font-size:var(--fs-xs);color:var(--c-text-3)}
.ap-vacio{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-6) var(--sp-4);text-align:center;color:var(--c-text-2);font-size:var(--fs-sm)}
.ap-vacio svg{width:44px;height:44px;fill:var(--ap-amarillo);stroke:#c9a400;stroke-width:1.5;stroke-linejoin:round}
.ap-vacio p{margin:0;line-height:1.5}
.toast-accion{display:flex;align-items:center;gap:var(--sp-3);pointer-events:auto}
.toast-accion button{border:0;background:none;color:var(--c-primary-soft,#9fd8c8);font-weight:700;cursor:pointer;padding:4px 2px;font-size:14px}
/* Detalle de la tarea */
.td-head{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:var(--fs-sm)}
.td-desc{white-space:pre-wrap;font-size:var(--fs-sm);margin:0}
.td-mover{display:flex;flex-wrap:wrap;width:100%}
.td-mover button{flex:1 1 auto}
.td-espera{display:flex;gap:var(--sp-2);margin-top:var(--sp-2)}
.td-espera.hidden{display:none}
.td-espera .input{flex:1;min-width:0}
.td-comentarios{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-2)}
.td-com{background:var(--c-surface-2);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm)}
.td-com.mio{background:var(--c-primary-soft)}
.td-com p{margin:2px 0;white-space:pre-wrap}
.td-com time{font-size:11px;color:var(--c-text-3)}
.td-comentar{display:flex;flex-direction:column;gap:var(--sp-2);align-items:flex-end}
.td-comentar textarea{width:100%;min-height:60px}
.td-historial{font-size:var(--fs-sm);color:var(--c-text-2)}
.td-historial summary{cursor:pointer;font-weight:600;color:var(--c-text)}
.td-historial ul{margin:var(--sp-2) 0 0;padding-left:18px;display:flex;flex-direction:column;gap:4px}
.td-confirmar{display:flex;flex-direction:column;gap:var(--sp-2)}
.td-conf-acc{display:flex;gap:var(--sp-2);justify-content:flex-end}
.td-eliminar{color:var(--c-danger)}
/* En el celular Ágora ocupa la pantalla: el panel de detalle va encima */
.app.agora-mobile~.scrim{z-index:55}
.app.agora-mobile~.drawer{z-index:60}
.us-puesto{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}
.us-rol{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap}.us-rol select{flex:1;min-width:200px;max-width:360px}
.us-vista{margin-bottom:var(--sp-3)}
.us-nuevo-depto{display:flex;gap:var(--sp-2);margin-top:var(--sp-2);flex-wrap:wrap}
.us-nuevo-depto .input{flex:1 1 140px;min-width:0}
.us-nuevo-depto.hidden{display:none}
@media (max-width:767px){.us-puesto{grid-template-columns:1fr}}
.tb-pie .link{padding:4px 8px;font-size:var(--fs-sm)}
textarea.input{font:inherit}

/* iPhone: Safari acerca la página si un campo tiene letra menor a 16 px y se queda así (sobre todo en Ágora).
   Con 16 px en pantallas táctiles no hay zoom y no hace falta bloquear el zoom con los dedos. */
@media (max-width:767px), (pointer:coarse){
  input.input,select.input,textarea.input,.composer input,.ag-buscar input,input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px}
}
/* Con el teclado abierto en el celular, la barra inferior se esconde para dejarle espacio a lo que se escribe */
@media (max-width:767px){
  body.teclado .mbar{display:none}
  body.teclado .app{padding-bottom:0}
  body.teclado .app.agora-mobile .agora,body.teclado .drawer,body.teclado .scrim{bottom:0}
}
.tn-cuando{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}
.msg-lista{margin:4px 0;padding-left:18px}
.msg-lista li{margin:2px 0}

/* ---------- Responder a un mensaje (D-399) ---------- */
.msg[data-mid]{position:relative;transition:transform .15s ease}
.msg-resp{position:absolute;top:50%;transform:translateY(-50%);width:28px;height:28px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--c-surface);color:var(--c-text-2);box-shadow:var(--shadow-1);cursor:pointer;opacity:0;transition:opacity .12s;padding:0}
.msg-resp svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.msg.them .msg-resp{right:-36px}
.msg.me .msg-resp{left:-36px}
.msg:hover .msg-resp,.msg-resp:focus-visible{opacity:1}
@media (hover:none){.msg-resp{opacity:.6}}
.cita{display:flex;flex-direction:column;gap:1px;width:100%;margin:0 0 6px;padding:5px 8px;border:0;border-left:3px solid var(--c-primary);border-radius:6px;background:rgba(0,0,0,.06);color:inherit;font:inherit;font-size:var(--fs-xs);text-align:left;cursor:pointer;min-width:0}
.msg.me .cita{background:rgba(255,255,255,.18);border-left-color:rgba(255,255,255,.85)}
.cita b{font-weight:600}
.cita span{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;opacity:.85}
.cmp-cita{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3) 0;border-top:1px solid var(--c-border)}
.cmp-cita + .composer{border-top:0}
.cmp-cita .cita{margin:0;cursor:default;background:var(--c-surface-2);flex:1}
.cmp-cita.hidden{display:none}
.msg.resaltado{animation:msg-resaltar 1.4s ease}
@keyframes msg-resaltar{0%,40%{box-shadow:0 0 0 3px var(--c-accent)}100%{box-shadow:0 0 0 0 transparent}}

/* ---------- Configuración base (D-404) ---------- */
.emp-ini{width:100%;height:100%;display:grid;place-items:center;background:var(--c-brand-jade,var(--c-primary));color:#fff;font-weight:700;font-size:12px}
.emp-ini.sm{font-size:10px}
#sucLogo img{object-fit:contain;background:#fff}
.cfg-page{container-type:inline-size}
.cfg-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:var(--sp-4);align-items:start}
.cfg-side{position:sticky;top:var(--sp-4)}
@container (max-width:740px){.cfg-layout{grid-template-columns:1fr}.cfg-side{display:contents}.cfg-avance{order:-1}.cfg-logo-card{order:1}}
.cfg-main,.cfg-side{gap:var(--sp-4)}
.cfg-chips{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}
.cfg-chips .chip svg{width:14px;height:14px}
.cfg-sec-head{display:flex;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-4)}
.cfg-sec-head h3{font-size:var(--fs-md);font-weight:600;margin:0 0 2px}
.cfg-sec-head p{margin:0;font-size:var(--fs-sm);color:var(--c-text-2)}
.cfg-ayuda{display:block;font-size:var(--fs-xs);margin-top:4px}
.cfg-pie{display:flex;justify-content:flex-end;padding-top:var(--sp-4)}
.form-section.cfg-pie{padding-top:var(--sp-4)}
.cfg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),1fr));gap:var(--sp-4);align-items:start}
.cfg-grid>.card{margin:0}
.cfg-radio{display:grid;gap:var(--sp-2)}
.cfg-radio label{display:flex;gap:var(--sp-3);align-items:flex-start;padding:var(--sp-3) var(--sp-4);border:1px solid var(--c-border);border-radius:var(--r-md);cursor:pointer}
.cfg-radio label.on{border-color:var(--c-primary);background:var(--c-primary-soft)}
.cfg-radio input{margin-top:2px}
.cfg-radio b{display:flex;align-items:center;gap:6px;font-weight:600}
.cfg-radio small{display:block;color:var(--c-text-2);font-size:var(--fs-xs);margin-top:2px}
.cfg-avance .sub-title{margin-bottom:var(--sp-2)}
.cfg-check{display:flex;flex-direction:column;margin:0 calc(-1 * var(--sp-2)) var(--sp-3)}
.cfg-check-item{display:flex;align-items:flex-start;gap:var(--sp-2);width:100%;padding:8px var(--sp-2);border:0;background:none;border-radius:var(--r-md);text-align:left;font:inherit;font-size:var(--fs-sm);color:var(--c-text);cursor:pointer}
.cfg-check-item:hover{background:var(--c-surface-2)}
.cfg-check-item .dot{width:8px;height:8px;border-radius:50%;background:var(--c-accent);margin-top:6px;flex:none}
.cfg-check-item .txt{flex:1}
.cfg-check-item svg{width:16px;height:16px;color:var(--c-text-3);flex:none;margin-top:2px;fill:none;stroke:currentColor;stroke-width:2}
.cfg-agente{width:100%;justify-content:center}
.cfg-agente svg,.cfg-st .btn svg,.cfg-logo-card .btn svg,#sNuevaSerie svg{width:15px;height:15px}
.cfg-listo{display:flex;gap:var(--sp-3);align-items:flex-start;margin-top:var(--sp-2);font-size:var(--fs-sm)}
.cfg-listo svg{width:22px;height:22px;color:var(--c-success,var(--c-primary));flex:none;fill:none;stroke:currentColor;stroke-width:2.4}
.cfg-listo b{display:block}.cfg-listo small{color:var(--c-text-2)}
.cfg-logo-card h3{margin:0 0 2px;font-size:var(--fs-md)}
.cfg-logo-card p{margin:0 0 var(--sp-3);font-size:var(--fs-sm)}
.cfg-logo-row{display:flex;align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-3)}
.cfg-logo{width:120px;height:80px;border:1px dashed var(--c-border);border-radius:var(--r-md);display:grid;place-items:center;overflow:hidden;background:#fff}
.cfg-logo img{max-width:100%;max-height:100%;object-fit:contain}
.cfg-logo span,.cfg-logo-circ span{font-weight:700;color:var(--c-text-3)}
.cfg-logo-circ{width:44px;height:44px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:#fff;box-shadow:0 0 0 1px var(--c-border)}
.cfg-logo-circ img{width:100%;height:100%;object-fit:contain}
.cfg-serie{display:flex;gap:var(--sp-3);align-items:center;margin-bottom:var(--sp-2)}
.cfg-serie .mono{min-width:44px;height:44px;padding:0 8px;border-radius:var(--r-md);display:grid;place-items:center;background:var(--c-primary-soft);color:var(--c-primary);font-weight:700;font-size:var(--fs-lg,18px)}
.cfg-serie b{display:block}.cfg-serie small{color:var(--c-text-2);font-size:var(--fs-xs)}
.cfg-serie-form{margin:var(--sp-3) 0;display:flex;flex-direction:column;gap:var(--sp-3)}
#sNuevaSerie{margin-top:var(--sp-3)}
.cfg-confirmar{margin-top:var(--sp-3)}
.cfg-confirmar p{margin:0 0 var(--sp-2)}
.cfg-acepto{display:flex;gap:var(--sp-2);align-items:flex-start;font-size:var(--fs-sm);margin-bottom:var(--sp-2)}
.cfg-st{display:flex;justify-content:space-between;align-items:center;margin:var(--sp-2) 0 0}
.cfg-st h2{font-size:var(--fs-md);margin:0}
.cfg-tabla-wrap{overflow-x:auto}
.cfg-tabla{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
.cfg-tabla th{text-align:left;font-size:var(--fs-xs);color:var(--c-text-3);font-weight:600;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--c-border)}
.cfg-tabla td{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--c-border);vertical-align:top}
.cfg-tabla tr:last-child td{border-bottom:0}
.cfg-tabla tr.clickable{cursor:pointer}
.cfg-tabla tr.clickable:hover{background:var(--c-surface-2)}
.cfg-tabla td small{display:block;color:var(--c-text-2);font-size:var(--fs-xs)}
.cfg-tabla .icon-btn svg{width:16px;height:16px}
.cfg-pills{display:flex;flex-wrap:wrap;gap:4px}
.cfg-cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:var(--sp-3)}
.cfg-cat{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-4);text-align:left;font:inherit;color:inherit;cursor:pointer;width:100%}
.cfg-cat:hover{border-color:var(--c-primary)}
.cfg-cat .sub-title{margin-bottom:4px}
.cfg-cat-head{display:flex;justify-content:space-between;gap:var(--sp-2)}
.cfg-cat-head h3{margin:0;font-size:var(--fs-md)}
.cfg-cat small{color:var(--c-text-2);font-size:var(--fs-xs)}
.cfg-checks{display:flex;flex-direction:column;gap:2px;margin-top:var(--sp-2)}
.cfg-checks label{display:flex;gap:8px;align-items:flex-start;padding:6px 0;font-size:var(--fs-sm);cursor:pointer}
.cfg-checks input{margin-top:1px}
.cfg-checks small{display:block;color:var(--c-text-2);font-size:var(--fs-xs)}
.cfg-round{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}
.cfg-precios{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}
.cfg-precios label{display:flex;align-items:center;gap:var(--sp-2)}
.cfg-precios label span{width:18px;text-align:right;color:var(--c-text-3);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}
.cfg-precios .input{flex:1;min-width:0}
.us-accesos{display:flex;flex-direction:column;gap:var(--sp-3)}
.us-acceso b{font-weight:600}
.us-alms{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4);padding-left:26px;margin-top:4px}
/* Datos no obligatorios colapsados (D-405) */
.cfg-opcionales>summary{list-style:none;cursor:pointer;display:flex;flex-direction:column;gap:2px;padding-right:28px;position:relative}
.cfg-opcionales>summary::-webkit-details-marker{display:none}
.cfg-opcionales>summary::after{content:"";position:absolute;right:4px;top:6px;width:8px;height:8px;border-right:2px solid var(--c-text-3);border-bottom:2px solid var(--c-text-3);transform:rotate(45deg);transition:transform .15s}
.cfg-opcionales[open]>summary::after{transform:rotate(-135deg);top:10px}
.cfg-opcionales>summary b{font-weight:600;font-size:var(--fs-md)}
.cfg-opcionales>summary small{color:var(--c-text-2);font-size:var(--fs-xs)}
.cfg-opcionales[open]>summary{margin-bottom:var(--sp-4)}
section .cfg-opcionales{margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid var(--c-border)}
.cfg-sub{margin:var(--sp-5) 0 var(--sp-3)}
/* Archivos en Ágora (D-406) */
.cmp-clip{color:var(--c-text-2);flex:none}
.cmp-clip svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.cmp-adjuntos{display:flex;flex-wrap:wrap;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3) 0;border-top:1px solid var(--c-border)}
.cmp-adjuntos.hidden{display:none}
.cmp-adjuntos + .composer,.cmp-cita:not(.hidden) + .cmp-adjuntos{border-top:0}
.cmp-adj{display:flex;align-items:center;gap:6px;max-width:100%;padding:4px 4px 4px 8px;border-radius:var(--r-md);background:var(--c-surface-2);font-size:var(--fs-xs)}
.cmp-adj>span{display:flex;flex-direction:column;min-width:0}
.cmp-adj>span,.msg-archivo>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cmp-adj small,.msg-archivo small{color:var(--c-text-3);font-size:11px}
.cmp-adj.subiendo{opacity:.65}
.cmp-adj .icon-btn{width:24px;height:24px}
.ico-archivo{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
.msg-archivo{display:flex;align-items:center;gap:var(--sp-2);width:100%;max-width:260px;margin:4px 0;padding:8px 10px;border:1px solid var(--c-border);border-radius:var(--r-md);background:var(--c-surface);color:var(--c-text);font:inherit;font-size:var(--fs-sm);text-align:left;cursor:pointer}
.msg-archivo:hover{border-color:var(--c-primary)}
.msg-archivo>span{display:flex;flex-direction:column;min-width:0}
.msg.me .msg-archivo{background:rgba(255,255,255,.95)}
/* Leer constancia (D-406) */
.cfg-leido{box-shadow:0 0 0 2px var(--c-accent) !important}
#eLeerCsf svg{width:15px;height:15px}

/* Encabezado de Ágora con su ícono; Chats y Tareas con ícono y contador, también dentro de un chat (D-407) */
.ag-head h2{display:flex;align-items:center;gap:8px;min-width:0}
.ag-head .ag-ico{width:22px;height:22px;flex:none;fill:none;stroke:var(--c-brand-jade);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ag-seg{flex:none}
.ag-seg button{display:inline-flex;align-items:center;justify-content:center;gap:6px}
.ag-seg button svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ag-seg button.active svg{color:var(--c-primary)}
.ag-seg .ag-seg-n{font-style:normal;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--c-primary);color:var(--c-on-primary);font-size:11px;font-weight:700;line-height:18px;text-align:center}

/* ---------- Clientes (doc 20, D-408) ---------- */
.page-head .page-acc{display:flex;gap:var(--sp-2)}
.page-head .page-acc .btn{display:inline-flex}
.cl-tabla tbody tr{cursor:pointer}
.cl-tabla tbody tr:hover{background:var(--c-surface-2)}
.cl-tabla td{vertical-align:top}
.cl-tabla .pill{margin-left:6px}
.cl-sub{display:block;font-size:var(--fs-xs);margin-top:2px}
.cl-tabla tr.cl-inactivo td{color:var(--c-text-3)}
@container (max-width:640px){
  .cl-tabla thead{display:none}
  .cl-tabla,.cl-tabla tbody{display:block}
  .cl-tabla tr{display:grid;grid-template-columns:1fr auto;gap:2px var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--c-border)}
  .cl-tabla td{display:block;padding:0;border:0;font-size:var(--fs-sm)}
  .cl-tabla td[data-l="Cliente"]{grid-column:1}
  .cl-tabla td[data-l="Precio"]{grid-column:2;grid-row:1}
  .cl-tabla td[data-l="RFC"],.cl-tabla td[data-l="Contacto"],.cl-tabla td[data-l="Categoría"]{grid-column:1;color:var(--c-text-2)}
  .cl-tabla td:empty{display:none}
}
.cl-ficha{border:0;margin:0;padding:0;min-width:0}
.cl-ficha:disabled .input{background:var(--c-surface-2)}
.cl-activo{margin-top:var(--sp-4)}
.cl-faltan{margin:var(--sp-3) 0 0;font-size:var(--fs-sm)}
.cl-contacto{padding:var(--sp-3);border:1px solid var(--c-border);border-radius:var(--r-md);margin-bottom:var(--sp-3)}
.cl-contacto-pie{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-4);margin-top:var(--sp-3);font-size:var(--fs-sm);color:var(--c-text-2)}
.cl-contacto-pie label{display:flex;align-items:center;gap:6px}
.cl-contacto-pie .btn{margin-left:auto}
.cl-notas{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-3)}
.cl-nota{padding:var(--sp-2) var(--sp-3);background:var(--c-surface-2);border-radius:var(--r-md)}
.cl-nota p{margin:0 0 4px;white-space:pre-line}
.cl-nota-nueva{display:flex;flex-direction:column;gap:var(--sp-2)}
.cl-nota-nueva .hstack{justify-content:space-between;font-size:var(--fs-sm);color:var(--c-text-2)}
.cl-nota-nueva label{display:flex;align-items:center;gap:6px}
.cl-compras{display:flex;flex-direction:column}
.cl-compras>div{display:flex;justify-content:space-between;gap:var(--sp-3);padding:8px 0;border-bottom:1px solid var(--c-border);font-size:var(--fs-sm);font-variant-numeric:tabular-nums}
.cl-dup{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-3);padding:6px 0;border-top:1px solid var(--c-border)}
.cl-borrar{color:var(--c-danger)}
.cc-fila{display:flex;gap:var(--sp-3);align-items:center;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--c-border)}
.cc-fila .input{flex:1;min-width:0;max-width:360px}
.cc-fila .btn{flex:none}
.cc-activa{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--c-text-2)}
.cc-nueva{border-bottom:0}

/* Cliente en la pantalla de ventas: buscar al escribir, quitar con la X, precio del cliente y notas para el cajero */
.cl-pick{position:relative;min-width:0}
.cl-pick-in{position:relative;display:flex;align-items:center}
.cl-pick-in .input{padding-right:84px}
.cl-pick-in .input::placeholder{color:var(--c-text-2)}
.cl-pick-in .icon-btn{position:absolute;right:2px;width:30px;height:30px}
.cl-pick-in .icon-btn svg{width:14px;height:14px}
.cl-pick-precio{position:absolute;right:36px;pointer-events:none}
.cl-res{position:absolute;left:0;right:0;top:100%;margin-top:4px;z-index:25;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);box-shadow:var(--shadow-2);max-height:320px;overflow:auto;min-width:min(360px,80vw)}
.cl-res .cl-nuevo b{color:var(--c-primary)}
.cl-notas-venta{margin:var(--sp-3) var(--sp-4) 0}
.cl-notas-venta p{margin:0}
.last-sale .folio .hstack{gap:var(--sp-2)}
.hv-cliente{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px var(--sp-2);margin-bottom:var(--sp-3);font-size:var(--fs-sm)}
.hv-cliente small{width:100%}
.cl-ficha{display:flex;flex-direction:column;gap:var(--sp-5)}
.cl-ficha>.form-section+.form-section{border-top:1px solid var(--c-border);padding-top:var(--sp-5)}
#drawerBody>.form-section+.form-section,#drawerBody>.cl-ficha+.form-section{border-top:1px solid var(--c-border);padding-top:var(--sp-5)}
/* Ágora con varias empresas (D-411): la lista se separa por empresa */
.ag-grupo+.ag-grupo{margin-top:var(--sp-2)}
.ag-grupo-tit{display:flex;align-items:center;gap:8px;padding:var(--sp-2) var(--sp-4) 4px;font-size:var(--fs-xs);font-weight:700;color:var(--c-text-2);text-transform:uppercase;letter-spacing:.04em;position:sticky;top:0;background:var(--c-surface);z-index:1}
/* Alta de usuarios (D-412) */
.us-temporal{display:grid;gap:4px;padding:var(--sp-4);border:1px dashed var(--c-border);border-radius:var(--r-md);background:var(--c-surface-2)}
.us-temporal b.mono{font-size:var(--fs-xl);letter-spacing:.05em;user-select:all}
/* ---------- Inventarios (doc 21, D-414) ---------- */
@container (max-width:640px){
  .iv-tabla thead{display:none}
  .iv-tabla,.iv-tabla tbody{display:block}
  .iv-tabla tr{display:grid;grid-template-columns:1fr auto;gap:2px var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--c-border)}
  .iv-tabla td{display:block;padding:0;border:0;font-size:var(--fs-sm)}
  .iv-tabla td[data-l="Producto"],.iv-tabla td[data-l="Familia"]{grid-column:1}
  .iv-tabla td[data-l="Precio"]{grid-column:2;grid-row:1}
  .iv-tabla td[data-l="Existencia"]{grid-column:2;grid-row:2}
  .iv-tabla td[data-l="Folio"]{grid-column:1}
  .iv-tabla td[data-l="Importe"]{grid-column:2;grid-row:1}
  .iv-tabla td[data-l="Movimiento"],.iv-tabla td[data-l="Productos"]{grid-column:1/-1}
}
.iv-ieps{display:flex;gap:var(--sp-2)}
.iv-ieps select{flex:1;min-width:0}
.iv-ieps .input.num{width:96px;flex:none}
.iv-precios-wrap{overflow-x:auto;margin:0 calc(var(--sp-1) * -1)}
.iv-precios{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
.iv-precios th{text-align:left;font-weight:600;color:var(--c-text-2);font-size:var(--fs-xs);padding:4px var(--sp-1);white-space:nowrap}
.iv-precios td{padding:4px var(--sp-1);vertical-align:middle}
.iv-precios td:first-child{white-space:nowrap;font-weight:600}
.iv-precios .input{height:34px;min-width:84px;width:100%}
.iv-precios .input.auto{color:var(--c-text-2)}
.iv-precios .icon-btn{width:30px;height:30px}
#pMasPrecio{margin-top:var(--sp-2)}
.iv-aviso{margin:var(--sp-2) 0 0;font-size:var(--fs-sm);color:var(--c-warning)}
.iv-manual{margin-top:var(--sp-3)}
.iv-kardex{width:100%;border-collapse:collapse;font-size:var(--fs-sm);margin-top:var(--sp-3)}
.iv-kardex th{text-align:left;font-size:var(--fs-xs);color:var(--c-text-2);font-weight:600;padding:4px 0}
.iv-kardex td{padding:6px 0;border-top:1px solid var(--c-border);vertical-align:top}
.iv-kardex .num,.iv-kardex th.num{text-align:right;font-variant-numeric:tabular-nums}
.iv-neg{color:var(--c-danger)}
.iv-pos{color:var(--c-success)}
.iv-familias{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--sp-4);align-items:start}
.iv-familia{padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3)}
.iv-fam-head .input{font-weight:700}
.iv-cats{display:flex;flex-direction:column;gap:var(--sp-2)}
.iv-cat{display:flex;align-items:center;gap:var(--sp-2)}
.iv-cat .input{flex:1;min-width:0;height:34px}
.iv-cat .muted{font-size:var(--fs-xs);white-space:nowrap}
.iv-fam-nueva{border-style:dashed}
.iv-mov td:first-child{font-weight:400}
.iv-mov td .input{width:110px;min-width:0;display:inline-block}
.iv-mov td textarea.input[data-s]{width:100%;display:block}
/* Fotos en Ágora (D-416) */
.msg-foto{display:block;margin:4px 0;padding:0;border:0;border-radius:var(--r-md);overflow:hidden;background:var(--c-surface-2);cursor:zoom-in;max-width:240px;min-width:120px;min-height:90px}
.msg-foto img{display:block;width:100%;max-height:260px;object-fit:cover}
.msg-foto img:not([src]){visibility:hidden}
.msg-foto.sin-foto{min-height:0;cursor:default}
/* Fotos de producto (D-266, D-416) */
.iv-prod{display:flex;gap:var(--sp-3);align-items:flex-start;min-width:0}
.iv-prod>div{min-width:0}
.iv-mini{flex:none;width:40px;height:40px;border-radius:var(--r-sm,6px);background:var(--c-surface-2);display:grid;place-items:center;overflow:hidden;color:var(--c-text-3)}
.iv-mini img{width:100%;height:100%;object-fit:cover}
.iv-mini svg,.iv-foto svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.iv-fotos{display:flex;flex-wrap:wrap;gap:var(--sp-3)}
.iv-foto{position:relative;margin:0;width:96px;height:96px;border-radius:var(--r-md);overflow:hidden;background:var(--c-surface-2);border:1px solid var(--c-border)}
.iv-foto.principal{border-color:var(--c-primary);box-shadow:0 0 0 1px var(--c-primary)}
.iv-foto-ver{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in}
.iv-foto-ver img{width:100%;height:100%;object-fit:cover;display:block}
.iv-foto-badge{position:absolute;left:4px;top:4px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--c-primary);color:var(--c-on-primary)}
.iv-foto-badge svg{width:13px;height:13px;fill:currentColor;stroke:none}
.iv-foto-acc{position:absolute;right:2px;top:2px;display:flex;gap:2px;opacity:0;transition:opacity .15s}
.iv-foto:hover .iv-foto-acc,.iv-foto:focus-within .iv-foto-acc{opacity:1}
@media (hover:none){.iv-foto-acc{opacity:1}}
.iv-foto-acc .icon-btn{width:26px;height:26px;background:var(--c-surface);border-radius:50%;box-shadow:var(--shadow-1,0 1px 2px rgba(0,0,0,.2))}
.iv-foto-acc .icon-btn svg{width:13px;height:13px}
.iv-foto-nueva{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-style:dashed;cursor:pointer;color:var(--c-text-2);font-size:var(--fs-xs)}
.iv-foto-nueva:hover{border-color:var(--c-primary);color:var(--c-primary)}
.iv-foto-nueva.subiendo{opacity:.5;pointer-events:none}
.iv-sin-foto{margin:0;font-size:var(--fs-sm)}
.iv-tabla .iv-prod .pill{margin-left:0;margin-right:6px}
/* Compras y proveedores (D-417) */
.page-acc label.btn{cursor:pointer;display:inline-flex}
.page-acc .btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.page-acc .subiendo{opacity:.6;pointer-events:none}
.iv-ligas td:first-child{white-space:normal;font-weight:400;min-width:150px}
.iv-ligas .input[data-factor]{width:80px;min-width:0}
.iv-liga-nueva{margin-top:var(--sp-3);max-width:420px}
.cp-editor{display:flex;flex-direction:column;gap:var(--sp-3)}
.cp-editor>.callout{margin:0}
.cp-prov{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px var(--sp-2);min-height:40px;padding-top:8px}
.cp-doble{display:flex;gap:var(--sp-2)}
.cp-doble .input:first-child{width:90px;flex:none}
.cp-doble .input:last-child{flex:1;min-width:0}
.cp-uuid{font-size:var(--fs-sm);word-break:break-all}
.cp-partidas td{vertical-align:top}
.cp-partidas td.cp-prod{white-space:normal;font-weight:400;min-width:220px;max-width:340px}
.cp-partidas td.num{padding-top:12px;white-space:nowrap}
.cp-partidas .input{min-width:64px}
.cp-partidas select.input{min-width:84px;padding-right:4px}
.cp-partidas tr.cp-sin td.cp-prod{background:var(--c-warning-soft);border-radius:var(--r-sm,6px)}
.cp-falta{color:var(--c-warning);font-weight:700}
.cp-ligar{display:flex;flex-wrap:wrap;gap:6px var(--sp-2);align-items:center;margin-top:6px}
.cp-ligar .chip{height:28px;font-size:var(--fs-xs);max-width:100%;overflow:hidden;text-overflow:ellipsis}
.cp-ligar .link{font-size:var(--fs-sm)}
.cp-ligar [data-pick]{flex-basis:100%}
.cp-agregar{margin-top:var(--sp-3);max-width:420px}
.cp-extras{grid-template-columns:repeat(3,minmax(0,1fr))}
.cp-nota{margin:var(--sp-2) 0;font-size:var(--fs-sm)}
.cp-editor .hv-totales{max-width:360px;margin-left:auto}
@media (max-width:640px){.cp-extras{grid-template-columns:1fr 1fr}}
.cp-prov .link{font-size:var(--fs-sm)}
.cp-partidas .input[data-f="costo"]{min-width:96px}
.cp-partidas .input[data-f="cantidad"],.cp-partidas .input[data-f="factor"]{width:72px}
.cp-aviso{display:block;margin-top:4px;font-size:var(--fs-xs);color:var(--c-warning);font-weight:600}
.page-head .page-acc{flex-wrap:wrap}
@media (max-width:640px){.page-head .page-acc .btn{flex:1 1 auto;justify-content:center}}
/* Leer códigos con la cámara (D-418) */
.esc-campo{position:relative;display:flex;align-items:center;flex:1;min-width:0}
.esc-campo>.input,.esc-campo>input{flex:1;min-width:0;padding-right:44px}
.esc-btn{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:var(--r-md);background:var(--c-primary-soft);color:var(--c-primary);cursor:pointer}
.esc-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.code-input .esc-campo>input{padding-right:44px}
.esc-capa{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}
.esc-caja{width:min(560px,100%);display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-3)}
.esc-video{position:relative;aspect-ratio:3/4;max-height:70vh;border-radius:var(--r-lg,16px);overflow:hidden;background:#000}
@media (orientation:landscape){.esc-video{aspect-ratio:16/9}}
.esc-video video{width:100%;height:100%;object-fit:cover}
.esc-marco{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}
.esc-marco i{width:78%;height:34%;border:3px solid rgba(255,255,255,.9);border-radius:12px;box-shadow:0 0 0 999px rgba(0,0,0,.35)}
.esc-estado{position:absolute;left:0;right:0;bottom:12px;margin:0;padding:0 var(--sp-4);text-align:center;color:#fff;font-size:var(--fs-sm);text-shadow:0 1px 2px #000}
.esc-estado:empty{display:none}
.esc-pie{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);color:#fff}
.esc-acc{display:flex;gap:var(--sp-2)}
.esc-acc .btn-ghost{color:#fff}
.esc-acc label.btn{cursor:pointer;color:var(--c-text);background:var(--c-surface)}
.callout button.link{font-weight:600;text-decoration:underline}
/* Atajos de renglón (D-422) */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.th-atajos{width:1%}
.td-atajos{width:1%;white-space:nowrap;vertical-align:middle}
.atajos{display:flex;gap:4px;justify-content:flex-end}
.atajo{width:34px;height:34px;display:grid;place-items:center;border:1px solid transparent;border-radius:var(--r-md);background:none;color:var(--c-text-2);cursor:pointer}
.atajo svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.atajo:hover,.atajo:focus-visible{background:var(--c-primary-soft);color:var(--c-primary);border-color:var(--c-primary-soft)}
@media (hover:hover){tr .atajos{opacity:.55;transition:opacity .15s}tr:hover .atajos,tr:focus-within .atajos{opacity:1}}
@container (max-width:640px){
  .cl-tabla td.td-atajos,.iv-tabla td.td-atajos{grid-column:1 / -1;grid-row:auto;justify-self:end;width:auto;margin-top:-34px}
  .td-atajos:empty{display:none}
  #pvLista td[data-l="Existencia"]{display:none}
}
.chip svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2}

/* ---------------------------------------------------------------- Corte de caja y retiros (D-425) */
.cc-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-5);align-items:start}
@container (min-width:1000px){.cc-grid{grid-template-columns:minmax(320px,420px) minmax(0,1fr)}}
.cc-col{display:flex;flex-direction:column;gap:var(--sp-4)}
.cc-sel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--sp-3)}
.cc-sel .field{margin:0;min-width:0}
.cc-sec-head{margin:var(--sp-2) 0 var(--sp-4)}
.cc-sec-head h3{font-size:var(--fs-md);font-weight:600;margin:0 0 2px}
.cc-sec-head p{margin:0;font-size:var(--fs-sm);color:var(--c-text-2)}
.cc-formas{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--sp-3);margin-bottom:var(--sp-3)}
.cc-monto{font-variant-numeric:tabular-nums;text-align:right}
.cc-pie{display:flex;justify-content:flex-end;margin-top:var(--sp-3)}
.cc-pie .btn{width:100%}
.cc-fondo{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-3);padding-bottom:var(--sp-4);margin-bottom:var(--sp-2);border-bottom:1px solid var(--c-border)}
.cc-fondo b{display:block;font-size:20px;font-variant-numeric:tabular-nums}
.cc-candado{display:flex;align-items:center;gap:6px;font-size:var(--fs-xs);text-align:right}
.cc-ico{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;flex:none}
.cc-fondo-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--sp-2) var(--sp-3);align-items:end;padding-bottom:var(--sp-4);margin-bottom:var(--sp-2);border-bottom:1px solid var(--c-border)}
.cc-fondo-form .field{margin:0}
.cc-fondo-form small{grid-column:1/-1}
.cc-lista{overflow:hidden}
.cc-lista-head{display:flex;justify-content:space-between;align-items:baseline;padding:var(--sp-4) var(--sp-5) var(--sp-2)}
.cc-lista-head h3{margin:0;font-size:var(--fs-md)}
.cc-neg{color:var(--c-danger)}
.cc-pos{color:var(--c-warning)}
.cc-h4{margin:var(--sp-5) 0 var(--sp-2);font-size:var(--fs-sm);font-weight:600;color:var(--c-text-2)}
.cc-kpis{grid-template-columns:1fr 1fr;margin:var(--sp-4) 0 var(--sp-2)}
.cc-h4+.hv-totales{margin-top:0}
.cc-folios{margin:0;font-size:var(--fs-sm)}
.cc-det tfoot td{border-top:1px dashed var(--c-border);padding-top:8px}
.cc-motivo-nuevo{margin-top:var(--sp-4)}
.cc-motivo-nuevo .input{flex:1}

/* ---------------------------------------------------------------- Inventario físico (D-427) */
.if-volver{display:inline-block;font-size:var(--fs-sm);margin-bottom:4px}
.page-head h1 .pill{vertical-align:middle;margin-left:6px}
.if-captura{margin-bottom:var(--sp-4)}
.if-cap-fila{display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:var(--sp-3);align-items:end}
.if-cap-fila .field{margin:0}
.if-cap-op{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-top:var(--sp-3)}
.if-ultimo{font-size:var(--fs-sm);margin-top:var(--sp-2);min-height:1.2em}
.if-q{width:90px;display:inline-block}
.if-mot{min-width:150px;height:32px;font-size:var(--fs-sm)}
.if-tabla td{vertical-align:middle}
#ifDet .callout{margin-bottom:var(--sp-4)}
.if-tabla .pill{margin:2px 4px 0 0}
@container (max-width:640px){
  .if-tabla td[data-l="Sistema"]::before{content:'Sistema ';color:var(--c-text-3)}
  .if-tabla td[data-l="Diferencia"]::before{content:'Diferencia ';color:var(--c-text-3);font-weight:400}
  .if-tabla td[data-l="Sistema"],.if-tabla td[data-l="Diferencia"]{text-align:left;grid-column:1}
  .if-tabla td[data-l="Contado"]{grid-column:2;grid-row:1}
}
.us-trasp{display:flex;flex-direction:column;gap:4px}
.us-trasp-f{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:var(--sp-3);align-items:center;padding:4px 0;border-bottom:1px solid var(--c-border)}
/* Traspasos (D-428) */
.tr-q{width:90px;display:inline-block}
.tr-coment{margin-top:6px;height:32px;font-size:var(--fs-sm)}
.tr-det td{vertical-align:top}
.tr-valor{margin:var(--sp-2) 0 var(--sp-3);font-size:var(--fs-sm)}
/* Órdenes de compra (D-429) */
.oc-modo{margin-bottom:var(--sp-3)}
.oc-modo button{font-size:var(--fs-sm)}
.oc-partidas input.num{width:96px}
.oc-compras{margin-top:var(--sp-3);font-size:var(--fs-sm)}
.oc-envio{margin-top:var(--sp-4)}
.oc-grupo{margin-bottom:var(--sp-4)}
.oc-grupo-acc{display:flex;gap:var(--sp-2);flex-wrap:wrap}
/* Cotizaciones a proveedores (D-546) */
.ct-grupo{display:block;width:100%;text-align:left;cursor:pointer;padding:var(--sp-4);margin-bottom:var(--sp-3);border:1px solid var(--c-border);font:inherit;color:inherit}
.ct-grupo:hover{border-color:var(--c-primary)}
.ct-grupo-head{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}
.ct-grupo-head .muted{font-size:var(--fs-sm);margin-right:auto}
.ct-provs{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4);margin-top:var(--sp-2);font-size:var(--fs-sm)}
.ct-prov{display:inline-flex;align-items:center;gap:6px}
.ct-chips{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-2)}
.ct-chips:empty{display:none}
.ct-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 4px 4px 10px;border-radius:999px;background:var(--c-surface-2);font-size:var(--fs-sm)}
.ct-chip button{border:0;background:none;cursor:pointer;width:22px;height:22px;display:grid;place-items:center;color:var(--c-text-2);border-radius:50%}
.ct-chip button:hover{background:var(--c-border)}
.ct-chip svg{width:14px;height:14px;stroke:currentColor;stroke-width:2;fill:none}
.ct-agregar{display:flex;gap:var(--sp-2)}
.ct-agregar .input{flex:1;min-width:0}
.ct-sols{display:grid;gap:var(--sp-2)}
.ct-sol{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--c-border)}
.ct-tabla-wrap{overflow-x:auto}
.ct-tabla th.num,.ct-tabla td.num{white-space:nowrap}
.ct-tabla td.ct-mejor{background:var(--c-primary-soft)}
.ct-elige{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.ct-captura input.num{width:96px}
.ct-captura select.input{min-width:88px}
.ct-archivos{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}
.cp-orden select.input{height:36px}
/* Recibir con la factura (D-534, D-547) */
.cp-rev{padding:var(--sp-3) var(--sp-4)!important;border-radius:var(--r-md);margin-bottom:var(--sp-3)}
.cp-rev-ok{background:var(--c-primary-soft)}
.cp-rev-mal{background:var(--c-surface-2);border-left:3px solid var(--c-warning)}
.cp-rev-head{display:flex;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap;align-items:baseline}
.cp-rev-l{margin:var(--sp-2) 0 0;padding-left:20px;font-size:var(--fs-sm)}
.cp-rev-t{margin-top:var(--sp-3)}
.cp-rev-costos{margin:var(--sp-2) 0 0;font-size:var(--fs-sm)}
.cp-rev-acc{display:flex;justify-content:flex-end;align-items:center;gap:var(--sp-3);margin-top:var(--sp-3)}
.cp-reclamo{margin-top:var(--sp-3)}
.cp-reclamo textarea.input{height:auto;min-height:180px;padding:10px 12px;resize:vertical;font:inherit}
/* Calificación del proveedor (D-535, D-547) */
.pv-cal{margin-bottom:var(--sp-4)}
.pv-cal-head{display:flex;gap:var(--sp-4);align-items:center}
.pv-cal-head h3{margin:0 0 2px}
.pv-cal-head p{margin:0;font-size:var(--fs-sm)}
.pv-cal-n{font-size:36px;font-weight:700;line-height:1;color:var(--c-text)}
.pv-cal-n small{font-size:var(--fs-sm);font-weight:400;color:var(--c-text-3)}
.pv-cal-l{display:grid;gap:6px;margin-top:var(--sp-3)}
.pv-cal-r{display:grid;grid-template-columns:minmax(0,1fr) 120px 32px;gap:var(--sp-3);align-items:center;font-size:var(--fs-sm)}
.pv-cal-r b{text-align:right}
.pv-cal-r > .muted:last-child{grid-column:2/4}
.pv-cal-b{height:8px;border-radius:99px;background:var(--c-surface-2);overflow:hidden}
.pv-cal-b i{display:block;height:100%;background:var(--c-primary);border-radius:99px}
@media (max-width:560px){.pv-cal-r{grid-template-columns:minmax(0,1fr) 80px 28px}}
/* Cambio masivo de precios (D-430) */
.seg.pm-acciones{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:var(--sp-3)}
.pm-valor{display:grid;grid-template-columns:140px minmax(0,1fr);gap:var(--sp-3);align-items:center;margin-bottom:var(--sp-3)}
.pm-valor .field{margin:0}
.pm-valor p{margin:0;font-size:var(--fs-sm)}
.pm-niveles{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4)}
.pm-tabla tr.pm-aviso td{background:var(--c-warning-soft)}
/* Venta con botones (D-432): pantalla completa, botones grandes para el dedo */
.code-row .btn.vb-abrir{display:inline-flex;align-items:center;gap:6px;height:48px;flex:none}
.code-row .code-input{min-width:0}
@media (max-width:640px){.code-row .btn.vb-abrir{width:48px;padding:0;justify-content:center}}
.vb-abrir svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8}
body.vb-abierta{overflow:hidden}
.vb-capa{position:fixed;inset:0;z-index:300;background:var(--c-bg);display:flex;flex-direction:column}
.vb-head{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--c-border);background:var(--c-surface)}
.vb-titulo{font-size:var(--fs-lg);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vb-head .btn{height:44px;padding:0 var(--sp-5)}
.vb-burbuja{display:flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;background:var(--c-primary);color:#fff;font-size:var(--fs-sm);white-space:nowrap}
.vb-burbuja svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}
.vb-burbuja .vb-total{font-weight:700;font-variant-numeric:tabular-nums}
.vb-burbuja.pulso{animation:vbPulso .35s ease}
@keyframes vbPulso{50%{transform:scale(1.08)}}
.vb-fams,.vb-cats{display:flex;gap:var(--sp-2);overflow-x:auto;padding:var(--sp-3) var(--sp-4) 0;scrollbar-width:none;flex:none}
.vb-cats{padding-top:var(--sp-2)}
.vb-fam,.vb-cat{flex:none;min-height:44px;padding:0 18px;border-radius:var(--r-md);border:1px solid var(--c-border);background:var(--c-surface);color:var(--c-text);font:inherit;font-weight:600;cursor:pointer}
.vb-cat{min-height:36px;font-weight:500;font-size:var(--fs-sm)}
.vb-fam.active,.vb-cat.active{background:var(--c-primary);border-color:var(--c-primary);color:#fff}
.vb-cuerpo{flex:1;overflow-y:auto;padding:var(--sp-4)}
.vb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--sp-3)}
.vb-prod{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:6px;padding:var(--sp-2);border:1px solid var(--c-border);border-radius:var(--r-lg);background:var(--c-surface);color:var(--c-text);font:inherit;text-align:left;cursor:pointer;touch-action:manipulation}
.vb-prod:active{transform:scale(.97)}
.vb-prod.agotado{opacity:.6}
.vb-foto{aspect-ratio:1;border-radius:var(--r-md);background:var(--c-surface-2);display:flex;align-items:center;justify-content:center;overflow:hidden}
.vb-foto img{width:100%;height:100%;object-fit:cover}
.vb-foto svg{width:36px;height:36px;fill:none;stroke:var(--c-text-3);stroke-width:1.5}
.vb-nombre{font-size:var(--fs-sm);line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.5em}
.vb-precio{font-weight:700;font-variant-numeric:tabular-nums}
.vb-sin{font-size:var(--fs-xs);color:var(--c-danger)}
.vb-n{position:absolute;top:6px;right:6px;min-width:28px;height:28px;padding:0 8px;border-radius:999px;background:var(--c-primary);color:#fff;font-weight:700;font-size:var(--fs-sm);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(0,0,0,.2)}
.vb-prod.vb-toque{animation:vbToque .4s ease}
@keyframes vbToque{0%{box-shadow:0 0 0 0 var(--c-primary)}100%{box-shadow:0 0 0 10px transparent}}
.vb-mas{display:flex;justify-content:center;padding:var(--sp-4)}
.vb-aviso{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:var(--c-text);color:var(--c-bg);padding:10px 18px;border-radius:999px;font-size:var(--fs-sm);transition:all .2s;max-width:90vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vb-aviso.ver{opacity:1;transform:translate(-50%,0)}
@media (max-width:640px){
  .vb-titulo{display:none}
  .vb-burbuja{flex:1;justify-content:center}
  .vb-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* Acciones masivas (D-433): casilla propia (compacta, con el color de la marca) y barra de lo que se puede hacer */
.sel-chk{display:inline-flex;flex:none;align-items:center;padding:6px;margin:-6px 6px -6px -6px;vertical-align:middle;cursor:pointer;-webkit-tap-highlight-color:transparent}
tr.sel-elegida{background:var(--c-primary-soft)}
.cl-tabla tbody tr.sel-elegida:hover{background:color-mix(in srgb,var(--c-primary-soft) 70%,var(--c-surface-2))}
.sel-barra{position:sticky;bottom:var(--sp-3);z-index:30;margin-top:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--shadow-2)}
.sel-n b{color:var(--c-primary)}
.sel-fila{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}
.sel-n{font-size:var(--fs-sm);white-space:nowrap}
.sel-acc{display:flex;flex-wrap:wrap;gap:var(--sp-2);flex:1}
.sel-conf:empty{display:none}
.sel-conf{margin-top:var(--sp-3)}
.iv-acciones{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
@media (max-width:767px){
  .sel-barra{position:fixed;left:var(--sp-3);right:var(--sp-3);bottom:calc(var(--mbar-h) + 8px);margin:0;max-height:60vh;overflow:auto}
  .sel-acc{order:3;flex-basis:100%}
  .sel-fila .icon-btn{margin-left:auto}
  .hv-lista:has(+ .sel-barra){margin-bottom:220px}
}
tr:has(> td .sel-chk){-webkit-tap-highlight-color:transparent}
.sel-aviso .hstack{margin-top:var(--sp-2)}
.pv-no-imprimir{display:flex;justify-content:flex-end;margin-top:var(--sp-3)}
.pv-no-imprimir .check{font-size:var(--fs-xs);color:var(--c-text-2)}
/* Búsqueda de listas (D-434): una sola caja con lupa en todo el sistema */
.cl-buscar{position:relative;flex:1;min-width:200px;max-width:420px;display:block}
.cl-buscar svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--c-text-3);fill:none;stroke:currentColor;stroke-width:2;pointer-events:none}
.cl-buscar .input{width:100%;padding-left:34px}
/* Casilla de selección en celdas de texto: columna propia para que el texto no se vaya debajo de ella */
td:has(> .sel-chk),th:has(> .sel-chk){position:relative;padding-left:44px}
td > .sel-chk,th > .sel-chk{position:absolute;left:8px;top:8px;margin:0}
th > .sel-chk{top:50%;transform:translateY(-50%)}
@media (max-width:767px){
  /* En tarjetas (celular) la casilla va en la esquina de la tarjeta y el contenido se recorre */
  .cl-tabla tr:has(> td > .sel-chk){position:relative;padding-left:48px}
  .cl-tabla td:has(> .sel-chk){position:static;padding-left:0}
  .cl-tabla td > .sel-chk{left:12px;top:12px}
}
/* Formato del ticket (D-436): opciones a la izquierda y el ticket tal como se imprime a la derecha */
.cfg-ticket{margin-top:var(--sp-4);container-type:inline-size}
.cfg-ticket #tkPerfil{margin-bottom:var(--sp-4)}
.cfg-ticket-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--sp-5);align-items:start}
.tk-seg{flex-wrap:wrap}
.tk-mostrar{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--sp-2) var(--sp-4);margin-top:var(--sp-1)}
.tk-vista{position:sticky;top:var(--sp-4)}
.tk-papel{background:var(--c-surface-2);border-radius:var(--r-md);padding:var(--sp-4) var(--sp-3);display:flex;justify-content:center;max-height:70vh;overflow:auto}
.tk-papel iframe{width:300px;max-width:100%;min-height:240px;border:0;background:#fff;box-shadow:var(--shadow-1)}
.tk-vista-acc{margin-top:var(--sp-2)}
.tk-equipo{display:flex;flex-direction:column;gap:4px;margin-top:var(--sp-5);padding-top:var(--sp-4);border-top:1px solid var(--c-border);max-width:420px}
@container (max-width:760px){.cfg-ticket-grid{grid-template-columns:1fr}.tk-vista{position:static}}
/* Crédito y cobranza (D-437) */
.cr-mal{color:var(--c-danger)}
.cr-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--sp-3);margin-bottom:var(--sp-3)}
.cr-kpis>div{background:var(--c-surface-2);border-radius:var(--r-md);padding:var(--sp-3)}
.cr-kpis small{display:block;font-size:var(--fs-xs);color:var(--c-text-2)}
.cr-kpis b{font-size:var(--fs-lg)}
.cr-tot{margin-bottom:var(--sp-4)}
.cr-gracia{margin-top:var(--sp-4)}
.cr-gracia .input{width:90px}
.cr-notas td:first-child{width:28px}
.cr-vencida td{background:color-mix(in srgb,var(--c-danger-soft) 55%,transparent)}
.cr-abonos{display:flex;flex-direction:column}
.cr-abono{display:flex;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--c-border)}
.cr-abono:last-child{border-bottom:0}
.cr-abono.cr-cancelado{opacity:.6}
.cr-abono-acc{display:flex;flex-direction:column;align-items:flex-end;gap:2px;white-space:nowrap}
.cr-abono-form{background:var(--c-surface-2);border-radius:var(--r-md);padding:var(--sp-4)!important}
.cr-abono-form .seg{margin-bottom:var(--sp-3)}
.pv-credito{padding:0 var(--sp-5) var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2)}
.pv-credito-res{display:flex;flex-wrap:wrap;gap:4px var(--sp-3);font-size:var(--fs-sm);background:var(--c-primary-soft);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3)}
.pv-credito .received{padding:0}
.pv-cred-mal{color:var(--c-danger);font-weight:600}
.pv-cred-aviso{font-size:var(--fs-sm);color:var(--c-warning)}
.hv-devs{display:flex;flex-direction:column;gap:var(--sp-2)}
.hv-dev{display:flex;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--c-border)}
.hv-dev .num{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.hv-devolver .hv-dev-q{width:90px;margin-left:auto}

/* Facturación (doc 22, D-438, D-440) */
.fc-kpis{grid-template-columns:repeat(3,1fr)}
.fc-faltan{margin:var(--sp-2) 0 var(--sp-3) var(--sp-5)}
#fcVista .callout{margin-bottom:var(--sp-3)}
.fc-partes{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3);margin-bottom:var(--sp-4)}
.fc-parte{background:var(--c-surface-2);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);display:flex;flex-direction:column;gap:2px;min-width:0}
.fc-parte small{color:var(--c-text-3);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;font-weight:600}
.fc-parte span{font-size:var(--fs-sm)}
.fc-conceptos{margin-top:var(--sp-3)}
.fc-totales{margin:var(--sp-4) 0 0 auto;max-width:300px;display:flex;flex-direction:column;gap:var(--sp-1)}
.fc-totales div{display:flex;justify-content:space-between;gap:var(--sp-4);font-variant-numeric:tabular-nums}
.fc-totales span{color:var(--c-text-2)}
.fc-totales .fc-total{border-top:1px solid var(--c-border);padding-top:var(--sp-2);margin-top:var(--sp-1);font-size:18px}
.fc-totales .fc-total span{color:var(--c-text);font-weight:600}
.fc-cliente{position:relative}
.fc-cli-res{display:flex;flex-direction:column;gap:2px;margin-top:var(--sp-2)}
.fc-cli{display:flex;flex-direction:column;align-items:flex-start;text-align:left;border:1px solid var(--c-border);background:var(--c-surface);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);cursor:pointer}
.fc-cli:hover{background:var(--c-surface-2)}
.fc-estado{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-4)}
.fc-total-grande{font-size:24px;font-weight:600;font-variant-numeric:tabular-nums}
.fc-datos{display:grid;grid-template-columns:max-content 1fr;gap:var(--sp-2) var(--sp-4);margin:0 0 var(--sp-4);font-size:var(--fs-sm)}
.fc-datos dt{color:var(--c-text-3)}
.fc-datos dd{margin:0;min-width:0;overflow-wrap:anywhere}
.cfg-csd dl{display:grid;grid-template-columns:max-content 1fr;gap:var(--sp-1) var(--sp-3);margin:var(--sp-3) 0;font-size:var(--fs-sm)}
.cfg-csd dt{color:var(--c-text-3)}
.cfg-csd dd{margin:0}
.cfg-csd .form-grid{grid-template-columns:1fr}
@media (max-width:767px){.fc-kpis{grid-template-columns:1fr 1fr}.fc-partes{grid-template-columns:1fr}}
.cfg-csd h3{margin:0 0 2px;font-size:var(--fs-md)}
.cfg-csd>p{margin:0 0 var(--sp-3);font-size:var(--fs-sm)}
.cfg-csd .btn svg{width:15px;height:15px}
@container (max-width:740px){#cfgCsd{order:1}}

/* Factura global y envío por correo (D-442) */
.fc-global{display:flex;flex-direction:column;gap:var(--sp-4);margin-bottom:var(--sp-4)}
.fc-global .seg{flex-wrap:wrap}
.fc-global-op{justify-content:flex-end}
.fc-notas{margin:var(--sp-3) 0}
.fc-notas summary{cursor:pointer;color:var(--c-primary);font-weight:500}
.fc-sec{margin:var(--sp-6) 0 var(--sp-3)}
.fc-sec h2{font-size:var(--fs-lg,18px);margin:0}
.fc-enviar{margin-right:auto}
@media (max-width:767px){.fc-enviar{flex-basis:100%}}

/* Factura global: escoger notas por forma de pago y una por una (D-443) */
.fg-vista{display:flex;flex-direction:column;gap:var(--sp-3)}
.fg-formas{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.fg-forma{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:var(--sp-2) var(--sp-3);border-radius:10px;border:1px solid var(--c-border);background:var(--c-surface);color:var(--c-text-2);cursor:pointer;text-align:left;min-width:132px}
.fg-forma b{font-size:var(--fs-sm);color:var(--c-text-2)}
.fg-forma small{font-size:var(--fs-xs)}
.fg-forma.on{border-color:var(--c-primary);background:var(--c-primary-soft)}
.fg-forma.on b{color:var(--c-primary)}
.fg-notas-head{display:flex;align-items:center;justify-content:space-between}
.fg-notas{max-height:360px;overflow:auto;border:1px solid var(--c-border);border-radius:10px}
.fg-tabla{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
.fg-tabla td{padding:8px 12px;border-bottom:1px solid var(--c-border);vertical-align:middle}
.fg-tabla tr:last-child td{border-bottom:0}
.fg-tabla .fg-chk{width:36px;padding-right:0}
.fg-tabla .fg-chk input{width:18px;height:18px}
.fg-tabla .fg-sub{display:block}
.fg-tabla .fg-forma-c{color:var(--c-text-2)}
.fg-tabla tr.fuera td:not(.fg-chk){opacity:.45;text-decoration:line-through}
.fg-mas{margin:var(--sp-2) var(--sp-3);font-size:var(--fs-xs)}
.fg-quitadas{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3);padding:var(--sp-3);border-radius:10px;background:var(--c-surface-2,rgba(0,0,0,.03))}
.fg-quitadas p{margin:0;flex:1 1 280px;font-size:var(--fs-sm)}
section.fg-quitadas{flex-direction:column;align-items:stretch}
.fg-motivos{display:flex;flex-direction:column;gap:6px}
.vd-nofact{display:flex;flex-direction:column;gap:var(--sp-2)}
@media (max-width:767px){.fg-forma{flex:1 1 calc(50% - var(--sp-2));min-width:0}.fg-tabla .fg-forma-c{display:none}.fg-notas{max-height:none}}

/* Administración (doc 27, D-444, D-445): cuentas, caja chica, estado de cuenta y movimientos */
.ad-sub{font-size:var(--fs-sm)}
.ad-out{color:var(--c-danger)}
.ad-kpis .ad-kpi-txt{font-size:var(--fs-md);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ad-cobra{margin-top:var(--sp-3);font-size:var(--fs-xs);color:var(--c-text-2);line-height:1.5}
.ad-vacio{padding:var(--sp-5);display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-3)}
.ad-vacio p{margin:0;color:var(--c-text-2)}
.ad-modos{display:flex;flex-direction:column;gap:var(--sp-3)}
.ad-modo{display:flex;gap:var(--sp-3);align-items:flex-start;padding:var(--sp-4);border:1px solid var(--c-border);border-radius:var(--r-md);cursor:pointer}
.ad-modo:has(input:checked){border-color:var(--c-primary);background:var(--c-primary-soft)}
.ad-modo input{margin-top:3px}
.ad-modo b{display:block;font-size:var(--fs-sm)}
.ad-modo small{display:block;color:var(--c-text-2);font-size:var(--fs-xs);margin-top:2px;line-height:1.45}
.ad-dist{padding:var(--sp-4);box-shadow:none}
.ad-dist-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-3);font-size:var(--fs-sm)}
.ad-dist-h b{display:flex;gap:8px;align-items:center}
.ad-dist-h i{width:8px;height:8px;border-radius:2px;display:inline-block}
.ad-ec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--sp-4);flex-wrap:wrap}
.ad-ec-formas{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4);font-size:var(--fs-xs);color:var(--c-text-2)}
.ad-ec-formas span{display:flex;align-items:center;gap:6px}
.ad-ec-formas i{width:8px;height:8px;border-radius:2px;display:inline-block}
.ad-ec-rango{display:flex;gap:var(--sp-3);align-items:flex-end;flex-wrap:wrap}
.ad-ec-rango .field{flex:1 1 140px}
.ad-ec{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
.ad-ec td{padding:8px 6px;border-bottom:1px solid var(--c-border);vertical-align:top}
.ad-ec tr[data-m]{cursor:pointer}
.ad-ec tr[data-m]:hover td{background:var(--c-surface-2)}
.ad-ec-saldo{font-size:var(--fs-xs)}
.ad-toolbar{display:flex;gap:var(--sp-3);align-items:center;flex-wrap:wrap;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--c-border)}
.ad-toolbar .cl-buscar{flex:1 1 240px;margin:0}
.ad-rango{display:inline-flex;gap:var(--sp-2)}
.ad-rango .input{height:32px;width:150px}
.ad-movs .ad-n{font-weight:500}
.ad-inactiva span{color:var(--c-text-3)}
.ad-cancelar{color:var(--c-danger)}
.adm-in{color:var(--c-success)}.adm-out{color:var(--c-danger)}.adm-tr{color:var(--c-info)}
.adm-amt{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.adm-sel{height:32px;border:1px solid var(--c-border);border-radius:var(--r-full);padding:0 28px 0 var(--sp-3);background-color:var(--c-surface);font-size:var(--fs-sm);color:var(--c-text-2);cursor:pointer;max-width:200px}
.adm-sel.on{border-color:var(--c-primary);color:var(--c-primary);background-color:var(--c-primary-soft);font-weight:600}
.adm-toolbar2{display:flex;gap:var(--sp-2);flex-wrap:wrap;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--c-border);align-items:center}
.adm-cell{min-width:0}
.adm-cell b{display:block;font-weight:600}
.adm-cell small{display:block;color:var(--c-text-3);font-size:var(--fs-xs);margin-top:1px}
.adm-dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px;vertical-align:middle}
.adm-date{white-space:nowrap;font-size:var(--fs-sm)}
.adm-date small{display:block;color:var(--c-text-3);font-size:var(--fs-xs)}
.adm-cancel td{opacity:.55}
.adm-cancel .adm-amt{text-decoration:line-through}
.adm-ico-t{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;flex:none}
.adm-ico-t svg{width:16px;height:16px}
.adm-ico-t.in{background:var(--c-success-soft);color:var(--c-success)}
.adm-ico-t.out{background:var(--c-danger-soft);color:var(--c-danger)}
.adm-ico-t.tr{background:var(--c-info-soft);color:var(--c-info)}
.adm-row{display:flex;gap:var(--sp-3);align-items:center}
.adm-big{font-size:var(--fs-2xl);font-weight:700;font-variant-numeric:tabular-nums}
.adm-total{display:flex;justify-content:space-between;align-items:baseline;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);background:var(--c-surface-2);font-size:var(--fs-sm)}
.adm-total b{font-size:var(--fs-lg);font-variant-numeric:tabular-nums}
.adm-cat{display:grid;grid-template-columns:minmax(0,1fr) auto 190px;gap:var(--sp-3);align-items:center;padding:8px 0;border-bottom:1px solid var(--c-border);font-size:var(--fs-sm)}
.adm-cat:last-child{border-bottom:0}
.adm-cat select{height:32px;font-size:var(--fs-xs);min-width:0;width:100%}
.pv-cuenta{padding:0 var(--sp-5) var(--sp-3)}
/* Varias formas de pago en una venta */
.pv-pagos{margin:0 var(--sp-5) var(--sp-3);border:1px solid var(--c-border);border-radius:var(--r-md);overflow:hidden}
.pv-pago{display:grid;grid-template-columns:minmax(0,1fr) auto 32px;align-items:center;gap:var(--sp-2);padding:4px var(--sp-2) 4px var(--sp-3);font-size:var(--fs-sm)}
.pv-pago+.pv-pago{border-top:1px solid var(--c-border)}
.pv-pago .icon-btn{width:28px;height:28px}
.pv-pago .icon-btn svg{width:14px;height:14px}
.pv-falta{background:var(--c-surface-2);padding-top:6px;padding-bottom:6px}
.pv-falta b{color:var(--c-danger)}
.pv-ayuda-pago{margin:calc(-1 * var(--sp-2)) var(--sp-5) var(--sp-3);font-size:var(--fs-xs);color:var(--c-text-3)}
.pv-ayuda-pago .kbd{font-size:10px}
@media (max-width:767px){.adm-cat{grid-template-columns:minmax(0,1fr) auto}.adm-cat select{grid-column:1/-1}.ad-rango .input{width:130px}.adm-sel{max-width:none;flex:1 1 calc(50% - var(--sp-2))}}
.rt-motivo{padding:var(--sp-2) 0;border-bottom:1px solid var(--c-border)}
.rt-motivo .toggle-row{border:0;padding-bottom:4px}
.rt-motivo-adm{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}
.rt-motivo-adm .input{height:34px;font-size:var(--fs-xs)}
.rt-va{margin:0;font-size:var(--fs-sm)}
@media (max-width:640px){.ad-ec .ad-ec-saldo{display:none}.ad-ec-rango .field{flex:1 1 calc(50% - var(--sp-3))}.adm-toolbar2 .adm-sel{flex:1 1 calc(50% - var(--sp-2));width:auto;min-width:0}}

/* Cuentas por pagar y comprobantes (D-315, D-319, D-447) */
.ad-comp{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;font-size:var(--fs-sm)}
.ad-comp-nota{margin:var(--sp-2) 0 0;font-size:var(--fs-xs)}
#mfCompAv .callout,#mfCompAv .btn{margin-top:var(--sp-2)}
.ad-cxp{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
.ad-cxp th{text-align:left;font-size:var(--fs-xs);color:var(--c-text-2);font-weight:600;padding:10px 12px;border-bottom:1px solid var(--c-border)}
.ad-cxp td{padding:10px 12px;border-bottom:1px solid var(--c-border);vertical-align:middle}
.ad-cxp .num{text-align:right}
.ad-cxp .ad-chk{width:36px;padding-right:0}
.ad-cxp .ad-chk input{width:16px;height:16px;accent-color:var(--c-primary)}
.ad-prov td{background:var(--c-surface-2);cursor:pointer}
.ad-prov-n{display:flex;align-items:center;gap:var(--sp-3)}
.ad-prov-n b{display:block}
.ad-prov-n small{display:block;color:var(--c-text-3);font-size:var(--fs-xs)}
.ad-pini{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;font-size:12px;font-weight:700;color:var(--c-text-2);background:var(--c-surface);border:1px solid var(--c-border);flex:none}
.ad-doc td:nth-child(2){padding-left:var(--sp-5)}
.adm-selbar{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--c-primary-soft);color:var(--c-primary);font-size:var(--fs-sm);border-bottom:1px solid var(--c-border);flex-wrap:wrap}
.ad-pgdoc{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-3);padding:8px 0;border-bottom:1px solid var(--c-border)}
.ad-pgdoc .input{width:130px}
.ad-kpis3{grid-template-columns:repeat(3,minmax(0,1fr))}
#dpProvRes .resultado b{display:block}
@media (max-width:640px){.ad-cxp thead{display:none}.ad-cxp tr.ad-doc{display:grid;grid-template-columns:auto 1fr auto;gap:2px 8px;padding:8px 12px;border-bottom:1px solid var(--c-border)}
  .ad-cxp tr.ad-doc td{border:0;padding:0}.ad-cxp tr.ad-doc td[data-l="Documento"]{grid-column:2}.ad-cxp tr.ad-doc td[data-l="Fecha"]{display:none}
  .ad-cxp tr.ad-doc td[data-l="Vence"]{grid-column:2;font-size:var(--fs-xs)}.ad-cxp tr.ad-doc td[data-l="Importe"]{display:none}.ad-cxp tr.ad-doc td[data-l="Saldo"]{grid-column:3;grid-row:1}
  .ad-cxp tr.ad-doc .ad-chk{grid-row:1/3}.ad-doc td:nth-child(2){padding-left:0}.ad-kpis3{grid-template-columns:1fr 1fr 1fr}}
.ad-toolbar .seg{max-width:100%;overflow-x:auto}
@media (max-width:640px){.ad-cxp tr.ad-prov{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-3);padding:10px 12px;background:var(--c-surface-2);border-bottom:1px solid var(--c-border)}
  .ad-cxp tr.ad-prov td{border:0;padding:0;background:none}.ad-cxp tr.ad-prov td.ad-chk,.ad-cxp tr.ad-prov td:empty{display:none}}
/* Avisos de pagos (D-448) */
.av-dias{display:inline-flex;align-items:center;gap:6px;margin-left:auto;color:var(--c-text-2)}
.av-dias .input{width:64px;padding:4px 8px}
#avCuerpo .check.full{display:flex;width:100%}
.av-off{opacity:.45;pointer-events:none}
.av-chips{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4)}
.av-personas{display:flex;flex-direction:column;gap:var(--sp-2);max-height:260px;overflow:auto;padding:2px}
.av-personas small{margin-left:4px}
.av-sec{display:flex;flex-direction:column;gap:var(--sp-3)}
.msg-porpagar ul{list-style:none;margin:var(--sp-2) 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.msg-porpagar li{display:flex;flex-direction:column;gap:4px;padding:8px 10px;border-radius:var(--r-md);background:var(--c-surface);border:1px solid var(--c-border)}
.msg-porpagar .pp-top,.msg-porpagar .pp-pie{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}
.msg-porpagar .pp-pie small{font-size:var(--fs-xs);color:var(--c-text-2);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.msg-porpagar .pill{white-space:nowrap}
.msg-porpagar .pp-monto{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}
.msg-porpagar .pp-hecho{opacity:.6}
#avCuerpo .av-sec{margin-top:var(--sp-6)}
.av-nota{margin:-8px 0 0 30px}
.cu-nota{margin-top:-10px;padding-left:30px}
/* Cobros de la sucursal en Configuración (D-445) */
.cfg-cobros{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3);margin-bottom:var(--sp-3)}
@container (max-width:600px){.cfg-cobros{grid-template-columns:1fr}}
@media (max-width:600px){.cfg-cobros{grid-template-columns:1fr}}
/* ---------------------------------------------------------------- Reportes (doc 15, D-449 a D-451) */
.rp-toolbar{margin-bottom:var(--sp-5)}
.rp-tema{margin-bottom:var(--sp-6)}
.rp-tema h2{font-size:var(--fs-md);font-weight:600;margin-bottom:var(--sp-3);color:var(--c-text-2)}
.rp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--sp-3)}
.rp-card{display:flex;gap:var(--sp-3);align-items:flex-start;text-align:left;padding:var(--sp-4);cursor:pointer;border:1px solid var(--c-border);font:inherit;color:inherit;transition:border-color .15s,box-shadow .15s}
.rp-card:hover,.rp-card:focus-visible{border-color:var(--c-primary);box-shadow:var(--shadow-1)}
.rp-card b{display:block;font-size:var(--fs-sm);margin-bottom:2px}
.rp-card small{display:block;color:var(--c-text-2);font-size:var(--fs-xs);line-height:1.45}
.rp-ic{flex:none;width:34px;height:34px;border-radius:var(--r-md);background:var(--c-primary-soft);display:grid;place-items:center}
.rp-ic svg{width:18px;height:18px;stroke:var(--c-primary);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.rp-volver{display:inline-flex;align-items:center;gap:2px;font-size:var(--fs-sm);margin-bottom:4px}
.rp-volver svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2}
.rp-head .page-acc svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.rp-params{display:flex;flex-wrap:wrap;gap:var(--sp-3) var(--sp-4);padding:var(--sp-4);margin-bottom:var(--sp-3);align-items:flex-end}
.rp-f{margin:0;min-width:150px}
.rp-f label{font-size:var(--fs-xs)}
.rp-num{min-width:0;width:100px}
.rp-chips{display:flex;flex-wrap:wrap;gap:6px}
.rp-chips .chip{height:28px}
.rp-enc{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px var(--sp-3);margin:0 0 var(--sp-4);font-size:var(--fs-sm);color:var(--c-text-2)}
.rp-enc b{color:var(--c-text);font-weight:600}
.rp-enc small{margin-left:auto;font-size:var(--fs-xs)}
.rp-cargando{opacity:.5;transition:opacity .2s}
.rp-bloques{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-5) var(--sp-5)}
.rp-b{grid-column:1/-1;min-width:0}
.rp-b.rp-medio{grid-column:auto}
.rp-b h3{font-size:var(--fs-md);font-weight:600;margin-bottom:var(--sp-2)}
.rp-nota{font-size:var(--fs-xs);color:var(--c-text-2);margin:-2px 0 var(--sp-2)}
.rp-kpis{margin-bottom:0;grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.rp-neg b{color:var(--c-danger)}
.rp-aviso b{color:var(--c-warning,#b45309)}
.rp-graf{padding:var(--sp-4)}
.gr-v{width:100%;height:auto;display:block}
.gr-v rect{fill:var(--c-primary);stroke:none}
.gr-v rect.neg{fill:var(--c-danger)}
.gr-v rect:hover{opacity:.8}
.gr-v text{font-size:10px;fill:var(--c-text-2);stroke:none;font-weight:400}
.gr-v .tope{font-size:10px}
.gr-v .eje{stroke:var(--c-border)}
.gr-v .guia{stroke:var(--c-border);stroke-dasharray:3 4}
.gr-h{display:flex;flex-direction:column;gap:6px}
.gr-h-fila{display:grid;grid-template-columns:minmax(80px,30%) 1fr auto;gap:var(--sp-3);align-items:center;font-size:var(--fs-xs)}
.gr-h-et{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gr-h-barra{height:10px;background:var(--c-surface-2);border-radius:5px;overflow:hidden}
.gr-h-barra i{display:block;height:100%;background:var(--c-primary);border-radius:5px}
.gr-h-barra i.neg{background:var(--c-danger)}
.gr-h-val{font-variant-numeric:tabular-nums;color:var(--c-text-2);min-width:70px;text-align:right}
.rp-tabla-c{overflow-x:auto;padding:0}
.rp-tabla th,.rp-tabla td{padding:8px var(--sp-4);font-size:var(--fs-sm)}
.rp-tabla td{white-space:nowrap}
.rp-tabla tr[data-enlace]{cursor:pointer}
.rp-tabla tr[data-enlace]:hover,.rp-tabla tr[data-enlace]:focus-visible{background:var(--c-surface-2);outline:0}
.rp-tabla .rp-g td{background:var(--c-surface-2);font-size:var(--fs-sm);padding-top:10px}
.rp-tabla .rp-g b{color:var(--c-primary);margin-right:var(--sp-3)}
.rp-tabla .rp-g span{color:var(--c-text-2);margin-right:var(--sp-3)}
.rp-tabla .rp-sub td{font-weight:600;color:var(--c-text-2);border-bottom:2px solid var(--c-border)}
.rp-tabla tfoot td{font-weight:700;background:var(--c-surface-2);border-bottom:0}
.rp-q{display:inline-grid;place-items:center;width:14px;height:14px;border-radius:50%;background:var(--c-surface-2);font-size:10px;cursor:help}
.rp-trunc{padding:var(--sp-3) var(--sp-4);font-size:var(--fs-xs);color:var(--c-text-2);border-top:1px solid var(--c-border)}
.rp-ayuda section{margin-bottom:var(--sp-4)}
.rp-ayuda b{display:block;font-size:var(--fs-sm);margin-bottom:4px}
.rp-ayuda p{font-size:var(--fs-sm);color:var(--c-text-2);line-height:1.5}
@media (max-width:760px){
  .rp-bloques{grid-template-columns:1fr}
  .rp-head .page-acc .btn span{display:none}
  .rp-params{padding:var(--sp-3)}
  .rp-f{min-width:calc(50% - var(--sp-3));flex:1}
  .rp-cas{min-width:100%}
  .rp-f:has(.seg){min-width:100%}
  .rp-f .seg{display:flex;flex-wrap:wrap;width:100%}
  .rp-f .seg button{flex:1 1 auto;white-space:normal;height:auto;min-height:28px;padding:4px var(--sp-2)}
  .rp-enc small{margin-left:0;width:100%}
  .rp-tabla thead{display:none}
  .rp-tabla,.rp-tabla tbody,.rp-tabla tfoot{display:block}
  .rp-tabla tr{display:grid;grid-template-columns:1fr auto;gap:2px var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--c-border)}
  .rp-tabla td{display:flex;justify-content:space-between;gap:var(--sp-3);padding:0;border:0;white-space:normal;grid-column:1/-1}
  .rp-tabla td::before{content:attr(data-l);color:var(--c-text-2);font-size:var(--fs-xs);font-weight:500}
  .rp-tabla td.rp-vacia{display:none}
  .rp-tabla td.rp-tot-et::before{content:none}
  .rp-tabla .rp-g td::before{content:none}
  .rp-tabla .rp-g td{display:block;background:none;padding:0}
  .rp-tabla .rp-g{background:var(--c-surface-2)}
}
.gr-v rect.s1{fill:var(--c-cat-2,#d08a2e)}
.gr-v rect.s2{fill:var(--c-cat-3,#6d5bd0)}
.gr-l polyline{fill:none;stroke:var(--c-primary);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.gr-l circle{fill:var(--c-surface);stroke:var(--c-primary);stroke-width:2}
.gr-l polyline.s1,.gr-l circle.s1{stroke:var(--c-cat-2,#d08a2e)}
.gr-l polyline.s2,.gr-l circle.s2{stroke:var(--c-cat-3,#6d5bd0)}
.gr-l polyline.s3,.gr-l circle.s3{stroke:var(--c-text-3)}
.gr-leyenda{display:flex;flex-wrap:wrap;gap:var(--sp-4);font-size:var(--fs-xs);color:var(--c-text-2);margin-bottom:var(--sp-2)}
.gr-leyenda span{display:inline-flex;align-items:center;gap:6px}
.gr-leyenda i{width:10px;height:10px;border-radius:2px;background:var(--c-primary)}
.gr-leyenda i.s1{background:var(--c-cat-2,#d08a2e)}
.gr-leyenda i.s2{background:var(--c-cat-3,#6d5bd0)}
.rp-prod{position:relative;min-width:240px}
.rp-prod-res{position:absolute;z-index:20;top:100%;left:0;right:0;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);box-shadow:var(--shadow-2,0 6px 20px rgba(0,0,0,.12));max-height:280px;overflow:auto}
.rp-prod-res .resultado{display:flex;flex-direction:column;align-items:flex-start;width:100%;padding:8px 12px;border:0;background:none;text-align:left;cursor:pointer;font:inherit}
.rp-prod-res .resultado:hover{background:var(--c-surface-2)}
.rp-prod-sel{display:flex;align-items:center;gap:var(--sp-2);height:40px;padding:0 var(--sp-3);border:1px solid var(--c-primary);background:var(--c-primary-soft);border-radius:var(--r-md);font-size:var(--fs-sm)}
.rp-prod-sel span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rp-prod-sel .link{font-size:18px;line-height:1}

/* ---------------------------------------------------------------- Tablero (doc 14 §5, D-329, D-454, D-455) */
.tw{display:flex;flex-direction:column;gap:var(--sp-4)}
.tw-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}
.tw-head h1{font-size:var(--fs-xl);font-weight:700}
.tw-head p{font-size:var(--fs-sm);margin-top:2px}
.tw-head .page-acc{display:flex;gap:var(--sp-2);flex-wrap:wrap}
.tw-head .btn svg{width:16px;height:16px}
.tw-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(200px,auto);grid-auto-flow:row dense;gap:var(--sp-4);align-items:stretch}
.tw-w{display:flex;flex-direction:column;min-width:0;position:relative;transition:box-shadow .15s,opacity .15s}
.tw-w.z2{grid-column:span 2}
.tw-w.z3{grid-column:span 3}
.tw-w.z4{grid-column:span 2;grid-row:span 2}
@container (max-width:900px){.tw-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tw-w.z3{grid-column:span 2}}
@container (max-width:560px){.tw-grid{grid-template-columns:1fr;grid-auto-rows:auto}.tw-w.z2,.tw-w.z3,.tw-w.z4{grid-column:auto;grid-row:auto}}
.tw-wh{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-4) var(--sp-4) 0;min-height:44px}
.tw-wh h3{font-size:var(--fs-sm);font-weight:600;color:var(--c-text-2);flex:1;min-width:0;line-height:1.3}
.tw-wico{width:28px;height:28px;border-radius:var(--r-md);display:grid;place-items:center;background:var(--c-primary-soft);color:var(--c-primary);flex:none}
.tw-wico svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2}
.tw-wb{padding:var(--sp-3) var(--sp-4) var(--sp-4);flex:1;display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}
.tw-big{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1;letter-spacing:-.3px;overflow-wrap:anywhere}
.tw-big span{font-size:var(--fs-md);font-weight:500;color:var(--c-text-2);letter-spacing:0}
.tw-sub{font-size:var(--fs-xs);color:var(--c-text-2)}
.tw-sub b{font-weight:600}
.tw-mini{display:flex;flex-direction:column;gap:6px;margin-top:var(--sp-1)}
.tw-mini>div{display:flex;justify-content:space-between;gap:0 var(--sp-2);font-size:var(--fs-sm);align-items:center}
.tw-mini>div>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tw-mini>div>b{margin-left:auto;font-weight:600;white-space:nowrap}
.tw-mini small{display:block;font-size:11px;color:var(--c-text-3);overflow:hidden;text-overflow:ellipsis}
.tw-lado{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:var(--sp-4);align-items:start}
.tw-lado>div{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}
@container (max-width:560px){.tw-lado{grid-template-columns:1fr}}
.tw-tabla{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
.tw-tabla th{font-size:11px;font-weight:600;color:var(--c-text-3);text-align:left;padding:4px 0;border-bottom:1px solid var(--c-border)}
.tw-tabla td{padding:7px 0;border-bottom:1px solid var(--c-border);overflow-wrap:anywhere}
.tw-tabla tr:last-child td{border-bottom:0}
.tw-tabla td+td,.tw-tabla th+th{padding-left:var(--sp-3)}
.tw-tabla .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.tw-tabla .tw-bad{color:var(--c-danger);font-weight:600}
.tw-tabla .tw-warn{color:var(--c-warning);font-weight:600}
.tw-graf{flex:1;display:flex;flex-direction:column;justify-content:flex-end;min-height:0}
.tw-graf .gr-v{max-height:260px}
.tw-vacia{font-size:var(--fs-sm);color:var(--c-text-2);padding:var(--sp-2) 0}
.tw-pie{margin-top:auto;padding-top:var(--sp-2);display:flex;gap:var(--sp-2);flex-wrap:wrap}
.tw-pie .btn{text-decoration:none}
.tw-vacio{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-8,48px) var(--sp-4);text-align:center}
.tw-ico{width:48px;height:48px;border-radius:var(--r-lg);display:grid;place-items:center;background:var(--c-primary-soft);color:var(--c-primary)}
.tw-ico svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8}
/* Editar */
.tw-grid.edit .tw-w{outline:2px dashed var(--c-border);outline-offset:-2px;cursor:grab}
.tw-grid.edit .tw-w.drag{opacity:.4}
.tw-grid.edit .tw-w.over{outline-color:var(--c-primary);box-shadow:0 0 0 4px var(--c-primary-soft)}
.tw-muestra{opacity:.8;font-size:var(--fs-sm)}
.tw-grip{color:var(--c-text-3);display:grid;place-items:center}
.tw-grip svg,.tw-edbar svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}
.tw-edbar{display:flex;gap:2px;align-items:center}
.tw-edbar .icon-btn{width:30px;height:30px}
.tw-edbar .icon-btn:disabled{opacity:.3;cursor:default}
.tw-szbar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-top:1px dashed var(--c-border);font-size:var(--fs-xs);color:var(--c-text-2)}
.tw-w.z1 .tw-szbar>span{display:none}
.tw-w.z1 .tw-szbar{justify-content:center;padding:var(--sp-2)}
.tw-szs{display:flex;gap:4px;background:var(--c-surface-2);padding:3px;border-radius:var(--r-md)}
.tw-szs button{width:30px;height:28px;border:0;border-radius:6px;background:none;display:grid;place-items:center;cursor:pointer;color:var(--c-text-3)}
.tw-w.z1 .tw-szs button{width:26px}
.tw-szs button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6}
.tw-szs button.active{background:var(--c-surface);color:var(--c-primary);box-shadow:var(--shadow-1)}
.tw-szs button:disabled{opacity:.3;cursor:not-allowed}
.tw-agregar{border:2px dashed var(--c-border);border-radius:var(--r-lg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-2);min-height:150px;color:var(--c-text-2);cursor:pointer;background:none;font:inherit;font-size:var(--fs-sm)}
.tw-agregar:hover{border-color:var(--c-primary);color:var(--c-primary);background:var(--c-primary-soft)}
.tw-agregar svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2}
.tw-solo-movil{display:none}
.tw-cat-it{display:flex;gap:var(--sp-3);align-items:center;padding:var(--sp-3) 0;border-bottom:1px solid var(--c-border)}
.tw-cat-it:last-child{border-bottom:0}
.tw-cat-it>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:var(--fs-sm)}
.tw-cat-ico{width:36px;height:36px;border-radius:var(--r-md);display:grid;place-items:center;background:var(--c-surface-2);color:var(--c-text-2);flex:none}
.tw-cat-ico svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}
.tabs .tw-mas{padding:0 var(--sp-3);color:var(--c-text-3)}
.tabs .tw-mas svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}
@media (max-width:767px){
  .tw-solo-movil{display:grid}
  .tw-solo-ancho{display:none}
  .tw-grid.edit .tw-w{cursor:default}
  .tw-head h1{font-size:var(--fs-lg)}
}

/* Mis reportes (D-457) */
a.rp-card{text-decoration:none;color:inherit}
.rp-ic-mio{background:var(--c-ai-soft)}
.rp-ic-mio svg{stroke:var(--c-ai)}
.rp-meta{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}
.rp-meta:empty{display:none}
.rp-vacio{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--sp-2);padding:var(--sp-8,48px) var(--sp-4);max-width:560px;margin:0 auto}
.rp-sec{padding:var(--sp-2) 0;border-bottom:1px solid var(--c-border)}
.msg-botones a.btn{text-decoration:none}

/* ---------------------------------------------------------------- Catálogo con fotos (D-462) */
.cf-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-4);align-items:start}
@container (min-width:760px){.cf-grid{grid-template-columns:minmax(0,1fr) 250px}.cf-resumen{position:sticky;top:var(--sp-4)}}
.cf-form{padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-4)}
.cf-form .field{margin:0}
.cf-n{margin-left:4px;color:var(--c-text-3);font-size:var(--fs-xs)}
.chip.active .cf-n{color:inherit;opacity:.75}
.cf-texto{margin-top:var(--sp-2);max-width:360px}
.cf-dos{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--sp-2) var(--sp-4)}
.cf-disenos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-2);max-width:480px}
.cf-dis{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--sp-3) var(--sp-2);border:1px solid var(--c-border);border-radius:var(--r-md);background:var(--c-surface);font:inherit;color:inherit;cursor:pointer;transition:border-color .15s,background .15s}
.cf-dis b{font-size:var(--fs-sm)}
.cf-dis small{font-size:var(--fs-xs);color:var(--c-text-3)}
.cf-dis.active{border-color:var(--c-primary);background:var(--c-primary-soft)}
.cf-dib{display:grid;gap:3px;width:44px;height:54px;padding:5px;margin-bottom:var(--sp-1);border:1px solid var(--c-border);border-radius:4px;background:var(--c-surface)}
.cf-dib span,.cf-dib i{background:var(--c-surface-2);border-radius:2px}
.cf-dis.active .cf-dib span,.cf-dis.active .cf-dib i{background:var(--c-primary);opacity:.35}
.cf-dib-cuadricula{grid-template-columns:repeat(3,1fr)}
.cf-dib-grande{grid-template-columns:repeat(2,1fr)}
.cf-dib-lista{grid-template-columns:1fr}
.cf-resumen{padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-3)}
.cf-num{font-size:2.25rem;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.cf-resumen .callout{margin:0}
.cf-acc{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.cf-acc .btn{flex:1 1 auto}
.cf-acc svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* ---------------------------------------------------------------- 👍/👎 a las respuestas de los agentes (D-465) */
.msg-pie{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-top:4px}
.msg-pie time{margin-top:0}
.msg-calif{display:inline-flex;align-items:center;gap:2px;margin-left:-4px}
.msg-calif button{width:24px;height:22px;display:grid;place-items:center;border:0;background:none;border-radius:6px;color:var(--c-text-3);cursor:pointer;padding:0;opacity:.6;transition:opacity .12s,background .12s}
.msg-calif button svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.msg-calif button:hover,.msg-calif button:focus-visible{opacity:1;background:var(--c-surface-2)}
.msg-calif button.activo{opacity:1;color:var(--c-primary)}
.msg-calif button.activo[data-calif="mal"]{color:var(--c-danger)}
.msg-calif small{font-size:10px;color:var(--c-text-3);margin-left:2px}
@media (hover:hover){.msg-calif:not(.hecha){opacity:0;transition:opacity .15s}.msg:hover .msg-calif,.msg:focus-within .msg-calif,.msg-calif:not(.hecha):focus-within{opacity:1}}
.msg-calif-forma{align-self:flex-start;width:100%;max-width:88%;margin:-2px 0 var(--sp-2);padding:var(--sp-3);border:1px solid var(--c-border);border-radius:12px;background:var(--c-surface);display:flex;flex-direction:column;gap:var(--sp-2);font-size:var(--fs-sm)}
.msg-calif-forma label{font-weight:600}
.msg-calif-forma p{margin:0;font-size:var(--fs-xs);color:var(--c-text-2);line-height:1.4}
.msg-calif-forma textarea{resize:vertical;min-height:52px}
.msg-calif-acc{display:flex;justify-content:flex-end;gap:var(--sp-2)}
.msg-calif-acc .btn{margin-top:0}

/* ---------------------------------------------------------------- Consumo de créditos (D-475) */
.cc-sec{margin-bottom:var(--sp-5)}
.cc-sec h2{font-size:var(--fs-md);font-weight:600;color:var(--c-text-2);margin:0 0 var(--sp-3)}
.cc-dos{display:grid;grid-template-columns:minmax(0,1fr);gap:0 var(--sp-4)}
@container (min-width:860px){.cc-dos{grid-template-columns:1fr 1fr}}
.cc-tabla{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
.cc-tabla th{font-size:var(--fs-xs);font-weight:600;color:var(--c-text-2);text-align:left;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--c-border)}
.cc-tabla td{padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--c-border)}
.cc-tabla tr:last-child td{border-bottom:0}
.cc-tabla .num{text-align:right;font-variant-numeric:tabular-nums}
.cc-mal{color:var(--c-danger)}
.cc-nota{font-size:var(--fs-xs);max-width:720px}
@media (max-width:640px){#ccCuerpo .kpis{grid-template-columns:1fr 1fr}.cc-tabla th:nth-child(4),.cc-tabla td:nth-child(4){display:none}}

/* ---------------------------------------------------------------- Socios (D-478) */
.ad-socios{display:flex;flex-direction:column;margin:var(--sp-3) 0}
.ad-socio{display:grid;grid-template-columns:1fr auto auto;gap:var(--sp-3);align-items:center;padding:var(--sp-3) 0;border-bottom:1px solid var(--c-border)}
.ad-socio small{display:block;font-size:var(--fs-xs)}
.ad-socio .num{font-variant-numeric:tabular-nums}
.ad-aviso{color:var(--c-warning);font-size:var(--fs-sm)}
#soForma{margin-top:var(--sp-2)}

/* ---------------------------------------------------------------- Préstamos (D-481) */
.pr-avance{height:6px;border-radius:3px;background:var(--c-surface-2);overflow:hidden;width:110px;margin-bottom:3px}
.pr-avance i{display:block;height:100%;background:var(--c-primary);border-radius:3px}
.pr-sim{margin-top:var(--sp-4);padding:var(--sp-4);border-radius:var(--r-md);background:var(--c-surface-2)}
.pr-sim p{margin:var(--sp-2) 0 0;font-size:var(--fs-sm)}
.pr-sim-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-3)}
.pr-sim-kpis small{display:block;font-size:var(--fs-xs);color:var(--c-text-2)}
.pr-sim-kpis b{display:block;font-size:var(--fs-md);font-variant-numeric:tabular-nums}
.pr-tabla-wrap{max-height:340px;overflow:auto;border:1px solid var(--c-border);border-radius:var(--r-md)}
.pr-tabla{width:100%;font-size:var(--fs-sm)}
.pr-tabla th{position:sticky;top:0;background:var(--c-surface)}
.pr-tabla .num{text-align:right;font-variant-numeric:tabular-nums}
.pr-pagada td{color:var(--c-text-3)}
.pr-tabla td,.pr-tabla th{padding:8px 10px;white-space:nowrap}
.pr-est{display:block;font-size:var(--fs-xs);font-weight:600}
.pr-est.ok{color:var(--c-success,#15803d)}.pr-est.bad{color:var(--c-danger,#b91c1c)}.pr-est.warn{color:var(--c-warning,#b45309)}
.pr-pago{display:flex;justify-content:space-between;gap:var(--sp-3);align-items:center;padding:var(--sp-2) 0;border-bottom:1px solid var(--c-border)}
.pr-pago small{display:block;font-size:var(--fs-xs)}
.pr-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:var(--sp-3)}
.pr-motivo{display:flex;flex-direction:column;gap:var(--sp-2);width:100%}
@media (max-width:640px){.pr-sim-kpis{grid-template-columns:1fr 1fr}.pr-tabla th:nth-child(4),.pr-tabla td:nth-child(4),.pr-tabla th:nth-child(5),.pr-tabla td:nth-child(5){display:none}}

/* Administración › Reparto (D-484) */
.rr-estado ul{margin:var(--sp-2) 0 0;padding-left:1.2em;font-size:var(--fs-sm)}
.rr-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:var(--sp-4);align-items:start;margin-top:var(--sp-4)}
.rr-grid .rr-card:nth-child(3){grid-column:2}
.rr-grid .rr-card:first-child{grid-row:span 2}
.rr-card{display:block;padding:var(--sp-5);min-width:0}
.rr-card p{margin:0 0 var(--sp-3)}
.rr-tit{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-2)}
.rr-tit h3{margin:0;font-size:var(--fs-md)}
.rr-dl{display:grid;grid-template-columns:1fr auto;gap:6px var(--sp-3);margin:0 0 var(--sp-3);font-size:var(--fs-sm)}
.rr-dl dt{color:var(--c-text-2);display:flex;align-items:center;gap:6px}
.rr-dl dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.rr-flujo dt:nth-last-child(2),.rr-flujo dd:last-child{border-top:1px solid var(--c-border);padding-top:6px;color:var(--c-text)}
.rr-acc{display:flex;justify-content:flex-end;gap:var(--sp-2);margin-top:var(--sp-3)}
.rr-ok{display:flex;gap:var(--sp-3);align-items:center}
.rr-ok p{margin:0}
.rr-ok .pill{white-space:nowrap;flex:none}
.rr-barra{display:flex;height:10px;border-radius:5px;overflow:hidden;background:var(--c-surface-2);margin:var(--sp-2) 0 var(--sp-3)}
.rr-barra i{display:block;height:100%}
.rr-barra .imp,.rr-dot.imp{background:#b45309}
.rr-barra .uti,.rr-dot.uti{background:var(--c-primary)}
.rr-barra .ope,.rr-dot.ope{background:#94a3b8}
.rr-dot{display:inline-block;width:8px;height:8px;border-radius:50%}
.rr-prop{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2)}
.rr-prop p{margin:0}
.rr-conf{width:100%}
.rr-h{margin:var(--sp-5) 0 var(--sp-2);font-size:var(--fs-md)}
.rr-paso h3{display:flex;align-items:center;gap:var(--sp-2)}
.rr-n{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--c-surface-2);font-size:var(--fs-xs)}
.rr-monto{margin-left:auto;font-variant-numeric:tabular-nums}
.rr-paso p{margin:var(--sp-1) 0}
.rr-top{list-style:none;margin:var(--sp-2) 0 0;padding:0;font-size:var(--fs-sm)}
.rr-top li{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid var(--c-border)}
.rr-top b{font-variant-numeric:tabular-nums}
@media (max-width:900px){.rr-grid{grid-template-columns:1fr}.rr-grid .rr-card:nth-child(3){grid-column:auto}.rr-grid .rr-card:first-child{grid-row:auto}}
/* Ruta del Coach (D-497) */
.rc-resumen{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--sp-2) var(--sp-4);align-items:center;padding:var(--sp-4) var(--sp-5);margin-bottom:var(--sp-4)}
.rc-res-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.rc-res-t small{color:var(--c-text-2);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em}
.rc-res-t span{color:var(--c-text-2);font-size:var(--fs-sm)}
.rc-res-acc{display:flex;gap:var(--sp-2);grid-column:2;grid-row:1/span 2;align-self:center}
.rc-resumen .rc-prog{grid-column:1;grid-row:2;max-width:420px}
.rc-prog{height:6px;border-radius:3px;background:var(--c-surface-2);overflow:hidden}
.rc-prog i{display:block;height:100%;background:var(--c-primary);border-radius:3px}
.rc-etapa{margin:0 0 var(--sp-2);font-size:var(--fs-md)}
.rc-obj{margin:0;white-space:pre-line}
.rc-pasos{list-style:none;margin:0;padding:0}
.rc-paso{display:flex;gap:var(--sp-3);padding:var(--sp-2) 0;position:relative}
.rc-paso:not(:last-child)::before{content:"";position:absolute;left:11px;top:32px;bottom:-4px;width:2px;background:var(--c-border)}
.rc-n{flex:none;display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--c-surface-2);color:var(--c-text-2);font-size:var(--fs-xs);font-weight:600}
.rc-n svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.rc-paso.hecho .rc-n{background:var(--c-primary);color:#fff}
.rc-paso.actual .rc-n{background:var(--c-surface);color:var(--c-primary);box-shadow:inset 0 0 0 2px var(--c-primary)}
.rc-paso.pendiente b{color:var(--c-text-2);font-weight:500}
.rc-paso-t{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;flex:1}
.rc-paso-t p{margin:var(--sp-1) 0;font-size:var(--fs-sm)}
.rc-paso.actual .rc-paso-t{background:var(--c-surface-2);border-radius:var(--r-md,8px);padding:var(--sp-2) var(--sp-3);margin:-4px 0}
.rc-falta{color:var(--c-warn,#b45309)}
.rc-repasar{margin-top:2px;padding:2px 8px;min-height:0}
.rc-card-ruta{display:block;color:var(--c-primary);font-size:var(--fs-xs);margin-top:4px}
.rc-ficha{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-3);flex-wrap:wrap}
@media (max-width:640px){.rc-resumen{grid-template-columns:1fr}.rc-res-acc{grid-column:1;grid-row:3}}

/* Agentes IA › Contratar (D-489) */
.ct-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--sp-4)}
.ct-card{display:flex;gap:var(--sp-3);align-items:flex-start;text-align:left;padding:var(--sp-4);cursor:pointer;border:1px solid var(--c-border);font:inherit;color:inherit}
.ct-card:hover{border-color:var(--c-primary)}
.ct-pronto{opacity:.75}
.ct-t{display:flex;flex-direction:column;gap:4px;min-width:0}
.ct-lema{color:var(--c-text-2);font-size:var(--fs-sm)}
.ct-head{display:flex;gap:var(--sp-3);align-items:center;margin-bottom:var(--sp-3)}
.ct-head p{margin:0}
.ct-lista{margin:0;padding-left:1.2em;font-size:var(--fs-sm);display:flex;flex-direction:column;gap:4px}
.ct-ej{display:flex;flex-wrap:wrap;gap:6px}

.rr-recom{margin:var(--sp-1) 0 0;font-size:var(--fs-xs);color:var(--c-text-2)}
.ct-descargo ol{margin:var(--sp-2) 0;padding-left:1.3em;font-size:var(--fs-sm);display:flex;flex-direction:column;gap:4px}
.ct-descargo h3 small{font-weight:400}

/* Ágora: subtítulos y listas numeradas en mensajes de agentes */
.msg-tit{display:block;margin:var(--sp-3) 0 4px;font-size:var(--fs-md)}
.msg-tit:first-child{margin-top:0}
.msg-hr{border:0;border-top:1px solid var(--c-border);margin:var(--sp-3) 0}
.msg code{font-family:var(--font-mono,monospace);font-size:.9em;background:var(--c-surface-2);padding:0 4px;border-radius:4px}
ol.msg-lista{padding-left:1.4em}

/* Invitación a activar las notificaciones en Ágora (D-500) */
.ag-notif{display:flex;gap:var(--sp-3);margin:0 var(--sp-3) var(--sp-2);padding:var(--sp-3);border-radius:var(--r-md);background:var(--c-surface-2);font-size:var(--fs-sm)}
.ag-notif>svg{flex:none;width:20px;height:20px;fill:none;stroke:var(--c-primary);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-top:2px}
.ag-notif b{display:block;margin-bottom:2px}
.ag-notif span{color:var(--c-text-2)}
.ag-notif-acc{display:flex;gap:var(--sp-2);margin-top:var(--sp-2)}

/* El menú lateral queda por encima del velo de los paneles: tocar otro módulo navega y cierra el panel */
.nav{z-index:26}

/* Cambios sin guardar en el panel (D-503): la pregunta aparece sobre el mismo panel */
.dr-descartar{position:absolute;inset:0;z-index:5;background:color-mix(in srgb,var(--c-bg) 55%,transparent);display:flex;align-items:center;justify-content:center;padding:var(--sp-4)}
.dr-descartar-caja{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg,12px);box-shadow:var(--shadow-2);padding:var(--sp-4);max-width:380px;width:100%}
.dr-descartar-caja h4{margin:0 0 var(--sp-1);font-size:var(--fs-md,1rem)}
.dr-descartar-caja p{margin:0 0 var(--sp-4)}
.dr-descartar-bot{display:flex;justify-content:flex-end;align-items:center;gap:var(--sp-2);flex-wrap:wrap}
.dr-descartar-bot .btn{flex:1 1 auto}

/* Indicadores del tablero (D-505): barrita (1 bloque), media luna (2 y 3) y medidor (cuadro). Zonas en tercios;
   la zona en la que está el valor va con su color completo y las otras apagadas. */
.tw-ind{--zona:var(--c-text-3);color:var(--c-text-2);font-variant-numeric:tabular-nums}
.tw-ind.z-ok{--zona:var(--c-success)}
.tw-ind.z-warn{--zona:var(--c-warning)}
.tw-ind.z-bad{--zona:var(--c-danger)}
.tw-zona{fill:none;stroke-linecap:butt;opacity:.28;transition:opacity .3s}
.tw-zona.ok{stroke:var(--c-success);background:var(--c-success)}
.tw-zona.warn{stroke:var(--c-warning);background:var(--c-warning)}
.tw-zona.bad{stroke:var(--c-danger);background:var(--c-danger)}
.tw-zona.on{opacity:1}
.tw-aguja{fill:var(--c-text);transform-box:view-box;transform:rotate(var(--a))}
.tw-aguja .tw-eje{fill:var(--zona)}
.tw-ind-cont{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--sp-3);align-items:start}
.tw-ind-main{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}
/* Chico: barrita a la derecha con su flecha */
.tw-ind-cont.t1{align-items:stretch}
.tw-ind-barra{display:flex;flex-direction:column;align-items:center;gap:5px;min-height:110px;padding-left:14px}
.tw-ind-barra small{font-size:10px;color:var(--c-text-3);line-height:1;white-space:nowrap}
.tw-ib-riel{position:relative;flex:1;width:12px;display:flex;flex-direction:column;gap:2px;border-radius:6px}
.tw-ib-riel .tw-zona{flex:1;border-radius:3px;display:block}
.tw-ib-riel .tw-zona:first-child{border-radius:5px 5px 3px 3px}
.tw-ib-riel .tw-zona:nth-child(3){border-radius:3px 3px 5px 5px}
.tw-ib-flecha{position:absolute;right:calc(100% + 3px);bottom:calc(var(--p) * 1%);width:0;height:0;transform:translateY(50%);
  border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:9px solid var(--zona);filter:drop-shadow(0 1px 1px rgb(0 0 0 / .15))}
/* Alargado: media luna */
.tw-ind-luna{width:140px;display:flex;flex-direction:column;align-items:center}
.tw-ind-luna svg{width:100%;height:auto;display:block;overflow:visible}
.tw-ind-luna .tw-aguja{transform-origin:60px 60px;--a0:-90deg}
.tw-ind-pie{width:100%;display:flex;justify-content:space-between;align-items:baseline;font-size:10px;color:var(--c-text-3);margin-top:2px}
.tw-ind-pie b{font-size:var(--fs-sm);color:var(--zona);font-weight:700}
.tw-ind-pie span{max-width:48px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Cuadro: medidor grande */
.tw-ind-medidor{width:220px;display:flex;flex-direction:column;align-items:center;position:relative}
.tw-ind-medidor svg{width:100%;height:auto;display:block;overflow:visible}
.tw-ind-medidor .tw-aguja{transform-origin:100px 100px;--a0:-120deg}
.tw-marcas line{stroke:var(--c-text-3);stroke-width:1.5;stroke-linecap:round}
.tw-pct{font-size:22px;font-weight:700;fill:var(--zona);text-anchor:middle}
.tw-lim{font-size:10px;fill:var(--c-text-3)}
.tw-ind-zona{margin-top:-2px;font-size:var(--fs-xs);font-weight:600;color:var(--zona);background:color-mix(in srgb,var(--zona) 14%,transparent);padding:2px 10px;border-radius:var(--r-full)}
/* Al cargar, la aguja y la flecha suben desde cero (no en la actualización automática) */
.tw-grid.anim .tw-aguja{animation:tw-aguja .9s cubic-bezier(.2,.8,.25,1.15) both}
.tw-grid.anim .tw-ib-flecha{animation:tw-flecha .9s cubic-bezier(.2,.8,.25,1.15) both}
@keyframes tw-aguja{from{transform:rotate(var(--a0))}}
@keyframes tw-flecha{from{bottom:0}}
@media (prefers-reduced-motion:reduce){.tw-grid.anim .tw-aguja,.tw-grid.anim .tw-ib-flecha{animation:none}}
@container (max-width:560px){
  .tw-ind-luna{width:112px}
  .tw-ind-cont.t4{grid-template-columns:1fr}
  .tw-ind-cont.t4 .tw-ind-medidor{justify-self:center;width:190px;grid-row:1}
}
/* Editar: el máximo del indicador */
.tw-maxbar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4) var(--sp-3);font-size:var(--fs-xs);color:var(--c-text-2);flex-wrap:wrap}
.tw-maxbar label{display:flex;flex-direction:column;gap:1px;font-weight:600;min-width:0}
.tw-maxbar label small{font-weight:400;color:var(--c-text-3)}
.tw-maxin{position:relative;display:flex;align-items:center}
.tw-maxin i{position:absolute;left:10px;font-style:normal;color:var(--c-text-3);pointer-events:none}
.tw-maxin .input{width:130px;height:34px;text-align:right;font-variant-numeric:tabular-nums}
.tw-maxin i+.input{padding-left:22px}
.tw-w.z1 .tw-maxbar{flex-direction:column;align-items:stretch}
.tw-w.z1 .tw-maxin .input{width:100%}
.tw-ind svg text,.tw-ind .tw-aguja *{stroke:none}
.tw-ind-cont.solo{grid-template-columns:1fr;justify-items:center}

/* Ágora: «Ir al final» mientras se lee más arriba (D-506); no ocupa lugar en la conversación */
.ag-abajo{position:sticky;bottom:0;align-self:flex-end;flex:none;width:40px;height:40px;margin-top:calc(-40px - var(--sp-3));border-radius:50%;border:1px solid var(--c-border);
  background:var(--c-surface);color:var(--c-text-2);box-shadow:var(--shadow-2);display:grid;place-items:center;cursor:pointer;z-index:2}
.ag-abajo svg{width:18px;height:18px}
.ag-abajo.nuevo{color:var(--c-primary);border-color:var(--c-primary)}
.ag-anteriores{align-self:center;flex:none;margin:var(--sp-2) 0;padding:var(--sp-1) var(--sp-3);border:0;border-radius:999px;background:var(--c-surface-2);color:var(--c-text-2);font-size:var(--fs-sm,.8125rem);cursor:pointer}
.ag-anteriores:hover{color:var(--c-primary)}
.ag-abajo.nuevo::after{content:"";position:absolute;top:2px;right:2px;width:9px;height:9px;border-radius:50%;background:var(--c-primary);animation:ag-abajo-pulso 1.2s ease-in-out infinite}
@keyframes ag-abajo-pulso{50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.ag-abajo.nuevo::after{animation:none}}

/* Deslizar a la derecha para cerrar el panel (D-509): mientras el dedo lo arrastra, sin transición */
.drawer.open.arrastrando{transition:none}

/* Bitácora (D-512) */
.bt-filtros{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-3);align-items:center;margin:var(--sp-3) 0 var(--sp-4)}
.bt-filtros select.input{width:auto;min-width:180px;max-width:100%}
.bt-fechas{display:inline-flex;gap:var(--sp-2);align-items:center}
.bt-fechas .input{width:auto}
.bt-dia{font-size:var(--fs-sm);font-weight:600;color:var(--c-text-2);margin:var(--sp-4) 0 var(--sp-2)}
.bt-lista{list-style:none;margin:0;padding:0;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg)}
.bt-it{display:flex;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);align-items:flex-start}
.bt-it+.bt-it{border-top:1px solid var(--c-border)}
.bt-av{width:32px;height:32px;font-size:12px;flex:none;background:var(--c-human-soft);color:var(--c-human)}
.bt-av.bt-ia{background:var(--c-ai-soft);color:var(--c-ai)}
.bt-txt{min-width:0;flex:1;font-size:var(--fs-sm);line-height:1.45}
.bt-reg{font-weight:600}
.bt-det{color:var(--c-text-2);font-size:var(--fs-xs);margin-top:2px;overflow-wrap:anywhere}
.bt-meta{color:var(--c-text-3);font-size:var(--fs-xs);margin-top:2px}
.bt-rech .bt-txt{color:var(--c-text-2)}
.bt-mas{display:flex;justify-content:center;margin:var(--sp-4) 0}
@media (max-width:767px){.bt-filtros select.input{flex:1 1 100%}.bt-it{padding:var(--sp-3)}}

/* Créditos Castaia (D-513): nivel de la cuenta y dónde comprar */
.cc-estado{display:flex;gap:var(--sp-2) var(--sp-4);align-items:center;justify-content:space-between;flex-wrap:wrap;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-lg);margin-bottom:var(--sp-4);border:1px solid var(--c-border);background:var(--c-surface)}
.cc-estado p{margin:4px 0 0;font-size:var(--fs-sm)}
.cc-est-txt{flex:1 1 320px;min-width:0}
.cc-estado.cc-warn{background:var(--c-warning-soft);border-color:transparent}
.cc-estado.cc-bad{background:var(--c-danger-soft);border-color:transparent}
.cc-bien{color:var(--c-success)}
.cc-comprar{font-size:var(--fs-xs)}
a.um-item{text-decoration:none;color:inherit}

/* Resurtido (doc 33, D-530, D-531, D-537) */
.rs-kpis{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:var(--sp-2)}
.rs-kpi{text-align:left;border:1px solid var(--c-border);cursor:pointer;font:inherit;color:inherit}
.rs-kpi:hover{border-color:var(--c-primary)}
.rs-kpi span{display:block;font-size:var(--fs-xs);margin-top:2px}
.rs-kpi b{font-size:20px}
.rs-cuando{font-size:var(--fs-xs);margin:0 0 var(--sp-3)}
.rs-vistas{display:flex;overflow-x:auto;max-width:100%;margin-bottom:var(--sp-3);scrollbar-width:none}
.rs-tabla td{vertical-align:top}
.rs-sen{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.rs-tend{display:inline-flex;align-items:center;gap:1px;margin-left:4px;font-size:11px;font-weight:600}
.rs-tend svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2.5}
.rs-sube{color:var(--c-success)}.rs-baja{color:var(--c-danger)}
.rs-acc{white-space:nowrap;text-align:right}
.rs-pag{display:flex;align-items:center;justify-content:center;gap:var(--sp-3)}
@media (max-width:1100px){.rs-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.rs-kpis{grid-template-columns:1fr 1fr}.rs-acc{text-align:left}}
.iv-analisis{margin-top:var(--sp-3);padding:var(--sp-3);background:var(--c-surface-2);border-radius:var(--r-md);font-size:var(--fs-sm)}
.iv-analisis p{margin:var(--sp-2) 0 0}
.pv-dias{display:flex;gap:6px;flex-wrap:wrap}
.chip-check input{position:absolute;opacity:0;pointer-events:none}
.chip-check span{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:32px;padding:0 10px;border-radius:var(--r-full);border:1px solid var(--c-border);background:var(--c-surface);cursor:pointer;font-size:var(--fs-sm);color:var(--c-text-2)}
.chip-check input:checked+span{border-color:var(--c-primary);background:var(--c-primary-soft);color:var(--c-primary);font-weight:600}
.chip-check input:focus-visible+span{outline:2px solid var(--c-primary);outline-offset:2px}
.r-pidieron{display:block;width:100%;padding:10px var(--sp-4);border:0;border-top:1px solid var(--c-border);background:var(--c-surface-2);text-align:left;cursor:pointer;font:inherit;font-size:var(--fs-sm);color:var(--c-primary)}
.r-pidieron:hover{background:var(--c-primary-soft)}
.rs-sen .pill{white-space:nowrap}
.rs-tabla th:last-child{min-width:190px}
.iv-fijo-ayuda{display:block;margin:2px 0 0 26px;font-size:var(--fs-xs)}

/* Cómo trabaja el Supervisor de inventarios (D-543) */
.ts .seg{flex-wrap:wrap}
.ts-linea{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:var(--sp-2);font-size:var(--fs-sm);color:var(--c-text-2)}
.ts .ts-corto{width:auto;min-width:84px;height:32px;padding:0 28px 0 8px;display:inline-block}
.ts .field{margin-bottom:var(--sp-4)}
.ts-prio{list-style:none;counter-reset:prio;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}
.ts-prio li{counter-increment:prio;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:4px 4px 4px 10px;border:1px solid var(--c-border);border-radius:var(--r-md);font-size:var(--fs-sm)}
.ts-prio li>span:first-child::before{content:counter(prio) ". ";color:var(--c-text-3);font-variant-numeric:tabular-nums}
.ts-mov{display:inline-flex}
.ts-mov .icon-btn{width:28px;height:28px}
.ts-mov svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}
.ts-plan{margin-top:var(--sp-3)}
.ts-plan-l{margin:var(--sp-2) 0;padding-left:18px;font-size:var(--fs-sm)}
.ag-prueba .btn{margin-top:var(--sp-2)}
.ag-aprueba{margin:0 0 var(--sp-3)}
.rs-invita{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap;margin:0 0 var(--sp-3);padding:10px var(--sp-4);border-radius:var(--r-md);background:var(--c-primary-soft);font-size:var(--fs-sm)}
/* Correo de la empresa (D-545) */
.cfg-correo{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:var(--fs-sm);color:var(--c-text-2)}
.cfg-correo .input{flex:1 1 140px;min-width:120px;max-width:260px}
/* Cambio en efectivo debajo del monto (D-554) */
.pv-cambio{display:flex;justify-content:space-between;align-items:baseline;margin:0 var(--sp-5) var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:var(--c-surface-2);font-size:var(--fs-sm);color:var(--c-text-2)}
.pv-cambio b{font-size:var(--fs-lg);color:var(--c-text)}
.pv-cambio.hidden{display:none}
/* Tallas y colores (D-555): valores como chips, matriz del modelo y cuadrícula de venta */
.md-chips{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center;margin-bottom:var(--sp-3)}
.md-chip{min-width:44px;height:34px;padding:0 var(--sp-3);border-radius:999px;border:1px solid var(--c-border);background:var(--c-surface);color:var(--c-text-2);cursor:pointer;font-size:var(--fs-sm)}
.md-chip.on{border-color:var(--c-primary);background:var(--c-primary-soft);color:var(--c-primary);font-weight:600}
.md-nuevo{width:110px;height:34px}
.md-vista{margin-top:var(--sp-2);font-size:var(--fs-sm)}
.md-matriz-wrap{overflow-x:auto}
.md-matriz{border-collapse:separate;border-spacing:4px;min-width:100%}
.md-matriz th{font-size:var(--fs-xs);color:var(--c-text-3);font-weight:600;text-align:center;padding:2px 6px;white-space:nowrap}
.md-matriz tbody th{text-align:left;color:var(--c-text);font-size:var(--fs-sm)}
.md-matriz td{text-align:center;padding:0}
.md-celda{width:100%;min-width:64px;padding:6px 4px;border-radius:var(--r-md);border:1px solid var(--c-border);background:var(--c-surface);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:1px}
.md-celda b{font-size:var(--fs-md);color:var(--c-text)}
.md-celda small{font-size:10px;color:var(--c-text-3)}
.md-celda:hover{border-color:var(--c-primary)}
.md-celda.bajo b{color:var(--c-warn,#b26a00)}
.md-celda.inactiva{opacity:.45}
.md-celda.sin{opacity:.5}
.md-nota{font-size:var(--fs-xs);margin-top:var(--sp-2)}
.md-pill{cursor:pointer;border:0;margin-left:4px}
.md-aviso{margin:0 var(--sp-5) var(--sp-3)}
.md-cant{width:64px;height:34px;text-align:center}

/* Números de serie (D-556): en el renglón de la venta y en su captura */
.pv-series{display:block;margin-top:2px;padding:0;border:0;background:none;font:inherit;font-size:var(--fs-xs);color:var(--c-text-2);text-align:left;cursor:pointer}
.pv-series:hover{color:var(--c-primary)}
.pv-series.falta b{color:var(--c-warning)}
.pv-serie-lista{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-2)}
.pv-serie{display:inline-flex;align-items:center;gap:var(--sp-1);padding:2px var(--sp-2);border-radius:var(--r-md);background:var(--c-surface-2);font-size:var(--fs-sm);font-family:var(--font-mono,monospace)}
.pv-serie button{border:0;background:none;color:var(--c-text-3);cursor:pointer;font-size:var(--fs-md);line-height:1}
.pv-serie button:hover{color:var(--c-danger)}
#serieMsg.error{color:var(--c-danger)}
.inv-series{margin-top:var(--sp-2)}
.inv-series .alm{display:flex;justify-content:space-between;gap:var(--sp-3);align-items:center;padding:var(--sp-2) 0;border-bottom:1px solid var(--c-border)}
.inv-series .alm small{color:var(--c-text-3)}
.hv-dev-series{display:flex;flex-direction:column;align-items:flex-end;gap:2px}

/* Lotes y caducidad (D-557): compras, ficha y venta */
.cp-partidas tr.cp-incompleta > td{background:var(--c-danger-soft)}
.cp-lotes{display:block;margin-top:2px;font-size:var(--fs-xs);color:var(--c-text-2)}
.cp-lotes.falta b{color:var(--c-danger)}
.cp-det > td{background:var(--c-surface-2)}
.cp-editor-lotes{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-2) 0}
.cp-lotes-t{width:auto;max-width:100%;border-collapse:collapse;margin:var(--sp-2) 0}
.cp-lotes-t input{min-width:0}
.cp-lotes-t td:nth-child(1) input{width:180px}
.cp-lotes-t td:nth-child(2) input{width:160px}
.cp-lotes-t td:nth-child(3) input{width:90px}
.cp-lotes-t th{text-align:left;font-size:var(--fs-xs);color:var(--c-text-3);font-weight:500;padding:0 var(--sp-1)}
.cp-lotes-t td{padding:2px var(--sp-1)}
.pv-lote{display:block;margin-top:2px;padding:0;border:0;background:none;font:inherit;font-size:var(--fs-xs);color:var(--c-text-2);text-align:left;cursor:pointer;text-decoration:underline dotted;text-underline-offset:2px}
.pv-lotes .check{align-items:flex-start}
.pv-lote.caducado{color:var(--c-danger);font-weight:600}
.pv-lote.por-caducar{color:var(--c-warning)}
.inv-lotes .lt{display:flex;justify-content:space-between;gap:var(--sp-3);font-size:var(--fs-sm);padding:2px 0}
.inv-lotes .lt.caducado{color:var(--c-danger)}
.inv-lotes .lt.por-caducar{color:var(--c-warning)}
/* Series que llegaron en un traspaso (D-563) */
.tr-series{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-3);margin-top:var(--sp-1)}
.tr-series .check{font-size:var(--fs-sm)}
/* Facturas relacionadas, sustitución y venta de la global a un cliente (D-564) */
.fc-rel{margin-top:var(--sp-3);border:1px solid var(--c-border);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3)}
.fc-rel summary{cursor:pointer;font-weight:600}
.fc-rel-fila{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) auto;gap:var(--sp-2);align-items:center;margin-top:var(--sp-2)}
.fc-rel #fcRelMas{margin-top:var(--sp-2)}
.fc-rel-ayuda{font-size:var(--fs-sm);margin:var(--sp-2) 0 0}
.fc-dg-ventas{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-3);max-height:180px;overflow:auto}
@media (max-width:600px){.fc-rel-fila{grid-template-columns:1fr auto}.fc-rel-fila select{grid-column:1 / -1}}
/* Sumatorias de reportes en el tablero (D-565): qué es mejor */
.tw-maxbar .tw-sentido{height:28px;padding:0 var(--sp-2);font-size:var(--fs-xs);font-weight:400;margin-top:2px;width:auto}
/* Totales de reportes en el tablero (D-566): colores por categoría (validados para daltonismo y contraste, claro y oscuro) */
:root{--c-cat-1:#0b8a72;--c-cat-2:#c47a1a;--c-cat-3:#6d5bd0;--c-cat-4:#c2557a;--c-cat-5:#2f86d6;--c-cat-6:#7f9a1e}
.gr-l polyline.anterior{stroke:var(--c-text-3);stroke-dasharray:5 4;stroke-width:2}
.gr-l circle.anterior{stroke:var(--c-text-3)}
.gr-leyenda i.anterior{background:repeating-linear-gradient(90deg,var(--c-text-3) 0 4px,transparent 4px 6px)}
.tw-pastel-cont{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:var(--sp-4);align-items:center}
.tw-pastel-cont.t2{grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr)}
.tw-pastel{display:flex;align-items:center;gap:var(--sp-3);min-width:0}
.tw-pastel svg{width:120px;height:120px;flex:none}
.tw-pastel-cont.t4 .tw-pastel svg{width:170px;height:170px}
.tw-pastel path{stroke:var(--c-surface);stroke-width:1.5}
.tw-pastel .c0{fill:var(--c-cat-1)}.tw-pastel .c1{fill:var(--c-cat-2)}.tw-pastel .c2{fill:var(--c-cat-3)}.tw-pastel .c3{fill:var(--c-cat-4)}
.tw-pastel .c4{fill:var(--c-cat-5)}.tw-pastel .c5{fill:var(--c-cat-6)}.tw-pastel .otros{fill:var(--c-text-3)}
.tw-pastel-ley{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;min-width:0;flex:1;font-size:var(--fs-xs)}
.tw-pastel-ley li{display:grid;grid-template-columns:10px minmax(0,1fr) auto;column-gap:6px;align-items:center}
.tw-pastel-ley li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--c-text-2)}
.tw-pastel-ley li small{grid-column:2 / -1;color:var(--c-text-3)}
.tw-pastel-ley i{width:10px;height:10px;border-radius:2px}
.tw-pastel-ley i.c0{background:var(--c-cat-1)}.tw-pastel-ley i.c1{background:var(--c-cat-2)}.tw-pastel-ley i.c2{background:var(--c-cat-3)}.tw-pastel-ley i.c3{background:var(--c-cat-4)}
.tw-pastel-ley i.c4{background:var(--c-cat-5)}.tw-pastel-ley i.c5{background:var(--c-cat-6)}.tw-pastel-ley i.otros{background:var(--c-text-3)}
@media (max-width:600px){.tw-pastel-cont,.tw-pastel-cont.t2{grid-template-columns:1fr}}
/* Configurar el widget de un reporte */
.cw h4{margin:0 0 var(--sp-2);font-size:var(--fs-sm)}
.cw-per{display:flex;flex-wrap:wrap}
.cw-tipos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-2)}
.cw-tipo{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:var(--sp-3);border:1px solid var(--c-border);border-radius:var(--r-md);background:var(--c-surface);cursor:pointer;text-align:left;font:inherit;color:inherit}
.cw-tipo svg{width:26px;height:26px;fill:none;stroke:var(--c-primary);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.cw-tipo small{color:var(--c-text-3);font-size:var(--fs-xs)}
.cw-tipo.active{border-color:var(--c-primary);box-shadow:0 0 0 1px var(--c-primary);background:var(--c-primary-soft)}
.cw-tipo:disabled{opacity:.45;cursor:not-allowed}
.cw-datos{display:flex;flex-direction:column;gap:6px}
.cw-extra{margin-top:var(--sp-3)}
.cw-nota{margin:var(--sp-2) 0 0;font-size:var(--fs-sm)}
.cw-vista{min-height:140px;box-shadow:none;border:1px dashed var(--c-border)}
@media (max-width:600px){.cw-tipos{grid-template-columns:repeat(2,minmax(0,1fr))}}
