/* v267 · al crear una cotización o un borrador, su botón de guardar es el principal.
   !important: los botones del panel viejo fijan su fondo con !important; se retira cuando Facturar migre a tokens. */
body[data-ax-crear="cotizacion"] #f-cotizar,body[data-ax-crear="borrador"] #f-borrador{background:var(--tk-accent)!important;border-color:var(--tk-accent)!important;color:var(--tk-on-accent)!important}

/* v274 · en modo cotización o borrador solo queda su botón de guardar */
body[data-ax-crear="cotizacion"] #f-emitir,body[data-ax-crear="cotizacion"] #f-borrador,body[data-ax-crear="borrador"] #f-emitir,body[data-ax-crear="borrador"] #f-cotizar{display:none!important}
body[data-ax-crear="cotizacion"] #f-cotizar,body[data-ax-crear="borrador"] #f-borrador{flex:1}
.mv-nc-l{max-height:46vh;overflow:auto;margin:10px 0;display:flex;flex-direction:column;gap:4px}
.mv-nc-f{display:grid;grid-template-columns:110px minmax(0,1fr) 90px 110px;gap:10px;align-items:center;text-align:left;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:var(--card);color:var(--ink);font:inherit;font-size:13.5px;cursor:pointer}
.mv-nc-f:hover,.mv-nc-f:focus-visible{border-color:var(--azul);background:color-mix(in srgb,var(--azul) 7%,var(--card))}
.mv-nc-f span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-2)}
.mv-nc-f .num{text-align:right;color:var(--ink)}
@media(max-width:560px){.mv-nc-f{grid-template-columns:1fr 1fr}}

/* v279 · En cotización y en borrador no hay número que mostrar todavía: el documento lo recibe al emitirse. */
body[data-ax-crear="cotizacion"] .erp-fact-side .cmp.erp-next,body[data-ax-crear="borrador"] .erp-fact-side .cmp.erp-next{display:none!important}
/* v269 · favoritos en Reportes (solo tokens) */
.rp-caja{position:relative;display:flex;min-width:0}
.rp-caja>.rp-card{flex:1;min-width:0;padding-right:var(--tk-s-10)}
.rp-caja:has(>.rp-card[hidden]){display:none}
.rp-fav{position:absolute;top:var(--tk-s-2);right:var(--tk-s-2);display:grid;place-items:center;width:var(--tk-ctl-h-sm);height:var(--tk-ctl-h-sm);border:0;border-radius:var(--tk-r-md);background:transparent;color:var(--tk-text-2);cursor:pointer;transition:background var(--tk-t),color var(--tk-t)}
.rp-fav:hover{background:var(--tk-hover);color:var(--tk-text)}
.rp-fav[aria-pressed=true]{color:var(--tk-warn)}
.rp-fav svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linejoin:round}
.rp-fav[aria-pressed=true] svg{fill:currentColor}
.rp-fav:focus-visible{outline:none;box-shadow:var(--tk-focus)}
.rp-n{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:var(--tk-s-1);padding:0 var(--tk-s-1);border-radius:var(--tk-r-full);background:var(--tk-surface-2);color:var(--tk-text-2);font-size:var(--tk-fs-xs);font-weight:var(--tk-fw-medium);letter-spacing:0}
@media (pointer:coarse){.rp-fav{width:var(--tk-ctl-h);height:var(--tk-ctl-h)}}
/* v270 · Planes, «Disponible en Pro», Plan y usuarios, Panel de control (solo tokens) */
.dx-pro{display:inline-flex;align-items:center;margin-left:auto;padding:0 var(--tk-s-2);height:18px;border:1px solid var(--tk-border-strong);border-radius:var(--tk-r-full);font-size:11px;font-weight:var(--tk-fw-bold);line-height:1;color:var(--tk-text-2);background:var(--tk-surface);letter-spacing:.02em}
.lat-item .dx-pro,.lat-cab .dx-pro{flex:none;margin-left:var(--tk-s-2)}
body.lat-riel:not(.lat-asoma) .dx-pro{display:none}
.rp-caja{position:relative}.dx-pro-rep{position:absolute;top:var(--tk-s-3);right:44px}
.dx-chip-pro{display:inline-flex;align-items:center;gap:var(--tk-s-1);background:var(--tk-warn-soft);color:var(--tk-text);border:1px solid var(--tk-border)}
.dx-chip-pro svg{color:var(--tk-warn)}
.dx .dx-sobre{margin:0 0 var(--tk-s-2)}
.dx-nota{margin:0 0 var(--tk-s-5);padding:var(--tk-s-3) var(--tk-s-4);background:var(--tk-surface-2);border:1px solid var(--tk-border);border-radius:var(--tk-r-md);font-size:var(--tk-fs-sm);line-height:var(--tk-lh);color:var(--tk-text);max-width:880px}
.dx-dos{display:grid;grid-template-columns:minmax(240px,1fr) minmax(0,2fr);gap:var(--tk-s-6);align-items:start}
@media (max-width:900px){.dx-dos{grid-template-columns:1fr}}
.dx-puntos{list-style:none;margin:0;padding:0;display:grid;gap:var(--tk-s-3)}
.dx-puntos li{display:flex;gap:var(--tk-s-2);align-items:flex-start;font-size:var(--tk-fs-md);line-height:var(--tk-lh);color:var(--tk-text)}
.dx-puntos svg{flex:none;margin-top:3px;color:var(--tk-ok)}
.dx-ej{margin:0;border:1px dashed var(--tk-border-strong);border-radius:var(--tk-r-lg);background:var(--tk-surface);overflow:hidden}
.dx-ej figcaption{display:flex;align-items:center;gap:var(--tk-s-2);padding:var(--tk-s-3) var(--tk-s-4);border-bottom:1px solid var(--tk-border);font-size:var(--tk-fs-sm);color:var(--tk-text-2)}
.dx-ej .rx-tabla{pointer-events:none}
.dx-ej-tarjetas{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:var(--tk-s-3);padding:var(--tk-s-4)}
.dx-ej-t{padding:var(--tk-s-4);border:1px solid var(--tk-border);border-radius:var(--tk-r-md);background:var(--tk-surface-2)}
.dx-ej-t span{display:block;font-size:var(--tk-fs-sm);color:var(--tk-text-2)}
.dx-ej-t b{display:block;margin-top:var(--tk-s-1);font-size:var(--tk-fs-lg);font-weight:var(--tk-fw-bold);color:var(--tk-text);font-variant-numeric:tabular-nums}
.dx-rejilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--tk-s-4)}
.dx-tarjeta{display:block;text-align:left;padding:var(--tk-s-5);background:var(--tk-surface);border:1px solid var(--tk-border);border-radius:var(--tk-r-lg);font:inherit;color:var(--tk-text);cursor:pointer;transition:border-color var(--tk-t),background var(--tk-t)}
.dx-tarjeta:hover{border-color:var(--tk-border-strong);background:var(--tk-hover)}
.dx-tarjeta:focus-visible,.dx-tab:focus-visible{outline:var(--tk-focus);outline-offset:2px}
.dx-tarjeta b{display:block;font-size:var(--tk-fs-md);font-weight:var(--tk-fw-bold)}
.dx-tarjeta span{display:block;margin-top:var(--tk-s-1);font-size:var(--tk-fs-sm);line-height:var(--tk-lh);color:var(--tk-text-2)}
.dx-tabs{display:flex;gap:var(--tk-s-1);flex-wrap:wrap;margin:0 0 var(--tk-s-5);border-bottom:1px solid var(--tk-border)}
.dx-tab{font:inherit;font-size:var(--tk-fs-md);font-weight:var(--tk-fw-medium);padding:var(--tk-s-2) var(--tk-s-4);border:0;border-bottom:2px solid transparent;margin-bottom:-1px;background:none;color:var(--tk-text-2);cursor:pointer}
.dx-tab:hover{color:var(--tk-text)}
.dx-tab.on{color:var(--tk-text);border-bottom-color:var(--tk-accent)}
.dx-sec-cab{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--tk-s-4);flex-wrap:wrap;margin:0 0 var(--tk-s-3)}
.dx-sec-cab h3,.dx-bloque h4,.dx-cuenta h3{margin:0 0 var(--tk-s-1);font-size:var(--tk-fs-lg);font-weight:var(--tk-fw-bold);color:var(--tk-text)}
.dx-sec-cab p{margin:0;font-size:var(--tk-fs-sm)}
.dx-h-neg{display:flex;align-items:center;gap:var(--tk-s-2);flex-wrap:wrap}
.dx-bloque{margin:0 0 var(--tk-s-8)}
.rx-card.dx-bloque,.dx-cuenta{padding:var(--tk-s-5)}
.dx-campos{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--tk-s-4);margin:var(--tk-s-3) 0 var(--tk-s-4);max-width:720px}
.dx-linea{display:flex;gap:var(--tk-s-2);align-items:center;flex-wrap:wrap}
.dx-linea input{max-width:110px}
.dx-acc{display:flex;gap:var(--tk-s-2);flex-wrap:wrap;justify-content:flex-end;align-items:center}
td.dx-acc{display:table-cell;text-align:right;white-space:nowrap}
.dx-us select,.pc select{min-width:150px}
.dx-check{display:flex;gap:var(--tk-s-3);align-items:flex-start;padding:var(--tk-s-2) 0;font-size:var(--tk-fs-md);color:var(--tk-text);cursor:pointer}
.dx-check input{margin-top:3px;flex:none;width:16px;height:16px}
.dx-mods{display:grid;gap:0;margin:var(--tk-s-3) 0;max-height:52vh;overflow:auto}
.dx-ayuda{margin:var(--tk-s-1) 0 var(--tk-s-3);font-size:var(--tk-fs-sm);color:var(--tk-text-2)}
.dx-error{margin:var(--tk-s-2) 0 0;min-height:1em;font-size:var(--tk-fs-sm);color:var(--tk-danger)}
.dx-pie{display:flex;justify-content:flex-end;gap:var(--tk-s-2);margin-top:var(--tk-s-4)}
.dx-pie.dx-izq{justify-content:flex-start}
.dx-orden{list-style:none;margin:0;padding:0;max-width:460px;border:1px solid var(--tk-border);border-radius:var(--tk-r-lg);background:var(--tk-surface)}
.dx-orden li{display:flex;justify-content:space-between;align-items:center;gap:var(--tk-s-3);padding:var(--tk-s-2) var(--tk-s-4);min-height:var(--tk-row-h);font-size:var(--tk-fs-md);color:var(--tk-text)}
.dx-orden li+li{border-top:1px solid var(--tk-border)}
.dx-soporte{position:fixed;left:50%;bottom:var(--tk-s-4);transform:translateX(-50%);z-index:90;display:flex;align-items:center;gap:var(--tk-s-4);max-width:calc(100vw - 32px);padding:var(--tk-s-3) var(--tk-s-4);background:var(--tk-warn-soft);border:1px solid var(--tk-warn);border-radius:var(--tk-r-lg);box-shadow:var(--tk-sh-2);font-size:var(--tk-fs-sm);color:var(--tk-text)}
.dx-velo{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:var(--tk-s-4);background:var(--tk-scrim)}
.dx-caja{width:100%;max-width:420px;padding:var(--tk-s-6);background:var(--tk-surface);border:1px solid var(--tk-border);border-radius:var(--tk-r-lg);box-shadow:var(--tk-sh-3)}
.dx-caja h2{margin:0 0 var(--tk-s-2);font-size:var(--tk-fs-xl);font-weight:var(--tk-fw-bold);color:var(--tk-text)}
.dx-caja p.rx-tenue{margin:0 0 var(--tk-s-4);font-size:var(--tk-fs-sm);color:var(--tk-text-2)}
.dx-caja input{width:100%}
#mbox .rx-tenue{color:var(--tk-text-2);font-size:var(--tk-fs-sm);margin:0 0 var(--tk-s-3)}
#mbox .dx-nota{margin:var(--tk-s-3) 0}
@media (max-width:760px){td.dx-acc{white-space:normal}.dx-soporte{flex-direction:column;align-items:stretch;left:16px;right:16px;transform:none}}
.dx-marca{font-size:var(--tk-fs-lg);font-weight:var(--tk-fw-bold);color:var(--tk-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.lat-riel:not(.lat-asoma) .dx-marca{display:none}
.dx-ej .rx-tabla th,.dx-ej .rx-tabla td{white-space:normal}
.dx-us td:nth-child(3){white-space:nowrap}
/* v271 · Plan: dos tarjetas en vez de la tabla ancha */
.dx-planes{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--tk-s-4);align-items:stretch;margin:0 0 var(--tk-s-4)}
.dx-plan{padding:var(--tk-s-6);background:var(--tk-surface);border:1px solid var(--tk-border);border-radius:var(--tk-r-lg)}
.dx-plan-actual{border-color:var(--tk-accent);border-top-width:3px}
.dx-plan-cab{display:flex;align-items:center;gap:var(--tk-s-2);margin:0 0 var(--tk-s-1)}
#ficha .dx-plan-cab h3,.dx-plan-cab h3{margin:0;font-size:var(--tk-fs-xl);font-weight:var(--tk-fw-bold);line-height:var(--tk-lh-tight);color:var(--tk-text)}
.dx-plan-res{margin:0;font-size:var(--tk-fs-md);line-height:var(--tk-lh);color:var(--tk-text-2)}
.dx-plan-intro{margin:var(--tk-s-5) 0 0;font-size:var(--tk-fs-sm);font-weight:var(--tk-fw-medium);color:var(--tk-text)}
.dx-plan-lista{margin-top:var(--tk-s-4)}
.dx-plan-lista b{display:block;font-weight:var(--tk-fw-medium)}
.dx-plan-ben{display:block;font-size:var(--tk-fs-sm);color:var(--tk-text-2)}
.dx-plan-pie{display:flex;gap:var(--tk-s-2);align-items:center;margin:var(--tk-s-4) 0 0;padding-top:var(--tk-s-4);border-top:1px solid var(--tk-border);font-size:var(--tk-fs-md);color:var(--tk-text)}
.dx-plan-pie svg{flex:none;color:var(--tk-ok)}
.dx-comp-card{display:flex;justify-content:space-between;align-items:center;gap:var(--tk-s-4);flex-wrap:wrap;padding:var(--tk-s-5)}
.dx-comp-card h3{margin:0 0 var(--tk-s-1);font-size:var(--tk-fs-lg);font-weight:var(--tk-fw-bold);color:var(--tk-text)}
.dx-comp-card p{margin:0;font-size:var(--tk-fs-sm)}
.dx .rx-btn,.pc .rx-btn,.ct .rx-btn,#mbox .rx-btn,.dx-velo .rx-btn,.dx-soporte .rx-btn{flex:none}
#mbox .dx-pie .rx-btn,.dx-velo .dx-pie .rx-btn{min-width:120px}
/* v272 · Un negocio nuevo no ve ninguna pantalla del negocio principal, ni vacía */
body.dx-sin-datos main>section:not(#ficha){display:none!important}

/* v274 · un negocio nuevo no ve el logo del negocio principal en ningún tamaño */
body.dx-sin-datos .lat-logo,body.dx-sin-datos .lat-logo-ico,body.dx-sin-datos header .logo{display:none!important}
.dx-ini{display:none;flex:none;width:var(--tk-ctl-h-sm);height:var(--tk-ctl-h-sm);border-radius:var(--tk-r-md);place-items:center;font-weight:var(--tk-fw-bold)!important;font-size:var(--tk-fs-lg)!important;line-height:1!important;background:var(--tk-accent);color:var(--tk-on-accent,#fff)!important;opacity:1!important;margin:0 auto}
body.dx-sin-datos.lat-riel:not(.lat-asoma) .dx-ini{display:grid}
body.dx-con-logo .dx-ini{display:none!important}
.dx-marca{line-height:1.3}
.rx-tabla th.ct-r{text-align:right}
.dx-plan-acc{margin-top:auto;padding-top:var(--tk-s-4,16px)}
.dx-plan-acc .rx-btn{width:100%}
.dx-comp-acc{display:flex;align-items:center;gap:var(--tk-s-3,12px);flex-wrap:wrap;justify-content:flex-end}
#dx-sol{margin-top:var(--tk-s-4,16px)}
/* v274 · aviso de versión nueva */
.ax-version{position:fixed;right:var(--tk-s-4);bottom:var(--tk-s-4);z-index:120;display:flex;align-items:center;gap:var(--tk-s-3);flex-wrap:wrap;max-width:min(560px,calc(100vw - 2*var(--tk-s-4)));padding:var(--tk-s-3) var(--tk-s-4);border:1px solid var(--tk-border-strong);border-radius:var(--tk-r-md);background:var(--tk-surface);color:var(--tk-text);box-shadow:var(--tk-sh-3);font-size:var(--tk-fs-sm)}
.ax-version>svg{flex:none;color:var(--tk-accent)}
.ax-version-txt{flex:1;min-width:200px;line-height:var(--tk-lh-tight)}
@media print{.ax-version{display:none!important}}
/* v274 · Imprimir una página propia (reportes contables, comprobantes, documentos de un negocio nuevo): sale solo la página,
   en tema claro aunque el panel esté en modo noche, sin menú, barras ni botones. */
@media print{
  body:has(#ficha.on){--tk-bg:#fff;--tk-surface:#fff;--tk-surface-2:#f3f4f5;--tk-text:#111;--tk-text-2:#444;--tk-border:#c9cdd1;--tk-border-strong:#9aa0a6;--tk-accent-soft:#eef1f3;--tk-selected:#eef1f3;background:#fff!important;color:#111!important}
  body:has(#ficha.on)>*:not(main){display:none!important}
  body:has(#ficha.on) main>*:not(#ficha){display:none!important}
  body:has(#ficha.on) main{margin:0!important;padding:0!important;max-width:none!important;width:auto!important}
  body:has(#ficha.on) #ficha{display:block!important;padding:0!important;margin:0!important}
  #ficha .volver,#ficha .rx-cab-acc,#ficha .dx-tabs,#ficha .ct-filtros,#ficha .nx-noimp,#ficha .dx-pie{display:none!important}
  #ficha .rx-card{box-shadow:none!important;break-inside:auto}
  #ficha .rx-scroll{overflow:visible!important}
  #ficha .rx-tabla tr{break-inside:avoid}
  #ficha .rx-tabla thead{display:table-header-group}
}
/* v275 · Accesibilidad medida en las pantallas nuevas (WCAG 2.1 AA): las etiquetas y los encabezados de tabla quedaban en 4,1–4,45:1
   y «Anular» en 2,96:1 en modo noche; los campos medían 34 px y «Volver» 19 px. Todo sale de los tokens. */
#ficha .rx .lb,#mbox .rx .lb,#ficha .rx-tabla thead th,#mbox .rx-tabla thead th{color:var(--tk-text)!important}
body[data-theme=dark] .rx-peligro,body[data-theme=dark] .rx-menu-it.rx-peligro{color:color-mix(in srgb,var(--tk-danger) 42%,#fff)}
.rx .volver{min-height:var(--tk-ctl-h);display:inline-flex;align-items:center;margin-bottom:var(--tk-s-2)}
#ficha .rx input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]),#ficha .rx select,#ficha .rx .gs-btn,#mbox .rx input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]),#mbox .rx select{min-height:var(--tk-ctl-h)!important;height:var(--tk-ctl-h)!important}
@media (pointer:coarse){.rx-btn-s{min-height:var(--tk-ctl-h)}}

/* v284 · cuatro planes: tarjetas angostas con sus topes y los módulos explicados una sola vez */
.dx-planes-n{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.dx-plan{display:flex;flex-direction:column}
.dx-plan-topes b{font-weight:var(--tk-fw-bold)}
.dx-plan-precio{margin:var(--tk-s-3) 0 0;font-size:var(--tk-fs-sm);color:var(--tk-text-2)}
.dx-plan-precio b{font-size:var(--tk-fs-xl);font-weight:var(--tk-fw-bold);color:var(--tk-text)}
.dx-plan-lista .dx-prep{margin-left:var(--tk-s-1);font-weight:var(--tk-fw-medium);vertical-align:middle}
.dx-plan-niv{margin:var(--tk-s-4) 0 0;font-size:var(--tk-fs-sm);line-height:var(--tk-lh);color:var(--tk-text-2)}
.dx-niveles{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--tk-s-4);margin:0 0 var(--tk-s-4)}
.dx-nivel{padding:var(--tk-s-6);background:var(--tk-surface);border:1px solid var(--tk-border);border-radius:var(--tk-r-lg)}
#ficha .dx-nivel h3,.dx-nivel h3{margin:0;font-size:var(--tk-fs-lg);font-weight:var(--tk-fw-bold);line-height:var(--tk-lh-tight);color:var(--tk-text)}
/* v284 · interesados (Panel de control) */
.pc-int-msj{max-width:320px;white-space:normal}
.pc-int-con a{display:block;color:var(--tk-accent);text-decoration:none}
.pc-int-con a:hover{text-decoration:underline}
.pc-int select{min-width:130px}
/* v270 · Comprobantes contables y reportes contables (solo tokens) */
.ct .ct-r,.ct-r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.ct-filtros{display:flex;gap:var(--tk-s-4);flex-wrap:wrap;align-items:flex-end;margin:0 0 var(--tk-s-5)}
.ct-filtros .ct-ancho{flex:1 1 280px;max-width:520px}
.ct-filtros input{width:100%}
.ct-clic tbody tr{cursor:pointer}
.ct-clic tbody tr:hover{background:var(--tk-hover)}
.ct-clic tbody tr:focus-visible{outline:var(--tk-focus);outline-offset:-2px}
.ct-lineas td{padding:var(--tk-s-2)}
.ct-lineas input{width:100%;min-width:110px}
.ct-lineas .ct-cuenta{min-width:260px}
.ct tfoot td,.ct tfoot th{border-top:1px solid var(--tk-border-strong);text-align:left}
.ct tfoot td.ct-r{text-align:right}
.ct-cuadre{min-height:24px;margin:var(--tk-s-3) 0 0}
.ct-pie{margin:var(--tk-s-3) 0 0;font-size:var(--tk-fs-sm)}
.ct-h3{margin:var(--tk-s-6) 0 var(--tk-s-3);font-size:var(--tk-fs-lg);font-weight:var(--tk-fw-bold);color:var(--tk-text)}
.ct-tarjetas{padding:0;margin:0 0 var(--tk-s-5)}
@media print{.lat,.lat-movil,.rx-cab-acc,.volver,.ct-filtros,#toast,.dx-soporte{display:none!important}}
.ct-mig{margin:var(--tk-s-3) 0 var(--tk-s-1);padding:var(--tk-s-2) var(--tk-s-3) 0 var(--tk-s-10);border-top:1px solid var(--tk-border);font-size:var(--tk-fs-xs);font-weight:var(--tk-fw-medium);color:var(--tk-text-2)}
body.lat-riel:not(.lat-asoma) .ct-mig{display:none}

/* v274 · cierre de periodo */
.ct-cierre-estado{display:flex;justify-content:space-between;align-items:center;gap:var(--tk-s-4);flex-wrap:wrap;padding:var(--tk-s-4) var(--tk-s-5);margin-bottom:var(--tk-s-4)}
.ct-cierre-estado>div{display:flex;flex-direction:column;gap:2px}
.ct-cierre-estado b{font-size:var(--tk-fs-lg)}
.ct-cierre-form{padding:var(--tk-s-4) var(--tk-s-5);margin-bottom:var(--tk-s-4)}
.ct-cierre-form h3{margin:0 0 var(--tk-s-3);font-size:var(--tk-fs-md)}
.ct-cierre-form .ct-filtros{align-items:flex-end;margin-bottom:0}
/* ══ v271 · Lenguaje de diseño sobre las pantallas que aún no migran ═══════════
   Solo forma (radio, borde, sombra, peso y tamaño de letra de títulos y encabezados): no cambia medidas,
   colores de fondo ni posiciones, para no mover ninguna pantalla. Los valores salen de los tokens. */
main .card{border-radius:var(--tk-r-lg);box-shadow:none;border-color:var(--tk-border)}
main .titulo h2,main .pag-cab h2,main .ml-cab h2{font-size:var(--tk-fs-xl);font-weight:var(--tk-fw-bold);line-height:var(--tk-lh-tight);letter-spacing:0}
main .titulo+.sub,main .pag-cab .sub,main .ml-desc{font-size:var(--tk-fs-md);line-height:var(--tk-lh);color:var(--tk-text-2)}
main table.tbl th{font-size:var(--tk-fs-xs);font-weight:var(--tk-fw-medium);text-transform:none;letter-spacing:0;color:var(--tk-text-2)}
main table.tbl td{font-variant-numeric:tabular-nums}
main .btn,#mbox .btn{border-radius:var(--tk-r-md);font-weight:var(--tk-fw-medium);transition:background var(--tk-t),border-color var(--tk-t),color var(--tk-t)}
main .btn:focus-visible,#mbox .btn:focus-visible,.lat-item:focus-visible,.lat-cab:focus-visible,.aj-tab:focus-visible{outline:0;box-shadow:var(--tk-focus)}
main input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),main select,main textarea,#mbox input:not([type=checkbox]):not([type=radio]),#mbox select,#mbox textarea{border-radius:var(--tk-r-md)}
.chip{border-radius:var(--tk-r-full);font-weight:var(--tk-fw-medium)}
#mbox{border-radius:var(--tk-r-lg)}
#mbox h3{font-size:var(--tk-fs-lg);font-weight:var(--tk-fw-bold);line-height:var(--tk-lh-tight)}
.aj-tabs{border-radius:var(--tk-r-lg);border-color:var(--tk-border);background:var(--tk-surface)}
.aj-tab{border-radius:var(--tk-r-md);font-size:var(--tk-fs-sm);font-weight:var(--tk-fw-medium)}
.aj-tab.on{background:var(--tk-accent);color:var(--tk-on-accent)}
.aj-tab[hidden]{display:none}
@media (prefers-reduced-motion:reduce){main *,#mbox *,.lat *{transition:none!important;animation:none!important}}

/* Formulario 350 impreso (v285): sale con la misma forma que en pantalla. Antes el navegador le quitaba los fondos (el recuadro del 350,
   las casillas llenas, las rayas y los renglones alternados), imprimía el título y las ayudas de la pantalla y partía el formulario en dos hojas.
   Ahora: la hoja del formulario sola en la primera página, tamaño carta, en tema claro aunque el panel esté en modo noche,
   y la guía para quien lo pasa a la DIAN en la segunda. Los colores fijos son los del tema claro: el papel no cambia de tema. */
@page f350{size:letter;margin:9mm}
@media print{
  body:has(#f350.on){--bg:#fff;--card:#fff;--bg-dim:#EEF0F1;--ink:#1A1D21;--ink-2:#5A6169;--ink-3:#677278;--line:#E2E5E8;--line-2:#CDD3D8;--azul:#15616D;--azul-soft:#E3EFF1;--azul-dark:#0E454E;--acento:#15616D;background:#fff!important;color:#1A1D21!important}
  body:has(#f350.on) main>section:not(#f350){display:none!important}
  #f350{page:f350;position:absolute!important;left:0!important;right:0!important;top:0!important;bottom:auto!important;width:auto!important;margin:0!important;padding:0!important}
  #f350,#f350 *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  #f350 .ml-cab,#f350 .f350-origen{display:none!important}
  #f350 .card{break-inside:avoid;box-shadow:none!important}
  #f350 .f350-hoja{overflow:visible!important;break-inside:avoid;border-radius:0!important;margin:0!important}
  #f350 .f350-cab .f350-dian{font-size:18px!important;padding:3px 14px!important}
  #f350 .f350-cab .f350-tit{font-size:11px!important;padding:3px!important}
  #f350 .f350-cab .f350-num{font-size:20px!important;margin:3px!important;padding:0 12px!important}
  #f350 .f350-t{table-layout:auto!important;width:100%!important;font-size:8px!important;line-height:1.2!important}
  body #f350 .f350-hoja .f350-t th,body #f350 .f350-hoja .f350-t td{min-width:0!important;padding:1.5px 4px!important;white-space:normal!important;font-size:9.5px!important;line-height:1.2!important;height:auto!important}
  body #f350 .f350-hoja .f350-t .hint{font-size:8px!important;margin:0!important}
  body #f350 .f350-hoja .f350-t .f350-n{font-size:7px!important;width:1%!important;white-space:nowrap!important}
  #f350 .f350-t .f350-v{white-space:nowrap!important;width:11.5%}
  #f350 .f350-datos .f350-v{width:auto;white-space:normal!important}
  #f350 .f350-t tr{break-inside:avoid}
  body #f350 .f350-hoja .f350-sub td{font-size:8px!important;padding:2px 4px!important}
  body #f350 .f350-hoja .f350-firma td{font-size:8px!important}
  body #f350 .f350-hoja .f350-pago td,body #f350 .f350-hoja .f350-pago .f350-v.lleno{font-size:10px!important;padding:3px 4px!important}
  #f350 .f350-dos{break-before:page;display:block!important}
  #f350 .f350-guia,#f350 .f350-de{break-inside:avoid;margin:0 0 10px!important}
}

/* v274 · Formulario 350 con la forma del formato oficial de la DIAN: encabezado DIAN | título | 350, líneas del color de la marca,
   renglones alternados y casillas numeradas. Todo con tokens. */
#f350 .f350-hoja{--f350-linea:color-mix(in srgb,var(--tk-accent) 60%,var(--tk-border));--f350-cebra:color-mix(in srgb,var(--tk-accent) 7%,var(--tk-surface));border:1.5px solid var(--f350-linea)!important;border-radius:var(--tk-r-md)!important;background:var(--tk-surface)!important;box-shadow:none!important}
#f350 .f350-cab{display:grid;grid-template-columns:auto 1fr auto;align-items:stretch;gap:0;padding:0;background:var(--tk-surface);border-bottom:1.5px solid var(--f350-linea)}
#f350 .f350-dian{display:flex;align-items:center;padding:var(--tk-s-3) var(--tk-s-5);font-size:26px;font-weight:300;letter-spacing:.16em;color:var(--tk-text);border-right:1px solid var(--f350-linea)}
#f350 .f350-tit{display:flex;align-items:center;justify-content:center;text-align:center;padding:var(--tk-s-3);font-size:var(--tk-fs-md);font-weight:var(--tk-fw-bold);color:var(--tk-text)}
#f350 .f350-cab .f350-num{display:flex;align-items:center;margin:var(--tk-s-2);padding:0 var(--tk-s-5);border-radius:var(--tk-r-sm);background:var(--tk-accent);color:var(--tk-on-accent)!important;font-size:34px!important;font-weight:800;letter-spacing:0}
#f350 .f350-t{font-size:var(--tk-fs-sm);color:var(--tk-text)}
#f350 .f350-t th{background:var(--tk-surface);color:var(--tk-text);font-weight:var(--tk-fw-bold);font-size:var(--tk-fs-xs);border-color:var(--f350-linea)}
#f350 .f350-t td{border-color:color-mix(in srgb,var(--f350-linea) 40%,transparent)}
#f350 .f350-t:not(.f350-datos) tbody tr:nth-child(odd)>td:first-child{background:var(--f350-cebra)}
#f350 .f350-n{background:transparent;color:var(--tk-text-2);font-size:var(--tk-fs-xs);font-weight:var(--tk-fw-medium);border-left-color:var(--f350-linea)!important}
#f350 .f350-v{color:var(--tk-text-2);border-left:0!important}
#f350 .f350-v.lleno{color:var(--tk-text);font-weight:var(--tk-fw-bold);background:var(--tk-accent-soft)}
#f350 .f350-v[data-cas]:hover,#f350 .f350-v[data-cas]:focus-visible{background:var(--tk-selected);outline:2px solid var(--tk-focus);outline-offset:-2px}
#f350 .f350-x{background:var(--tk-surface-2)!important;border-left-color:var(--f350-linea)!important}
#f350 .f350-sub td{background:var(--tk-surface-2);color:var(--tk-text);font-weight:var(--tk-fw-bold);text-align:center;border-top:1.5px solid var(--f350-linea);border-bottom:1px solid var(--f350-linea)}
#f350 .f350-tot td{font-weight:var(--tk-fw-bold)}
#f350 .f350-firma td{color:var(--tk-text-2);font-size:var(--tk-fs-xs)}
#f350 .f350-pago td{border-top:1.5px solid var(--f350-linea);font-size:var(--tk-fs-md)}
#f350 .f350-pago .f350-v.lleno{background:var(--tk-accent);color:var(--tk-on-accent)}
#f350 .f350-datos td{border-bottom-color:color-mix(in srgb,var(--f350-linea) 40%,transparent)}
#f350 .f350-datos{border-bottom:1.5px solid var(--f350-linea)}
@media(max-width:640px){#f350 .f350-dian{font-size:18px;padding:var(--tk-s-2) var(--tk-s-3)}#f350 .f350-cab .f350-num{font-size:24px!important;padding:0 var(--tk-s-3)}}

/* v284 · El selector propio marca la opción vacía con la clase «vacio», la misma de los avisos de lista vacía:
   heredaba su relleno y su centrado («Escoge…» salía en la mitad del campo). */
.gs-btn .gs-txt.vacio{padding:0;text-align:left;color:inherit}
/* v284 · enlace a la página de inicio desde el ingreso */
.ses-pie-cuenta{margin-top:var(--tk-s-2)}
.ses-pie a{color:var(--tk-text);text-decoration:underline;text-underline-offset:2px}
.ses-pie a:focus-visible{outline:0;box-shadow:var(--tk-focus);border-radius:var(--tk-r-sm)}
/* v274 · Núcleo de negocios nuevos · v281: tamaños, espacios y colores solo por tokens */
body.dx-sin-datos [data-nx-fuera]{display:none!important}
body.dx-sin-datos #dock-erp,body.dx-sin-datos .js-abrir-busca,body.dx-sin-datos .js-abrir-busca2{display:none!important}
.nx-logo{max-height:28px;max-width:120px;object-fit:contain;border-radius:var(--tk-r-sm);margin-right:8px;flex:none}
body.lat-riel:not(.lat-asoma) .nx-logo{max-width:36px;max-height:36px;margin:0 auto}
.nx .nx-bloque{padding:var(--tk-s-5);margin-bottom:var(--tk-s-4)}
.nx .nx-bloque h3{margin:0 0 var(--tk-s-3);font-size:var(--tk-fs-lg)}
.nx .nx-campos{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--tk-s-3) var(--tk-s-4)}
.nx .nx-campos input:not([type=checkbox]),.nx .nx-campos select{width:100%;max-width:none}
.nx .nx-campos input[type=color]{height:38px;padding:3px;cursor:pointer}
.nx-metricas{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:var(--tk-s-3);margin-bottom:var(--tk-s-5)}
.nx-metrica{display:flex;flex-direction:column;gap:4px;align-items:flex-start;text-align:left;padding:var(--tk-s-4);border:1px solid var(--tk-border);border-radius:var(--tk-r-md);background:var(--tk-surface);color:var(--tk-text);cursor:pointer;font:inherit;transition:border-color .15s,transform .15s}
.nx-metrica:hover,.nx-metrica:focus-visible{border-color:var(--tk-accent);transform:translateY(-1px)}
.nx-metrica:focus-visible{outline:2px solid var(--tk-accent);outline-offset:2px}
.nx-m-t{font-size:var(--tk-fs-sm);color:var(--tk-text-2)}
.nx-m-c{font-size:calc(var(--tk-fs-xl) * 1.2);font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.nx-m-x{font-size:var(--tk-fs-xs);color:var(--tk-text-2)}
.nx-vacio{padding:var(--tk-s-6);text-align:center}
.nx-vacio h3{margin:0 0 6px}
.nx-vacio .rx-btn{margin-top:var(--tk-s-3)}
.nx .ct-lineas input{width:100%;min-width:84px;max-width:none}
.nx .ct-lineas .nx-prod{min-width:220px}
.nx-doc{padding:var(--tk-s-6)}
.nx-doc-cab{display:flex;justify-content:space-between;gap:var(--tk-s-5);flex-wrap:wrap;margin-bottom:var(--tk-s-4)}
.nx-doc-cab>div{display:flex;flex-direction:column;gap:2px;font-size:var(--tk-fs-sm)}
.nx-doc-cab b{font-size:var(--tk-fs-lg)}
.nx-doc-num{text-align:right;align-items:flex-end}
.nx-doc-logo{max-height:56px;max-width:180px;object-fit:contain;margin-bottom:6px;align-self:flex-start}
.nx-doc-cli{margin:var(--tk-s-3) 0;font-size:var(--tk-fs-md)}
@media print{.nx-doc{border:0!important;padding:0!important}}

/* v284 · Inicio: la semana a la vista (barras de una sola serie, lo que tiene menos existencia y los últimos documentos) */
.nx-paneles{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:var(--tk-s-4);margin-bottom:var(--tk-s-5)}
.nx-paneles:empty{display:none}
.nx-panel{display:flex;flex-direction:column;padding:var(--tk-s-5);min-width:0}
.nx-panel-ancho{grid-column:1/-1}
.nx-panel-cab{display:flex;justify-content:space-between;align-items:center;gap:var(--tk-s-3);flex-wrap:wrap;margin-bottom:var(--tk-s-4);min-height:var(--tk-ctl-h-sm)}
#ficha .nx-panel h3,.nx-panel h3{margin:0;font-size:var(--tk-fs-lg);font-weight:var(--tk-fw-bold);color:var(--tk-text)}
.nx-panel-cab p{margin:0;font-size:var(--tk-fs-sm);font-variant-numeric:tabular-nums}
.nx-barras{--nx-b:color-mix(in srgb,var(--tk-accent) 64%,var(--tk-surface));--nx-b-hoy:var(--tk-accent);flex:1;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--tk-s-1);min-height:176px}
/* En oscuro el acento del panel es un tono medio pensado para botones: como barra sobre la tarjeta no llega a 3:1. Se aclara, y hoy es el más claro. */
body[data-theme=dark] .nx-barras{--nx-b:color-mix(in srgb,var(--tk-accent) 62%,var(--tk-text));--nx-b-hoy:color-mix(in srgb,var(--tk-accent) 22%,var(--tk-text))}
.nx-b{position:relative;display:flex;flex-direction:column;min-width:0;border-radius:var(--tk-r-sm);outline:0;cursor:default}
.nx-b-area{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;border-bottom:1px solid var(--tk-border)}
.nx-b-area i{display:block;width:100%;max-width:var(--tk-s-6);border-radius:var(--tk-s-1) var(--tk-s-1) 0 0;background:var(--nx-b);transition:background var(--tk-t)}
.nx-b.hoy .nx-b-area i,.nx-b:hover .nx-b-area i,.nx-b:focus-visible .nx-b-area i{background:var(--nx-b-hoy)}
.nx-b-v{margin-bottom:var(--tk-s-1);font-size:var(--tk-fs-xs);font-weight:var(--tk-fw-medium);color:var(--tk-text);white-space:nowrap;font-variant-numeric:tabular-nums}
.nx-b-d{padding-top:var(--tk-s-2);font-size:var(--tk-fs-xs);color:var(--tk-text-2);text-align:center}
.nx-b.hoy .nx-b-d{color:var(--tk-text);font-weight:var(--tk-fw-bold)}
.nx-b:focus-visible{box-shadow:var(--tk-focus)}
.nx-b-tip{position:absolute;left:50%;top:calc(100% + var(--tk-s-1));transform:translateX(-50%);z-index:3;display:none;padding:var(--tk-s-2) var(--tk-s-3);background:var(--tk-text);color:var(--tk-surface);border-radius:var(--tk-r-md);box-shadow:var(--tk-sh-2);font-size:var(--tk-fs-xs);line-height:var(--tk-lh);white-space:nowrap;pointer-events:none}
.nx-b-tip b{display:block;font-size:var(--tk-fs-md);font-variant-numeric:tabular-nums}
.nx-b:hover .nx-b-tip,.nx-b:focus-visible .nx-b-tip{display:block}
.nx-b:nth-child(-n+2) .nx-b-tip{left:0;transform:none}
.nx-b:nth-last-child(-n+2) .nx-b-tip{left:auto;right:0;transform:none}
.nx-sem-tabla{margin-top:var(--tk-s-3)}
.nx-sem-tabla summary{display:inline-block;padding:var(--tk-s-2) 0;font-size:var(--tk-fs-sm);color:var(--tk-text-2);text-decoration:underline;text-underline-offset:3px;cursor:pointer;border-radius:var(--tk-r-sm)}
.nx-sem-tabla summary:hover{color:var(--tk-text)}
.nx-sem-tabla summary:focus-visible{outline:0;box-shadow:var(--tk-focus)}
.nx-sem-tabla[open] summary{margin-bottom:var(--tk-s-2)}
.nx-lista{list-style:none;margin:0;padding:0;display:grid}
.nx-lista li+li{border-top:1px solid var(--tk-border)}
.nx-fila{display:flex;justify-content:space-between;align-items:center;gap:var(--tk-s-3);width:100%;min-height:var(--tk-row-h);padding:var(--tk-s-2) var(--tk-s-1);border:0;border-radius:var(--tk-r-sm);background:none;color:var(--tk-text);font:inherit;text-align:left;cursor:pointer;transition:background var(--tk-t)}
.nx-fila:hover{background:var(--tk-hover)}
.nx-fila:focus-visible{outline:0;box-shadow:var(--tk-focus)}
.nx-fila-t{display:flex;flex-direction:column;min-width:0}
.nx-fila-t b{font-size:var(--tk-fs-md);font-weight:var(--tk-fw-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nx-fila-t span{font-size:var(--tk-fs-xs);color:var(--tk-text-2)}
.nx-fila-n{flex:none;font-size:var(--tk-fs-md);font-weight:var(--tk-fw-bold);font-variant-numeric:tabular-nums}
.nx-fila-n small{font-size:var(--tk-fs-xs);font-weight:var(--tk-fw);color:var(--tk-text-2)}
@media (max-width:860px){.nx-paneles{grid-template-columns:minmax(0,1fr)}}
/* v286 · La gráfica de Inicio admite 30 días: barras más juntas, el número del día cada cinco, y el periodo se elige en la cabecera. */
.nx-panel-cab .nx-seg{margin-left:auto}
.nx-panel-cab .nx-sem-total{flex:1 1 100%;order:3}
.nx-seg button:focus-visible{outline:0;box-shadow:var(--tk-focus)}
.nx-barras.mes{grid-template-columns:repeat(30,minmax(0,1fr));gap:calc(var(--tk-s-1) / 2)}
.nx-barras.mes .nx-b:nth-child(-n+5) .nx-b-tip{left:0;transform:none}
.nx-barras.mes .nx-b:nth-last-child(-n+5) .nx-b-tip{left:auto;right:0;transform:none}
.nx-barras.mes .nx-b-v{position:relative;z-index:1}
/* v288 · Compras de los negocios nuevos */
.cn-metricas{grid-template-columns:repeat(auto-fit,minmax(200px,280px))}
.cn-m{cursor:default}
.cn-chips{display:flex;gap:var(--tk-s-2);flex-wrap:wrap;margin:var(--tk-s-2) 0 0}
@media (min-width:761px){
  .nx .ct-lineas.cn-lineas thead th:nth-child(3),.nx .ct-lineas.cn-lineas tbody td:nth-child(3){width:152px}
  .nx .ct-lineas.cn-lineas thead th:nth-child(4),.nx .ct-lineas.cn-lineas tbody td:nth-child(4){width:96px;white-space:normal}
  .nx .ct-lineas.cn-lineas thead th:nth-child(5),.nx .ct-lineas.cn-lineas tbody td:nth-child(5){width:150px;white-space:nowrap}
  .nx .ct-lineas.cn-lineas thead th:nth-child(6),.nx .ct-lineas.cn-lineas tbody td:nth-child(6){width:56px}
  .nx .ct-lineas.cn-lineas .cn-iva{min-width:64px}
}
.cn-pie-total{display:flex;justify-content:flex-end;align-items:baseline;gap:var(--tk-s-4);flex-wrap:wrap}
.cn-cab select{min-width:220px}

/* ══ v289 · Celular: cada línea de una venta o de una compra es una tarjeta ══════════════════════════════════════════
   Antes cada dato iba en su propio renglón (rótulo a la izquierda, campo angosto a la derecha) y el botón de quitar en otro
   más: una línea ocupaba media pantalla. Ahora el producto va arriba a todo el ancho con su botón de quitar, y debajo las
   cifras en columnas, cada una con su rótulo encima. */
@media (max-width:760px){
  html body .nx .rx-tabla.ct-lineas:not(.rx-items) tbody tr{position:relative;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr) minmax(0,1fr);gap:var(--tk-s-2) var(--tk-s-3);align-items:end;padding:var(--tk-s-3) var(--tk-s-4);border-bottom:1px solid var(--tk-border)}
  html body .nx .rx-tabla.ct-lineas:not(.rx-items) tbody tr td{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-end;gap:var(--tk-s-1);min-width:0;height:auto;padding:0!important;border:0!important;background:transparent!important;text-align:left!important;font-weight:var(--tk-fw)}
  html body .nx .rx-tabla.ct-lineas:not(.rx-items) tbody tr td::before{max-width:none;text-align:left;line-height:var(--tk-lh-tight)}
  html body .nx .rx-tabla.ct-lineas:not(.rx-items) tbody tr td>input,html body .nx .rx-tabla.ct-lineas:not(.rx-items) tbody tr td>select{flex:none;width:100%;min-width:0;max-width:none;min-height:var(--tk-ctl-h)}
  /* Producto: fila propia, sin rótulo (lo dice el campo); deja a su derecha el sitio del botón de quitar. */
  html body .nx .rx-tabla.ct-lineas:not(.rx-items) tbody tr td:first-child{grid-column:1 / -1;padding-right:calc(var(--tk-ctl-h) + var(--tk-s-2))!important}
  html body .nx .rx-tabla.ct-lineas:not(.rx-items) tbody tr td:first-child::before,
  html body .nx .rx-tabla.ct-lineas:not(.rx-items) tbody tr td:last-child::before{display:none}
  html body .nx .rx-tabla.ct-lineas:not(.rx-items) tbody tr td:last-child{position:absolute;top:var(--tk-s-3);right:var(--tk-s-4)}
  html body .nx .rx-tabla.ct-lineas:not(.rx-items) tbody tr td:last-child .rx-btn{width:var(--tk-ctl-h);min-height:var(--tk-ctl-h);padding:0}
  /* Venta: cantidad y precio; el total de la línea a la derecha, a la altura de los campos. */
  html body .nx .rx-tabla.ct-lineas:not(.rx-items) tbody tr td.nx-lin{align-items:flex-end;text-align:right!important;font-weight:var(--tk-fw-bold);min-height:calc(var(--tk-ctl-h) + var(--tk-fs-xs) * 1.5);justify-content:space-between;padding-bottom:var(--tk-s-2)!important}
  /* Compra: cantidad, costo e IVA; el total de la línea en su propio renglón. */
  html body .nx .rx-tabla.ct-lineas.cn-lineas:not(.rx-items) tbody tr{grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr) minmax(0,.8fr)}
  html body .nx .rx-tabla.ct-lineas.cn-lineas:not(.rx-items) tbody tr td.cn-lin{grid-column:1 / -1;flex-direction:row;align-items:baseline;justify-content:space-between;font-weight:var(--tk-fw-bold)}
  /* Pie: los botones a la izquierda y el total a la derecha, en la misma línea cuando caben. */
  html body .nx .rx-tabla.ct-lineas:not(.rx-items) tfoot{display:block}
  html body .nx .rx-tabla.ct-lineas:not(.rx-items) tfoot tr{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--tk-s-2) var(--tk-s-3);padding:var(--tk-s-3) var(--tk-s-4)}
  html body .nx .rx-tabla.ct-lineas:not(.rx-items) tfoot tr+tr{border-top:1px solid var(--tk-border)}
  html body .nx .rx-tabla.ct-lineas:not(.rx-items) tfoot td{display:block;padding:0!important;border:0!important;height:auto}
  html body .nx .rx-tabla.ct-lineas:not(.rx-items) tfoot td:empty{display:none}
  html body .nx .rx-tabla.ct-lineas:not(.rx-items) tfoot td:first-child{flex:1 1 auto;min-width:0}
  html body .nx .rx-tabla.ct-lineas:not(.rx-items) tfoot .rx-btn{min-height:var(--tk-ctl-h)}
  html body .nx .rx-tabla.ct-lineas:not(.rx-items) tfoot #nx-total,html body .nx .rx-tabla.ct-lineas:not(.rx-items) tfoot #cn-total{font-size:var(--tk-fs-lg)}
  html body .nx .cn-pie-total{display:flex;flex-direction:column;align-items:flex-start;gap:var(--tk-s-1)}
}
/* v281 · Legal y diseño de documentos (negocios nuevos). Solo tokens. */
.px-legal .px-docs{list-style:none;margin:0 0 var(--tk-s-4);padding:0;display:grid;gap:var(--tk-s-3)}
.px-legal .px-docs li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--tk-s-1) var(--tk-s-4);align-items:center;padding:var(--tk-s-3) var(--tk-s-4);border:1px solid var(--tk-border);border-radius:var(--tk-r-md)}
.px-legal .px-docs li span{grid-column:1;color:var(--tk-text-2);font-size:var(--tk-fs-sm);line-height:var(--tk-lh)}
.px-legal .px-docs li a{grid-column:2;grid-row:1 / span 2}
.px-acepto{display:flex;gap:var(--tk-s-3);align-items:flex-start;font-size:var(--tk-fs-sm);line-height:var(--tk-lh);cursor:pointer;margin-bottom:var(--tk-s-3);color:var(--tk-text);font-weight:var(--tk-fw);text-transform:none;letter-spacing:0}
.px-acepto input{width:var(--tk-s-5);height:var(--tk-s-5);flex:none;margin:0}
.px-ses-legal{margin:var(--tk-s-3) 0 0;font-size:var(--tk-fs-xs);color:var(--tk-text-2);text-align:center;line-height:var(--tk-lh)}
.px-ses-legal a{color:var(--tk-accent);text-decoration:underline}
.px-dis{display:grid;grid-template-columns:minmax(280px,380px) minmax(0,1fr);gap:var(--tk-s-5);align-items:start;margin-top:var(--tk-s-4)}
.px-dis .px-form{display:grid;gap:var(--tk-s-3)}
.px-dis .px-form h3{margin:var(--tk-s-2) 0 0}
.px-dis .px-fila{display:grid;grid-template-columns:1fr 1fr;gap:var(--tk-s-3);align-items:end}
.px-dis .px-form input:not([type=checkbox]):not([type=color]),.px-dis .px-form select,.px-dis .px-form textarea{width:100%;max-width:none}
.px-dis .px-form input[type=color]{width:100%;height:var(--tk-ctl-h);padding:var(--tk-s-1);cursor:pointer}
.px-dis .px-form input[type=color]:disabled{opacity:.45;cursor:not-allowed}
.px-dis .px-form textarea{min-height:calc(var(--tk-s-8)*2);resize:vertical;padding:var(--tk-s-2) var(--tk-s-3);border:1px solid var(--tk-border-strong);border-radius:var(--tk-r-sm);background:var(--tk-surface);color:var(--tk-text);font:inherit}
.px-dis .px-checks{display:grid;gap:0;border:0;margin:0;padding:0;min-width:0}
.px-dis .px-checks label{display:flex;gap:var(--tk-s-2);align-items:center;min-height:var(--tk-ctl-h-sm);font-size:var(--tk-fs-sm);cursor:pointer;color:var(--tk-text);font-weight:var(--tk-fw);text-transform:none;letter-spacing:0}
.px-dis .px-checks input{width:var(--tk-s-5);height:var(--tk-s-5);flex:none}
.px-dis .px-al-pie{align-self:end;min-height:var(--tk-ctl-h);align-content:center}
.px-prev-caja{position:sticky;top:var(--tk-s-4);border:1px dashed var(--tk-border-strong);border-radius:var(--tk-r-md);padding:var(--tk-s-4);background:var(--tk-surface-2);overflow:auto;max-height:calc(100vh - 150px)}
.px-prev-t{margin:0 0 var(--tk-s-3);font-size:var(--tk-fs-xs);color:var(--tk-text-2)}
.px-doc{--px-color:var(--tk-accent);margin-left:auto;margin-right:auto}
.px-doc .nx-doc-num b{color:color-mix(in srgb,var(--px-color) 55%,var(--tk-text))}
.px-doc .px-tot{margin:var(--tk-s-3) 0 0 auto;max-width:280px}
.px-doc .px-tot p{display:flex;justify-content:space-between;gap:var(--tk-s-4);margin:var(--tk-s-1) 0;font-variant-numeric:tabular-nums}
.px-doc .px-tot .px-total{font-weight:var(--tk-fw-bold);font-size:var(--tk-fs-lg);border-top:2px solid var(--px-color);padding-top:var(--tk-s-2);margin-top:var(--tk-s-2)}
.px-doc .px-txt{font-size:var(--tk-fs-sm);color:var(--tk-text-2);margin:var(--tk-s-3) 0;line-height:var(--tk-lh)}
.px-doc .px-pie{border-top:1px solid var(--tk-border);padding-top:var(--tk-s-2);font-size:var(--tk-fs-xs);color:var(--tk-text-2);text-align:center;margin:var(--tk-s-5) 0 0;line-height:var(--tk-lh)}
.px-doc .px-firmas{display:grid;grid-template-columns:1fr 1fr;gap:var(--tk-s-8);margin-top:var(--tk-s-10)}
.px-doc .px-firmas span{border-top:1px solid var(--tk-text);padding-top:var(--tk-s-1);font-size:var(--tk-fs-xs);text-align:center}
.px-doc .rx-scroll{overflow:visible}
.px-doc .rx-tabla{min-width:0!important;width:100%}
.px-doc .rx-tabla th,.px-doc .rx-tabla td{white-space:normal;padding-left:var(--tk-s-2);padding-right:var(--tk-s-2);overflow-wrap:anywhere}
.px-doc .rx-tabla .ct-r,.px-doc .rx-tabla .px-cod{white-space:nowrap;overflow-wrap:normal}
/* v283 · El nombre del producto parte por palabras y nunca queda más angosto que una palabra corta; si no cabe, la tabla se desliza. */
.px-doc .rx-tabla .px-nom{overflow-wrap:break-word;min-width:9ch}
.px-media{padding:var(--tk-s-4)!important}
.px-moderno .nx-doc-cab{border-bottom:3px solid var(--px-color);padding-bottom:var(--tk-s-3)}
.px-moderno .rx-tabla thead th{background:color-mix(in srgb,var(--px-color) 12%,transparent)}
.px-compacto{font-size:var(--tk-fs-sm)}
.px-compacto .rx-tabla td,.px-compacto .rx-tabla th{padding-top:var(--tk-s-1)!important;padding-bottom:var(--tk-s-1)!important;height:auto!important}
.px-media{max-width:5.5in}
.px-tirilla{max-width:80mm;padding:var(--tk-s-3)!important;font-size:var(--tk-fs-xs)}
.px-tirilla .nx-doc-cab{flex-direction:column;align-items:center;gap:var(--tk-s-2)}
.px-tirilla .nx-doc-cab>div{align-items:center;text-align:center}
.px-tirilla .nx-doc-logo{align-self:center}
.px-tir{list-style:none;margin:var(--tk-s-2) 0;padding:var(--tk-s-1) 0;border-top:1px dashed var(--tk-border-strong);border-bottom:1px dashed var(--tk-border-strong)}
.px-tir li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 var(--tk-s-2);padding:var(--tk-s-1) 0;font-variant-numeric:tabular-nums}
.px-tir li span:first-child{grid-column:1 / -1}
.px-tirilla .px-tot{max-width:none}
/* v283 · En el celular el documento conserva su encabezado de columnas (la regla general de listas lo esconde) y se desliza si no cabe. */
@media (max-width:760px){
  .px-doc .rx-tabla thead{position:static;width:auto;height:auto;overflow:visible;clip-path:none}
  .px-doc .rx-scroll{overflow-x:auto}
  .px-doc .rx-tabla th,.px-doc .rx-tabla td{padding-left:var(--tk-s-1);padding-right:var(--tk-s-1)}
}
@media (max-width:900px){.px-dis{grid-template-columns:1fr}.px-prev-caja{position:static;max-height:none}.px-dis .px-fila{grid-template-columns:1fr}}
@media print{.px-doc{max-width:none!important;margin:0!important}.px-prev-caja{border:0!important;padding:0!important;background:none!important;max-height:none!important;overflow:visible!important;position:static!important}.px-dis{display:block!important;margin:0!important}}
/* ══ v283 · Factura electrónica para negocios nuevos: registro de datos. Solo tokens. ══ */
.fx-estado-cab{display:flex;align-items:center;gap:var(--tk-s-3);flex-wrap:wrap;margin:0 0 var(--tk-s-2)}
.fx-estado-cab h3{margin:0}
.fx-estado-txt{margin:0 0 var(--tk-s-3);font-size:var(--tk-fs-md);line-height:var(--tk-lh);color:var(--tk-text)}
.fx-nota{margin:0 0 var(--tk-s-4);padding:var(--tk-s-3) var(--tk-s-4);background:var(--tk-warn-soft);border-radius:var(--tk-r-md);font-size:var(--tk-fs-md);line-height:var(--tk-lh);color:var(--tk-text)}
.fx-pasos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--tk-s-2)}
.fx-pasos li{padding-top:var(--tk-s-2);border-top:3px solid var(--tk-border-strong);font-size:var(--tk-fs-xs);line-height:var(--tk-lh);color:var(--tk-text)}
.fx-pasos li b{display:block;font-size:var(--tk-fs-sm);font-weight:var(--tk-fw-medium)}
.fx-pasos li.hecho{border-top-color:var(--tk-ok)}
.fx-pasos li.actual{border-top-color:var(--tk-accent)}
.fx-pasos li.actual b{font-weight:var(--tk-fw-bold)}
.fx-pasos li.pend{opacity:.75}
.fx-nit{display:grid;grid-template-columns:minmax(0,1fr) var(--tk-s-10);gap:var(--tk-s-2)}
.fx-nit input[hidden]{display:none}
.fx-checks{display:grid;gap:0;border:0;margin:var(--tk-s-3) 0 0;padding:0;min-width:0}
.fx-checks label{display:flex;gap:var(--tk-s-2);align-items:center;min-height:var(--tk-ctl-h-sm);font-size:var(--tk-fs-sm);cursor:pointer;color:var(--tk-text);font-weight:var(--tk-fw);text-transform:none;letter-spacing:0}
.fx-checks input{width:var(--tk-s-5);height:var(--tk-s-5);flex:none}
#fx-res{margin-top:var(--tk-s-3)}
.fx-doc{display:flex;align-items:center;justify-content:space-between;gap:var(--tk-s-3);flex-wrap:wrap;padding:var(--tk-s-3) 0;border-top:1px solid var(--tk-border)}
.fx-doc.falta{border-top-color:var(--tk-danger);box-shadow:inset 3px 0 0 var(--tk-danger);padding-left:var(--tk-s-3)}
.fx-doc-txt{display:grid;gap:var(--tk-s-1);min-width:0;flex:1 1 240px}
.fx-doc-txt b{font-size:var(--tk-fs-md);font-weight:var(--tk-fw-medium);color:var(--tk-text)}
.fx-doc-txt .rx-tenue{font-size:var(--tk-fs-sm)}
.fx-doc-est{display:flex;align-items:center;gap:var(--tk-s-1);font-size:var(--tk-fs-sm);color:var(--tk-text);overflow-wrap:anywhere}
.fx-doc-est svg{width:var(--tk-s-4);height:var(--tk-s-4);flex:none;color:var(--tk-ok)}
.fx-doc-acc{display:flex;gap:var(--tk-s-2);align-items:center}
.fx-file{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;clip-path:inset(50%)}
.fx-file:focus-visible+label{outline:2px solid var(--tk-focus);outline-offset:2px}
.fx-acepto{display:flex;gap:var(--tk-s-3);align-items:flex-start;font-size:var(--tk-fs-sm);line-height:var(--tk-lh);cursor:pointer;margin-bottom:var(--tk-s-3);color:var(--tk-text);font-weight:var(--tk-fw);text-transform:none;letter-spacing:0}
.fx-acepto input{width:var(--tk-s-5);height:var(--tk-s-5);flex:none;margin:0}
.fx-acepto a{color:var(--tk-accent);text-decoration:underline}
#fx-form [aria-invalid="true"]{border-color:var(--tk-danger)!important;box-shadow:0 0 0 1px var(--tk-danger)}
#fx-form textarea{width:100%;min-height:calc(var(--tk-s-8)*2)}
#fx-form [hidden]{display:none!important}
.fx-tarjeta{display:flex;align-items:center;justify-content:space-between;gap:var(--tk-s-4);flex-wrap:wrap;padding:var(--tk-s-5);margin-top:var(--tk-s-4)}
.fx-tarjeta-txt{flex:1 1 320px;min-width:0}
.fx-tarjeta h3{margin:0 0 var(--tk-s-1);display:flex;align-items:center;gap:var(--tk-s-2);flex-wrap:wrap;font-size:var(--tk-fs-lg)}
.fx-tarjeta p{margin:0}
/* Plan y usuarios: topes de cada plan, uso del mes y plan recomendado */
.dx-plan-topes{list-style:none;margin:var(--tk-s-3) 0 0;padding:0;display:grid;gap:var(--tk-s-1)}
.dx-plan-topes li{display:flex;gap:var(--tk-s-2);align-items:flex-start;font-size:var(--tk-fs-sm);font-weight:var(--tk-fw-medium);color:var(--tk-text);line-height:var(--tk-lh)}
.dx-plan-topes svg{width:var(--tk-s-4);height:var(--tk-s-4);flex:none;color:var(--tk-accent)}
.dx-plan-rec{border-color:var(--tk-accent);box-shadow:var(--tk-sh-2)}
.dx-uso{margin:var(--tk-s-4) 0 0;padding:var(--tk-s-3) var(--tk-s-4);background:var(--tk-surface-2);border-radius:var(--tk-r-md);font-size:var(--tk-fs-sm);color:var(--tk-text);line-height:var(--tk-lh)}
.dx-uso-barra{display:block;height:var(--tk-s-2);margin-top:var(--tk-s-2);background:var(--tk-border);border-radius:var(--tk-r-full);overflow:hidden}
.dx-uso-barra i{display:block;height:100%;background:var(--tk-accent);border-radius:var(--tk-r-full)}
.dx-uso.cerca .dx-uso-barra i{background:var(--tk-warn)}
.dx-uso.lleno .dx-uso-barra i{background:var(--tk-danger)}
/* Panel de control: revisión de un registro */
.pc-fe-datos{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--tk-s-3) var(--tk-s-5);margin:0}
.pc-fe-datos div{min-width:0}
.pc-fe-datos dt{font-size:var(--tk-fs-xs);color:var(--tk-text-2);margin:0}
.pc-fe-datos dd{margin:0;font-size:var(--tk-fs-md);color:var(--tk-text);overflow-wrap:anywhere}
.pc-fe-acc{display:flex;gap:var(--tk-s-2);flex-wrap:wrap;align-items:center;margin-top:var(--tk-s-3)}
.pc-fe-nota{width:100%;min-height:calc(var(--tk-s-8)*2);margin-top:var(--tk-s-2)}
@media (max-width:760px){
  .fx-pasos{grid-template-columns:1fr;gap:var(--tk-s-3)}
  .fx-pasos li{border-top:0;border-left:3px solid var(--tk-border-strong);padding:0 0 0 var(--tk-s-3)}
  .fx-pasos li.hecho{border-left-color:var(--tk-ok)}
  .fx-pasos li.actual{border-left-color:var(--tk-accent)}
  .fx-tarjeta .rx-btn{flex:1 1 100%}
}
/* v274 · Inicio con clic en todo + barra inferior que no deja ver el contenido por debajo */
.in-clic{cursor:pointer}
.vg-k.in-clic{border-radius:10px;padding:6px 8px;margin:-6px -8px;transition:background .15s,box-shadow .15s}
.vg-k.in-clic:hover,.vg-k.in-clic:focus-visible{background:color-mix(in srgb,var(--azul) 9%,transparent);box-shadow:0 0 0 1px var(--line)}
.vg-bar.in-clic:hover,.vg-bar.in-clic:focus-visible{opacity:.7;outline:none;stroke:var(--ink);stroke-width:1}
.vg-tabla tr.in-clic:hover td,.vg-tabla tr.in-clic:focus-visible td{background:color-mix(in srgb,var(--azul) 9%,transparent)}
.vg-lienzo .vg-svg{cursor:pointer}
#ini-hoy{cursor:pointer;transition:box-shadow .15s}
#ini-hoy:hover,#ini-hoy:focus-visible{box-shadow:0 0 0 1.5px var(--azul)}
.v3-salud-i.in-clic{border-radius:10px;transition:background .15s}
.v3-salud-i.in-clic:hover{background:color-mix(in srgb,var(--azul) 7%,transparent)}
.in-clic:focus-visible,#ini-hoy:focus-visible{outline:2px solid var(--tk-accent,var(--azul));outline-offset:2px}
.in .in-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 var(--tk-s-4,16px)}
.dock-erp::before{content:"";position:absolute;left:-100vw;right:-100vw;top:-14px;bottom:-60px;background:linear-gradient(to top,var(--bg) 72%,transparent);z-index:-1;pointer-events:none}
.dock-panel{background:var(--card)!important}
/* v275 · kardex con costo promedio (ventana) e íconos Lucide con un solo grosor */
#mbox:has(.iv){max-width:min(1040px,96vw);width:min(1040px,96vw)}
.iv-cifras{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--tk-s-3);margin:var(--tk-s-3) 0}
.iv-cifras>div{display:flex;flex-direction:column;gap:2px;padding:var(--tk-s-3) var(--tk-s-4);border:1px solid var(--tk-border);border-radius:var(--tk-r-md);background:var(--tk-surface)}
.iv-cifras span{font-size:var(--tk-fs-xs);color:var(--tk-text-2)}
.iv-cifras b{font-size:var(--tk-fs-lg);font-variant-numeric:tabular-nums}
.iv-scroll{max-height:52vh;overflow:auto}
.lat-cab svg[data-lu],.dock-it svg[data-lu]{stroke-width:1.75}
.fv-acc{display:inline-flex;align-items:center;gap:var(--tk-s-2);flex-wrap:wrap;justify-content:flex-end}
/* v286 · Inicio del negocio principal: la gráfica con su periodo a elegir y, al lado, los indicadores del negocio.
   Antes los indicadores iban arriba de todo (siete filas llenaban la primera pantalla) y la gráfica se estiraba hasta 400 px de alto. */
.ini-bento>#ini-resumen,.ini-bento>#v3-salud{grid-column:1/-1;margin:0;min-width:0}
@media (min-width:1181px){
  .ini-bento>#ini-resumen{grid-column:1/span 7}
  .ini-bento>#v3-salud{grid-column:8/-1}
  .ini-bento:has(.v3-salud-ok)>#ini-resumen,.ini-bento:has(.v3-salud-ok)>#v3-salud,.ini-bento:not(:has(#v3-salud))>#ini-resumen{grid-column:1/-1}
}
.ig-cab{display:flex;align-items:center;gap:var(--tk-s-3);flex-wrap:wrap;margin-bottom:var(--tk-s-3)}
.ig-cab h3{margin:0 auto 0 0;font-size:var(--tk-fs-lg)}
.ig-rep{font-size:var(--tk-fs-sm);font-weight:var(--tk-fw-medium);color:var(--azul-txt,var(--tk-accent));text-decoration:none;padding:var(--tk-s-1) var(--tk-s-2);border-radius:var(--tk-r-sm)}
.ig-rep:hover{text-decoration:underline;text-underline-offset:3px}
.ig-rep:focus-visible,.ig-seg button:focus-visible{outline:0;box-shadow:var(--tk-focus)}
#ini-graf{min-width:0;transition:opacity var(--tk-t)}
#ini-graf[aria-busy=true]{opacity:.55}
#v3-salud{display:flex;flex-direction:column}
#v3-salud .ini-tile-cab{margin-bottom:var(--tk-s-1)}
#v3-salud .ini-tile-cab h3{font-size:var(--tk-fs-lg);display:flex;align-items:center;gap:var(--tk-s-2)}
#v3-salud .ig-n{font-size:var(--tk-fs-xs);font-weight:var(--tk-fw-bold);color:var(--tk-text-2);background:var(--tk-surface-2);border-radius:var(--tk-r-full);padding:1px var(--tk-s-2);font-variant-numeric:tabular-nums}
body.d6 #v3-salud .v3-salud-i{align-items:flex-start;gap:var(--tk-s-3);padding:var(--tk-s-3) var(--tk-s-1)}
#v3-salud .v3-salud-i>i{margin-top:5px}
#v3-salud .v3-salud-i b{font-size:var(--tk-fs-sm);font-weight:var(--tk-fw-bold);line-height:var(--tk-lh-tight)}
#v3-salud .v3-salud-i span{font-size:var(--tk-fs-xs);line-height:1.35;color:var(--tk-text-2)}
#v3-salud .v3-salud-i .btn{align-self:center}
/* Las cuatro cifras de la gráfica van en una fila si la tarjeta es ancha y en dos por dos si es angosta; la leyenda baja de línea en vez de apretarse. */
#ini-resumen{container-type:inline-size}
#ini-graf .vg-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--tk-s-3)}
@container (max-width:719px){#ini-graf .vg-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
#ini-graf .vg-leyenda{flex-wrap:wrap;gap:var(--tk-s-1) var(--tk-s-4)}
#ini-graf .vg-leyenda .vg-nota{margin-left:auto}
/* En el celular, el selector de periodo tiene alto de toque. */
@media (max-width:980px){.ig-seg button,.nx-seg button{min-height:var(--tk-ctl-h)}}
/* v280 · Tablas apiladas en pantallas angostas: «columna … valor» en cada renglón, una tarjeta por fila. */
@media (max-width:760px){
  .rx-tabla:not(.rx-items) tbody tr[data-rot]{padding:var(--tk-s-2) 0;border-bottom:1px solid var(--tk-border)}
  .rx-tabla:not(.rx-items) tbody tr[data-rot]:last-child{border-bottom:0}
  .rx-tabla:not(.rx-items) tr[data-rot] td[data-t]{display:flex;align-items:baseline;justify-content:space-between;gap:var(--tk-s-4);height:auto;min-height:0;padding:3px var(--tk-s-4)!important;border:0!important;text-align:right!important;overflow-wrap:anywhere}
  .rx-tabla:not(.rx-items) tr[data-rot] td[data-t]::before{content:attr(data-t);flex:none;max-width:46%;text-align:left;color:var(--tk-text-2);font-size:var(--tk-fs-xs);font-weight:var(--tk-fw-medium)}
  .rx-tabla:not(.rx-items) tr[data-rot] td[data-t]:empty{display:none}
  .rx-tabla:not(.rx-items) tr[data-rot] td[data-t]>input,.rx-tabla:not(.rx-items) tr[data-rot] td[data-t]>select{flex:1 1 auto;min-width:0;max-width:64%}
  .rx-tabla:not(.rx-items) tr[data-rot] td[data-t]:first-child{font-weight:var(--tk-fw-bold)}
}
/* ══ v282 · Resultado del alta de producto: una fila por paso, con su ícono de estado ══
   Reemplaza los símbolos ✓ – ✗ y los estilos escritos en cada fila. Solo tokens. */
.cpn-pasos { list-style: none; padding: 0; margin: 0; }
.cpn-paso { display: flex; align-items: flex-start; gap: var(--tk-s-2); margin: var(--tk-s-2) 0; list-style: none; }
.cpn-paso-ico { flex: none; display: inline-flex; color: var(--tk-text-2); }
.cpn-ok .cpn-paso-ico { color: var(--tk-ok); }
.cpn-mal .cpn-paso-ico { color: var(--tk-danger); }
.cpn-paso-txt { flex: 1; min-width: 0; font-size: var(--tk-fs-md); line-height: var(--tk-lh); color: var(--tk-text); }
.cpn-paso-txt > b { font-weight: var(--tk-fw-medium); }
.cpn-paso-det { margin-top: var(--tk-s-1); font-size: var(--tk-fs-sm); color: var(--tk-text-2); overflow-wrap: anywhere; }
.cpn-paso-txt > .btn { margin-top: var(--tk-s-2); }
.cpn-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
/* v290 · Documentos de la DIAN (negocios nuevos). Solo tokens. */
.nx .dn-per-caja{display:inline-flex;flex:none}
.nx .dn-per{min-height:var(--tk-ctl-h);width:auto;min-width:230px;max-width:280px}
.nx .dn-tabs{margin:0 0 var(--tk-s-5);padding-bottom:var(--tk-s-3);border-bottom:1px solid var(--tk-border)}
.nx .dn-metricas{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.nx .dn-metricas .nx-metrica:disabled{cursor:default;opacity:1}
.nx .dn-metricas .nx-metrica.dn-aviso{border-color:var(--tk-warn)}
.nx .dn-metricas .nx-metrica.dn-aviso .nx-m-c{color:var(--tk-warn)}
.nx .dn-dos{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:0 var(--tk-s-5);align-items:start}
.nx .dn-dos .ct-h3{margin-top:var(--tk-s-3)}
.nx .dn-dos .rx-tabla{min-width:0}
.nx .dn-dos .rx-tabla :is(th,td){white-space:nowrap}
.nx .dn-dos .rx-tabla :is(th,td):first-child{white-space:normal}
.nx .dn-vacio{max-width:720px;margin-inline:auto;text-align:left}
.nx .dn-vacio h3{text-align:center}
.nx .dn-pasos{margin:var(--tk-s-4) 0;padding-left:var(--tk-s-5);display:grid;gap:var(--tk-s-2);color:var(--tk-text-2);font-size:var(--tk-fs-md);line-height:var(--tk-lh)}
.nx .dn-vacio .rx-btn,.nx .dn-vacio>p{display:block;margin-inline:auto;text-align:center}
.nx .dn-intro{max-width:86ch;margin:0 0 var(--tk-s-4)}
.nx .dn-filtros{align-items:center;margin-bottom:var(--tk-s-4)}
.nx .dn-filtros select{min-height:var(--tk-ctl-h)}
.nx .dn-enlace{padding:0;border:0;background:none;color:var(--tk-accent);font:inherit;font-weight:var(--tk-fw-medium);text-align:left;cursor:pointer;border-radius:var(--tk-r-sm)}
.nx .dn-enlace.dn-nombre{color:var(--tk-text)}
.nx .dn-nombre{font-weight:var(--tk-fw-medium);font-size:var(--tk-fs-sm);line-height:var(--tk-lh-tight)}
.nx .dn-celda{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}
.nx .dn-celda.dn-der{align-items:flex-end}
.nx .dn-celda .rx-tenue{font-size:var(--tk-fs-xs)}
.nx .dn-quien{min-width:220px}
html body .nx .chip.dn-neutro{background:var(--tk-surface-2)!important;color:var(--tk-text-2)!important;box-shadow:inset 0 0 0 1px var(--tk-border)}
.nx .dn-enlace:hover{text-decoration:underline}
.nx .dn-enlace:focus-visible{outline:0;box-shadow:var(--tk-focus)}
.nx .dn-prov select{width:100%;min-width:150px;max-width:230px;min-height:var(--tk-ctl-h-sm)}
.nx .dn-estado{display:flex;flex-wrap:wrap;gap:var(--tk-s-1);align-items:center}
.nx .dn-prov td.dn-estado{display:table-cell}
.nx .dn-prov td.dn-estado .chip{margin:0 var(--tk-s-1) var(--tk-s-1) 0}
.nx .dn-chk{width:var(--tk-ctl-h);text-align:center}
.nx .dn-chk input{appearance:none;-webkit-appearance:none;width:18px;height:18px;margin:0;vertical-align:middle;border:1.5px solid var(--tk-border-strong);border-radius:var(--tk-r-sm);background:var(--tk-surface);cursor:pointer;transition:background var(--tk-t),border-color var(--tk-t)}
.nx .dn-chk input:hover{border-color:var(--tk-accent)}
.nx .dn-chk input:checked{border-color:var(--tk-accent);background:var(--tk-accent);box-shadow:inset 0 0 0 3px var(--tk-surface)}
.nx .dn-chk input:focus-visible{outline:0;box-shadow:var(--tk-focus)}
.nx .dn-docs td.ct-r .dn-celda .rx-tenue{white-space:normal;max-width:176px;text-align:right}
.nx .dn-docs :is(th,td){padding-left:var(--tk-s-3);padding-right:var(--tk-s-3)}
.nx .dn-acc{position:sticky;top:var(--tk-s-2);z-index:5;display:flex;flex-wrap:wrap;gap:var(--tk-s-2) var(--tk-s-3);align-items:center;margin:0 0 var(--tk-s-3);padding:var(--tk-s-3) var(--tk-s-4);border:1px solid var(--tk-border-strong);border-radius:var(--tk-r-md);background:var(--tk-surface-2);box-shadow:var(--tk-sh-2)}
.nx .dn-acc[hidden]{display:none}
.nx .dn-acc select{min-height:var(--tk-ctl-h-sm);max-width:260px}
.nx .dn-conc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:var(--tk-s-4);align-items:start}
.nx .dn-conc{padding:var(--tk-s-4) var(--tk-s-5)}
.nx .dn-conc-cab{display:flex;justify-content:space-between;align-items:center;gap:var(--tk-s-3)}
.nx .dn-conc h4{margin:0;font-size:var(--tk-fs-lg);font-weight:var(--tk-fw-bold);color:var(--tk-text)}
.nx .dn-conc>p{margin:var(--tk-s-1) 0 var(--tk-s-3);font-size:var(--tk-fs-sm)}
.nx .dn-dl{margin:0;display:grid}
.nx .dn-dl>div{display:flex;justify-content:space-between;align-items:baseline;gap:var(--tk-s-4);padding:var(--tk-s-2) 0;border-top:1px solid var(--tk-border)}
.nx .dn-dl dt{color:var(--tk-text-2);font-size:var(--tk-fs-sm)}
.nx .dn-dl dd{margin:0;font-variant-numeric:tabular-nums;font-weight:var(--tk-fw-medium);color:var(--tk-text);white-space:nowrap}
.nx .dn-dl .dn-dif dt,.nx .dn-dl .dn-dif dd{color:var(--tk-text);font-weight:var(--tk-fw-bold)}
.nx .dn-dl .dn-partida dt{padding-left:var(--tk-s-3)}
@media (max-width:760px){
  .nx .dn-per-caja{flex:1 1 100%}
  .nx .dn-per{max-width:none;width:100%}
  .nx .dn-quien{min-width:0}
  .nx .rx-tabla tr[data-rot] td[data-t] .dn-celda{align-items:flex-end;text-align:right;max-width:64%}
  .nx .dn-filtros .rx-segmento{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;max-width:100%}
  .nx .dn-filtros .rx-segmento .rx-seg{flex:none}
  .nx .dn-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .nx .dn-tabs .rx-seg{flex:none}
  .nx .dn-prov select{max-width:64%}
  .nx .dn-prov td.dn-estado{display:flex}
  .nx .dn-acc{top:calc(var(--tk-s-2) + 56px)}
}
/* ══ v286 · Orden: barra lateral que cabe sin desplazarse, marca del negocio legible, íconos en línea y limpieza ══════════
   Todo sale de los tokens (astrantix-tokens.css). Esta capa no agrega colores ni tamaños propios. */

/* 1 · Barra lateral. Con trece entradas, la última quedaba detrás de una barra de desplazamiento en un portátil
   (alto útil de 640 a 700 px): el interruptor de modo noche ocupaba una fila entera y cada entrada medía 38 px.
   Ahora el interruptor baja a la línea de la versión y cada entrada mide 32 px. */
html body.ui177 .lat .lat-marca{min-height:54px;padding:10px 12px 8px 14px!important}
html body.ui177 .lat .lat-pie{padding-top:var(--tk-s-2);padding-bottom:var(--tk-s-2)}
html body.ui177 .lat .lat-tema-caja{position:absolute;right:var(--tk-s-2);bottom:var(--tk-s-1);padding:0;z-index:2}
html body.ui177 .lat .lat-tema{width:auto;min-height:var(--tk-ctl-h-sm);padding:0 var(--tk-s-2);gap:var(--tk-s-2)}
html body.ui177 .lat .lat-tema-txt{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
html body.ui177 .lat .lat-pie #ver-panel{max-width:calc(100% - 84px)}
/* En pantallas más bajas la lista se desplaza con una barra delgada, sin las flechas de Windows que cortaban el menú. */
html body.ui177 .lat .lat-nav{scrollbar-width:thin;scrollbar-color:var(--tk-border-strong) transparent}
@media (min-width:981px){
  /* Con ratón, cada entrada mide lo que un botón de fila (32 px); en el celular conserva su alto de toque. */
  html body.ui177 .lat .lat-cab{height:var(--tk-ctl-h-sm)}
  /* Barra recogida: el interruptor vuelve a su sitio, como ícono solo, encima del usuario. */
  html body.ui177.lat-riel:not(.lat-asoma) .lat .lat-tema-caja{position:static;padding:6px 0 0}
}

/* 2 · Marca de un negocio sin logo propio: la inicial al lado del nombre, centrados en la misma línea, y el nombre en tamaño de lectura.
   Una regla vieja (.lat-marca span: 10 px, en mayúsculas) lo dejaba como una etiqueta diminuta. */
html body.dx-sin-datos .lat-marca .lat-logo-link{gap:var(--tk-s-2);min-width:0;align-items:center}
html body.dx-sin-datos .lat-marca .dx-marca{font-size:var(--tk-fs-md);font-weight:var(--tk-fw-bold);letter-spacing:0;text-transform:none;color:var(--tk-text);line-height:var(--tk-lh-tight)}
html body.dx-sin-datos:not(.dx-con-logo):not(.lat-riel) .lat-marca .dx-ini,
html body.dx-sin-datos:not(.dx-con-logo).lat-asoma .lat-marca .dx-ini{display:grid;margin:0}
@media (max-width:980px){html body.dx-sin-datos:not(.dx-con-logo) .lat-marca .dx-ini{display:grid;margin:0}}

/* 3 · Íconos que reemplazan a los emojis (piezas/iconos.js): heredan el color y el tamaño del texto que acompañan. */
.ax-ico{display:inline-flex;align-items:center;vertical-align:-.18em;line-height:0}
.ax-ico svg{width:1.15em;height:1.15em}
.ax-punto{display:inline-block;width:.6em;height:.6em;border-radius:var(--tk-r-full);background:var(--tk-ok);vertical-align:.06em}
.busca-ico .ax-ico svg,.busca-ico-svg svg{width:18px;height:18px}

/* 4 · Formulario de venta de los negocios nuevos: el producto se lleva el ancho; cantidad, precio y total miden lo que necesitan.
   Antes las cuatro columnas se repartían por igual y el nombre del producto salía cortado.
   v288 · Solo en el encabezado y en las líneas (el pie usa celdas combinadas y heredaba anchos de otra columna) y solo con la tabla en
   forma de tabla: en el celular cada línea se apila y esos anchos encogían los campos. */
@media (min-width:761px){
  .nx .ct-lineas thead th:nth-child(2),.nx .ct-lineas tbody td:nth-child(2){width:120px}
  .nx .ct-lineas thead th:nth-child(3),.nx .ct-lineas tbody td:nth-child(3){width:168px}
  .nx .ct-lineas thead th:nth-child(4),.nx .ct-lineas tbody td:nth-child(4){width:150px;white-space:nowrap}
  .nx .ct-lineas thead th:nth-child(5),.nx .ct-lineas tbody td:nth-child(5){width:56px}
}

/* 5 · Las etiquetas (chips) usan el tamaño más pequeño de la escala (12 px); varias pantallas las tenían en 11 px. */
html body section .chip,html body #mbox .chip{font-size:var(--tk-fs-xs)}

/* ══ v289 ════════════════════════════════════════════════════════════════════════════════════════════════════════════ */
/* 6 · El tope de 1180 px de las pantallas del sistema nuevo (.rx) se quitó de raíz en nuevo.css: aquí ya no hay regla que lo tape. */

/* 7 · Celular. La barra de pestañas de abajo es fija: el contenido reserva lo que ella mide (--tab-res, lo pone orden.js; 84 px
   mientras carga). Antes, con la barra flotante del escritorio activada, la reserva bajaba a 24 px y el final de cada pantalla
   —con sus botones— quedaba detrás. Los avisos, la barra de cobro y los totales de la venta se apoyan sobre la misma línea. */
@media (max-width:980px){
  html body.ui177.ui177>main{padding-bottom:calc(var(--tk-s-6) + var(--tab-res,84px) + var(--off-res,0px))!important}
  html body.ui177.ui177.v4-con-cobro>main{padding-bottom:calc(var(--tk-s-6) + var(--tab-res,84px) + var(--off-res,0px) + 76px)!important}
  html body.ui177 .toast{bottom:calc(var(--tk-s-2) + var(--tab-res,84px) + var(--off-res,0px))!important}
  html body.ui177 #facturar .totales{bottom:calc(var(--tk-s-2) + var(--tab-res,84px) + var(--off-res,0px))!important}
  html:has(body.ui177){scroll-padding-bottom:calc(var(--tk-s-4) + var(--tab-res,84px))}
  /* Las pestañas no gastan ancho en separación: «Nueva venta» cabe en una línea en un teléfono de 360 px y la barra baja de 83 a 66 px. */
  html body .tabbar{column-gap:0;grid-template-columns:none!important;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}
  html body .tabbar .tabbar-it{padding-left:2px;padding-right:2px;min-width:0}
  html body .tabbar .tabbar-it>span{white-space:nowrap}
  /* El cajón del menú pasa por encima de la barra de pestañas (antes la barra le tapaba la versión, el modo noche y el usuario). */
  html body.ui177:not(.pos-on) .lat{z-index:82}
  html body.ui177:not(.pos-on) .lat-tapa{z-index:81}
}
/* v291 · ICE. Solo tokens. */
.ic-fuera{display:none!important}
.ic .ic-chk{width:var(--tk-ctl-h);text-align:center}
.ic .ic-chk input{appearance:none;-webkit-appearance:none;width:var(--tk-s-5);height:var(--tk-s-5);margin:0;vertical-align:middle;border:1px solid var(--tk-border-strong);border-radius:var(--tk-r-sm);background:var(--tk-surface);cursor:pointer;transition:background var(--tk-t),border-color var(--tk-t)}
.ic .ic-chk input:hover{border-color:var(--tk-accent)}
.ic .ic-chk input:is(:checked,:indeterminate){border-color:var(--tk-accent);background:var(--tk-accent);box-shadow:inset 0 0 0 var(--tk-s-1) var(--tk-surface)}
.ic .ic-chk input:focus-visible{outline:0;box-shadow:var(--tk-focus)}
.ic .ic-barra{border-top:0;border-bottom:1px solid var(--tk-border)}
.ic .ic-enlace{padding:0;border:0;background:none;color:var(--tk-text);font:inherit;font-weight:var(--tk-fw-medium);text-align:left;cursor:pointer;border-radius:var(--tk-r-sm)}
.ic .ic-enlace:hover{text-decoration:underline}
.ic .ic-enlace:focus-visible{outline:0;box-shadow:var(--tk-focus)}
.ic .ic-acc{display:flex;flex-wrap:wrap;gap:var(--tk-s-2)}
.ic .dx-nota{max-width:86ch}
#mbox .ic-previa{margin:var(--tk-s-3) 0;max-height:280px;overflow:auto}
.ic-boton .ic-punto{display:inline-block;width:var(--tk-s-2);height:var(--tk-s-2);margin-right:var(--tk-s-2);border-radius:var(--tk-r-full);background:var(--tk-border-strong);vertical-align:middle}
.ic-boton[aria-pressed="true"] .ic-punto{background:var(--tk-ok)}
.ic .rx-aviso{margin:0 0 var(--tk-s-3)}
.ic .dx-nota{margin:0 0 var(--tk-s-4)}
.ic .volver{margin-bottom:var(--tk-s-3)}
@media (max-width:640px){.ic .dx-ej-tarjetas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--tk-s-2)}}
.ic .ic-emision{display:flex;flex-wrap:wrap;gap:var(--tk-s-3) var(--tk-s-4);align-items:center;justify-content:space-between;margin:0 0 var(--tk-s-4);padding:var(--tk-s-4)}
.ic .ic-em-txt{display:flex;flex-direction:column;gap:var(--tk-s-1);min-width:0}
.ic .ic-em-txt .rx-tenue{font-size:var(--tk-fs-sm)}
.ic .ic-motivo{display:block;margin-top:var(--tk-s-1);color:var(--tk-text-2);font-size:var(--tk-fs-xs);max-width:60ch}
/* v291 · Varias remisiones en una factura: bloques del lote, cliente y facturas emitidas */
.ic .ic-bloque{margin:0 0 var(--tk-s-4);padding:var(--tk-s-4)}
.ic .ic-bloque h4{margin:0 0 var(--tk-s-3);font-size:var(--tk-fs-md);font-weight:var(--tk-fw-bold);color:var(--tk-text)}
.ic .ic-bloque>.rx-scroll{margin:0 calc(var(--tk-s-4) * -1) calc(var(--tk-s-4) * -1)}
.ic .ic-cli{display:flex;flex-wrap:wrap;gap:var(--tk-s-3);align-items:center;justify-content:space-between}
.ic .ic-cli-txt{display:flex;flex-direction:column;gap:var(--tk-s-1);min-width:0;overflow-wrap:anywhere}
.ic .ic-cli-txt b{font-size:var(--tk-fs-lg);font-weight:var(--tk-fw-bold);color:var(--tk-text)}
.ic .ic-cli-txt .rx-tenue,.ic .ic-cli-vacio>.rx-tenue{font-size:var(--tk-fs-sm)}
.ic .ic-cli-vacio>.rx-tenue{margin:0 0 var(--tk-s-3)}
.ic .ic-cli+.rx-aviso{margin:var(--tk-s-3) 0 0}
.ic .ic-busca{display:flex;flex-wrap:wrap;gap:var(--tk-s-2);align-items:center}
.ic .ic-busca input{flex:1 1 240px;min-width:0;max-width:420px}
.ic .ic-cli-res{list-style:none;margin:var(--tk-s-2) 0 0;padding:0;max-width:640px}
.ic .ic-cli-res li+li{border-top:1px solid var(--tk-border)}
.ic .ic-cli-op{display:flex;flex-direction:column;gap:var(--tk-s-1);width:100%;min-height:var(--tk-ctl-h);padding:var(--tk-s-2) var(--tk-s-3);border:0;border-radius:var(--tk-r-md);background:transparent;color:var(--tk-text);font:inherit;text-align:left;cursor:pointer;transition:background var(--tk-t)}
.ic .ic-cli-op:hover{background:var(--tk-hover)}
.ic .ic-cli-op:focus-visible{outline:0;box-shadow:var(--tk-focus)}
.ic .ic-cli-op b{font-weight:var(--tk-fw-medium)}
.ic .ic-cli-op .rx-tenue,.ic .ic-cli-nada{font-size:var(--tk-fs-sm)}
.ic .ic-cli-nada{padding:var(--tk-s-2) var(--tk-s-3)}
.ic .ic-fix{display:flex;flex-wrap:wrap;gap:var(--tk-s-2);align-items:center;flex:1 1 100%}
.ic .ic-fix input{flex:1 1 220px;min-width:0;max-width:340px}
.ic .ic-facturas{margin:0 0 var(--tk-s-4)}
.ic .ic-fac{display:flex;flex-wrap:wrap;gap:var(--tk-s-3) var(--tk-s-4);align-items:center;justify-content:space-between;padding:var(--tk-s-4)}
.ic .ic-fac+.ic-fac{border-top:1px solid var(--tk-border)}
.ic .ic-fac b{display:flex;flex-wrap:wrap;gap:var(--tk-s-2);align-items:center;font-size:var(--tk-fs-lg);font-weight:var(--tk-fw-bold);font-variant-numeric:tabular-nums}
.ic .ic-pie-fac{margin:0;padding:var(--tk-s-3) var(--tk-s-4);border-top:1px solid var(--tk-border);font-size:var(--tk-fs-sm)}
.ic .ic-emision .rx-btn:disabled{opacity:1;background:var(--tk-disabled);color:var(--tk-text-2);box-shadow:none;cursor:not-allowed}
.ic .ic-prods .chip{margin-left:var(--tk-s-2)}
#mbox .ic-res{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--tk-s-2);padding:0;margin:var(--tk-s-3) 0}
#mbox .ic-res .dx-ej-t{padding:var(--tk-s-3)}
#mbox #ic-fl .rx-aviso{margin:0 0 var(--tk-s-3)}
#mbox .ic-campos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--tk-s-3);margin:var(--tk-s-3) 0}
#mbox .ic-campos .ic-ancho{grid-column:1/-1}
#mbox .ic-campos :is(input,select){width:100%}
@media (max-width:640px){#mbox .ic-res{grid-template-columns:minmax(0,1fr)}#mbox .ic-campos{grid-template-columns:minmax(0,1fr)}.ic .ic-emision .rx-btn,.ic .ic-fac .ic-acc .rx-btn{flex:1 1 auto}}
/* La casilla de «revisé y quiero emitir»: toda la fila es el botón (40 px de alto), no solo el cuadrito */
#mbox .ic-acepto{position:relative;display:flex;align-items:center;min-height:var(--tk-ctl-h);margin:var(--tk-s-3) 0;padding:var(--tk-s-2) var(--tk-s-3);border:1px solid var(--tk-border-strong);border-radius:var(--tk-r-md);color:var(--tk-text);font-size:var(--tk-fs-md);font-weight:var(--tk-fw);text-transform:none;letter-spacing:0;cursor:pointer}
#mbox .ic-acepto input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
#mbox .ic-acepto span{display:flex;gap:var(--tk-s-3);align-items:center;color:var(--tk-text)}
#mbox .ic-acepto span::before{content:"";flex:none;width:var(--tk-s-5);height:var(--tk-s-5);border:1px solid var(--tk-border-strong);border-radius:var(--tk-r-sm);background:var(--tk-surface);transition:background var(--tk-t),border-color var(--tk-t)}
#mbox .ic-acepto input:checked+span::before{border-color:var(--tk-accent);background:var(--tk-accent);box-shadow:inset 0 0 0 var(--tk-s-1) var(--tk-surface)}
#mbox .ic-acepto input:focus-visible+span::before{box-shadow:var(--tk-focus)}
#mbox .ic-acepto:has(input:checked){border-color:var(--tk-accent);background:var(--tk-accent-soft)}
#mbox :is(#ic-fl,#ic-fc) label.lb{color:var(--tk-text-2)}
#mbox .ic-campos :is(input,select,.gs-btn){min-height:var(--tk-ctl-h);height:var(--tk-ctl-h)}

/* v292 · Modo DIAN sin interruptor: se activa al ocultar ICE. En DIAN no se muestra la lista de remisiones (las de compra de ICE sí) */
body.modo-dian .lat-grupo:not([data-g="ice"]) [data-ir="venta-remisiones"]{display:none}
.in-dian .rx-aviso{margin:0 0 var(--tk-s-4)}
.in-dian .ct-filtros{margin-bottom:var(--tk-s-4)}
/* ══ v291 · Centro de control (solo el equipo de Astrantix): buzón de contacto y estado del sistema ══
   Todo sale de los tokens; no hay colores ni medidas escritas a mano. */
.cc .cc-pad{margin:0;padding:var(--tk-s-4)}
.cc .cc-cuenta{display:inline-flex;align-items:center;justify-content:center;min-width:var(--tk-s-5);height:var(--tk-s-5);padding:0 var(--tk-s-1);border-radius:var(--tk-r-full);background:var(--tk-accent);color:var(--tk-on-accent);font-size:var(--tk-fs-xs);font-weight:var(--tk-fw-bold);font-variant-numeric:tabular-nums;line-height:1}
.cc .cc-cuenta[hidden]{display:none}
/* Insignia de correos sin leer en la entrada del menú; con la barra recogida queda como un punto sobre el ícono */
.lat-grupo[data-g="control"] .lat-cab{position:relative}
.cc-n-menu{display:inline-flex;align-items:center;justify-content:center;flex:none;min-width:var(--tk-s-5);height:var(--tk-s-5);margin-left:auto;padding:0 var(--tk-s-1);border-radius:var(--tk-r-full);background:var(--tk-accent);color:var(--tk-on-accent);font-size:var(--tk-fs-xs);font-weight:var(--tk-fw-bold);font-variant-numeric:tabular-nums;line-height:1}
body.lat-riel:not(.lat-asoma) .cc-n-menu{position:absolute;top:var(--tk-s-1);right:var(--tk-s-1);width:var(--tk-s-2);min-width:var(--tk-s-2);height:var(--tk-s-2);padding:0;font-size:0}
.cc .cc-solo-ico{padding:0;width:var(--tk-ctl-h);min-height:var(--tk-ctl-h);flex:none}

/* ── Buzón: lista a la izquierda, correo abierto a la derecha ── */
.cc-buzon{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:var(--tk-s-4);align-items:start}
.cc-lista{display:flex;flex-direction:column;min-width:0}
.cc-barra{display:flex;flex-direction:column;gap:var(--tk-s-3);padding:var(--tk-s-3);border-bottom:1px solid var(--tk-border)}
.cc-filtros{display:flex;flex-wrap:wrap;gap:var(--tk-s-1)}
.cc-filtro{display:inline-flex;align-items:center;min-height:var(--tk-ctl-h-sm);padding:0 var(--tk-s-3);border:1px solid var(--tk-border);border-radius:var(--tk-r-full);background:var(--tk-surface);color:var(--tk-text-2);font:inherit;font-size:var(--tk-fs-sm);white-space:nowrap;cursor:pointer;transition:background var(--tk-t),color var(--tk-t),border-color var(--tk-t)}
.cc-filtro:hover{background:var(--tk-hover);color:var(--tk-text)}
.cc-filtro[aria-pressed="true"]{background:var(--tk-accent-soft);border-color:var(--tk-accent);color:var(--tk-text);font-weight:var(--tk-fw-medium)}
.cc-filtro span{font-weight:var(--tk-fw-bold);font-variant-numeric:tabular-nums;white-space:pre}
.cc-busca{display:flex;gap:var(--tk-s-2)}
.cc .cc-busca input[type=search]{flex:1;min-width:0;width:100%}
.cc-correos{max-height:min(68vh,720px);overflow-y:auto;overscroll-behavior:contain}
.cc-items{list-style:none;margin:0;padding:0}
.cc-items li+li{border-top:1px solid var(--tk-border)}
.cc-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--tk-s-1) var(--tk-s-3);align-items:baseline;width:100%;padding:var(--tk-s-3);border:0;border-radius:0;background:transparent;color:var(--tk-text);font:inherit;text-align:left;cursor:pointer;transition:background var(--tk-t)}
.cc-item:hover{background:var(--tk-hover)}
.cc-item.on{background:var(--tk-selected)}
.cc-item:focus-visible{outline:2px solid var(--tk-accent);outline-offset:-2px;box-shadow:none}
.cc-i-de,.cc-i-asunto,.cc-i-frag{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cc-i-de{font-size:var(--tk-fs-md);color:var(--tk-text)}
.cc-i-fecha{font-size:var(--tk-fs-xs);color:var(--tk-text-2);white-space:nowrap;font-variant-numeric:tabular-nums}
.cc-i-asunto,.cc-i-frag,.cc-i-marcas{grid-column:1/-1}
.cc-i-asunto{font-size:var(--tk-fs-sm);color:var(--tk-text)}
.cc-i-frag{font-size:var(--tk-fs-sm);color:var(--tk-text-2)}
.cc-item.nuevo .cc-i-de,.cc-item.nuevo .cc-i-asunto{font-weight:var(--tk-fw-bold)}
.cc-punto{display:inline-block;width:var(--tk-s-2);height:var(--tk-s-2);margin-right:var(--tk-s-2);border-radius:var(--tk-r-full);background:var(--tk-accent);vertical-align:middle}
.cc-i-marcas{display:flex;align-items:center;gap:var(--tk-s-2);margin-top:var(--tk-s-1)}
.cc-m{display:inline-flex;align-items:center;color:var(--tk-text-2)}
.cc-m-dest{color:var(--tk-warn)}
.cc-m-dest svg{fill:currentColor}
.cc-mas{display:flex;justify-content:center;padding:var(--tk-s-2);border-top:1px solid var(--tk-border)}

/* Correo abierto */
.cc-lector{min-width:0;min-height:320px;padding:var(--tk-s-5)}
.cc .cc-volver{display:none}
.cc-l-cab h3{margin:0 0 var(--tk-s-3);font-size:var(--tk-fs-lg);line-height:var(--tk-lh-tight);font-weight:var(--tk-fw-bold);color:var(--tk-text);overflow-wrap:anywhere}
.cc-l-de{display:flex;gap:var(--tk-s-3);align-items:flex-start}
.cc-avatar{display:grid;place-items:center;flex:none;width:var(--tk-s-10);height:var(--tk-s-10);border-radius:var(--tk-r-full);background:var(--tk-accent-soft);color:var(--tk-text);font-size:var(--tk-fs-md);font-weight:var(--tk-fw-bold)}
.cc-l-quien{display:flex;flex-direction:column;min-width:0;font-size:var(--tk-fs-sm);overflow-wrap:anywhere}
.cc-l-quien b{font-size:var(--tk-fs-md);font-weight:var(--tk-fw-bold);color:var(--tk-text)}
.cc-l-acc{display:flex;flex-wrap:wrap;gap:var(--tk-s-2);margin:var(--tk-s-4) 0 0}
.cc-l-acc .rx-btn[aria-pressed="true"]{background:var(--tk-warn-soft);border-color:var(--tk-warn)}
.cc-l-acc .rx-btn[aria-pressed="true"] svg{fill:currentColor}
.cc-l-nota{display:flex;align-items:center;gap:var(--tk-s-2);flex-wrap:wrap;margin:var(--tk-s-3) 0 0;font-size:var(--tk-fs-sm)}
.cc-enlace{padding:0;border:0;background:none;color:var(--tk-accent);font:inherit;font-size:var(--tk-fs-sm);text-decoration:underline;cursor:pointer}
.cc-adjs{margin:var(--tk-s-4) 0 0}
.cc-adjs a[aria-disabled="true"]{pointer-events:none;color:var(--tk-text-2)}
.cc-l-cuerpo{margin-top:var(--tk-s-4);padding-top:var(--tk-s-4);border-top:1px solid var(--tk-border)}
.cc-l-cuerpo .rcb-texto a{color:var(--tk-accent)}
.cc-img-aviso{display:flex;gap:var(--tk-s-3);align-items:center;justify-content:space-between;flex-wrap:wrap;margin:0 0 var(--tk-s-3);padding:var(--tk-s-3);border-radius:var(--tk-r-md);background:var(--tk-surface-2);color:var(--tk-text-2);font-size:var(--tk-fs-sm)}
.cc-img-aviso span{flex:1 1 240px}
.cc-marco{display:block}

/* Responder */
.cc-redactar-caja{margin-top:var(--tk-s-5);padding-top:var(--tk-s-4);border-top:1px solid var(--tk-border)}
.cc-redactar h4{margin:0 0 var(--tk-s-3);font-size:var(--tk-fs-md);font-weight:var(--tk-fw-bold);color:var(--tk-text)}
.cc-r-fila{display:flex;flex-direction:column;gap:var(--tk-s-1);margin:0 0 var(--tk-s-3)}
.cc .cc-r-fila label{margin:0;font-size:var(--tk-fs-sm);font-weight:var(--tk-fw-medium);color:var(--tk-text-2);text-transform:none;letter-spacing:0}
.cc .cc-r-fila :is(input,textarea){width:100%;min-height:var(--tk-ctl-h);padding:0 var(--tk-s-3);border:1px solid var(--tk-border-strong);border-radius:var(--tk-r-md);background:var(--tk-surface);color:var(--tk-text);font:inherit;font-size:var(--tk-fs-md);transition:border-color var(--tk-t)}
.cc .cc-r-fila textarea{height:auto;padding:var(--tk-s-2) var(--tk-s-3);line-height:var(--tk-lh);resize:vertical}
.cc .cc-r-fila :is(input,textarea):hover{border-color:var(--tk-text-2)}
.cc .cc-r-fila :is(input,textarea):focus-visible{outline:none;border-color:var(--tk-accent);box-shadow:var(--tk-focus)}
.cc-redactar .dx-pie{flex-wrap:wrap}

/* ── Monitoreo ── */
.cc-estado{display:flex;align-items:center;gap:var(--tk-s-3);flex-wrap:wrap;margin:0 0 var(--tk-s-4);padding:var(--tk-s-4);border:1px solid var(--tk-border);border-radius:var(--tk-r-lg);background:var(--tk-surface)}
.cc-estado>div{display:flex;flex-direction:column;flex:1;min-width:200px;font-size:var(--tk-fs-sm)}
.cc-estado b{font-size:var(--tk-fs-lg);font-weight:var(--tk-fw-bold);color:var(--tk-text)}
.cc-estado-ico{display:grid;place-items:center;flex:none;width:var(--tk-s-10);height:var(--tk-s-10);border-radius:var(--tk-r-full);background:var(--tk-ok-soft);color:var(--tk-ok)}
.cc-estado-warn .cc-estado-ico{background:var(--tk-warn-soft);color:var(--tk-warn)}
.cc-estado-mal .cc-estado-ico{background:var(--tk-danger-soft);color:var(--tk-danger)}
.cc-revisar{list-style:none;margin:0 0 var(--tk-s-4);padding:0;border:1px solid var(--tk-border);border-radius:var(--tk-r-lg);background:var(--tk-surface)}
.cc-revisar li{display:flex;align-items:center;gap:var(--tk-s-3);padding:var(--tk-s-3) var(--tk-s-4);font-size:var(--tk-fs-md);color:var(--tk-text)}
.cc-revisar li+li{border-top:1px solid var(--tk-border)}
.cc-revisar .chip{flex:none;margin:0}
.cc .cc-tarjetas{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:0 0 var(--tk-s-4);padding:0}
.cc-t{min-width:0;background:var(--tk-surface)}
button.cc-t{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:border-color var(--tk-t),background var(--tk-t)}
button.cc-t:hover{border-color:var(--tk-border-strong);background:var(--tk-hover)}
.cc-t small{display:block;margin-top:var(--tk-s-1);font-size:var(--tk-fs-xs);color:var(--tk-text-2)}
.cc-t-info>span::before,.cc-t-warn>span::before{content:"";display:inline-block;width:var(--tk-s-2);height:var(--tk-s-2);margin-right:var(--tk-s-2);border-radius:var(--tk-r-full);background:var(--tk-accent);vertical-align:middle}
.cc-t-warn>span::before{background:var(--tk-warn)}
.cc-dos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--tk-s-4);margin:0 0 var(--tk-s-4);align-items:start}
.cc-sec{margin:0 0 var(--tk-s-4)}
.cc-dos>.cc-sec{margin:0}
.cc-sec h3{margin:0;padding:var(--tk-s-4) var(--tk-s-4) var(--tk-s-3);font-size:var(--tk-fs-md);font-weight:var(--tk-fw-bold);color:var(--tk-text)}
.cc-dl{margin:0;padding:0 var(--tk-s-4) var(--tk-s-2)}
.cc-dl>div{display:flex;align-items:center;justify-content:space-between;gap:var(--tk-s-4);min-height:var(--tk-ctl-h);padding:var(--tk-s-1) 0;border-top:1px solid var(--tk-border);font-size:var(--tk-fs-sm)}
.cc-dl dt{color:var(--tk-text-2)}
.cc-dl dd{margin:0;color:var(--tk-text);font-weight:var(--tk-fw-medium);text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.cc-eventos{list-style:none;margin:0;padding:0}
.cc-eventos li{display:flex;align-items:baseline;justify-content:space-between;gap:var(--tk-s-4);padding:var(--tk-s-3) var(--tk-s-4);border-top:1px solid var(--tk-border)}
.cc-eventos li>div{display:flex;flex-direction:column;min-width:0}
.cc-eventos b{font-size:var(--tk-fs-sm);font-weight:var(--tk-fw-medium);color:var(--tk-text);overflow-wrap:anywhere}
.cc-eventos span{font-size:var(--tk-fs-xs);overflow-wrap:anywhere}
.cc-eventos time{flex:none;font-size:var(--tk-fs-xs);color:var(--tk-text-2);white-space:nowrap}

/* Pantallas angostas: una sola columna; la lista y el correo se turnan */
@media (max-width:980px){
  .cc-buzon{grid-template-columns:minmax(0,1fr)}
  .cc-buzon[data-vista="lista"] .cc-lector,.cc-buzon[data-vista="lector"] .cc-lista{display:none}
  .cc .cc-volver{display:inline-block}
  .cc-correos{max-height:none}
  .cc-lector{padding:var(--tk-s-4)}
  .cc-filtro{min-height:var(--tk-ctl-h)}
  .cc-filtros{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .cc-filtros::-webkit-scrollbar{display:none}
  .cc-l-acc .rx-btn{flex:1 1 auto}
  .cc-dos{grid-template-columns:minmax(0,1fr)}
  .cc .cc-tarjetas{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (prefers-reduced-motion:reduce){.cc-item,.cc-filtro,button.cc-t{transition:none}}

/* Toque cómodo (≥ 40 px) en los controles del Centro de control */
.cc .rx-btn-s,.cc-filtro,.cc-enlace{min-height:var(--tk-ctl-h)}
.cc-filtro{padding-top:0;padding-bottom:0}
.cc-l-acc .rx-btn-s{padding-left:var(--tk-s-3);padding-right:var(--tk-s-3)}

/* ── Despliegue interno (centrall-control): la consola de superadmin (Panel de control + Centro de control), sin lo operativo ── */
body.ax-solo .lat-grupo:not([data-g="control"]):not([data-g="panel"]){display:none}
#ax-solo-cartel{display:none}
body.ax-solo-nope #ax-solo-cartel{display:flex;position:fixed;inset:0;z-index:60;align-items:center;justify-content:center;padding:var(--tk-s-5);background:var(--tk-surface)}
#ax-solo-cartel .asc-box{display:grid;gap:var(--tk-s-3);justify-items:center;max-width:380px;text-align:center}
#ax-solo-cartel .asc-box svg{width:var(--tk-s-10);height:var(--tk-s-10);color:var(--tk-accent)}
#ax-solo-cartel .asc-box h2{margin:0;font-size:var(--tk-fs-lg);font-weight:var(--tk-fw-bold);color:var(--tk-text)}
#ax-solo-cartel .asc-box p{margin:0;font-size:var(--tk-fs-md);color:var(--tk-text-2)}
