@charset "UTF-8";
/* =====================================================================
   iPN2.css ? Design System de la modernizaci?n de UI de iPN
   ---------------------------------------------------------------------
   ERP Cloud SaaS ? Classic ASP (VBScript) ? server-rendered, sin bundler.
   Recrea el prototipo "iPN Redise?o" (handoff hifi) dentro del entorno real.

   REGLAS DE USO
   - Todo vive bajo el contenedor `.ipn2-app` (shell) o `.ipn2` (scope).
     As? el CSS legacy (newStyle, style_bootstrap, etc.) no se filtra y este
     tampoco pisa las pantallas todav?a no migradas.
   - Clases prefijadas `ipn-` para no colisionar con el CSS existente.
   - No hay estilos inline dispersos: los componentes viven ac?.
   - Tokens en `:root` (globales, inofensivos: s?lo definen variables).

   ?conos: Material Symbols Rounded (se cargan en el shell / la p?gina).
   Fuentes: IBM Plex Sans + IBM Plex Mono.
   ===================================================================== */

/* Fuentes: Inter + Plex se cargan por <link> en el shell (ipn_topbar / menu_secure).
   AV: 2026-08-13: sin @import de Inter ac? ? el CSS cacheado de Google ped?a woff2 UcCB3? (404).
   Solo Mono queda por @import (no se pide en el topbar). */
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&display=swap');

/* =====================================================================
   1. TOKENS
   ===================================================================== */
:root{
  /* Marca / primario (fondos claros).
     AV: 2026-08-19: acentos de cuenta v?a --ipn-brand* (topbar); hex solo como fallback. */
  --ipn-brand:#2f62c4;
  --ipn-brand-fg:#fff;
  --ipn-brand-soft:#e8eef8;
  --ipn-brand-link:var(--ipn-brand, #2f62c4);
  --ipn-brand-hover:#2a58b0;
  --ipn-brand-ring:0 0 0 3px rgba(47,98,196,.15);
  --ipn-brand-shadow:0 2px 8px rgba(47,98,196,.28);
  --ipn-primary:var(--ipn-brand, #3f6091);
  --ipn-primary-hover:var(--ipn-brand-hover, #33507b);
  --ipn-primary-soft:var(--ipn-brand-soft, #e9eff9);
  --ipn-accent:var(--ipn-brand, #2f62c4);            /* azul vivo ? activo sidebar / charts */

  /* Sidebar ? Command Center (7a) */
  --ipn-sidebar-bg:#16294d;
  --ipn-sidebar-item-active:var(--ipn-brand, #2f62c4);
  --ipn-sidebar-active-border:var(--ipn-brand, #2f62c4);
  --ipn-sidebar-text:#aebbd4;
  --ipn-sidebar-text-strong:#ffffff;
  --ipn-sidebar-heading:#7f92b4;
  --ipn-sidebar-hover:rgba(255,255,255,.06);
  --ipn-sidebar-active-shadow:var(--ipn-brand-shadow, 0 2px 8px rgba(47,98,196,.35));

  /* Superficies */
  --ipn-page-bg:#f4f6f9;
  --ipn-surface:#ffffff;
  --ipn-surface-soft:#f7f9fc;
  --ipn-surface-soft-2:#fbfcfe;
  --ipn-zebra:#f2f6fc;

  /* Bordes */
  --ipn-hairline:#e6e9ef;
  --ipn-border-input:#d7dce4;

  /* Texto */
  --ipn-text:#16294d;
  --ipn-text-ink:#1e2733;
  --ipn-text-2:#55606f;
  --ipn-text-3:#6b7685;
  --ipn-text-muted:#8a94a2;
  --ipn-text-faint:#9aa4b1;

  /* Sem?nticos */
  --ipn-success:#1a9b57;
  --ipn-success-chip-bg:#e4f2ec;
  --ipn-success-chip-fg:#1a7a4f;
  --ipn-danger:#cf3b3b;
  --ipn-danger-chip-bg:#fbe8e8;
  --ipn-danger-chip-fg:#b83232;
  --ipn-warning:#d98324;
  --ipn-warning-ink:#946318;
  --ipn-warning-chip-bg:#f7efdf;
  --ipn-info-bg:#f2f6fc;
  --ipn-info-border:#dbe6f5;

  /* Charts */
  --ipn-chart:var(--ipn-brand, #2f62c4);
  --ipn-chart-soft:#c3d2e8;
  --ipn-chart-goal:#9aa4b1;

  /* Tipograf?a ? Inter es la fuente oficial de iPN2 (se hereda en todas las UIs modernizadas) */
  --ipn-font:'Inter',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
  --ipn-font-mono:'IBM Plex Mono',ui-monospace,'SFMono-Regular',Consolas,monospace;

  /* Forma / espacio */
  --ipn-radius-input:8px;
  --ipn-radius-card:12px;
  --ipn-radius-pill:999px;
  --ipn-sidebar-w:236px;
  --ipn-topbar-h:56px;
  --ipn-nav-h:46px;
  --ipn-control-h:40px;
  /* AV: 2026-08-20: offset sticky thead bajo chrome menu2 (topbar+nav). */
  --ipn-sticky-top:0px;

  /* Sombras */
  --ipn-shadow-card:0 1px 3px rgba(63,96,145,.08);
  --ipn-shadow-elev:0 6px 24px rgba(30,45,70,.12);

  /* AV: 2026-07-19: Panel secure ? tokens + breakpoints documentados (media queries usan los px literales).
     Breakpoints: desktop ?1000 ? tablet 700?999 ? mobile <700 ? angosto <380 ? detail stack <900 */
  --ipn-bp-desktop:1000px;
  --ipn-bp-tablet:700px;
  --ipn-bp-narrow:380px;
  --ipn-bp-detail:900px;
  --ipn-secure-primary:#1d4e86;
  --ipn-secure-primary-hover:#173f6d;
  --ipn-secure-page-bg:#eef1f6;
  --ipn-secure-card-border:#e2e7ef;
  --ipn-secure-radius:14px;
  --ipn-touch-min:44px;
  --ipn-fab-size:56px;
  --ipn-fab-offset:16px;
  /* AV: 2026-07-20: tope compartido topbar__inner + body + footer secure */
  --ipn-secure-content-max:1440px;
  /* AV: 2026-08-19: misma columna que nav/mega (no un tope m?s chico). */
  --ipn-container:var(--ipn-secure-content-max);
}

/* =====================================================================
   2. RESET / BASE (acotado al scope)
   ===================================================================== */
.ipn2-app,
.ipn2{
  font-family:var(--ipn-font);
  font-size:13px;
  line-height:1.45;
  color:var(--ipn-text);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
.ipn2-app *,
.ipn2 *{ box-sizing:border-box; }

.ipn2-app a,
.ipn2 a{ color:var(--ipn-primary); text-decoration:none; }
.ipn2-app a:hover,
.ipn2 a:hover{ color:var(--ipn-primary-hover); text-decoration:underline; }

.ipn-mono{ font-family:var(--ipn-font-mono); font-variant-numeric:tabular-nums; }
.ipn-muted{ color:var(--ipn-text-muted); }
.ipn-pos{ color:var(--ipn-success); }
.ipn-neg{ color:var(--ipn-danger); }

/* ?conos Material Symbols Rounded */
.material-symbols-rounded{
  font-family:'Material Symbols Rounded' !important;
  font-weight:normal;
  font-style:normal;
  font-size:20px;
  line-height:1;
  letter-spacing:normal;
  text-transform:none;
  display:inline-block;
  white-space:nowrap;
  word-wrap:normal;
  direction:ltr;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  font-feature-settings:'liga';
  font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24;
  vertical-align:middle;
  user-select:none;
}

/* =====================================================================
   3. SHELL ? sidebar + topbar + ?rea de contenido
   ===================================================================== */
.ipn2-app{
  display:flex;
  min-height:100vh;
  background:var(--ipn-page-bg);
}

/* ---- Sidebar ---- */
.ipn-sidebar{
  width:var(--ipn-sidebar-w);
  flex:0 0 var(--ipn-sidebar-w);
  background:var(--ipn-sidebar-bg);
  color:var(--ipn-sidebar-text);
  display:flex;
  flex-direction:column;
  position:fixed;
  inset:0 auto 0 0;
  z-index:60;
}
.ipn-sidebar__header{
  height:var(--ipn-topbar-h);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 16px;
  flex:0 0 var(--ipn-topbar-h);
}
.ipn-sidebar__logo{ height:22px; width:auto; display:block; }
.ipn-sidebar__collapse{
  background:none; border:0; color:var(--ipn-sidebar-text);
  cursor:pointer; padding:4px; border-radius:6px; line-height:0;
}
.ipn-sidebar__collapse:hover{ background:var(--ipn-sidebar-hover); }

/* Desktop collapse */
.ipn2-app.is-sidebar-collapsed .ipn-sidebar{
  width:72px;
  flex-basis:72px;
}
.ipn2-app.is-sidebar-collapsed .ipn-main{ margin-left:72px; }
.ipn2-app.is-sidebar-collapsed .ipn-nav-item > span:not(.material-symbols-rounded),
.ipn2-app.is-sidebar-collapsed .ipn-nav-group__title,
.ipn2-app.is-sidebar-collapsed .ipn-sidebar__user,
.ipn2-app.is-sidebar-collapsed .ipn-nav-item__chev,
.ipn2-app.is-sidebar-collapsed .ipn-sidebar__logo{ display:none !important; }
.ipn2-app.is-sidebar-collapsed .ipn-sidebar__header{ justify-content:center; padding:0; }
.ipn2-app.is-sidebar-collapsed .ipn-sidebar__footer{ justify-content:center; flex-wrap:wrap; }
.ipn2-app.is-sidebar-collapsed .ipn-nav-item{ justify-content:center; padding:10px; }
.ipn2-app.is-sidebar-collapsed .ipn-sidebar__logout{ margin:0; }

/* avoidMenu / panel sin m?dulos: ocultar sidebar vac?o */
.ipn2-app.ipn2-app--no-nav .ipn-sidebar{ display:none; }
.ipn2-app.ipn2-app--no-nav .ipn-main{ margin-left:0; }
.ipn2-app.ipn2-app--no-nav .ipn-bottom-nav{ display:none !important; }

.ipn-sidebar__nav{
  flex:1 1 auto;
  overflow-y:auto;
  padding:6px 10px 12px;
}
.ipn-nav-group{ margin-top:14px; }
.ipn-nav-group:first-child{ margin-top:2px; }
.ipn-nav-group__title{
  font-size:11px;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--ipn-sidebar-heading);
  padding:6px 12px 4px;
}
.ipn-nav-item{
  display:flex;
  align-items:center;
  gap:12px;
  padding:9px 12px;
  margin:2px 0;
  border-radius:10px;
  color:var(--ipn-sidebar-text);
  font-size:13px;
  font-weight:500;
  border-left:0;
  transition:background .12s ease,color .12s ease,box-shadow .12s ease;
}
.ipn-nav-item:hover{ background:var(--ipn-sidebar-hover); color:#fff; text-decoration:none; }
.ipn-nav-item .material-symbols-rounded{ font-size:20px; }
.ipn-nav-item .ipn-nav-item__chev{ margin-left:auto; font-size:18px; opacity:.7; }
.ipn-nav-item.is-active{
  background:var(--ipn-sidebar-item-active);
  color:#fff;
  box-shadow:var(--ipn-sidebar-active-shadow);
}

.ipn-sidebar__footer{
  flex:0 0 auto;
  border-top:1px solid rgba(255,255,255,.08);
  padding:12px;
  display:flex;
  align-items:center;
  gap:10px;
}
.ipn-sidebar__footer .ipn-avatar{ flex:0 0 auto; }
.ipn-sidebar__user{ min-width:0; flex:1 1 auto; }
.ipn-sidebar__user b{ display:block; font-size:12.5px; color:#fff; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ipn-sidebar__user span{ display:block; font-size:11.5px; color:var(--ipn-sidebar-heading); }
.ipn-sidebar__logout{ color:var(--ipn-sidebar-text); line-height:0; padding:4px; border-radius:6px; }
.ipn-sidebar__logout:hover{ background:var(--ipn-sidebar-hover); color:#fff; }

/* ---- ?rea principal (empuja por el sidebar fijo) ---- */
.ipn-main{
  flex:1 1 auto;
  min-width:0;
  margin-left:var(--ipn-sidebar-w);
  display:flex;
  flex-direction:column;
}

/* ---- Topbar ---- */
.ipn-topbar{
  height:var(--ipn-topbar-h);
  flex:0 0 var(--ipn-topbar-h);
  background:var(--ipn-surface);
  border-bottom:1px solid var(--ipn-hairline);
  display:flex;
  align-items:center;
  gap:16px;
  padding:0 20px;
  position:sticky;
  top:0;
  z-index:40;
}
/* AV: 2026-08-13: margen inferior base (mismo ritmo que secure/AP); evita breadcrumb pegado al title fuera de .ipn-secure__body. */
/* AV: 2026-08-26: Breadcrumb compacto en shell menu2 (issue #46). */
.ipn-breadcrumb{ display:flex; align-items:center; gap:5px; font-size:11px; color:var(--ipn-text-3); margin:0 0 12px; }
.ipn-breadcrumb .material-symbols-rounded{ font-size:16px; color:var(--ipn-text-faint); }
.ipn-breadcrumb b{ color:var(--ipn-text); font-weight:600; }
/* AV: 2026-08-26: Breadcrumb mobile compacto (issue #36 ? rutas largas sin saltos flex exagerados). */
@media (max-width:767px){
  .ipn-breadcrumb,
  .ipn-secure__body > .ipn-breadcrumb{
    display:block;
    font-size:11px;
    line-height:1.4;
    margin:0 0 10px;
  }
  .ipn-breadcrumb a,
  .ipn-breadcrumb b{
    display:inline;
    overflow-wrap:anywhere;
    line-height:inherit;
  }
  .ipn-breadcrumb .material-symbols-rounded{
    display:inline-block;
    font-size:14px;
    vertical-align:-2px;
    margin:0 2px;
  }
}
.ipn-topbar__spacer{ flex:1 1 auto; }
.ipn-topbar__search{
  position:relative; flex:1 1 420px; max-width:520px; margin:0 auto;
}
.ipn-topbar__search input{
  width:100%; height:38px; padding:0 64px 0 38px;
  border:1px solid var(--ipn-border-input); border-radius:10px;
  background:var(--ipn-surface-soft); font:inherit; font-size:13px; color:var(--ipn-text);
}
.ipn-topbar__search .material-symbols-rounded{
  position:absolute; left:11px; top:50%; transform:translateY(-50%);
  font-size:18px; color:var(--ipn-text-muted); pointer-events:none;
}
.ipn-topbar__kbd{
  position:absolute; right:10px; top:50%; transform:translateY(-50%);
  font-size:11px; font-weight:600; color:var(--ipn-text-muted);
  background:var(--ipn-surface); border:1px solid var(--ipn-hairline);
  border-radius:6px; padding:2px 6px; pointer-events:none;
}
.ipn-topbar__home{
  display:inline-flex; align-items:center; justify-content:center;
  width:36px; height:36px; border-radius:8px; color:var(--ipn-text-2);
}
.ipn-topbar__home:hover{ background:var(--ipn-surface-soft); color:var(--ipn-text); text-decoration:none; }
.ipn-topbar__user{
  display:inline-flex; align-items:center; gap:8px; color:var(--ipn-text);
  font-size:13px; font-weight:500;
}
.ipn-topbar__user:hover{ text-decoration:none; }
.ipn-topbar__icon{
  position:relative; color:var(--ipn-text-2); line-height:0;
  padding:8px; border-radius:8px; cursor:pointer;
}
.ipn-topbar__icon:hover{ background:var(--ipn-surface-soft); color:var(--ipn-text); }
.ipn-topbar__dot{
  position:absolute; top:6px; right:6px; width:7px; height:7px;
  background:var(--ipn-danger); border-radius:50%; border:1.5px solid var(--ipn-surface);
}
.ipn-company-pill{
  display:flex; align-items:center; gap:6px; height:34px; padding:0 10px;
  border:1px solid var(--ipn-border-input); border-radius:8px;
  font-size:12.5px; color:var(--ipn-text-2); background:var(--ipn-surface); cursor:pointer;
}
.ipn-company-pill:hover{ background:var(--ipn-surface-soft); }

/* Hamburguesa (s?lo m?vil) */
.ipn-topbar__burger{ display:none; background:none; border:0; color:var(--ipn-text-2); line-height:0; padding:8px; cursor:pointer; }

/* ---- Contenido ---- */
.ipn-content{ flex:1 1 auto; padding:22px 24px 40px; }

/* Backdrop del off-canvas (m?vil) */
.ipn-scrim{ display:none; position:fixed; inset:0; background:rgba(20,30,50,.45); z-index:55; }

/* =====================================================================
   4. PAGE HEADER
   ===================================================================== */
/* AV: 2026-07-19: ?cono+t?tulo SIEMPRE en fila; texto wrappea a la derecha del ?cono.
   AV: 2026-07-22: z-index para que Acciones no quede tapado por tabs/cards. */
.ipn-page-head{
  display:flex; flex-direction:row; align-items:center;
  gap:12px 14px; margin-bottom:18px;
  flex-wrap:nowrap;
  position:relative;
  z-index:40;
}
.ipn-page-head__icon{
  width:46px; height:46px; border-radius:11px;
  background:var(--ipn-brand-soft, var(--ipn-primary-soft));
  color:var(--ipn-brand, var(--ipn-primary));
  display:flex; align-items:center; justify-content:center;
  flex:0 0 46px; flex-shrink:0;
}
.ipn-page-head__icon .material-symbols-rounded{ font-size:22px; }
.ipn-page-head__text,
.ipn-page-head > div:not(.ipn-page-head__icon):not(.ipn-page-head__actions):not(.ipn-page-head__meta){
  min-width:0;
  flex:1 1 auto;
}
/* AV: 2026-07-27: break-word (no anywhere) ? evita "Priori/dades" mid-word en mobile */
.ipn-page-title{
  font-size:21px; font-weight:700; color:var(--ipn-text); margin:0; line-height:1.25;
  overflow-wrap:break-word; word-break:normal;
}
.ipn-page-subtitle{ font-size:12.5px; color:var(--ipn-text-3); margin-top:2px; }
.ipn-page-head__actions{
  margin-left:auto; display:flex; align-items:center; gap:10px; flex-wrap:nowrap;
  flex:0 0 auto;
}

/* Dropdown "Acciones disponibles" (m?x. 2 botones visibles en page-head) */
.ipn-actions-dd{ position:relative; z-index:50; }
.ipn-actions-dd__menu{
  display:none; position:absolute; right:0; top:calc(100% + 6px);
  min-width:260px; margin:0; padding:6px 0; list-style:none;
  background:var(--ipn-surface); border:1px solid var(--ipn-hairline);
  border-radius:10px; box-shadow:var(--ipn-shadow-elev); z-index:60;
}
.ipn-actions-dd.is-open .ipn-actions-dd__menu{ display:block; }
.ipn-actions-dd__item{
  display:flex; align-items:center; gap:10px;
  width:100%; box-sizing:border-box;
  padding:10px 14px; color:var(--ipn-text) !important;
  font-size:13px; font-weight:500; font-family:inherit; line-height:1.25;
  text-decoration:none !important; text-align:left;
  white-space:nowrap;
  /* AV: 2026-07-27: QA 3.2.2 ? reset UA de <button> (Exportar) para igualar a los <a> */
  margin:0; border:0; border-radius:0; background:transparent;
  cursor:pointer; appearance:none; -webkit-appearance:none;
}
.ipn-actions-dd__item:hover{
  background:var(--ipn-zebra); color:var(--ipn-text) !important; text-decoration:none !important;
}
.ipn-actions-dd__item .material-symbols-rounded{
  font-size:20px; color:var(--ipn-text-muted); flex:0 0 auto;
}

/* =====================================================================
   5. BOTONES
   ===================================================================== */
.ipn-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:7px;
  height:var(--ipn-control-h); padding:0 16px;
  border-radius:var(--ipn-radius-input);
  border:1px solid transparent;
  font:inherit; font-size:13px; font-weight:600; line-height:1;
  cursor:pointer; white-space:nowrap;
  transition:background .12s ease,border-color .12s ease,color .12s ease;
  text-decoration:none !important;
  box-sizing:border-box;
  appearance:none; -webkit-appearance:none;
}
a.ipn-btn,
a.ipn-btn:link,
a.ipn-btn:visited,
a.ipn-btn:hover,
a.ipn-btn:active,
a.ipn-btn:focus{
  text-decoration:none !important;
  color:inherit;
}
.ipn-btn .material-symbols-rounded{
  font-size:18px;
  text-decoration:none !important;
  line-height:1;
}
.ipn-btn--primary{ background:var(--ipn-primary); color:#fff; }
.ipn-btn--primary:hover{ background:var(--ipn-primary-hover); color:#fff; text-decoration:none; }
a.ipn-btn--primary,
a.ipn-btn--primary:link,
a.ipn-btn--primary:visited,
a.ipn-btn--primary:hover,
a.ipn-btn--primary:active,
a.ipn-btn--primary:focus{
  color:#fff !important;
  background:var(--ipn-primary);
}
a.ipn-btn--primary:hover{ background:var(--ipn-primary-hover) !important; }
.ipn-btn--secondary{ background:var(--ipn-surface); color:var(--ipn-text-2); border-color:var(--ipn-border-input); }
a.ipn-btn--secondary,
a.ipn-btn--secondary:link,
a.ipn-btn--secondary:visited{ color:var(--ipn-text-2) !important; }
.ipn-btn--secondary:hover{ background:var(--ipn-surface-soft); color:var(--ipn-text); text-decoration:none; }
a.ipn-btn--secondary:hover{ color:var(--ipn-text) !important; }
.ipn-btn--ghost{ background:transparent; color:var(--ipn-text-2); }
.ipn-btn--ghost:hover{ background:var(--ipn-surface-soft); color:var(--ipn-text); text-decoration:none; }
.ipn-btn--danger{ background:var(--ipn-danger); color:#fff; }
.ipn-btn--danger:hover{ background:var(--ipn-danger-chip-fg); color:#fff; text-decoration:none; }
a.ipn-btn--danger,
a.ipn-btn--danger:link,
a.ipn-btn--danger:visited,
a.ipn-btn--danger:hover,
a.ipn-btn--danger:active,
a.ipn-btn--danger:focus{
  color:#fff !important;
  background:var(--ipn-danger);
}
a.ipn-btn--danger:hover{ background:var(--ipn-danger-chip-fg) !important; }
.ipn-btn--sm{ height:32px; padding:0 12px; font-size:12.5px; }
.ipn-btn--icon{ width:var(--ipn-control-h); padding:0; }
.ipn-btn:disabled{ opacity:.55; cursor:not-allowed; }

/* Estado de carga iPN2 (submit/Buscar): conserva el estilo del bot?n, sin caer al gris legacy `btnDisabled`.
   Lo aplica loadAfterClick()/loadAfterClickBind() cuando el bot?n tiene la clase .ipn-btn. */
.ipn-btn.is-loading{ pointer-events:none; opacity:.85; cursor:default; }
.ipn-btn.is-loading > .material-symbols-rounded{ display:none; }
.ipn-btn.is-loading::before{
  content:""; display:inline-block; width:1em; height:1em; margin-right:.15em;
  border:2px solid currentColor; border-top-color:transparent; border-radius:50%;
  vertical-align:-2px; animation:ipnBtnSpin .6s linear infinite;
}
@keyframes ipnBtnSpin{ to{ transform:rotate(360deg); } }

/* Bot?n de acci?n por fila */
.ipn-row-action{
  border:0; background:none; color:#8a94a2;
  border-radius:7px; padding:0; cursor:pointer; line-height:0;
  width:30px; height:30px;
  display:inline-flex; align-items:center; justify-content:center;
  /* AV: 2026-08-20: siempre visibles (opacity:0 solo-hover dejaba Acciones ?vac?as?). */
  opacity:1; transition:background .12s ease,color .12s ease;
  text-decoration:none !important;
}
.ipn-row-actions{
  display:inline-flex; align-items:center; justify-content:flex-end; gap:2px;
  min-height:30px;
}
.ipn-row-action:hover{ background:#eef2f7; color:var(--ipn-brand, #2f62c4); text-decoration:none !important; }
.ipn-row-action:visited,
.ipn-row-action:focus{ text-decoration:none !important; }
.ipn-row-action:focus-visible{
  outline:2px solid var(--ipn-brand, #2f62c4); outline-offset:1px;
}
.ipn-row-action--danger:hover{ color:#cf3b3b; background:#fdeaea; }
.ipn-row-action .material-symbols-rounded{ font-size:18px; }
.ipn-table-actions{
  display:inline-flex; align-items:center; gap:2px;
}
@media (prefers-reduced-motion:reduce){
  .ipn-row-action{ transition:none; }
}

/* =====================================================================
   6. CARD
   ===================================================================== */
.ipn-card{
  background:var(--ipn-surface);
  border:1px solid var(--ipn-hairline);
  border-radius:var(--ipn-radius-card);
  box-shadow:var(--ipn-shadow-card);
}
.ipn-card + .ipn-card{ margin-top:16px; }
.ipn-card__body{ padding:18px 20px; }
.ipn-card__head{
  display:flex; align-items:center; gap:10px;
  padding:14px 20px; border-bottom:1px solid var(--ipn-hairline);
}
.ipn-card__title{ font-size:14px; font-weight:600; color:var(--ipn-text); margin:0; }
.ipn-card__head .ipn-link-more{ margin-left:auto; font-size:12.5px; }

/* =====================================================================
   7. FILTROS
   ===================================================================== */
.ipn-filterbar{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:14px 16px; }
.ipn-search{ position:relative; flex:1 1 320px; min-width:220px; }
.ipn-search input{ width:100%; padding-left:38px; }
.ipn-search .material-symbols-rounded{
  position:absolute; left:11px; top:50%; transform:translateY(-50%);
  font-size:18px; color:var(--ipn-text-muted); pointer-events:none;
}
.ipn-active-filters{
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  padding:10px 16px; border-top:1px solid var(--ipn-hairline);
}
.ipn-active-filters__label{ font-size:12px; color:var(--ipn-text-3); font-weight:500; }
.ipn-active-filters__spacer{ margin-left:auto; }

/* Chips de filtro activo */
.ipn-chip{
  display:inline-flex; align-items:center; gap:6px;
  height:26px; padding:0 6px 0 11px; border-radius:var(--ipn-radius-pill);
  background:var(--ipn-primary-soft); color:var(--ipn-primary-hover);
  font-size:12px; font-weight:500;
}
.ipn-chip__close{
  border:0; background:none; color:inherit; cursor:pointer; line-height:0;
  padding:2px; border-radius:50%; opacity:.7;
}
.ipn-chip__close:hover{ opacity:1; background:rgba(51,80,123,.12); }
.ipn-chip__close .material-symbols-rounded{ font-size:15px; }

/* =====================================================================
   8. FORM CONTROLS
   ===================================================================== */
.ipn-field{ display:flex; flex-direction:column; gap:6px; }
/* AV: 2026-09-01: #210 ? .ipn-field fuerza flex; respetar hidden en filtros de reportes. */
.ipn-field[hidden]{ display:none !important; }
.ipn-label{ font-size:12px; font-weight:500; color:var(--ipn-text-2); }
/* AV: 2026-08-03: Valor solo-lectura ? misma altura visual que .ipn-input. */
.ipn-readonly{
  display:flex;
  align-items:center;
  min-height:var(--ipn-control-h);
  box-sizing:border-box;
  font-size:13px;
  font-weight:500;
  color:var(--ipn-text);
  line-height:1.4;
  word-break:break-word;
}
.ipn-input,
.ipn-select,
.ipn-textarea{
  height:var(--ipn-control-h);
  padding:0 12px;
  border:1px solid var(--ipn-border-input);
  border-radius:var(--ipn-radius-input);
  background:var(--ipn-surface);
  font:inherit; font-size:13px; color:var(--ipn-text);
  width:100%;
  transition:border-color .12s ease,box-shadow .12s ease;
}
.ipn-textarea{ height:auto; padding:10px 12px; resize:vertical; min-height:80px; }
/* AV: 2026-08-26: Tippy theme iPN2 (importaciones, checkbook, etc.). Issue #63. */
.tippy-box[data-theme~='ipn']{
  background:#1e293b;
  color:#fff;
  font-size:12.5px;
  line-height:1.45;
  border-radius:8px;
  box-shadow:0 8px 24px rgba(16,32,55,.18);
  z-index:5000;
}
.tippy-box[data-theme~='ipn'] .tippy-content{ padding:10px 12px; }
.tippy-box[data-theme~='ipn'] .tippy-arrow{ color:#1e293b; }
.ipn-input:focus,
.ipn-select:focus,
.ipn-textarea:focus{
  outline:none; border-color:var(--ipn-brand, var(--ipn-primary));
  box-shadow:var(--ipn-brand-ring, 0 0 0 3px rgba(47,98,196,.15));
}
.ipn-input::placeholder,
.ipn-textarea::placeholder{ color:var(--ipn-text-faint); }
.ipn-select{
  appearance:none;
  padding-right:34px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%238a94a2' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 10px center;
}
.ipn-form-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px 20px; }
/* Grillas de columnas fijas (orden visual predecible en formularios de alta/edici?n).
   Prefer? --2 / --3 sobre el auto-fit cuando quer?s controlar cu?ntos campos por fila. */
.ipn-form-grid--2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.ipn-form-grid--3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
/* Breakpoints: ver secci?n 21 (?1000 ? 2col en --3; ?700 ? 1col). */
/* Campo que ocupa toda la fila de la grilla (textareas, campos largos). */
.ipn-field--full{ grid-column:1 / -1; }
/* Campos con control de ancho fijo (fechas, horas, importes, c?digos cortos):
   evita que un input chico se estire a todo el ancho de la celda. */
.ipn-field--sm .ipn-input,
.ipn-field--sm .ipn-select{ width:auto; min-width:0; max-width:200px; }

/* jQuery UI Autocomplete ? look iPN2 (reemplaza el theme base "crudo").
   El widget es el est?ndar iPN2 para b?squedas remotas; ac? solo se restila el
   men? de sugerencias para que combine con el resto de la UI. */
.ui-autocomplete.ui-menu{
  position:absolute; /* AV: 2026-07-27: asegurar fuera de flujo (evita huecos si el theme no carga). */
  border:1px solid var(--ipn-border);
  border-radius:10px;
  background:var(--ipn-surface);
  box-shadow:0 8px 24px rgba(16,24,40,.12);
  padding:6px;
  max-height:280px; overflow-y:auto; overflow-x:hidden;
  font:inherit; font-size:13px; color:var(--ipn-text);
  z-index:4100;
}
.ui-autocomplete .ui-menu-item{ list-style:none; margin:0; }
.ui-autocomplete .ui-menu-item-wrapper{
  display:block; padding:8px 10px; border:0; margin:0; border-radius:8px;
  color:var(--ipn-text); line-height:1.35; cursor:pointer;
}
.ui-autocomplete .ui-menu-item-wrapper b{ font-weight:600; color:var(--ipn-text); }
.ui-autocomplete .ui-menu-item-wrapper.ui-state-active,
.ui-autocomplete .ui-menu-item-wrapper:hover{
  background:var(--ipn-primary-soft); color:var(--ipn-primary);
  border:0; margin:0;
}
.ui-autocomplete .ui-menu-item-wrapper.ui-state-active b{ color:var(--ipn-primary); }

/* AV: 2026-08-04: autoComplete.js (piloto customerAccessLog) ? listado 2 l?neas iPN2 */
.ipn-secure-wrap .autoComplete_wrapper,
.ipn-secure .autoComplete_wrapper{
  display:block; width:100%; position:relative;
}
.ipn-secure-wrap .autoComplete_wrapper > input,
.ipn-secure .autoComplete_wrapper > input{
  width:100%;
}
.ipn-secure-wrap .autoComplete_wrapper > ul,
.ipn-secure .autoComplete_wrapper > ul{
  position:absolute; left:0; right:0; z-index:4100;
  margin:4px 0 0; padding:6px;
  list-style:none;
  border:1px solid var(--ipn-border);
  border-radius:10px;
  background:var(--ipn-surface);
  box-shadow:0 8px 24px rgba(16,24,40,.12);
  max-height:280px; overflow-y:auto; overflow-x:hidden;
  font:inherit; font-size:13px; color:var(--ipn-text);
}
.ipn-secure-wrap .autoComplete_wrapper > ul > li,
.ipn-secure .autoComplete_wrapper > ul > li{
  margin:0; padding:8px 10px; border-radius:8px; cursor:pointer; line-height:1.35;
}
.ipn-secure-wrap .autoComplete_wrapper > ul > li:hover,
.ipn-secure-wrap .autoComplete_wrapper > ul > li[aria-selected="true"],
.ipn-secure .autoComplete_wrapper > ul > li:hover,
.ipn-secure .autoComplete_wrapper > ul > li[aria-selected="true"]{
  background:var(--ipn-primary-soft); color:var(--ipn-primary);
}
.ipn-ac__row{ display:flex; flex-direction:column; gap:2px; }
.ipn-ac__title{ font-weight:600; color:var(--ipn-text); }
.ipn-ac__sub{ font-size:12px; color:var(--ipn-text-muted, var(--ipn-text-3)); }
.ipn-secure-wrap .autoComplete_wrapper > ul > li:hover .ipn-ac__title,
.ipn-secure-wrap .autoComplete_wrapper > ul > li[aria-selected="true"] .ipn-ac__title,
.ipn-secure .autoComplete_wrapper > ul > li:hover .ipn-ac__title,
.ipn-secure .autoComplete_wrapper > ul > li[aria-selected="true"] .ipn-ac__title{
  color:var(--ipn-primary);
}

.ipn-form-section{ margin-bottom:22px; }
.ipn-form-section__title{
  font-size:14px; font-weight:600; color:var(--ipn-text);
  margin:0 0 14px; padding-bottom:8px; border-bottom:1px solid var(--ipn-hairline);
}

/* Toggle s?/no */
.ipn-toggle{ position:relative; display:inline-block; width:40px; height:22px; }
.ipn-toggle input{ opacity:0; width:0; height:0; }
.ipn-toggle__track{
  position:absolute; inset:0; cursor:pointer; border-radius:999px;
  background:var(--ipn-border-input); transition:background .15s ease;
}
.ipn-toggle__track::before{
  content:""; position:absolute; height:16px; width:16px; left:3px; top:3px;
  background:#fff; border-radius:50%; transition:transform .15s ease;
  box-shadow:0 1px 2px rgba(0,0,0,.25);
}
.ipn-toggle input:checked + .ipn-toggle__track{ background:var(--ipn-primary); }
.ipn-toggle input:checked + .ipn-toggle__track::before{ transform:translateX(18px); }

/* Mostrar/ocultar password */
.ipn-input-wrap{ position:relative; }
.ipn-input-wrap .ipn-input{ padding-left:38px; }
.ipn-input-wrap__icon{
  position:absolute; left:11px; top:50%; transform:translateY(-50%);
  font-size:18px; color:var(--ipn-text-muted); pointer-events:none;
}
.ipn-input-wrap__toggle{
  position:absolute; right:8px; top:50%; transform:translateY(-50%);
  border:0; background:none; color:var(--ipn-text-muted); cursor:pointer;
  line-height:0; padding:4px; border-radius:6px;
}
.ipn-input-wrap__toggle:hover{ color:var(--ipn-text); }

/* =====================================================================
   9. TABLA / GRILLA
   ===================================================================== */
.ipn-table-wrap{
  overflow-x:auto; -webkit-overflow-scrolling:touch;
  max-width:100%;
}
/* AV: 2026-07-31: Review 02 ? sin scroll vertical interno; sticky al viewport. */
.ipn-table{ width:100%; border-collapse:collapse; font-size:13px; }
.ipn-table thead th,
.ipn-table > tr > th,
.ipn-table > tbody > tr > th{
  text-align:left; font-size:11px; font-weight:600; text-transform:uppercase;
  letter-spacing:.05em; color:var(--ipn-text-3);
  background:var(--ipn-surface-soft); padding:10px 14px;
  border-bottom:1px solid var(--ipn-hairline); white-space:nowrap;
}
/* AV: 2026-07-31: Review 01/02 ? listado 11a (sticky viewport, 1 l?nea, chips, thumbs). */
.ipn-card--table{
  overflow:visible;
}
.ipn-card--table > .ipn-table-wrap{
  border-radius:12px 12px 0 0;
}
/* AV: 2026-08-27: Listado sin pager ? radius sin clippear scroll-x (#89; antes overflow:hidden). */
.ipn-card--table:not(:has(> .ipn-pager)) > .ipn-table-wrap{
  border-radius:var(--ipn-radius-card, 12px);
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-table--list thead th{
  position:sticky;
  top:0;
  z-index:2;
  background:#f7f9fc;
  font-size:10.5px;
  letter-spacing:.09em;
  color:#6b7685;
  padding:10px 12px;
}
.ipn-card--table .ipn-table--list thead th:first-child{
  border-top-left-radius:12px;
}
.ipn-card--table .ipn-table--list thead th:last-child{
  border-top-right-radius:12px;
}
/* AV: 2026-09-09: #500 - con card__head el thead no lleva radius superior (ya lo da el head). */
.ipn-card--table:has(> .ipn-card__head) > .ipn-table-wrap{
  border-radius:0;
}
.ipn-card--table:has(> .ipn-card__head) .ipn-table--list thead th:first-child,
.ipn-card--table:has(> .ipn-card__head) .ipn-table--list thead th:last-child{
  border-top-left-radius:0;
  border-top-right-radius:0;
}
.ipn-table--list tbody td{
  height:52px;
  max-height:52px;
  padding:0 12px;
  vertical-align:middle;
  border-bottom:1px solid #f0f3f7;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
/* AV: 2026-08-20: columna Acciones no debe clippear iconos (overflow:hidden del td). */
.ipn-table--list tbody td.is-center:has(.ipn-row-actions),
.ipn-table--list tbody td.ipn-table__th-actions,
.ipn-table--list tbody td.is-num.ipn-table__th-actions{
  overflow:visible;
  text-overflow:clip;
}
.ipn-table--list tbody td *{
  white-space:nowrap;
}
.ipn-table--list tbody tr:nth-child(even){ background:transparent; }
.ipn-table--list tbody tr:hover{ background:#f7f9fc; }
.ipn-table--list tbody tr:last-child td{ border-bottom:1px solid #f0f3f7; }
.ipn-table__th-code{ width:96px; }
/* AV: 2026-08-19: th y td de la misma columna comparten alineaci?n (vence thead th {left}). */
.ipn-table thead th.is-num,
.ipn-table tbody td.is-num,
.ipn-table thead th.ipn-table__th-num,
.ipn-table tbody td.ipn-table__num,
.ipn-table thead th.ipn-table__th-actions,
.ipn-table tbody td.ipn-table__th-actions{
  text-align:right;
}
.ipn-table thead th.is-center,
.ipn-table tbody td.is-center,
.ipn-table thead th.ipn-table__th-center,
.ipn-table thead th.ipn-table__th-thumb,
.ipn-table tbody td.ipn-table__th-center,
.ipn-table tbody td.ipn-table__th-thumb{
  text-align:center;
}
/* AV: 2026-08-19: columnas cortas abrazan el contenido; el aire va a Descripci?n. */
.ipn-table--list th.is-num,
.ipn-table--list td.is-num,
.ipn-table--list th.is-center:not(.ipn-table__th-thumb):not(.ipn-table__th-actions),
.ipn-table--list td.is-center:not(.ipn-table__th-thumb):not(.ipn-table__th-actions){
  width:1%;
  white-space:nowrap;
}
.ipn-table__th-actions{ width:92px; min-width:88px; }
.ipn-table__th-thumb{ width:64px; }
.ipn-table__code{
  width:96px;
  font-family:var(--ipn-font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);
  font-size:12.5px;
  font-variant-numeric:tabular-nums;
  color:#6b7685;
}
.ipn-table__desc{ max-width:280px; }
.ipn-table__desc-link{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:13.5px;
  font-weight:600;
  color:var(--ipn-brand, #2f62c4);
  text-decoration:none;
}
.ipn-table__desc-link:hover{ text-decoration:underline; }
.ipn-table__cell--ellip{
  max-width:220px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ipn-table__num{
  font-family:var(--ipn-font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);
  font-size:13px;
  font-variant-numeric:tabular-nums;
  color:#1e2733;
}
.ipn-table__chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:26px;
  padding:2px 8px;
  border-radius:20px;
  background:var(--ipn-brand-soft, #e8eef8);
  font-family:var(--ipn-font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);
  font-size:12px;
  color:var(--ipn-brand, #2f62c4);
  font-variant-numeric:tabular-nums;
}
.ipn-table__chip--muted{
  color:#a9b3c1;
  background:#eef2f7;
}
.ipn-table__acct-code{
  font-family:var(--ipn-font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);
  font-size:12.5px;
  color:#6b7685;
  margin-right:6px;
}
.ipn-table__acct-name{ font-size:13px; color:#1e2733; }
.ipn-empty{ color:#c2c9d4; }
.ipn-thumb{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  border-radius:7px;
  background:#fff;
  border:1px solid #e2e7ef;
  overflow:hidden;
  vertical-align:middle;
  position:relative;
}
.ipn-thumb img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
/* AV: 2026-07-31: Review 02 ? placeholder solo tras onerror (imagen en DB pero URL rota). */
.ipn-thumb.is-empty{
  background:#eef2f7;
}
.ipn-thumb.is-empty::after{
  content:"image";
  font-family:"Material Symbols Rounded";
  font-size:18px;
  color:#9aa5b4;
  font-variation-settings:"FILL" 0, "wght" 400, "GRAD" 0, "opsz" 20;
  line-height:1;
}

/* AV: 2026-07-31: Review 02 ? empty-state gen?rico (11b). */
.ipn-empty-state{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  padding:50px 24px;
  gap:10px;
}
.ipn-empty-state__icon{
  width:60px;
  height:60px;
  border-radius:15px;
  background:#f2f5fa;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-bottom:6px;
}
.ipn-empty-state__icon .material-symbols-rounded{
  font-size:29px;
  color:#9aa5b4;
}
.ipn-empty-state__title{
  margin:0;
  font-size:17px;
  font-weight:600;
  color:#16294d;
  line-height:1.3;
}
.ipn-empty-state__text{
  margin:0;
  font-size:13.5px;
  color:#6b7685;
  max-width:430px;
  text-wrap:pretty;
  line-height:1.45;
}
.ipn-empty-state__actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin-top:10px;
}

/* AV: 2026-07-31: Review 02 ? input con hint interno + filtros flex. */
.ipn-input-affix{
  display:flex;
  align-items:center;
  gap:9px;
  height:42px;
  padding:0 13px;
  border:1px solid #d9dfe9;
  border-radius:9px;
  background:#fff;
  box-sizing:border-box;
  width:100%;
  max-width:560px;
}
.ipn-input-affix:focus-within{
  border-color:var(--ipn-brand, #2f62c4);
  box-shadow:var(--ipn-brand-ring, 0 0 0 3px rgba(47,98,196,.15));
}
.ipn-input-affix__icon{
  font-size:20px !important;
  color:#9aa5b4;
  flex:none;
}
.ipn-input--bare{
  border:0;
  background:transparent;
  height:100%;
  flex:1;
  min-width:0;
  padding:0;
  outline:0;
  font:inherit;
  color:inherit;
  box-shadow:none;
}
.ipn-input-affix__hint{
  flex:none;
  font-size:11px;
  color:#9aa5b4;
  white-space:nowrap;
  opacity:1;
  transition:opacity .15s ease;
  pointer-events:none;
}
.ipn-input-affix__hint.is-hidden{
  display:none;
}
@media (prefers-reduced-motion:reduce){
  .ipn-input-affix__hint{ transition:none; }
}
/* AV: 2026-08-13: por si queda type=search ? oculta cancel nativo (rompe affix). */
.ipn-input-affix input[type="search"]::-webkit-search-cancel-button,
.ipn-input-affix input[type="search"]::-webkit-search-decoration{
  -webkit-appearance:none;
  appearance:none;
  display:none;
}
.ipn-field--grow{
  flex:1 1 280px;
  min-width:200px;
  max-width:560px;
}
.ipn-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;
}
/* AV: 2026-07-31: dropdown jQuery UI alineado a iPN2 */
/* AV: 2026-08-13: z-index por encima del shell/nav; box-sizing para outerWidth del affix. */
.ui-autocomplete,
.ipn-autocomplete.ui-autocomplete{
  font-family:inherit;
  border-radius:10px;
  border-color:#d9dfe9;
  box-shadow:0 12px 28px rgba(20,32,56,.14);
  z-index:4100;
  max-height:240px;
  overflow-y:auto;
  overflow-x:hidden;
  box-sizing:border-box;
}
.ui-menu-item-wrapper.ui-state-active{
  background:var(--ipn-brand, #2f62c4);
  border-color:var(--ipn-brand, #2f62c4);
  color:var(--ipn-brand-fg, #fff);
}
/* AV: 2026-08-25: Sin sticky left en Descripci?n (mobile): bloqueaba scroll-x del listado. */
@media (max-width:899px){
  .ipn-table--list .ipn-table__th-desc,
  .ipn-table--list .ipn-table__desc{
    position:static;
    left:auto;
    z-index:auto;
    background:transparent;
  }
  .ipn-table--list thead .ipn-table__th-desc{
    z-index:auto;
    background:transparent;
    top:auto;
  }
}
.ipn-table tbody td,
.ipn-table > tr > td,
.ipn-table > tbody > tr > td{
  padding:9px 14px; border-bottom:1px solid var(--ipn-hairline);
  color:var(--ipn-text); vertical-align:middle;
}
.ipn-table tbody tr:nth-child(even){ background:var(--ipn-surface-soft-2); }
.ipn-table tbody tr:hover{ background:var(--ipn-zebra); }
.ipn-table tbody tr:last-child td{ border-bottom:0; }
/* AV: 2026-08-03: Filas deshabilitadas (PVF isDeleted) ? visible en shell iPN2. */
.ipn-table tbody tr.ipn-row--disabled td{
  color:var(--ipn-text-muted);
  background:#f7f8fa;
}
.ipn-table tbody tr.ipn-row--disabled:nth-child(even) td{ background:#f1f3f6; }
.ipn-table tbody tr.ipn-row--disabled:hover td{ background:#eceff3; }
.ipn-table tbody tr.ipn-row--disabled a{ color:var(--ipn-text-muted); }
.pvf-status-badge{
  display:inline-flex; align-items:center; gap:4px;
  font-size:11px; font-weight:700; letter-spacing:.02em;
  text-transform:uppercase; white-space:nowrap; vertical-align:middle;
}
.pvf-status-badge .material-symbols-rounded{ font-size:15px; line-height:1; }
.pvf-status-badge--danger{ color:var(--ipn-danger); }
.pvf-status-badge--success{ color:var(--ipn-success); }
.ipn-table .pvf-status-badge{ margin-left:6px; }
.ipn-table--fit{
  width:auto; max-width:100%;
  table-layout:auto;
}
.ipn-table--fit th,
.ipn-table--fit td{
  padding-right:24px;
  white-space:nowrap;
}
/* Tablas cortas (p.ej. Estado del servicio): card y wrap se adaptan al contenido */
.ipn-secure-wrap .ipn-card--hug,
.ipn-secure .ipn-card--hug{
  width:max-content;
  max-width:100%;
}
.ipn-secure-wrap .ipn-card--hug .ipn-table-wrap,
.ipn-secure .ipn-card--hug .ipn-table-wrap{
  width:max-content;
  max-width:100%;
}
.ipn-secure-wrap .ipn-table.ipn-table--fit,
.ipn-secure .ipn-table.ipn-table--fit{
  width:auto !important;
}
.ipn-table .ipn-num{ text-align:right; font-family:var(--ipn-font-mono); font-variant-numeric:tabular-nums; white-space:nowrap; }
.ipn-secure-wrap .ipn-table a:not(.ipn-row-action):not(.ipn-btn),
.ipn-secure .ipn-table a:not(.ipn-row-action):not(.ipn-btn){
  font-weight:400;
}
.ipn-cell-strong{ font-weight:600; color:var(--ipn-text); }
.ipn-cell-sub{ font-size:11.5px; color:var(--ipn-text-3); margin-top:2px; }
.ipn-check{ width:15px; height:15px; accent-color:var(--ipn-primary); cursor:pointer; }
.ipn-check-row{
  display:inline-flex; align-items:center; gap:8px;
  font-size:13px; color:var(--ipn-text-2); cursor:pointer;
  user-select:none; white-space:nowrap;
}
.ipn-check-row .ipn-check{ flex:0 0 auto; }
/* AV: 2026-08-03: Checkbox en grilla de form ? alinear con altura de input/readonly. */
.ipn-field > .ipn-check-row{
  min-height:var(--ipn-control-h);
}

/* =====================================================================
   10. BADGES / ESTADOS
   ===================================================================== */
.ipn-badge{
  display:inline-flex; align-items:center;
  height:20px; padding:0 9px; border-radius:var(--ipn-radius-pill);
  font-size:11px; font-weight:600; line-height:1; white-space:nowrap;
}
/* Tipo de cliente */
.ipn-badge--mayorista{ background:#e9eff9; color:#33507b; }
.ipn-badge--minorista{ background:#eef0f3; color:#55606f; }
.ipn-badge--ecommerce{ background:#e4f2ec; color:#1a7a4f; }
.ipn-badge--sucursal{ background:#efe9f7; color:#6a4a9c; }
.ipn-badge--franquicia{ background:#f7efdf; color:#946318; }
/* Estado */
.ipn-badge--success{ background:var(--ipn-success-chip-bg); color:var(--ipn-success-chip-fg); }
.ipn-badge--danger{ background:var(--ipn-danger-chip-bg); color:var(--ipn-danger-chip-fg); }
.ipn-badge--warning{ background:var(--ipn-warning-chip-bg); color:var(--ipn-warning-ink); }
.ipn-badge--neutral{ background:#eef0f3; color:var(--ipn-text-2); }

/* Avatar cuadrado con iniciales */
.ipn-avatar{
  width:34px; height:34px; border-radius:10px;
  background:var(--ipn-primary); color:#fff;
  display:inline-flex; align-items:center; justify-content:center;
  font-size:12px; font-weight:600; letter-spacing:.02em;
}
.ipn-avatar--sm{ width:28px; height:28px; border-radius:8px; font-size:11px; }

/* =====================================================================
   11. PAGINADO
   ===================================================================== */
.ipn-pager{
  display:flex; align-items:center; gap:14px; flex-wrap:wrap;
  padding:12px 16px; border-top:1px solid var(--ipn-hairline);
  font-size:12.5px; color:var(--ipn-text-3);
}
.ipn-pager__spacer{ margin-left:auto; }
/* AV: 2026-08-20: ?P?gina X de Y? + botones siempre a la derecha del footer. */
.ipn-pager__controls{
  display:flex;
  align-items:center;
  gap:4px;
  margin-left:auto;
}
/* AV: 2026-08-20: botones de p?gina = color de personalizaci?n (--ipn-brand). */
.ipn-pager__btn{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:32px; height:32px; padding:0 8px;
  border:1px solid var(--ipn-brand, var(--ipn-primary, #2f62c4));
  border-radius:8px;
  background:var(--ipn-brand, var(--ipn-primary, #2f62c4));
  color:var(--ipn-brand-fg, #fff);
  cursor:pointer; line-height:0;
  text-decoration:none;
}
.ipn-pager__btn .material-symbols-rounded{
  color:inherit;
  font-size:20px;
}
.ipn-pager__btn:hover:not(:disabled){
  background:var(--ipn-brand-hover, var(--ipn-primary-hover, #2a58b0));
  border-color:var(--ipn-brand-hover, var(--ipn-primary-hover, #2a58b0));
  color:var(--ipn-brand-fg, #fff);
  text-decoration:none;
}
.ipn-pager__btn:disabled{
  opacity:.45;
  cursor:not-allowed;
}
a.ipn-pager__btn,
a.ipn-pager__btn:link,
a.ipn-pager__btn:visited,
a.ipn-pager__btn:hover,
a.ipn-pager__btn:active{
  color:var(--ipn-brand-fg, #fff) !important;
  text-decoration:none !important;
}
/* AV: 2026-08-19: indicador de p?gina actual tematizado. */
.ipn-pager__page b{
  color:var(--ipn-brand, #2f62c4);
  font-weight:700;
}

/* =====================================================================
   12. INFO / TIPS
   ===================================================================== */
.ipn-info-box{
  background:var(--ipn-info-bg); border:1px solid var(--ipn-info-border);
  border-radius:10px; padding:14px 16px; display:flex; gap:10px;
  font-size:12.5px; color:var(--ipn-text-2);
}
.ipn-info-box .material-symbols-rounded{ color:var(--ipn-primary); font-size:20px; flex:0 0 auto; }

/* =====================================================================
   13. KPI / DASHBOARD (Command Center 7a)
   ===================================================================== */
/* AV: 2026-07-19: Stat-cards al contenido (sin min-height); grid no estira filas. */
.ipn-kpi-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:14px;
  align-items:start;
  grid-auto-rows:min-content;
}
.ipn-kpi{
  padding:16px 18px;
  background:var(--ipn-surface);
  border:1px solid var(--ipn-hairline);
  border-radius:var(--ipn-radius-card);
  box-shadow:var(--ipn-shadow-card);
  display:flex; flex-direction:column;
  height:auto; min-height:0;
  box-sizing:border-box;
}
.ipn-kpi__label{ display:flex; align-items:center; gap:6px; font-size:12px; font-weight:500; color:var(--ipn-text-3); }
.ipn-kpi__label .material-symbols-rounded{ font-size:16px; color:var(--ipn-text-muted); }
.ipn-kpi__value{
  font-size:28px; font-weight:700; font-family:var(--ipn-font-mono); color:var(--ipn-text);
  margin:8px 0 4px; letter-spacing:-.01em; line-height:1;
  overflow-wrap:anywhere;
}
.ipn-kpi__sub{ font-size:12px; color:var(--ipn-text-3); margin-bottom:0; }
.ipn-kpi__delta{ font-size:12px; font-weight:600; display:inline-flex; align-items:center; gap:3px; }
.ipn-kpi__delta.is-up{ color:var(--ipn-success); }
.ipn-kpi__delta.is-down{ color:var(--ipn-danger); }
.ipn-kpi__status{
  display:inline-flex; align-items:center; gap:5px;
  margin-top:12px; font-size:12px; font-weight:600;
}
.ipn-kpi__status .material-symbols-rounded{ font-size:16px; }
.ipn-kpi__status.is-ok{ color:var(--ipn-success-chip-fg); }
.ipn-kpi__status.is-warn{ color:var(--ipn-warning); }
.ipn-kpi__status.is-none{ color:var(--ipn-text-muted); font-weight:500; }
.ipn-kpi__goal{ font-size:11.5px; color:var(--ipn-text-muted); margin-top:4px; }

/* KPI destacado ? Objetivo del mes */
.ipn-kpi--featured{
  background:linear-gradient(145deg,#16294d 0%,#1e3a66 55%,var(--ipn-brand, #2f62c4) 140%);
  border-color:transparent; color:#fff;
}
.ipn-kpi--featured .ipn-kpi__label,
.ipn-kpi--featured .ipn-kpi__sub,
.ipn-kpi--featured .ipn-kpi__goal{ color:rgba(255,255,255,.72); }
.ipn-kpi--featured .ipn-kpi__value{ color:#fff; font-size:32px; }
.ipn-kpi__progress{
  margin-top:14px; height:8px; border-radius:999px;
  background:rgba(255,255,255,.18); overflow:hidden;
}
.ipn-kpi__progress > span{
  display:block; height:100%; border-radius:999px;
  background:#fff; box-shadow:0 0 0 1px rgba(255,255,255,.2);
}

/* Chart card */
.ipn-chart-card{ padding:0; overflow:hidden; }
.ipn-chart-card__head{
  display:flex; align-items:center; gap:10px;
  padding:14px 18px; border-bottom:1px solid var(--ipn-hairline);
}
.ipn-chart-card__title{ font-size:14px; font-weight:600; color:var(--ipn-text); margin:0; }
.ipn-chart-card__meta{ margin-left:auto; font-size:12px; color:var(--ipn-text-3); }
.ipn-chart-card__body{ padding:16px 18px 18px; position:relative; min-height:220px; }
.ipn-chart-toggle{ display:inline-flex; gap:4px; background:var(--ipn-surface-soft); border-radius:8px; padding:3px; }
.ipn-chart-toggle button{
  border:0; background:transparent; height:28px; padding:0 12px; border-radius:6px;
  font:inherit; font-size:12px; font-weight:600; color:var(--ipn-text-3); cursor:pointer;
}
.ipn-chart-toggle button.is-active{ background:var(--ipn-sidebar-bg); color:#fff; }

.ipn-quick-tile{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
  padding:16px 10px; text-align:center; color:var(--ipn-text-2);
  background:var(--ipn-surface); border:1px solid var(--ipn-hairline); border-radius:10px;
  font-size:12.5px; font-weight:500; cursor:pointer; transition:border-color .12s,box-shadow .12s;
}
.ipn-quick-tile:hover{ border-color:var(--ipn-primary); box-shadow:var(--ipn-shadow-card); color:var(--ipn-text); text-decoration:none; }
.ipn-quick-tile .material-symbols-rounded{ font-size:22px; color:var(--ipn-primary); }

/* Tabs ? AV: 2026-07-17: subrayado flush con box-shadow inset.
   AV: 2026-08-30: #133 ? chrome can?nico global (borde + radius superior + card pegado);
   appearance en __item (UA button mobile). Misma UI en todos los m?dulos; no scope por m?dulo. */
.ipn-tabs{
  display:flex; align-items:flex-end; gap:2px; padding:0 14px;
  margin-bottom:0;
  background:var(--ipn-surface);
  border:1px solid var(--ipn-hairline, #e2e7ef);
  border-bottom:0;
  border-radius:var(--ipn-radius-card, 12px) var(--ipn-radius-card, 12px) 0 0;
  box-shadow:inset 0 -1px 0 #eef1f6;
  overflow-x:auto; -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
}
/* AV: 2026-09-04: #373 - paneles de tab (2o+) sin gap .ipn-card+.ipn-card; flush con tabs. */
.ipn-tabs + .ipn-card,
.ipn-tabs + .ipn-card--table,
.ipn-tabs ~ .ipn-card[data-panel],
.ipn-tabs ~ .ipn-card[data-ipn-panel]{
  margin-top:0;
  border-top-left-radius:0;
  border-top-right-radius:0;
}
.ipn-tabs__item{
  position:relative; display:inline-flex; align-items:center; gap:7px;
  padding:14px 16px; border:0; background:none; cursor:pointer;
  appearance:none; -webkit-appearance:none;
  font:inherit; font-size:14px; font-weight:600; color:#8493a6;
  text-decoration:none !important; white-space:nowrap; box-shadow:none;
}
.ipn-tabs a.ipn-tabs__item:link,
.ipn-tabs a.ipn-tabs__item:visited{ color:#8493a6 !important; text-decoration:none !important; }
.ipn-tabs a.ipn-tabs__item:hover{ color:var(--ipn-text) !important; }
.ipn-tabs a.ipn-tabs__item.is-active,
.ipn-tabs a.ipn-tabs__item.active{ color:#1d4e86 !important; }
.ipn-tabs__item:hover{ color:var(--ipn-text); }
.ipn-tabs__item.is-active,
.ipn-tabs__item.active{
  color:#1d4e86; font-weight:600;
  box-shadow:inset 0 -2px 0 #1d4e86;
}
.ipn-tabs__item.is-active::after,
.ipn-tabs__item.active::after{ content:none; display:none; }

/* Auditor?a / meta de alta-modificaci?n ? AV: 2026-07-17: franja plana (patr?n customerDetails) */
.ipn-audit{
  display:flex; flex-wrap:wrap; gap:8px 28px;
  margin-top:18px; padding:14px 2px 0;
  border-top:1px solid #e2e7ef;
}
.ipn-audit__item{
  display:flex; gap:8px; align-items:flex-start;
  flex:1 1 260px; min-width:0;
  font-size:12.5px; color:#8493a6; line-height:1.45;
  padding:0; border:0; background:none; border-radius:0;
}
.ipn-audit__item .material-symbols-rounded{
  color:#8493a6; font-size:18px; flex:0 0 auto; margin-top:1px;
}
.ipn-audit__item b,
.ipn-audit__item strong,
.ipn-audit__body strong{ color:#5b6b80; font-weight:600; }
.ipn-audit__body{ font-size:inherit; color:inherit; line-height:inherit; }

/* Legacy cnt_auditoria dentro del shell secure ? mismo look plano */
.ipn-secure-wrap .cnt_auditoria,
.ipn-secure-wrap .cnt_auditoria.cnt_auditoria-custom{
  display:flex !important; flex-wrap:wrap; align-items:flex-start; gap:8px 28px;
  margin:18px 0 0 !important; padding:14px 2px 0 !important; width:auto !important; height:auto !important;
  background:transparent !important; border:0 !important; border-top:1px solid #e2e7ef !important;
  border-radius:0 !important; position:static !important;
}
.ipn-secure-wrap .cnt_auditoria_izq,
.ipn-secure-wrap .cnt_auditoria_izq.cnt_auditoria_izq-custom{
  display:flex; align-items:flex-start; gap:8px;
  flex:1 1 260px; min-width:0; width:auto !important;
  font-size:12.5px; color:#8493a6; line-height:1.45;
}
.ipn-secure-wrap .cnt_auditoria_izq span{ line-height:1.45; }
.ipn-secure-wrap .cnt_auditoria_izq font{ font-weight:600; color:#5b6b80; }
.ipn-secure-wrap .cnt_auditoria img{ width:18px; height:18px; margin-top:1px; opacity:.75; }
.ipn-secure-wrap .cnt_auditoria .img_separador,
.ipn-secure-wrap .cnt_auditoria .img_separator{ display:none !important; }

/* Save bar (alta/edici?n) */
.ipn-save-bar{
  position:sticky; bottom:0; z-index:30;
  display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  padding:12px 20px; background:var(--ipn-surface);
  border-top:1px solid var(--ipn-hairline); box-shadow:0 -4px 18px rgba(30,45,70,.06);
}
.ipn-save-bar__hint{ font-size:12px; color:var(--ipn-text-muted); margin-right:auto; }
.ipn-save-bar__actions{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }

/* Panel cuenta corriente (detalle) */
.ipn-acct-panel{ overflow:hidden; }
.ipn-acct-panel__hero{
  background:linear-gradient(145deg,#16294d 0%,var(--ipn-brand, #2f62c4) 120%);
  color:#fff; padding:18px 18px 16px;
}
.ipn-acct-panel__hero .ipn-muted{ color:rgba(255,255,255,.7); }
.ipn-acct-panel__hero .ipn-kpi__value{ color:#fff; margin:4px 0 0; }
.ipn-acct-panel__body{ padding:14px 16px; }
.ipn-acct-row{
  display:flex; justify-content:space-between; gap:10px;
  padding:10px 0; border-bottom:1px solid var(--ipn-hairline); font-size:13px;
}
.ipn-acct-row:last-child{ border-bottom:0; }
.ipn-acct-row span{ color:var(--ipn-text-3); }
.ipn-acct-row b{ font-family:var(--ipn-font-mono); font-weight:600; }

/* AV: 2026-07-19: KPI breakpoints ? 5 ? 3 (?1000) ? 2 (?700) ? 1 (?380).
   Incluye --panel: si el modificador va DESPU?S sin media, pisa el responsive. */

/* =====================================================================
   14. GRILLA ? TARJETAS (fallback m?vil de tablas)
   ===================================================================== */
.ipn-card-list{ display:none; flex-direction:column; gap:12px; }
.ipn-data-card{
  background:var(--ipn-surface); border:1px solid var(--ipn-hairline);
  border-radius:var(--ipn-radius-card); box-shadow:var(--ipn-shadow-card);
  padding:14px 16px;
}
.ipn-data-card__top{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
.ipn-data-card__code{ font-family:var(--ipn-font-mono); font-size:12px; color:var(--ipn-text-3); }
.ipn-data-card__title{ font-size:14px; font-weight:600; color:var(--ipn-text); margin:8px 0 2px; }
.ipn-data-card__meta{ font-size:11.5px; color:var(--ipn-text-3); }
.ipn-data-card__foot{
  display:flex; align-items:flex-end; justify-content:space-between;
  margin-top:12px; padding-top:10px; border-top:1px solid var(--ipn-hairline);
}
.ipn-data-card__stat span{ display:block; font-size:10.5px; color:var(--ipn-text-muted); text-transform:uppercase; letter-spacing:.04em; }
.ipn-data-card__stat b{ font-family:var(--ipn-font-mono); font-size:14px; }

/* FAB */
.ipn-fab{
  display:none; position:fixed; right:18px; bottom:78px; z-index:45;
  width:52px; height:52px; border-radius:50%;
  background:var(--ipn-primary); color:#fff; border:0; cursor:pointer;
  box-shadow:var(--ipn-shadow-elev); align-items:center; justify-content:center;
}
.ipn-fab .material-symbols-rounded{ font-size:26px; }

/* Bottom nav (m?vil) */
.ipn-bottom-nav{
  display:none; position:fixed; inset:auto 0 0 0; z-index:50;
  height:58px; background:var(--ipn-surface); border-top:1px solid var(--ipn-hairline);
  align-items:stretch;
}
.ipn-bottom-nav__item{
  flex:1 1 0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px;
  color:var(--ipn-text-muted); font-size:10.5px; font-weight:500;
}
.ipn-bottom-nav__item .material-symbols-rounded{ font-size:22px; }
.ipn-bottom-nav__item.is-active{ color:var(--ipn-primary); }

/* =====================================================================
   15. LOGIN (pantalla sin shell)
   ===================================================================== */
.ipn-login{
  min-height:100vh; min-height:100dvh;
  display:flex; align-items:center; justify-content:center;
  background:#eef1f6; padding:24px;
  font-family:var(--ipn-font);
  font-size:13px;
  color:var(--ipn-text);
  -webkit-font-smoothing:antialiased;
  box-sizing:border-box;
}
.ipn-login *,
.ipn-login *::before,
.ipn-login *::after{ box-sizing:border-box; }
.ipn-login,
.ipn-login input,
.ipn-login button,
.ipn-login a,
.ipn-login label,
.ipn-login p,
.ipn-login h1,
.ipn-login h2,
.ipn-login span:not(.material-symbols-rounded){
  font-family:var(--ipn-font) !important;
}
.ipn-login__card{
  display:grid; grid-template-columns:1fr 1fr; width:100%; max-width:820px;
  background:var(--ipn-surface); border-radius:16px; overflow:hidden;
  box-shadow:var(--ipn-shadow-elev);
}
/* AV: 2026-07-18: panel izquierdo del login = slider de banners + link iPN.com.ar */
.ipn-login__brand{
  position:relative;
  padding:0;
  min-height:100%;
  background:#45709b;
  color:#fff;
  overflow:hidden;
}
.ipn-login__slider,
.ipn-login__slides{
  position:relative;
  width:100%;
  height:100%;
  min-height:420px;
}
.ipn-login__slide{
  position:absolute;
  inset:0;
  opacity:0;
  transition:opacity .55s ease;
  pointer-events:none;
}
.ipn-login__slide.is-active{
  opacity:1;
  pointer-events:auto;
  z-index:1;
}
.ipn-login__slide img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  opacity:.85;
}
.ipn-login__slider-caption{
  position:absolute;
  left:0; right:0; bottom:48px;
  z-index:2;
  display:flex;
  justify-content:center;
  pointer-events:none;
}
.ipn-login__domain{
  pointer-events:auto;
  color:#fff !important;
  font-weight:600;
  font-size:20px;
  text-decoration:none;
  text-shadow:0 1px 3px rgba(0,0,0,.35);
  letter-spacing:.01em;
}
.ipn-login__domain:hover{ text-decoration:underline; }
.ipn-login__slider-dots{
  position:absolute;
  left:0; right:0; bottom:18px;
  z-index:2;
  display:flex;
  justify-content:center;
  gap:7px;
}
.ipn-login__slider-dot{
  width:6px; height:6px; padding:0; border:0;
  border-radius:50%;
  background:rgba(255,255,255,.45);
  cursor:pointer;
}
.ipn-login__slider-dot.is-active{
  width:18px;
  border-radius:6px;
  background:#fff;
}
.ipn-login__form{
  padding:38px 34px; display:flex; flex-direction:column; min-width:0; overflow:hidden;
}
.ipn-login__form form{
  min-width:0; width:100%; max-width:100%;
  display:flex; flex-direction:column; flex:1 1 auto;
}
.ipn-login__form h1{ font-size:20px; font-weight:700; margin:0 0 4px; color:var(--ipn-text); }
.ipn-login__form .ipn-page-subtitle{ margin-bottom:22px; color:var(--ipn-text-3); font-size:12.5px; }
.ipn-login__form .ipn-field{ width:100%; max-width:100%; min-width:0; }
.ipn-login__form .ipn-input-wrap{ width:100%; max-width:100%; min-width:0; }
.ipn-login__form .ipn-input{
  display:block;
  width:100%; max-width:100%; min-width:0;
  height:var(--ipn-control-h);
  padding:0 12px 0 38px;
  box-sizing:border-box;
}
.ipn-login__form .ipn-input-wrap .ipn-input{ padding-right:42px; }
.ipn-login__form .ipn-btn,
.ipn-login__form .googleButton{ width:100%; max-width:100%; box-sizing:border-box; }
.ipn-login__row{ display:flex; align-items:center; justify-content:space-between; margin:14px 0 18px; font-size:12.5px; width:100%; }
.ipn-divider{ display:flex; align-items:center; gap:12px; color:var(--ipn-text-muted); font-size:11.5px; margin:18px 0; width:100%; }
.ipn-divider::before,.ipn-divider::after{ content:""; flex:1; height:1px; background:var(--ipn-hairline); }
.ipn-login__foot{ margin-top:auto; padding-top:20px; display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; font-size:11px; color:var(--ipn-text-muted); width:100%; }
/* AV: 2026-07-19: Loader post-login ? viewport completo + card centrado (100dvh). */
.ipn-login__loading{
  display:none;
  position:fixed; inset:0; z-index:50;
  min-height:100vh; min-height:100dvh;
  align-items:center; justify-content:center;
  padding:24px;
  background:#eef1f6;
  box-sizing:border-box;
}
.ipn-login__loading.d-flex{ display:flex !important; }
.ipn-login__loading-card{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:16px;
  width:100%; max-width:420px; margin:0 auto;
  padding:40px 28px;
  background:#fff;
  border-radius:16px;
  box-shadow:0 8px 30px rgba(16,32,55,.10);
  text-align:center;
  box-sizing:border-box;
}
.ipn-login__loading-logo{
  display:block; height:36px; width:auto; max-width:160px;
  object-fit:contain; margin:0 auto;
}
.ipn-login__spinner{
  width:36px; height:36px; border-radius:50%;
  border:3px solid #e2e7ef; border-top-color:#1d4e86;
  animation:ipnLoginSpin .7s linear infinite;
}
@keyframes ipnLoginSpin{ to{ transform:rotate(360deg); } }
.ipn-login__loading-title{
  margin:0;
  font-size:16px; font-weight:700;
  color:#1d4e86; line-height:1.25;
}
.ipn-login__loading-status{
  margin:0;
  min-height:1.4em;
  max-width:100%;
  font-size:13.5px; font-weight:400; line-height:1.4;
  color:#8493a6;
  opacity:1;
  transition:opacity .16s ease;
}
.ipn-login__loading-status.is-fading{ opacity:0; }
.ipn-login__loading-dots{
  display:inline;
  margin-left:.15em;
}
.ipn-login__loading-dots span{
  opacity:.15;
  animation:ipnLoginDot 1s infinite;
}
.ipn-login__loading-dots span:nth-child(2){ animation-delay:.18s; }
.ipn-login__loading-dots span:nth-child(3){ animation-delay:.36s; }
@keyframes ipnLoginDot{
  0%, 20%{ opacity:.15; }
  35%, 55%{ opacity:1; }
  70%, 100%{ opacity:.15; }
}
/* AV: 2026-08-10: notifications.asp ? aviso obligatorio post-login (scope .ipn-notif) */
/* AV: 2026-08-11: Contener HTML legacy del body (plantillas con tablas/anchos fijos) ? evita corrimiento a la derecha. */
.ipn-notif{
  align-items:flex-start;
  justify-content:center;
  padding:28px 16px 40px;
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}
.ipn-notif .d-none{ display:none !important; }
.ipn-notif__card{
  width:100%;
  max-width:920px;
  margin:0 auto;
  background:var(--ipn-surface);
  border-radius:16px;
  box-shadow:var(--ipn-shadow-elev);
  padding:28px 28px 20px;
  box-sizing:border-box;
  min-width:0;
  overflow-x:hidden;
}
.ipn-notif form{ min-width:0; width:100%; max-width:100%; }
.ipn-notif__brand{ margin:0 0 18px; }
.ipn-notif__logo{
  display:block;
  height:34px;
  width:auto;
  max-width:160px;
  object-fit:contain;
}
.ipn-notif__head{ margin:0 0 16px; }
.ipn-notif__head h1{
  margin:0 0 6px;
  font-size:22px;
  font-weight:700;
  color:var(--ipn-text);
  line-height:1.25;
}
.ipn-notif__head .ipn-page-subtitle{
  margin:0;
  color:var(--ipn-text-3);
  font-size:13px;
  line-height:1.45;
}
.ipn-notif__body{
  margin:0 0 20px;
  padding:16px 18px;
  border:1px solid var(--ipn-border);
  border-radius:12px;
  background:var(--ipn-surface-soft);
  color:var(--ipn-text);
  font-size:13.5px;
  line-height:1.55;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  max-width:100%;
  min-width:0;
  overflow-wrap:anywhere;
}
.ipn-notif__body *,
.ipn-notif__body *::before,
.ipn-notif__body *::after{ box-sizing:border-box; }
.ipn-notif__body table{
  width:100% !important;
  max-width:100% !important;
  border-collapse:collapse;
  table-layout:fixed;
  margin-left:auto !important;
  margin-right:auto !important;
}
.ipn-notif__body td,
.ipn-notif__body th{
  max-width:100%;
  word-wrap:break-word;
  overflow-wrap:anywhere;
}
.ipn-notif__body img{
  max-width:100% !important;
  height:auto !important;
  display:block;
  float:none !important;
}
.ipn-notif__body a{ color:var(--ipn-primary); }
.ipn-notif__body p,
.ipn-notif__body li,
.ipn-notif__body td,
.ipn-notif__body span,
.ipn-notif__body font,
.ipn-notif__body div{
  font-family:var(--ipn-font) !important;
  max-width:100%;
}
.ipn-notif__body h1,
.ipn-notif__body h2,
.ipn-notif__body h3,
.ipn-notif__body h4{
  font-family:var(--ipn-font) !important;
  color:var(--ipn-text);
  line-height:1.3;
  margin:0 0 10px;
}
.ipn-notif__contact{ margin:0 0 8px; }
.ipn-notif__contact .ipn-check-row{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin:0 0 14px;
  font-size:14px;
  font-weight:600;
  color:var(--ipn-text);
  cursor:pointer;
}
.ipn-notif__contact-fields{ margin:0 0 8px; }
.ipn-notif__actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:10px;
  margin-top:22px;
  padding-top:4px;
}
.ipn-notif__actions .ipn-btn--secondary{ margin-right:auto; }
.ipn-notif__actions .ipn-btn{ min-width:140px; }
.ipn-notif__foot{
  margin-top:24px;
  padding-top:16px;
  border-top:1px solid var(--ipn-hairline);
  width:100%;
}
.ipn-notif__foot a{ color:inherit; text-decoration:none; }
.ipn-notif__foot a:hover{ text-decoration:underline; color:var(--ipn-primary); }
.ipn-notif__legal{
  display:flex;
  gap:8px;
  justify-content:flex-end;
  flex-wrap:wrap;
  font-size:11px;
  color:var(--ipn-text-muted);
  margin-top:8px;
  width:100%;
}
.ipn-notif__legal a{ color:inherit; text-decoration:none; }
.ipn-notif__legal a:hover{ text-decoration:underline; color:var(--ipn-primary); }
@media (max-width:700px){
  .ipn-notif{ padding:16px 12px 28px; }
  .ipn-notif__card{ padding:18px 14px 16px; border-radius:14px; }
  .ipn-notif__head h1{ font-size:20px; }
  .ipn-notif__body{ padding:12px 12px; }
  .ipn-notif .ipn-form-grid--2{ grid-template-columns:1fr; }
  .ipn-notif__actions{
    flex-direction:column-reverse;
    align-items:stretch;
  }
  .ipn-notif__actions .ipn-btn,
  .ipn-notif__actions .ipn-btn--secondary{
    width:100%;
    min-width:0;
    margin-right:0;
  }
  .ipn-notif__foot{
    flex-direction:column;
    align-items:flex-start;
    gap:6px;
  }
  .ipn-notif__legal{ justify-content:flex-start; }
}
@media (max-width:380px){
  .ipn-notif__logo{ height:28px; }
  .ipn-notif__head h1{ font-size:18px; }
}

/* AV: 2026-08-10: updatePersonalData.asp ? formulario forzado post-login (scope .ipn-upd) */
.ipn-upd{
  align-items:flex-start;
  padding:28px 20px 40px;
}
.ipn-upd .d-none{ display:none !important; }
.ipn-upd .d-flex{ display:flex !important; }
.ipn-upd__card{
  width:100%;
  max-width:960px;
  margin:0 auto;
  background:var(--ipn-surface);
  border-radius:16px;
  box-shadow:var(--ipn-shadow-elev);
  padding:28px 32px 22px;
  box-sizing:border-box;
}
.ipn-upd__brand{ margin:0 0 18px; }
.ipn-upd__logo{
  display:block;
  height:34px;
  width:auto;
  max-width:160px;
  object-fit:contain;
}
.ipn-upd__head{ margin:0 0 16px; }
.ipn-upd__head h1{
  margin:0 0 6px;
  font-size:22px;
  font-weight:700;
  color:var(--ipn-text);
  line-height:1.25;
}
.ipn-upd__head .ipn-page-subtitle{
  margin:0;
  color:var(--ipn-text-3);
  font-size:13px;
  line-height:1.45;
}
.ipn-upd__layout{
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(240px,.9fr);
  gap:28px 32px;
  align-items:start;
}
.ipn-upd__form{ min-width:0; }
.ipn-upd__section-title{
  margin:22px 0 12px;
  padding:0;
  font-size:14px;
  font-weight:600;
  color:var(--ipn-text);
  line-height:1.3;
}
.ipn-upd__form > .ipn-upd__section-title:first-of-type{ margin-top:0; }
.ipn-upd__form .ipn-form-grid{ margin:0 0 4px; }
.ipn-upd__actions{
  display:flex;
  justify-content:flex-end;
  margin-top:22px;
}
.ipn-upd__actions .ipn-btn{ min-width:140px; }
.ipn-upd__aside{
  display:flex;
  flex-direction:column;
  gap:16px;
  min-width:0;
}
.ipn-upd__aside .ipn-notice{ margin:0; }
.ipn-upd__aside .ipn-notice__body strong{
  display:block;
  margin:0 0 6px;
  font-size:13px;
}
.ipn-upd__activity{
  border:1px solid var(--ipn-border);
  border-radius:12px;
  background:var(--ipn-surface-soft, #f7f9fc);
  padding:16px 16px 14px;
}
.ipn-upd__activity .ipn-upd__section-title{ margin:0 0 12px; }
.ipn-upd__activity-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  margin:0 0 12px;
}
.ipn-upd__activity-item:last-child{ margin-bottom:0; }
.ipn-upd__activity-label{
  font-size:12px;
  color:var(--ipn-text-3);
}
.ipn-upd__activity-value{
  font-size:13px;
  font-weight:600;
  color:var(--ipn-text);
  text-transform:uppercase;
  letter-spacing:.02em;
}
.ipn-upd__foot{
  margin-top:24px;
  padding-top:16px;
  border-top:1px solid var(--ipn-hairline);
}
.ipn-upd__foot a{ color:inherit; text-decoration:none; }
.ipn-upd__foot a:hover{ text-decoration:underline; }
.ipn-upd #errorMsg{ margin:0 0 16px; }
.ipn-upd .ipn-login__loading{ z-index:60; }
@media (max-width:900px){
  .ipn-upd__layout{ grid-template-columns:1fr; gap:22px; }
  .ipn-upd__card{ padding:22px 18px 18px; }
  .ipn-upd__actions{ justify-content:stretch; }
  .ipn-upd__actions .ipn-btn{ width:100%; }
}
@media (max-width:700px){
  .ipn-upd .ipn-form-grid--2{ grid-template-columns:1fr; }
}


/* =====================================================================
   16. RESPONSIVE
   ===================================================================== */
@media (max-width:1024px){
  .ipn-topbar__search{ flex-basis:200px; }

  /* Sidebar off-canvas */
  .ipn-sidebar{
    transform:translateX(-100%);
    transition:transform .22s ease;
    box-shadow:var(--ipn-shadow-elev);
  }
  .ipn2-app.is-nav-open .ipn-sidebar{ transform:translateX(0); }
  .ipn2-app.is-nav-open .ipn-scrim{ display:block; }
  .ipn-main{ margin-left:0; }
  .ipn-topbar__burger{ display:inline-flex; }
  .ipn2-app .ipn-topbar .ipn-breadcrumb{ display:none; }
  .ipn-topbar__search{ display:none; }
  .ipn-company-pill{ display:none; }
  .ipn-content{ padding:16px 14px 84px; }

  /* Grilla ? tarjetas (s?lo shell app; secure mantiene tabla) */
  .ipn2-app .ipn-table-wrap{ display:none; }
  .ipn2-app .ipn-card-list{ display:flex; }
  .ipn-fab{ display:inline-flex; min-width:52px; min-height:52px; }
  .ipn-bottom-nav{ display:flex; }
  .ipn-bottom-nav__item{ min-height:44px; }
  .ipn2-app .ipn-page-head__actions .ipn-btn--secondary{ display:none; }
  /* AV: 2026-07-19: KPIs ya colapsan en @media 1000/640; no forzar 1 col ac?. */
  .ipn-save-bar{ bottom:58px; padding:12px 14px; }
  .ipn-btn, .ipn-topbar__burger, .ipn-topbar__icon{ min-height:44px; min-width:44px; }

  /* Legacy grilla en m?vil: scroll horizontal + filas m?s tocables */
  .ipn2-app table.grilla{ display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .ipn2-app table.grilla th,
  .ipn2-app table.grilla td{ padding:12px 14px; min-height:44px; }

  /* Login apilado */
  .ipn-login__card{ grid-template-columns:1fr; max-width:420px; }
  .ipn-login__brand{ display:none; }
}

/* AV: 2026-07-19: responsive secure unificado ? secci?n 21 (fin de archivo). */

/* =====================================================================
   17. PUENTE LEGACY (transici?n) ? S?LO dentro del shell nuevo
   ---------------------------------------------------------------------
   Mientras una pantalla migrada todav?a conserva markup legacy (grilla,
   b?squeda, paginado), estos overrides acotados a .ipn2-app le dan un look
   coherente sin tocar la l?gica VBScript. Se ir?n retirando a medida que
   cada bloque se reescriba a componentes ipn-*.
   ===================================================================== */
.ipn2-app .colorRojo{ color:var(--ipn-danger) !important; }
.ipn2-app .colorVerde{ color:var(--ipn-success) !important; }

/* Grilla legacy dentro del shell */
.ipn2-app table.grilla{
  width:100%; border-collapse:collapse; background:var(--ipn-surface);
  border:1px solid var(--ipn-hairline); border-radius:var(--ipn-radius-card);
  box-shadow:var(--ipn-shadow-card); overflow:hidden; font-size:13px; margin-top:4px;
}
.ipn2-app table.grilla th{
  text-align:left; font-size:11px; font-weight:600; text-transform:uppercase;
  letter-spacing:.05em; color:var(--ipn-text-3); background:var(--ipn-surface-soft);
  padding:10px 14px; border-bottom:1px solid var(--ipn-hairline);
}
.ipn2-app table.grilla td{ padding:9px 14px; border-bottom:1px solid var(--ipn-hairline); color:var(--ipn-text); vertical-align:top; }
.ipn2-app table.grilla tr:hover td{ background:var(--ipn-zebra); }

/* B?squeda legacy dentro del shell */
.ipn2-app fieldset.busqueda{
  background:var(--ipn-surface); border:1px solid var(--ipn-hairline);
  border-radius:var(--ipn-radius-card); box-shadow:var(--ipn-shadow-card);
  padding:14px 18px; margin:0 0 14px;
}
.ipn2-app fieldset.busqueda legend{ font-size:14px; font-weight:600; color:var(--ipn-text); padding:0 6px; }
.ipn2-app fieldset.busqueda input[type=text], .ipn2-app fieldset.busqueda select{
  height:36px; padding:0 10px; border:1px solid var(--ipn-border-input);
  border-radius:var(--ipn-radius-input); background:var(--ipn-surface); font:inherit; font-size:13px; color:var(--ipn-text);
}

/* Encabezado legacy ? alinear como page-head */
.ipn2-app .encabezado.ipn-page-head img{ display:none; }
.ipn2-app .encabezado.ipn-page-head h2{ display:none; }

/* Acciones disponibles dentro del page-head (anular style.css legacy) */
.ipn2-app .ipn-page-head__actions .accDisp,
.ipn2-app .ipn-page-head__actions .accDisp_sin_navegacion{
  position:relative !important; left:auto !important; top:auto !important;
  margin:0 !important; width:auto !important; background:transparent !important;
  border-radius:0 !important; z-index:5;
}
.ipn2-app .ipn-page-head__actions .accDisp ul#menuAD,
.ipn2-app .ipn-page-head__actions .accDisp_sin_navegacion ul#menuAD{
  position:absolute; right:0; top:calc(100% + 6px); min-width:240px;
  background:var(--ipn-surface) !important; border:1px solid var(--ipn-hairline) !important;
  border-radius:10px; box-shadow:var(--ipn-shadow-elev); padding:6px 0; z-index:80;
  list-style:none; margin:0;
}
.ipn2-app .ipn-page-head__actions .accDisp ul#menuAD li,
.ipn2-app .ipn-page-head__actions .accDisp_sin_navegacion ul#menuAD li{
  background:transparent !important; padding:0; margin:0;
}
.ipn2-app .ipn-page-head__actions .accDisp ul#menuAD li a,
.ipn2-app .ipn-page-head__actions .accDisp_sin_navegacion ul#menuAD li a{
  display:block; padding:9px 14px; color:var(--ipn-text) !important;
  font-size:13px; text-decoration:none !important;
}
.ipn2-app .ipn-page-head__actions .accDisp ul#menuAD li a:hover,
.ipn2-app .ipn-page-head__actions .accDisp_sin_navegacion ul#menuAD li a:hover{
  background:var(--ipn-zebra) !important;
}
.ipn2-app .ipn-page-head__actions .btnAD{
  color:inherit !important; background:transparent !important; border:0 !important;
}

/* AV: 2026-07-22: Overlay/popup ? shell iPN2 no carga style_bootstrap (blackBackground quedaba height:0). */
body.ipn2 .blackBackground,
body .blackBackground{
  position:fixed !important;
  top:0 !important;
  left:0 !important;
  width:100% !important;
  height:100% !important;
  margin:0 !important;
  padding:0 !important;
  background-color:#000 !important;
  z-index:1200 !important;
  display:none;
}
/* Marco legacy gris: las cards iPN2 ya traen sombra/radio propios. */
body.ipn2 #popUpDivBorder{
  display:none !important;
  opacity:0 !important;
  width:0 !important;
  height:0 !important;
  padding:0 !important;
  margin:0 !important;
  pointer-events:none !important;
  border:0 !important;
}
/* Base del popup (antes lo daba style.css legacy): oculto + fijo. iPNpopup() lo muestra. */
div#iPNpopUpDiv,
div.iPNpopUpDiv{
  display:none;
  position:fixed;
  top:50%;
  left:50%;
  padding:10px;
  background-color:#fff;
  box-sizing:border-box;
}
body div#iPNpopUpDiv,
body div.iPNpopUpDiv{ z-index:1201 !important; }
/* AV: 2026-07-21: QA 3.1 ? no tapar di?logos iPN2 que reutilizan el id legacy */
div#iPNpopUpDiv.ipn-dialog-root,
div.iPNpopUpDiv.ipn-dialog-root{
  display:flex; inset:0; top:auto; left:auto; padding:20px;
  background:transparent; opacity:0; pointer-events:none;
}
div#iPNpopUpDiv.ipn-dialog-root.is-open,
div.iPNpopUpDiv.ipn-dialog-root.is-open{
  opacity:1; pointer-events:auto;
}

/* Bot?n Buscar legacy dentro del shell */
.ipn2-app #SearchBtn.btnAzul,
.ipn2-app input.btnAzul#SearchBtn{
  height:var(--ipn-control-h); padding:0 16px; border-radius:var(--ipn-radius-input);
  background:var(--ipn-primary) !important; border:1px solid var(--ipn-primary) !important;
  color:#fff !important; font:inherit; font-size:13px; font-weight:600; cursor:pointer;
  text-shadow:none !important;
}
.ipn2-app .encabezado.ipn-page-head{
  float:none; width:auto; height:auto; margin:0 0 18px; padding:0;
  background:none; border:0;
}
.ipn2-app .ipn-page-subtitle a{ color:var(--ipn-primary); text-decoration:none; }
.ipn2-app .ipn-page-subtitle a:hover{ text-decoration:underline; }

/* Tabs legacy (.tab_cnt_principal / .tab_cnt_principal_chico) + iPN2 (.ipn-tabs)
   AV: 2026-07-17: misma t?cnica flush (inset shadow); overflow-x ya no clipa el subrayado */
.ipn2-app .tab_cnt_principal.ipn-tabs,
.ipn2-app .tab_cnt_principal_chico.ipn-tabs{
  float:none; width:100% !important; height:auto; margin:0 0 14px; padding:0 14px;
  display:flex; align-items:flex-end; gap:2px;
  background:var(--ipn-surface); border:1px solid var(--ipn-hairline); border-bottom:0;
  border-radius:var(--ipn-radius-card);
  box-shadow:var(--ipn-shadow-card), inset 0 -1px 0 #eef1f6;
  position:relative; overflow-x:auto; white-space:nowrap; box-sizing:border-box;
}
.ipn2-app .tab_cnt_principal.ipn-tabs a,
.ipn2-app .tab_cnt_principal.ipn-tabs a:link,
.ipn2-app .tab_cnt_principal.ipn-tabs a:visited,
.ipn2-app .tab_cnt_principal_chico.ipn-tabs a,
.ipn2-app .tab_cnt_principal_chico.ipn-tabs a:link,
.ipn2-app .tab_cnt_principal_chico.ipn-tabs a:visited{
  float:none; margin:0; padding:14px 16px; height:auto; line-height:normal;
  border:0 !important; background:none !important; color:#8493a6 !important;
  font-size:14px; font-weight:600; text-decoration:none !important;
  position:relative; display:inline-flex; align-items:center; gap:7px; cursor:pointer;
  white-space:nowrap; box-shadow:none;
}
.ipn2-app .tab_cnt_principal.ipn-tabs a:hover,
.ipn2-app .tab_cnt_principal_chico.ipn-tabs a:hover{ color:var(--ipn-text) !important; }
.ipn2-app .tab_cnt_principal.ipn-tabs a.active,
.ipn2-app .tab_cnt_principal.ipn-tabs a.is-active,
.ipn2-app .tab_cnt_principal_chico.ipn-tabs a.active,
.ipn2-app .tab_cnt_principal_chico.ipn-tabs a.is-active{
  color:#1d4e86 !important; font-weight:600; background:none; border:0;
  box-shadow:inset 0 -2px 0 #1d4e86;
}
.ipn2-app .tab_cnt_principal.ipn-tabs a.active::after,
.ipn2-app .tab_cnt_principal.ipn-tabs a.is-active::after,
.ipn2-app .tab_cnt_principal_chico.ipn-tabs a.active::after,
.ipn2-app .tab_cnt_principal_chico.ipn-tabs a.is-active::after{
  content:none; display:none;
}

/* Detalle cliente: header card, columnas, panel cta cte / acciones */
.ipn2-app .encabezado.ipn-page-head.ipn-card{
  padding:16px 20px; margin-bottom:16px; align-items:center;
}
.ipn2-app .navegacion{ display:none; }

/* Dashboard / salesPanel polish */
.ipn2-app .shadowBox,
.ipn2-app .ipn-card.shadowBox{
  background:var(--ipn-surface) !important;
  border:1px solid var(--ipn-hairline) !important;
  border-radius:var(--ipn-radius-card) !important;
  box-shadow:var(--ipn-shadow-card) !important;
  padding:16px 18px !important;
  margin-bottom:14px;
}
.ipn2-app .table_indicadores,
.ipn2-app table.grilla_financiera{
  width:100%; border-collapse:collapse; font-size:13px;
}
.ipn2-app .table_indicadores td,
.ipn2-app table.grilla_financiera td{
  padding:8px 10px; border-bottom:1px solid var(--ipn-hairline); vertical-align:middle;
}
.ipn2-app .table_indicadores .importe,
.ipn2-app table.grilla_financiera td[align=right],
.ipn2-app table.grilla_financiera th[align=right],
.ipn2-app table.grilla_financiera .ipn-num{
  font-family:var(--ipn-font-mono); text-align:right !important;
  font-variant-numeric:tabular-nums; white-space:nowrap;
}
.ipn2-app h2, .ipn2-app .tituloNegro, .ipn2-app .ipn-page-title{
  color:var(--ipn-text);
}
.ipn2-app .msjInfo{
  background:var(--ipn-info-bg); border:1px solid var(--ipn-info-border);
  border-radius:10px; padding:12px 14px; color:var(--ipn-text-2); font-size:12.5px;
}
.ipn2-app .cnt_principal_chico{
  background:var(--ipn-surface); border:1px solid var(--ipn-hairline);
  border-radius:var(--ipn-radius-card); box-shadow:var(--ipn-shadow-card);
  padding:14px 18px 18px; box-sizing:border-box;
}
.ipn2-app .cnt_derecha{ width:300px; margin-left:16px; }
.ipn2-app .cnt_derecha .ipn-acct-panel{ width:100%; }
.ipn2-app .AccionesDisponibles.ipn-card{
  float:none !important; width:100% !important; margin:0 !important; box-sizing:border-box;
}
.ipn2-app .AccionesDisponibles.ipn-card > div{
  width:auto !important; border:0; border-bottom:1px solid var(--ipn-hairline);
  border-radius:0; margin:0; padding:12px 4px; background:transparent;
}
.ipn2-app .AccionesDisponibles.ipn-card > div:last-child{ border-bottom:0; }
.ipn2-app .AccionesDisponibles.ipn-card > div:hover{
  background:var(--ipn-zebra); border-color:transparent;
}
.ipn2-app .AccionesDisponibles.ipn-card img{ width:22px; height:22px; object-fit:contain; }
.ipn2-app .AccionesDisponibles.ipn-card p{ font-size:11.5px; color:var(--ipn-text-3); }
.ipn2-app .AccionesDisponibles.ipn-card span,
.ipn2-app .AccionesDisponibles.ipn-card a{
  color:var(--ipn-primary) !important; font-size:13px; font-weight:600;
}

/* Save bar: cntBotones ? sticky ipn-save-bar */
.ipn2-app .cntBotones.ipn-save-bar{
  float:none; width:auto; height:auto; margin:16px 0 0; clear:both;
  position:sticky; bottom:0; z-index:30;
  display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  padding:12px 20px; background:var(--ipn-surface);
  border:0; border-top:1px solid var(--ipn-hairline);
  box-shadow:0 -4px 18px rgba(30,45,70,.06);
}
.ipn2-app .cntBotones.ipn-save-bar .cntBotones_l,
.ipn2-app .cntBotones.ipn-save-bar .cntBotones_r{ float:none; width:auto; margin:0; padding:0; }
.ipn2-app .ipn-btn.btnAzul,
.ipn2-app .ipn-btn.btnVerde{
  background-image:none !important; border-image:none;
  width:auto; min-width:0; text-indent:0; overflow:visible;
  box-shadow:none;
}
.ipn2-app .ipn-btn.btnAzul.ipn-btn--secondary{
  background:var(--ipn-surface) !important; color:var(--ipn-text-2) !important;
  border:1px solid var(--ipn-border-input) !important;
}
.ipn2-app .ipn-btn.btnVerde.ipn-btn--primary{
  background:var(--ipn-primary) !important; color:#fff !important;
  border:1px solid transparent !important;
}

/* Paginado legacy dentro del shell */
.ipn2-app table.paginadoGrilla{ width:100%; margin-top:12px; font-size:12.5px; color:var(--ipn-text-3); }
.ipn2-app table.paginadoGrilla b{ color:var(--ipn-text); }

/* =====================================================================
   18. BLINDAJE DEL SHELL vs CSS legacy
   ---------------------------------------------------------------------
   El CSS viejo (style.css) define reglas de link con pseudo-clase
   (a:link/a:visited => especificidad 0,1,1) que le ganan a .ipn-nav-item
   (0,1,0) y dejan el texto del sidebar ilegible. Forzamos los colores del
   chrome del shell con !important, acotado a los contenedores del shell.
   ===================================================================== */
.ipn-sidebar a.ipn-nav-item,
.ipn-sidebar a.ipn-nav-item:link,
.ipn-sidebar a.ipn-nav-item:visited{
  color:var(--ipn-sidebar-text) !important;
  text-decoration:none !important;
}
.ipn-sidebar a.ipn-nav-item:hover,
.ipn-sidebar a.ipn-nav-item.is-active{ color:#fff !important; }
.ipn-sidebar .ipn-nav-group__title{ color:var(--ipn-sidebar-heading) !important; }
.ipn-sidebar__user b{ color:#fff !important; }
.ipn-sidebar__logout,
.ipn-sidebar__logout:link,
.ipn-sidebar__logout:visited,
.ipn-sidebar__collapse{ color:var(--ipn-sidebar-text) !important; text-decoration:none !important; }

.ipn-topbar a,
.ipn-topbar a:link,
.ipn-topbar a:visited{ text-decoration:none !important; }
.ipn-topbar__icon,
.ipn-topbar__icon:link,
.ipn-topbar__icon:visited{ color:var(--ipn-text-2) !important; }
.ipn-breadcrumb b{ color:var(--ipn-text) !important; }

/* Density: el sidebar puede ser largo (muchos ?tems por permisos) ? scroll propio */
.ipn-sidebar__nav{ scrollbar-width:thin; }

/* =====================================================================
   18. PANEL SECURE (implementaci?n / accessType 1?13?14)
   ===================================================================== */
/* Full-bleed: anula el ?caj?n? legacy (.wraper / .main_content ~85%) */
body:has(.ipn-secure),
html:has(.ipn-secure-wrap),
body:has(.ipn-secure-wrap){
  margin:0 !important;
  padding:0 !important;
  width:100% !important;
  max-width:none !important;
  background:var(--ipn-page-bg) !important;
  font-family:var(--ipn-font);
}
.ipn-secure-wrap.wraper,
.wraper.ipn-secure-wrap,
.wraper:has(> .ipn-secure),
.wraper:has(.ipn-secure-topbar){
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  border:0 !important;
  background:var(--ipn-page-bg) !important;
  min-height:100vh;
  padding:0 !important;
  box-shadow:none !important;
  display:flex;
  flex-direction:column;
  box-sizing:border-box;
}
/* AV: 2026-07-20: anula caj?n legacy (.main_content width:85% + border #bce1f4)
   que reaparece >1100px y deja ?borde azul? alrededor del header. */
.main_content.ipn-secure,
.ipn-secure-wrap > .main_content{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  border:0 !important;
  border-color:transparent !important;
  background:var(--ipn-page-bg) !important;
  padding-bottom:0 !important;
  box-shadow:none !important;
  flex:1 1 auto;
  min-height:0;
}

.ipn-secure{
  background:var(--ipn-page-bg);
  font-family:var(--ipn-font);
  color:var(--ipn-text);
  -webkit-font-smoothing:antialiased;
}
.ipn-secure *,
.ipn-secure *::before,
.ipn-secure *::after{ box-sizing:border-box; }

.ipn-secure-topbar{
  /* AV: 2026-07-20: barra full-bleed siempre (mismo ancho que el body/page-bg). */
  background:#16294d;
  height:56px;
  min-height:56px;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  border:none !important;
  border-bottom:1px solid rgba(255,255,255,.06) !important;
  box-sizing:border-box;
  flex:0 0 auto;
  /* AV: 2026-07-20: visible para el dropdown de usuario (antes overflow:hidden lo clipaba) */
  overflow:visible;
  position:relative;
  /* AV: 2026-07-27: QA 3.2.1 ? topbar > page-head (z 40); si no, Acciones tapa el men? de cuenta */
  z-index:100;
}
.ipn-secure-topbar--ipn,
.ipn-secure-topbar--cetro,
.ipn-secure-topbar--mx{ background:#16294d; }
.ipn-secure-topbar__inner{
  /* AV: 2026-07-20: mismo tope que .ipn-secure__body (alineaci?n logo/usuario ? contenido). */
  width:100%;
  max-width:var(--ipn-secure-content-max, 1440px);
  margin:0 auto; padding:0 24px;
  height:100%; display:flex; align-items:center; justify-content:space-between;
  gap:16px;
  box-sizing:border-box;
}
.ipn-secure-topbar__brand{
  display:inline-flex; align-items:center; text-decoration:none;
  flex:0 0 auto;
  max-height:100%;
  overflow:visible;
}
/* AV: 2026-07-20: !important ? .ipn-secure img{height:auto} del QA pisaba el tama?o y el logo
   se renderizaba a 405?103 recortado por el topbar de 56px. */
/* AV: 2026-07-23: Tama?o intermedio unificado (antes secure 22px / AP 40px / ERP 44px). */
.ipn-secure-topbar__logo,
.ipn-secure .ipn-secure-topbar__logo,
img.ipn-secure-topbar__logo{
  height:auto !important;
  width:auto !important;
  max-width:200px !important;
  max-height:32px !important;
  object-fit:contain !important;
  display:block !important;
  overflow:visible;
}
.ipn-secure-topbar__account{
  display:inline-flex; align-items:center; gap:12px;
  margin-left:auto; min-width:0;
  padding-left:14px;
  border-left:1px solid rgba(174,187,212,.28);
  position:relative;
}
.ipn-secure-topbar__identity{
  display:flex; flex-direction:column; align-items:flex-end;
  gap:1px; min-width:0; max-width:220px;
}
.ipn-secure-topbar__name{
  font-family:var(--ipn-font);
  font-size:12.5px; font-weight:700; line-height:1.2;
  color:#fff; text-transform:uppercase; letter-spacing:.02em;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  max-width:100%;
  display:block;
}
.ipn-secure-topbar__role{
  font-family:var(--ipn-font);
  font-size:11.5px; font-weight:400; line-height:1.2;
  color:#aebbd4;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  max-width:100%;
  display:block;
}
.ipn-secure-topbar__avatar{
  flex:0 0 auto;
  width:34px; height:34px; border-radius:50%;
  /* AV: 2026-08-19: avatar = acento de cuenta, no el fondo del men?. */
  background:var(--ipn-brand, #2f62c4); color:var(--ipn-brand-fg, #fff);
  display:inline-flex; align-items:center; justify-content:center;
  font-family:var(--ipn-font);
  font-size:12px; font-weight:700; letter-spacing:.02em;
  line-height:1;
  transition:box-shadow .15s ease;
}
/* AV: 2026-07-20: logout shared secure+adminPanel.
   !important / a:link: .ipn2 a (0,1,1) pisa .ipn-secure-topbar__logout (0,1,0)
   y deja el icono en --ipn-primary en adminPanel (body.ipn2). */
a.ipn-secure-topbar__logout,
a.ipn-secure-topbar__logout:link,
a.ipn-secure-topbar__logout:visited{
  flex:0 0 auto;
  width:34px; height:34px;
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid var(--ipn-header-border, rgba(255,255,255,.55));
  border-radius:8px;
  color:var(--ipn-header-fg, #fff) !important;
  text-decoration:none !important;
  transition:background .12s ease, border-color .12s ease, color .12s ease;
}
a.ipn-secure-topbar__logout:hover,
a.ipn-secure-topbar__logout:focus{
  background:color-mix(in srgb, var(--ipn-header-fg, #fff) 10%, transparent);
  border-color:var(--ipn-header-fg, #fff);
  color:var(--ipn-header-fg, #fff) !important;
  text-decoration:none !important;
}
a.ipn-secure-topbar__logout .material-symbols-rounded{ font-size:18px; }
@media (max-width:640px){
  .ipn-secure-topbar__identity{ display:none; }
  .ipn-secure-topbar__account{
    gap:8px; padding-left:10px;
  }
}

.ipn-secure__body{
  /* AV: 2026-07-20: mismo max que topbar__inner; NO pisar con max-width:100% global. */
  width:100%;
  max-width:var(--ipn-secure-content-max, 1440px);
  margin:0 auto;
  padding:16px 24px 40px;
  box-sizing:border-box;
}
.ipn-secure .ipn-page-head{ margin-bottom:20px; }

/* AV: 2026-07-21: QM (filtros cortos) ? sin forzar 100vh; evita hueco enorme hasta el footer */
.ipn-secure-wrap.ipn-qm-wrap{
  min-height:0;
}
.ipn-secure-wrap.ipn-qm-wrap > .main_content.ipn-secure{
  flex:0 1 auto;
}
.ipn-secure-wrap.ipn-qm-wrap .cnt_footer{
  margin-top:24px !important;
}

/* Footer full-bleed ? pie_secure.asp */
.cnt_footer{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  margin-top:auto !important;
  padding:0 !important;
  height:auto !important;
  min-height:0 !important;
  position:static !important;
  float:none !important;
  clear:both !important;
  border:none !important;
  border-top:1px solid var(--ipn-hairline) !important;
  background:var(--ipn-page-bg) !important;
  color:var(--ipn-text-muted) !important;
  font-family:var(--ipn-font) !important;
  font-size:12px !important;
  box-sizing:border-box;
  z-index:auto !important;
  flex:0 0 auto;
}
.cnt_footer__inner{
  /* AV: 2026-07-20: alineado a --ipn-secure-content-max. */
  width:100%;
  max-width:var(--ipn-secure-content-max, 1440px);
  margin:0 auto;
  padding:16px 24px 28px;
  display:flex;
  flex-direction:column;
  gap:4px;
  box-sizing:border-box;
  float:none !important;
  width:auto !important;
  text-align:left !important;
}
.cnt_footer__line,
.cnt_footer__meta{
  margin:0;
  line-height:1.45;
  color:var(--ipn-text-muted);
  font-family:var(--ipn-font);
  font-size:12px;
}
.cnt_footer__line b,
.cnt_footer__meta b{
  color:var(--ipn-text-3);
  font-weight:600;
}
.cnt_footer__sep{
  margin:0 6px;
  opacity:.55;
}
.cnt_footer a{ color:var(--ipn-primary); text-decoration:none; }
.cnt_footer a:hover{ text-decoration:underline; }
/* Legacy .der / .izq por si alguna p?gina a?n los emite */
.cnt_footer .der,
.cnt_footer .izq{
  float:none !important;
  width:auto !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  text-align:left !important;
}

/* AV: 2026-07-29: pendingTasks TV ? pie (usuario/loadtime) al fondo del viewport
   cuando hay pocas tareas (evita hueco blanco debajo del footer). */
html:has(.ipn-pending-tasks),
body:has(.ipn-pending-tasks){
  height:100%;
  min-height:100%;
}
body:has(.ipn-pending-tasks){
  display:flex;
  flex-direction:column;
  min-height:100vh;
  min-height:100dvh;
}
body:has(.ipn-pending-tasks) > form#formPendingTasks,
body:has(.ipn-pending-tasks) > form[name="formPendingTasks"]{
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
  min-height:100vh;
  min-height:100dvh;
  width:100%;
  margin:0;
}
.wraper.ipn-secure-wrap.ipn-pending-tasks,
.ipn-secure-wrap.ipn-pending-tasks{
  flex:1 1 auto;
  display:flex !important;
  flex-direction:column !important;
  min-height:100vh !important;
  min-height:100dvh !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  box-sizing:border-box;
}
.ipn-pending-tasks > .main_content.ipn-secure{
  flex:1 1 auto !important;
  display:flex;
  flex-direction:column;
  min-height:0;
  width:100% !important;
}
.ipn-pending-tasks .ipn-secure__body{
  flex:1 1 auto;
}
.ipn-pending-tasks > .cnt_footer{
  margin-top:auto !important;
  flex:0 0 auto !important;
  position:static !important;
}

/* Breadcrumb / filtros / tabla del panel secure */
.ipn-secure__body > .ipn-breadcrumb{
  display:flex; margin:0 0 12px; flex-wrap:wrap;
}
.ipn-secure__body > .ipn-breadcrumb a{
  color:var(--ipn-primary); text-decoration:none; font-weight:500;
}
.ipn-secure__body > .ipn-breadcrumb a:hover{ text-decoration:underline; }

/* Links de contenido en panel secure (scope .ipn2 no aplica ac?) */
/* AV: 2026-07-20: excluir .wc-ticket__id (titulo Work Center en negro) */
/* AV: 2026-07-22: excluir .ipn-action-row (filas de Acciones disponibles) */
.ipn-secure-wrap a:not(.ipn-btn):not(.ipn-access-tile):not(.ipn-row-action):not(.ipn-action-row):not(.ipn-secure-topbar__logout):not(.ipn-secure-topbar__brand):not(.wc-ticket__id),
.ipn-secure a:not(.ipn-btn):not(.ipn-access-tile):not(.ipn-row-action):not(.ipn-action-row):not(.ipn-secure-topbar__logout):not(.ipn-secure-topbar__brand):not(.wc-ticket__id){
  color:var(--ipn-primary);
  text-decoration:none;
  font-weight:600;
}
.ipn-secure-wrap a:not(.ipn-btn):not(.ipn-access-tile):not(.ipn-row-action):not(.ipn-action-row):not(.ipn-secure-topbar__logout):not(.ipn-secure-topbar__brand):not(.wc-ticket__id):hover,
.ipn-secure a:not(.ipn-btn):not(.ipn-access-tile):not(.ipn-row-action):not(.ipn-action-row):not(.ipn-secure-topbar__logout):not(.ipn-secure-topbar__brand):not(.wc-ticket__id):hover{
  color:var(--ipn-primary-hover);
  text-decoration:underline;
}

/* Lista de enlaces (dashboards / monitoreo) */
.ipn-link-list{ display:flex; flex-direction:column; }
.ipn-link-row{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:14px 16px;
  border-bottom:1px solid var(--ipn-hairline);
  color:var(--ipn-primary) !important;
  font-weight:600; font-size:13.5px;
  text-decoration:none !important;
  transition:background .15s ease, color .15s ease;
}
.ipn-link-row:last-child{ border-bottom:0; }
.ipn-link-row:hover{
  background:var(--ipn-primary-soft);
  color:var(--ipn-primary-hover) !important;
  text-decoration:none !important;
}
.ipn-link-row .material-symbols-rounded{
  font-size:18px; color:var(--ipn-text-3); flex:0 0 auto;
}
.ipn-link-row:hover .material-symbols-rounded{ color:var(--ipn-primary); }
.ipn-secure-filters{
  display:flex; align-items:flex-end; gap:14px; flex-wrap:wrap;
}
.ipn-secure-filters__actions{
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  margin-left:auto;
}
/* AV: 2026-07-22: 1?2 filtros ? Buscar pegado al campo, sin estirar el hueco. */
.ipn-secure-filters--compact{
  justify-content:flex-start;
  gap:12px;
}
.ipn-secure-filters--compact .ipn-field{
  flex:0 1 280px;
  min-width:200px;
  max-width:320px;
}
.ipn-secure-filters--compact .ipn-field .ipn-input,
.ipn-secure-filters--compact .ipn-field .ipn-select{
  width:100%;
  min-width:0;
}
.ipn-secure-filters--compact .ipn-secure-filters__actions{
  margin-left:0;
  flex:0 0 auto;
}
.ipn-secure-filters--compact .ipn-secure-filters__actions .ipn-btn{
  height:var(--ipn-control-h,36px);
  min-height:var(--ipn-control-h,36px);
}
.ipn-secure-actions{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  margin-top:18px; flex-wrap:wrap;
}
.ipn-secure-actions .ipn-btn--primary,
.ipn-secure-actions .ipn-btn--danger{
  margin-left:auto;
}
/* AV: 2026-08-26: Borrado ERP compartido ? sin bloques *-delete por m?dulo. */
form[class*="-delete"] .ipn-notice{ margin:0 0 16px; }
form[class*="-delete"] .ipn-check-row{ margin-top:4px; }
/* AV: 2026-07-23: Asterisco requerido y spinner de botones (antes embebidos en .asp). */
.ipn-req{
  color:#c0392b;
  font-weight:600;
  margin-left:4px;
}
.ipn-spin{
  animation:ipn-spin .9s linear infinite;
}
@keyframes ipn-spin{
  to { transform:rotate(360deg); }
}
.ipn-form-stack{
  display:flex; flex-direction:column; gap:16px;
  max-width:420px;
}
.ipn-row-action.is-visible{ opacity:1; }
.ipn-row-action .material-symbols-rounded{ font-size:20px; }
.ipn-copy-row label{
  display:inline-flex; align-items:center; gap:6px;
  margin:0; max-width:100%;
}
.ipn-copy-row .ipn-code{
  display:inline-block; max-width:280px;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  vertical-align:middle;
}
.ipn-code{
  font-family:var(--ipn-font-mono); font-size:12px;
  color:var(--ipn-text); background:var(--ipn-surface-soft);
  padding:2px 6px; border-radius:4px; word-break:break-all;
}
.ipn-text-muted{ color:var(--ipn-text-muted); font-size:12px; }
.ipn-sql-msg{
  max-width:420px; font-size:12.5px; line-height:1.4;
  color:var(--ipn-text-2); word-break:break-word;
}
.ipn-pager__info{ font-size:12.5px; color:var(--ipn-text-3); }
.ipn-pager__page{ font-size:12.5px; color:var(--ipn-text-3); padding:0 6px; }
.ipn-table--sql-log td, .ipn-table--sql-log th{ vertical-align:top; }
.ipn-secure-wrap .ipn-table-wrap,
.ipn-secure .ipn-table-wrap{
  display:block !important; overflow-x:auto; -webkit-overflow-scrolling:touch;
}
@media (max-width:700px){
  .ipn-secure-filters__actions{ margin-left:0; width:100%; }
  .ipn-secure-filters__actions .ipn-btn{ flex:1 1 auto; }
  .ipn-sql-msg{ max-width:280px; }
}

/* Notices / alertas dismissibles */
.ipn-notice-stack{ display:flex; flex-direction:column; gap:10px; margin:0 0 22px; }
/* AV: 2026-09-08: #491 ? display:flex no debe pisar [hidden] (cartel fantasma en editItems). */
.ipn-notice-stack[hidden]{ display:none !important; }
.ipn-notice{
  position:relative;
  /* AV: 2026-08-24: center ? ?cono/texto/cerrar alineados (antes flex-start + close top:8). */
  display:flex; gap:12px; align-items:center;
  padding:14px 44px 14px 14px;
  border-radius:10px;
  border:1px solid var(--ipn-info-border);
  background:var(--ipn-info-bg);
  color:var(--ipn-text-2);
  font-size:13px; line-height:1.45;
  transition:opacity .25s ease, transform .25s ease, max-height .25s ease, margin .25s ease, padding .25s ease;
  overflow:hidden;
}
.ipn-notice.is-dismissing{
  opacity:0; transform:translateY(-6px); max-height:0 !important;
  margin:0 !important; padding-top:0 !important; padding-bottom:0 !important; border-width:0;
}
.ipn-notice__icon{
  flex:0 0 auto; font-size:22px !important; line-height:1;
  color:var(--ipn-primary); margin-top:0;
}
.ipn-notice__body{ flex:1 1 auto; min-width:0; }
.ipn-notice__body ul{ margin:8px 0 0; padding-left:18px; }
.ipn-notice__body li{ margin:2px 0; }
.ipn-notice__body a{ color:var(--ipn-primary); font-weight:600; text-decoration:none; }
.ipn-notice__body a:hover{ text-decoration:underline; }
.ipn-notice__close{
  position:absolute; top:50%; right:8px;
  transform:translateY(-50%);
  width:32px; height:32px; border:0; border-radius:8px;
  background:transparent; color:var(--ipn-text-muted); cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center;
}
.ipn-notice__close:hover{ background:rgba(22,41,77,.06); color:var(--ipn-text); }
.ipn-notice__close .material-symbols-rounded{ font-size:18px; }
.ipn-notice--info{ background:#f2f6fc; border-color:#dbe6f5; }
.ipn-notice--info .ipn-notice__icon{ color:var(--ipn-brand, #2f62c4); }
.ipn-notice--warning{ background:#f7efdf; border-color:#ecd9b0; }
.ipn-notice--warning .ipn-notice__icon{ color:var(--ipn-warning); }
.ipn-notice--danger{ background:#fbe8e8; border-color:#f0c8c8; }
.ipn-notice--danger .ipn-notice__icon{ color:var(--ipn-danger); }
.ipn-notice--success{ background:#e4f2ec; border-color:#c5e2d3; }
.ipn-notice--success .ipn-notice__icon{ color:var(--ipn-success); }
/* AV: 2026-07-21: notices sueltos en body secure ? espacio respecto al card/tabla siguiente */
.ipn-secure__body > .ipn-notice{
  margin:0 0 18px;
}

/* Secciones + tiles de acceso */
.ipn-secure__section{ margin:0 0 28px; }
.ipn-secure__section-title{
  font-size:15px; font-weight:700; color:var(--ipn-text);
  margin:0 0 12px; padding-bottom:8px;
  border-bottom:1px solid var(--ipn-hairline);
  letter-spacing:-.01em;
}
.ipn-access-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.ipn-access-tile{
  display:flex; align-items:center; gap:12px;
  padding:14px 14px;
  background:var(--ipn-surface);
  border:1px solid var(--ipn-hairline);
  border-radius:var(--ipn-radius-card);
  box-shadow:var(--ipn-shadow-card);
  color:inherit; text-decoration:none;
  transition:border-color .12s ease, box-shadow .12s ease, transform .12s ease;
  min-height:76px;
}
.ipn-access-tile:hover{
  border-color:#c5d3ea;
  box-shadow:var(--ipn-shadow-elev);
  text-decoration:none; color:inherit;
  transform:translateY(-1px);
}
.ipn-access-tile__icon{
  width:36px; height:36px; object-fit:contain; flex:0 0 auto;
  display:block;
}
.ipn-access-tile__icon--wide{ width:40px; height:24px; }
.ipn-access-tile__glyph{
  width:40px; height:40px; border-radius:11px;
  background:var(--ipn-primary-soft); color:var(--ipn-primary);
  display:flex; align-items:center; justify-content:center; flex:0 0 auto;
}
.ipn-access-tile__glyph .material-symbols-rounded{ font-size:22px; }
.ipn-access-tile__text{ flex:1 1 auto; min-width:0; }
.ipn-access-tile__title{
  font-size:13.5px; font-weight:600; color:var(--ipn-primary);
  margin:0 0 3px; line-height:1.25;
}
.ipn-access-tile__desc{
  font-size:12px; color:var(--ipn-text-3); margin:0; line-height:1.35;
}
.ipn-access-tile__chevron{
  flex:0 0 auto; color:var(--ipn-text-faint); font-size:20px !important;
  opacity:0; transition:opacity .12s ease;
}
.ipn-access-tile:hover .ipn-access-tile__chevron{ opacity:1; color:var(--ipn-primary); }

@media (max-width:900px){
  .ipn-access-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:600px){
  .ipn-secure__body{ padding:14px 14px 32px; }
  .ipn-access-grid{ grid-template-columns:1fr; }
  .ipn-access-tile__chevron{ opacity:1; }
}

/* =====================================================================
   19. DIALOG (confirm / alert modernos)
   ===================================================================== */
/* AV: 2026-07-18: Por encima de wc-modal (4000) y flatpickr de modales (~5000). */
.ipn-dialog-root{
  position:fixed; inset:0; z-index:6000;
  display:flex; align-items:center; justify-content:center;
  padding:20px;
  opacity:0; pointer-events:none;
  transition:opacity .18s ease;
}
.ipn-dialog-root.is-open{ opacity:1; pointer-events:auto; }
.ipn-dialog-scrim{
  position:absolute; inset:0;
  background:rgba(22,41,77,.45);
  backdrop-filter:blur(2px);
}
.ipn-dialog{
  position:relative; z-index:1;
  width:100%; max-width:420px;
  background:var(--ipn-surface);
  border:1px solid var(--ipn-hairline);
  border-radius:14px;
  box-shadow:var(--ipn-shadow-elev);
  padding:22px 22px 18px;
  font-family:var(--ipn-font);
  transform:translateY(8px) scale(.98);
  transition:transform .18s ease;
}
.ipn-dialog-root.is-open .ipn-dialog{ transform:none; }
.ipn-dialog__close{
  position:absolute; top:10px; right:10px;
  width:32px; height:32px; border:0; border-radius:8px;
  background:transparent; color:var(--ipn-text-muted); cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center;
  padding:0; line-height:0;
}
.ipn-dialog__close:hover{ background:var(--ipn-surface-soft); color:var(--ipn-text); }
.ipn-dialog__close .material-symbols-rounded{ font-size:18px; }
.ipn-dialog__icon{
  width:40px; height:40px; border-radius:11px;
  display:flex; align-items:center; justify-content:center;
  margin:0 0 14px;
}
.ipn-dialog__icon .material-symbols-rounded{ font-size:22px; }
.ipn-dialog__icon--info{ background:var(--ipn-primary-soft); color:var(--ipn-primary); }
.ipn-dialog__icon--danger{ background:var(--ipn-danger-chip-bg); color:var(--ipn-danger); }
.ipn-dialog__icon--warning{ background:var(--ipn-warning-chip-bg); color:var(--ipn-warning); }
.ipn-dialog__title{
  margin:0 0 6px; font-size:17px; font-weight:700;
  color:var(--ipn-text); letter-spacing:-.01em; line-height:1.25;
  padding-right:28px;
}
.ipn-dialog__message{
  margin:0; font-size:13.5px; line-height:1.45;
  color:var(--ipn-text-2);
}
.ipn-dialog__actions{
  display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap;
  margin-top:20px;
}
.ipn-dialog__actions .ipn-dialog__btn-cancel{ margin-right:auto; }
.ipn-dialog__actions .ipn-dialog__btn-confirm{ margin-left:auto; }

/* =====================================================================
   20. SECURE SHARED ? novedades, KPIs panel/MDA, MeLi, quotas
   AV: 2026-07-19: CSS centralizado (no <style> en ASP). Scopes por pantalla.
   ===================================================================== */

/* --- Novedades del equipo (.mda-news) --- */
.mda-news{
  --tf-primary:#1d4e86;
  --tf-card-border:#e2e7ef;
  --tf-text:#1e293b;
  --tf-text-2:#5b6b80;
  --tf-text-3:#8493a6;
  margin-top:8px; overflow:hidden;
}
.ipn-secure__body > .mda-news,
.ipn-secure__body > .ipn-card.mda-news{
  margin-top:16px; margin-bottom:28px;
}
.mda-news__head{
  display:flex; align-items:center; gap:12px; width:100%;
  padding:14px 20px; background:none; border:0; cursor:pointer; font:inherit; text-align:left;
}
.mda-news__head .mda-news__icon{
  flex:0 0 auto; font-size:22px; line-height:1;
  display:inline-flex; align-items:center; justify-content:center;
}
.mda-news__titles{ display:flex; flex-direction:column; line-height:1.25; }
.mda-news__title{ font-size:14px; font-weight:700; color:var(--tf-text); }
.mda-news__hint{ font-size:12.5px; color:var(--tf-text-3); }
.mda-news__caret{ margin-left:auto; color:var(--tf-text-3); transition:transform .18s ease; }
.mda-news.is-open .mda-news__caret{ transform:rotate(180deg); }
.mda-news__body{ display:none; border-top:1px solid var(--tf-card-border); padding:16px 20px 20px; }
.mda-news.is-open .mda-news__body{ display:block; }
.mda-news__grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.mda-news__col h4{
  display:flex; align-items:center; gap:7px; margin:0 0 10px;
  /* AV: 2026-07-19: ?12px (QA responsive tipograf?a mobile) */
  font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--tf-primary);
}
.mda-news__col h4 .mda-news__emoji{ font-size:15px; line-height:1; }
.mda-news__col ul{ margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:8px; }
.mda-news__col li,
.mda-news__note,
.mda-news__sub,
.mda-news__empty{ font-size:12.5px; color:var(--tf-text-2); line-height:1.45; }
.mda-news__col li a{ color:var(--tf-primary); }
.mda-news__note{ margin:0 0 10px; }
.mda-news__sub{ margin:0 0 8px; font-weight:600; color:var(--tf-text); }
.mda-news__empty{ color:var(--tf-text-3); }
.mda-news__col b,
.mda-news__col .font-weight-bold{ font-weight:700; color:var(--tf-text); }
/* AV: 2026-08-03: Destacar ?tems de hoy (cumplea?os, licencias, aniversarios). */
.mda-news__item{
  padding:6px 8px;
  border-radius:8px;
  border-left:3px solid transparent;
}
.mda-news__item--today{
  background:#fff7e8;
  border-left-color:#d97706;
  color:var(--tf-text);
}
.mda-news__item--today b{ color:var(--tf-text); }
.mda-news__today{
  display:inline-block;
  margin-right:6px;
  padding:1px 7px;
  border-radius:999px;
  font-size:10px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  vertical-align:middle;
  background:#d97706;
  color:#fff;
  line-height:1.4;
}
.mda-news__early{ font-size:0.65rem; }
/* Breakpoints de .mda-news__grid: secci?n 21. */

/* --- KPIs panel: NO redefinir columns ac? (rompe @media). Solo refuerzo de shrink. --- */
.ipn-kpi-grid--panel{
  align-items:start;
  grid-auto-rows:min-content;
}
.ipn-kpi-grid .ipn-kpi,
.ipn-kpi-grid--panel .ipn-kpi{
  height:auto;
  min-height:0;
  max-height:none;
  align-self:start;
  aspect-ratio:auto;
}
/* AV: 2026-07-19: breakpoints al final del cascade (ganan sobre desktop). */
@media (max-width:1000px){
  .ipn-kpi-grid,
  .ipn-kpi-grid--panel{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media (max-width:700px){
  .ipn-kpi-grid,
  .ipn-kpi-grid--panel{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    align-items:start;
    grid-auto-rows:min-content;
  }
  .ipn-kpi-grid .ipn-kpi,
  .ipn-kpi-grid--panel .ipn-kpi{
    padding:14px 15px;
    height:auto;
    min-height:0;
    align-self:start;
  }
  .ipn-kpi__value{
    font-size:28px;
    line-height:1;
    margin:6px 0 4px;
  }
  .ipn-kpi__sub{ margin-bottom:0; padding-bottom:1px; }
}
@media (max-width:380px){
  .ipn-kpi-grid,
  .ipn-kpi-grid--panel{
    grid-template-columns:minmax(0,1fr);
  }
}

/* --- KPIs Mesa de ayuda (tema tipogr?fico sobre .ipn-kpi) --- */
.ipn-mda .ipn-kpi{
  background:#fff; border-color:#e2e7ef;
  border-radius:14px; box-shadow:0 1px 2px rgba(16,32,55,.04);
}
.ipn-mda .ipn-kpi__label{ font-size:13px; font-weight:600; color:#5b6b80; }
.ipn-mda .ipn-kpi__label .material-symbols-rounded{ font-size:18px; color:#8493a6; }
.ipn-mda .ipn-kpi__value{
  font-family:var(--ipn-font); font-size:29px; font-weight:800; color:#1e293b;
  margin:10px 0 4px; letter-spacing:-.01em; line-height:1; font-variant-numeric:tabular-nums;
}
.ipn-mda .ipn-kpi__value a{ color:inherit; text-decoration:none; }
.ipn-mda .ipn-kpi__sub{ font-size:12px; color:#8493a6; }
.ipn-mda .ipn-table-wrap{
  display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; max-width:100%;
}
.ipn-mda .mda-table{ min-width:720px; }

/* AV: 2026-07-27: MDA filtros ? grow solo en fila (desktop); en columna no usar basis px. */
.ipn-mda .mda-filters .ipn-field--mda-grow{
  flex:1 1 180px;
  min-width:150px;
}
.ipn-mda .mda-filters .ipn-field--mda-quality{
  flex:0 1 300px;
  min-width:220px;
}

/* AV: 2026-07-27: iTST filtros ? mismo patr?n (desktop wrap; mobile ?700 pisa con flex:0 0 auto). */
.ipn-itst .ipn-field--itst-user{ flex:0 0 100px; width:100px; }
.ipn-itst .ipn-field--itst-grow{ flex:1 1 200px; min-width:180px; }
.ipn-itst .ipn-field--itst-grow-sm{ flex:1 1 160px; min-width:140px; }
.ipn-itst .ipn-field--itst-grow-lg{ flex:1 1 280px; min-width:220px; }
.ipn-itst .ipn-field--itst-date{ flex:0 0 auto; }
.ipn-itst .ipn-itst-checks{ gap:18px; }

/* AV: 2026-07-27: Tickets pendientes de impresi?n ? filtros + checkbox a la izquierda. */
.ipn-ppt .ipn-ppt-filters{
  align-items:flex-end;
}
.ipn-ppt .ipn-field--ppt-client{
  flex:1 1 220px;
  min-width:200px;
}
.ipn-ppt .ipn-ppt-filters .ipn-secure-filters__actions{
  margin-left:0;
}
.ipn-ppt .ipn-ppt-exclude{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  width:100%;
  max-width:100%;
  margin:12px 0 0;
  white-space:normal;
}

/* AV: 2026-07-27: SQL Error Log ? filtro procedimiento (desktop wrap; mobile pisa flex). */
.ipn-sqlerr .ipn-field--sqlerr-proc{
  flex:1 1 280px;
  min-width:280px;
}

/* AV: 2026-07-27: Vencimientos ? filtros + checkbox a la izquierda. */
.ipn-exp .ipn-exp-filters{
  align-items:flex-end;
}
.ipn-exp .ipn-field--exp-date{
  flex:0 0 auto;
}
.ipn-exp .ipn-exp-filters .ipn-secure-filters__actions{
  margin-left:0;
}
.ipn-exp .ipn-exp-expired{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  width:100%;
  max-width:100%;
  margin:12px 0 0;
  white-space:normal;
}

/* AV: 2026-07-27: ARBA padr?n ? CUIT (desktop ancho fijo; mobile pisa flex). */
.ipn-arba .ipn-field--arba-cuit{
  flex:0 1 220px;
  min-width:180px;
  max-width:280px;
}

/* AV: 2026-07-27: Heartbeat ? t?tulo/meta + filtros (Feedback mobile 14.x). */
.ipn-hb .ipn-page-head__meta,
.ipn-hb .ipn-hb-meta{
  margin-left:auto;
  text-align:right;
  font-size:12.5px;
  color:var(--ipn-text-2);
  line-height:1.45;
  flex:0 1 auto;
  max-width:280px;
}
.ipn-hb .ipn-hb-meta__line{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:4px 6px;
}
.ipn-hb .ipn-hb-meta__val{
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.ipn-hb .ipn-field--hb-id{ flex:0 0 140px; }
.ipn-hb .ipn-field--hb-id-sm{ flex:0 0 120px; }
.ipn-hb .ipn-field--hb-status{ flex:0 0 160px; }
.ipn-hb .ipn-hb-exclude{
  min-height:var(--ipn-control-h, 44px);
  align-self:flex-end;
}
@media (max-width:700px){
  /* AV: 2026-07-27: 14.1/14.2 ? meta debajo del t?tulo (no comprimir H1 a 3 l?neas). */
  .ipn-hb .ipn-page-head{
    flex-wrap:wrap !important;
    align-items:flex-start !important;
    gap:10px 12px;
  }
  .ipn-hb .ipn-page-head__text{
    flex:1 1 0;
    min-width:0;
  }
  .ipn-hb .ipn-page-title{
    font-size:18px;
    line-height:1.3;
  }
  .ipn-hb .ipn-hb-meta{
    flex:1 1 100%;
    max-width:none;
    margin-left:0 !important;
    text-align:left;
    padding:10px 12px;
    background:#f8fafc;
    border:1px solid var(--ipn-hairline, #e2e7ef);
    border-radius:10px;
  }
  .ipn-hb .ipn-hb-meta__line{
    justify-content:flex-start;
  }
  .ipn-hb .ipn-hb-exclude{
    width:100%;
    align-self:stretch;
    white-space:normal;
  }
}

/* AV: 2026-07-27: Capacitaciones ? filtros (Feedback mobile 15.1). */
.ipn-ut .ipn-field--ut-grow{
  flex:1 1 200px;
  min-width:160px;
}
.ipn-ut .ipn-field--ut-grow-sm{
  flex:1 1 180px;
  min-width:150px;
}

/* AV: 2026-07-27: Config reglas de negocio ? filtros (Feedback mobile 17.1). */
.ipn-cfg .ipn-field--cfg-grow{
  flex:1 1 220px;
  min-width:180px;
}

/* AV: 2026-08-04: Config listado ? min-width evita que en mobile se aplasten
   y se amontonen "Descripci?n" / "Es por raz?n social" (scroll-x en .ipn-table-wrap). */
.ipn-cfg #configTable{
  table-layout:fixed;
  width:100%;
  min-width:1120px;
}
.ipn-cfg #configTable tr.cfg-group td{
  background:var(--ipn-surface-soft);
  font-weight:600;
  color:var(--ipn-primary);
  padding-top:12px;
  padding-bottom:12px;
}
.ipn-cfg #configTable th{
  white-space:normal;
  vertical-align:bottom;
  overflow:hidden;
  line-height:1.25;
}
.ipn-cfg #configTable td{ overflow:hidden; }
/* AV: 2026-08-04: .ipn-code global usa word-break:break-all; ac? 1 l?nea + ellipsis */
.ipn-cfg #configTable td .ipn-code{
  display:inline-block;
  max-width:100%;
  vertical-align:middle;
  white-space:nowrap;
  word-break:normal;
  overflow:hidden;
  text-overflow:ellipsis;
}
.ipn-cfg #configTable col.cfg-col-id{ width:3.5em; }
.ipn-cfg #configTable col.cfg-col-code{ width:12em; }
.ipn-cfg #configTable col.cfg-col-name{ width:14em; }
.ipn-cfg #configTable col.cfg-col-bool{ width:8em; }
.ipn-cfg #configTable col.cfg-col-valor{ width:7em; }
.ipn-cfg #configTable col.cfg-col-acc{ width:6em; }
.ipn-cfg #configTable td.cfg-col-desc{ white-space:normal; }
.ipn-cfg #configTable .ipn-cell-strong{
  display:inline-block;
  max-width:100%;
  overflow-wrap:anywhere;
}

/* AV: 2026-07-27: M?todos de pago ? grilla (Feedback mobile 18.1). */
.ipn-pm #paymentMethodsTable{
  width:100%;
  min-width:980px;
  table-layout:fixed;
}
.ipn-pm #paymentMethodsTable thead th{
  white-space:nowrap;
  vertical-align:bottom;
  font-size:11px;
  letter-spacing:.02em;
}
.ipn-pm #paymentMethodsTable tbody td{ vertical-align:middle; }
.ipn-pm #paymentMethodsTable .pm-col-id,
.ipn-pm #paymentMethodsTable .pm-col-short,
.ipn-pm #paymentMethodsTable .pm-col-code,
.ipn-pm #paymentMethodsTable .pm-col-date,
.ipn-pm #paymentMethodsTable .pm-col-plan,
.ipn-pm #paymentMethodsTable .pm-col-actions{
  white-space:nowrap;
}
.ipn-pm #paymentMethodsTable .pm-col-id{ width:64px; }
.ipn-pm #paymentMethodsTable .pm-col-desc{ width:auto; }
.ipn-pm #paymentMethodsTable .pm-col-short{ width:110px; }
.ipn-pm #paymentMethodsTable .pm-col-type{ width:150px; }
.ipn-pm #paymentMethodsTable .pm-col-plan{ width:88px; text-align:center; }
.ipn-pm #paymentMethodsTable .pm-col-code{ width:96px; text-align:center; }
.ipn-pm #paymentMethodsTable .pm-col-date{ width:148px; }
.ipn-pm #paymentMethodsTable .pm-col-actions{ width:88px; text-align:right; }
.ipn-pm #paymentMethodsTable .pm-desc-main{
  display:block;
  font-weight:600;
  color:var(--ipn-text);
  line-height:1.35;
}
.ipn-pm #paymentMethodsTable .pm-desc-meta{
  display:block;
  margin-top:2px;
  font-size:11.5px;
  color:var(--ipn-text-3);
}
.ipn-pm #paymentMethodsTable .pm-short{
  font-family:var(--ipn-font-mono, ui-monospace, monospace);
  font-size:12px;
  font-variant-numeric:tabular-nums;
  color:var(--ipn-text-2);
}
.ipn-pm #paymentMethodsTable .pm-date{
  font-size:12px;
  color:var(--ipn-text-2);
  font-variant-numeric:tabular-nums;
}
.ipn-pm #paymentMethodsTable .pm-date:empty::before,
.ipn-pm #paymentMethodsTable td.pm-col-date:empty::before{
  content:"?";
  color:var(--ipn-text-muted);
}
.ipn-pm #paymentMethodsTable tr.pm-disabled td{ color:var(--ipn-text-3); }
.ipn-pm #paymentMethodsTable tr.pm-disabled .pm-desc-main{
  text-decoration:line-through;
  color:var(--ipn-danger);
}
.ipn-pm #paymentMethodsTable .ipn-table-actions{ justify-content:flex-end; gap:2px; }
.ipn-pm #paymentMethodsTable .ipn-row-action.is-visible{ opacity:1; }
@media (max-width:1100px){
  .ipn-pm #paymentMethodsTable .pm-col-date{ width:120px; }
  .ipn-pm #paymentMethodsTable .pm-col-type{ width:130px; }
}
@media (max-width:700px){
  .ipn-pm #paymentMethodsTable.ipn-table--stack{
    min-width:0;
    table-layout:auto;
  }
  .ipn-pm #paymentMethodsTable.ipn-table--stack .pm-col-id,
  .ipn-pm #paymentMethodsTable.ipn-table--stack .pm-col-desc,
  .ipn-pm #paymentMethodsTable.ipn-table--stack .pm-col-short,
  .ipn-pm #paymentMethodsTable.ipn-table--stack .pm-col-type,
  .ipn-pm #paymentMethodsTable.ipn-table--stack .pm-col-plan,
  .ipn-pm #paymentMethodsTable.ipn-table--stack .pm-col-code,
  .ipn-pm #paymentMethodsTable.ipn-table--stack .pm-col-date,
  .ipn-pm #paymentMethodsTable.ipn-table--stack .pm-col-actions{
    width:auto;
    white-space:normal;
    text-align:left;
  }
  .ipn-pm #paymentMethodsTable.ipn-table--stack tbody td > *{
    text-align:right;
    min-width:0;
  }
  .ipn-pm #paymentMethodsTable.ipn-table--stack .pm-cell-value{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:4px;
    min-width:0;
  }
  .ipn-pm #paymentMethodsTable.ipn-table--stack .pm-desc-main,
  .ipn-pm #paymentMethodsTable.ipn-table--stack .pm-desc-meta{
    text-align:right;
    line-height:1.4;
    overflow-wrap:anywhere;
  }
  .ipn-pm #paymentMethodsTable.ipn-table--stack .pm-col-actions .ipn-table-actions{
    margin-left:auto;
  }
}

/* AV: 2026-07-27: Auditor?a acceso seguridad ? tabla legible (Feedback 16.1). */
.ipn-cal #accessLogTable{
  width:100%;
  min-width:720px;
  table-layout:fixed;
}
.ipn-cal #accessLogTable thead th{
  white-space:nowrap;
  font-size:11px;
  letter-spacing:.02em;
  vertical-align:bottom;
}
.ipn-cal #accessLogTable tbody td{ vertical-align:middle; }
/* AV: 2026-08-04: Fecha m?s ancha + aire hacia Cliente (datetime con a.m./p.m. se amontonaba) */
.ipn-cal #accessLogTable .cal-col-date{
  width:190px;
  white-space:nowrap;
  padding-right:18px;
}
.ipn-cal #accessLogTable .cal-col-client{
  width:18%;
  padding-left:6px;
}
.ipn-cal #accessLogTable .cal-col-user{ width:26%; }
.ipn-cal #accessLogTable .cal-col-ip{ width:140px; white-space:nowrap; }
.ipn-cal #accessLogTable .cal-col-comment{ width:auto; }
.ipn-cal #accessLogTable .cal-date{
  font-size:12px;
  font-variant-numeric:tabular-nums;
  color:var(--ipn-text-2);
  white-space:nowrap;
}
.ipn-cal #accessLogTable .cal-ip{
  font-family:var(--ipn-font-mono, ui-monospace, monospace);
  font-size:12px;
  font-variant-numeric:tabular-nums;
  color:var(--ipn-text-2);
}
.ipn-cal #accessLogTable .cal-user-name{
  display:block;
  font-weight:600;
  color:var(--ipn-text);
  line-height:1.3;
}
.ipn-cal #accessLogTable .cal-user-login{
  display:block;
  margin-top:2px;
  font-size:11.5px;
  color:var(--ipn-text-3);
  font-family:var(--ipn-font-mono, ui-monospace, monospace);
}
.ipn-cal #accessLogTable .cal-comment{
  color:var(--ipn-text-2);
  line-height:1.4;
  word-break:break-word;
}
.ipn-cal #accessLogTable .cal-comment.is-empty{ color:var(--ipn-text-muted); }
@media (max-width:700px){
  /* AV: 2026-07-27: stack cards ? sin solapar columnas. */
  .ipn-cal #accessLogTable.ipn-table--stack{
    min-width:0;
    table-layout:auto;
  }
  .ipn-cal #accessLogTable.ipn-table--stack .cal-col-date,
  .ipn-cal #accessLogTable.ipn-table--stack .cal-col-client,
  .ipn-cal #accessLogTable.ipn-table--stack .cal-col-user,
  .ipn-cal #accessLogTable.ipn-table--stack .cal-col-ip,
  .ipn-cal #accessLogTable.ipn-table--stack .cal-col-comment{
    width:auto;
    white-space:normal;
  }
  .ipn-cal #accessLogTable.ipn-table--stack .cal-date{
    white-space:normal;
  }
  .ipn-cal #accessLogTable.ipn-table--stack tbody td > *{
    text-align:right;
    min-width:0;
  }
  .ipn-cal #accessLogTable.ipn-table--stack .cal-user-name,
  .ipn-cal #accessLogTable.ipn-table--stack .cal-user-login{
    text-align:right;
  }
}

@media (max-width:700px){
  /* AV: 2026-07-27: Feedback mobile 8.1/8.2 ? sin huecos verticales en General y Calidad. */
  .ipn-mda .mda-filters{
    flex-direction:column; align-items:stretch; gap:10px;
  }
  .ipn-mda .mda-filters .ipn-secure-filters{
    flex-direction:column !important;
    flex-wrap:nowrap;
    align-items:stretch;
    align-content:flex-start;
    gap:10px;
    height:auto;
    flex:0 0 auto;
    min-height:0;
  }
  .ipn-mda .mda-filters .ipn-secure-filters > .ipn-field,
  .ipn-mda .mda-filters .ipn-field,
  .ipn-mda .mda-filters .ipn-field--num,
  .ipn-mda .mda-filters .ipn-field--mda-grow,
  .ipn-mda .mda-filters .ipn-field--mda-quality{
    flex:0 0 auto !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none;
    height:auto;
  }
  .ipn-mda .mda-filter-card [tab="appsFilters"]:not(.d-none){
    display:flex;
    flex-direction:column;
    gap:10px;
    flex:0 0 auto;
    min-height:0;
  }
  .ipn-mda .mda-quality-opts{
    margin-top:0;
    gap:8px;
  }
  .ipn-mda .mda-results-head{ flex-direction:column; align-items:stretch; gap:10px; }
  .ipn-mda .mda-results-head__order{ margin-left:0; width:100%; }
  .ipn-mda .mda-order-select{ max-width:none; width:100%; }
  .ipn-mda .mda-results-foot{ flex-direction:column; align-items:stretch; }
  .ipn-mda .mda-results-foot .ipn-pager__controls{ margin-left:0; width:100%; justify-content:center; }
}

/* --- Procesos MeLi ? stat-cards --- */
.jobs-mla-kpis{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px; margin-bottom:16px;
  align-items:start; grid-auto-rows:min-content;
}
.jobs-mla-kpi{
  background:#fff; border:1px solid #e2e7ef; border-radius:14px;
  box-shadow:0 1px 2px rgba(16,32,55,.04);
  padding:16px 18px; display:flex; gap:12px; align-items:flex-start;
  height:auto; min-height:0; box-sizing:border-box;
}
.jobs-mla-kpi__icon{
  width:36px; height:36px; border-radius:10px;
  display:inline-flex; align-items:center; justify-content:center;
  background:#f8fafc; color:#5b6b80; flex:0 0 auto;
}
.jobs-mla-kpi__icon .material-symbols-rounded{ font-size:20px; }
.jobs-mla-kpi__icon--warn{ background:#fdf3e3; color:#a9691a; }
.jobs-mla-kpi__icon--danger{ background:#fdeaea; color:#b0525a; }
.jobs-mla-kpi__icon--info{ background:#e9eff9; color:#1d4e86; }
.jobs-mla-kpi__label{ font-size:12px; font-weight:500; color:#8493a6; margin:0 0 4px; }
.jobs-mla-kpi__value{
  font-size:28px; font-weight:700; color:#1e293b; line-height:1;
  font-variant-numeric:tabular-nums; letter-spacing:-.02em;
  overflow-wrap:anywhere;
}
.jobs-mla-kpi__value.is-danger{ color:#b0525a; }
.jobs-mla-kpi__sub{ font-size:12px; color:#8493a6; margin-top:4px; padding-bottom:1px; }
@media (max-width:1000px){
  .jobs-mla-kpis{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:700px){
  .jobs-mla-kpis{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .jobs-mla-kpi{ padding:14px 15px; }
  .jobs-mla-kpi__value{ font-size:28px; line-height:1; }
}
@media (max-width:380px){
  .jobs-mla-kpis{ grid-template-columns:minmax(0,1fr); }
}

/* --- Detalle de cliente ? quotas (stat-cards) --- */
.ipn-quota-row{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-bottom:18px;
  align-items:start; grid-auto-rows:min-content;
}
.ipn-quota{
  position:relative; background:#fff; border:1px solid #e2e7ef; border-radius:14px;
  box-shadow:0 1px 2px rgba(16,32,55,.04); padding:14px 16px 16px;
  height:auto; min-height:0; box-sizing:border-box;
}
.ipn-quota__top{ display:flex; align-items:center; gap:10px; margin-bottom:8px; padding-right:52px; }
.ipn-quota__icon{
  flex:0 0 34px; width:34px; height:34px; border-radius:9px;
  display:inline-flex; align-items:center; justify-content:center;
  background:#eef4fb; color:var(--ipn-primary,#1d4e86);
}
.ipn-quota__icon .material-symbols-rounded{ font-size:20px; }
.ipn-quota__label{ font-size:13px; font-weight:500; color:#5b6b80; }
.ipn-quota__value{
  font-size:22px; font-weight:700; color:#1e293b; letter-spacing:-.02em;
  line-height:1; margin-bottom:10px; overflow-wrap:anywhere;
}
.ipn-quota__value span{ font-weight:500; color:#8493a6; font-size:16px; }
.ipn-quota__badge{
  position:absolute; top:12px; right:12px;
  padding:2px 8px; border-radius:999px; font-size:11px; font-weight:700;
}
.ipn-quota__bar{ height:7px; border-radius:999px; background:#eef1f6; overflow:hidden; }
.ipn-quota__fill{ height:100%; border-radius:999px; width:0; transition:width .25s ease; }
.ipn-quota--ok .ipn-quota__badge{ background:#e6f4ee; color:#1f7a52; }
.ipn-quota--ok .ipn-quota__fill{ background:#1f7a52; }
.ipn-quota--warn .ipn-quota__badge{ background:#fff4e5; color:#a9691a; }
.ipn-quota--warn .ipn-quota__fill{ background:#a9691a; }
.ipn-quota--crit .ipn-quota__badge{ background:#fdecee; color:#b0525a; }
.ipn-quota--crit .ipn-quota__fill{ background:#b0525a; }
@media (max-width:700px){
  .ipn-quota-row{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .ipn-quota{ padding:14px 15px; }
}
@media (max-width:380px){
  .ipn-quota-row{ grid-template-columns:minmax(0,1fr); }
}

/* =====================================================================
   21. SECURE RESPONSIVE SYSTEM (compartido ? Panel de implementaci?n)
   AV: 2026-07-19: Un solo set de media queries para ~40 m?dulos.
   Breakpoints: ?1000 desktop ? 700?999 tablet ? <700 mobile ? <380 angosto ? <900 detail.
   NO tocar topbar/footer globales.
   ===================================================================== */

/* --- Detail layout (contenido + sidebar) --- */
.ipn-detail-layout{
  display:flex; gap:20px; align-items:flex-start;
  margin-top:4px;
}
.ipn-detail-main{ flex:1 1 auto; min-width:0; }
.ipn-detail-main > .ipn-card,
.ipn-detail-side > .ipn-card{ margin-top:0; }
/* AV: 2026-08-30: #133 ? tablas embebidas del detalle a ancho completo (antes scope m?dulo). */
.ipn-detail-main .ipn-table-wrap,
.ipn-detail-main .ipn-table{
  width:100%;
  max-width:100%;
}
.ipn-detail-side{
  flex:0 0 340px; width:340px; position:sticky; top:12px;
}
/* AV: 2026-08-26: Detalle ERP compartido ? sidebar/head/danger; sin scope por m?dulo. */
.ipn-detail-layout .ipn-side-block{ padding:0; }
/* AV: 2026-08-26: Hover en acciones del sidebar no pisa el border-radius del card (issue #37). */
.ipn-detail-layout .ipn-detail-side > .ipn-card{
  overflow:hidden;
}
.ipn-detail-layout .ipn-card__head{
  padding:14px 18px 0;
  border:0;
}
.ipn-action-row--danger .ipn-action-row__title{ color:#b42318; }
.ipn-action-row--danger .ipn-action-row__icon{
  color:#b42318;
  background:rgba(180,35,24,.08);
}
/* AV: 2026-08-30: #133 ? disabled de acciones en sidebar (antes scope de m?dulo). */
.ipn-action-row--disabled{
  opacity:.55;
  cursor:not-allowed;
  pointer-events:none;
}
/* AV: 2026-09-07: loading post-confirm en action-row (no btnDisabled) (#463). */
.ipn-action-row.is-loading{
  pointer-events:none;
  opacity:.7;
  cursor:default;
}

@media (max-width:899px){
  .ipn-detail-layout .ipn-dl__row{
    flex-direction:column;
    align-items:stretch;
    gap:4px;
    padding:10px 0;
  }
  .ipn-detail-layout .ipn-dl__label,
  .ipn-detail-layout .ipn-dl__value{
    flex:0 0 auto;
    width:100%;
  }
  .ipn-detail-layout .ipn-dl__value{
    overflow-wrap:anywhere;
  }
}
@media (max-width:767px){
  .ipn-detail-layout .ipn-card__head{ padding:12px 16px 0; }
  .ipn-detail-layout .ipn-card__body{ padding:14px 16px; }
}

/* --- Contenedor fluid (shell). Body/topbar inner usan --ipn-secure-content-max. --- */
.ipn-secure-wrap,
.ipn-secure{
  max-width:none;
  box-sizing:border-box;
}
.ipn-secure__body{
  box-sizing:border-box;
}

/* ========== ?1000px (tablet ancha) ========== */
@media (max-width:1000px){
  .ipn-form-grid--3{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ipn-kpi-grid,
  .ipn-kpi-grid--panel{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .mda-news__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
  .jobs-mla-kpis{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}

/* ========== ?900px (detalle: sidebar debajo) ========== */
@media (max-width:900px){
  .ipn-detail-layout{ flex-direction:column; }
  .ipn-detail-side{
    flex:1 1 auto; width:100%; max-width:100%;
    position:static;
  }
  /* AV: 2026-08-27: Detalle menu2 ? main/card/dl ocupan 100% en mobile (#68/#101). */
  .ipn-detail-layout,
  .ipn-detail-main,
  .ipn-detail-main > .ipn-card,
  .ipn-detail-main .ipn-card__body,
  .ipn-detail-main .ipn-dl{
    min-width:0;
    width:100%;
    max-width:100%;
    box-sizing:border-box;
  }
}

/* ========== ?700px (mobile) ========== */
@media (max-width:700px){
  /* Header: fila ?cono|texto|kebab ? NUNCA column */
  .ipn-page-head,
  .ipn-secure .ipn-page-head,
  .ipn-secure-wrap .ipn-page-head{
    flex-direction:row; flex-wrap:nowrap; align-items:center; gap:12px;
  }
  .ipn-page-head__icon{
    width:40px; height:40px; flex:0 0 40px; flex-shrink:0;
  }
  .ipn-page-head__icon .material-symbols-rounded{ font-size:20px; }
  .ipn-page-title{ font-size:20px; line-height:1.25; overflow-wrap:break-word; word-break:normal; }
  .ipn-page-head__text,
  .ipn-page-head > div:not(.ipn-page-head__icon):not(.ipn-page-head__actions):not(.ipn-page-head__meta){
    min-width:0; flex:1 1 auto;
  }
  .ipn-secure .ipn-page-head__actions,
  .ipn-secure-wrap .ipn-page-head__actions{
    margin-left:auto; width:auto; flex:0 0 auto;
    flex-direction:row; align-items:center; gap:4px;
  }

  /* FAB: acci?n primaria del page-head (listados) */
  .ipn-secure-wrap .ipn-page-head__actions > .ipn-btn--primary,
  .ipn-secure .ipn-page-head__actions > .ipn-btn--primary{
    position:fixed;
    right:max(var(--ipn-fab-offset), env(safe-area-inset-right, 0px));
    bottom:calc(var(--ipn-fab-offset) + env(safe-area-inset-bottom, 0px));
    z-index:45;
    width:var(--ipn-fab-size); height:var(--ipn-fab-size);
    min-width:var(--ipn-fab-size); min-height:var(--ipn-fab-size);
    padding:0; margin:0; gap:0;
    border-radius:50%;
    background:var(--ipn-secure-primary); border-color:var(--ipn-secure-primary);
    color:#fff !important;
    box-shadow:0 6px 20px rgba(16,32,55,.30);
    font-size:0; line-height:0;
    justify-content:center;
  }
  .ipn-secure-wrap .ipn-page-head__actions > .ipn-btn--primary:hover,
  .ipn-secure .ipn-page-head__actions > .ipn-btn--primary:hover{
    background:var(--ipn-secure-primary-hover); border-color:var(--ipn-secure-primary-hover);
    color:#fff !important;
  }
  .ipn-secure-wrap .ipn-page-head__actions > .ipn-btn--primary .material-symbols-rounded,
  .ipn-secure .ipn-page-head__actions > .ipn-btn--primary .material-symbols-rounded{
    font-size:26px; color:#fff; margin:0;
  }
  /* Espacio para que el FAB no tape lista/paginaci?n */
  .ipn-secure-wrap:has(.ipn-page-head__actions > .ipn-btn--primary) .ipn-secure__body,
  .ipn-secure:has(.ipn-page-head__actions > .ipn-btn--primary){
    padding-bottom:calc(88px + env(safe-area-inset-bottom, 0px));
  }

  /* Acciones disponibles ? kebab (?) */
  .ipn-secure-wrap .ipn-actions-dd__toggle,
  .ipn-secure .ipn-actions-dd__toggle{
    width:var(--ipn-touch-min); height:var(--ipn-touch-min);
    min-width:var(--ipn-touch-min); min-height:var(--ipn-touch-min);
    padding:0; gap:0; font-size:0; line-height:0;
    border-radius:10px;
    justify-content:center;
  }
  .ipn-secure-wrap .ipn-actions-dd__toggle .material-symbols-rounded,
  .ipn-secure .ipn-actions-dd__toggle .material-symbols-rounded{
    display:none;
  }
  .ipn-secure-wrap .ipn-actions-dd__toggle::before,
  .ipn-secure .ipn-actions-dd__toggle::before{
    content:"more_horiz";
    font-family:"Material Symbols Rounded", sans-serif;
    font-size:24px; font-weight:400; line-height:1;
    color:var(--ipn-text-2);
    font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24;
  }
  .ipn-secure-wrap .ipn-actions-dd__menu,
  .ipn-secure .ipn-actions-dd__menu{
    right:0; left:auto; min-width:240px; max-width:min(320px, calc(100vw - 24px));
  }

  /* Formularios: barra sticky inferior (Guardar/Cancelar) */
  .ipn-secure-wrap .ipn-secure-actions,
  .ipn-secure .ipn-secure-actions{
    position:sticky;
    bottom:0; z-index:30;
    display:flex; flex-direction:row; align-items:center; justify-content:space-between;
    gap:10px; flex-wrap:wrap;
    margin:18px 0 0;
    padding:12px 16px;
    padding-bottom:calc(12px + env(safe-area-inset-bottom, 0px));
    background:#fff;
    border-top:1px solid var(--ipn-secure-card-border);
    box-shadow:0 -4px 16px rgba(16,32,55,.06);
  }
  .ipn-secure-wrap .ipn-secure-actions .ipn-btn--primary,
  .ipn-secure .ipn-secure-actions .ipn-btn--primary{
    margin-left:auto;
    background:var(--ipn-secure-primary); border-color:var(--ipn-secure-primary);
  }
  .ipn-secure-wrap .ipn-secure-actions .ipn-btn--danger,
  .ipn-secure .ipn-secure-actions .ipn-btn--danger{
    margin-left:auto;
  }
  .ipn-secure-wrap .ipn-secure-actions .ipn-btn,
  .ipn-secure .ipn-secure-actions .ipn-btn{
    min-height:var(--ipn-touch-min);
  }

  /* Grillas ? 1 columna */
  .ipn-form-grid--2,
  .ipn-form-grid--3{ grid-template-columns:minmax(0,1fr); }
  .ipn-secure-filters{
    flex-direction:column; align-items:stretch; align-content:flex-start;
    flex-wrap:nowrap; gap:10px; height:auto;
  }
  /* AV: 2026-07-27: !important ? pisa style="flex:1 1 NNpx" (basis px ? altura en columna; MDA/iTST). */
  .ipn-secure-filters > .ipn-field{
    width:100% !important; min-width:0 !important; max-width:none;
    flex:0 0 auto !important; height:auto;
  }
  .ipn-secure-filters .ipn-input,
  .ipn-secure-filters .ipn-select,
  .ipn-secure-filters .ipn-textarea{
    width:100%; min-height:var(--ipn-touch-min);
  }
  .ipn-secure-filters__actions{
    margin-left:0; width:100%;
    flex-direction:column; align-items:stretch; gap:8px;
  }
  .ipn-secure-filters__actions .ipn-btn{
    width:100%; min-height:var(--ipn-touch-min); justify-content:center;
  }
  .mda-news__grid{ grid-template-columns:minmax(0,1fr); gap:16px; }
  .ipn-kv-grid{ grid-template-columns:minmax(0,1fr); }

  /* Separadores verticales ? horizontales en 1 col */
  .ipn-col-divider,
  .ipn-grid-col + .ipn-grid-col{
    border-right:0;
    border-top:1px solid var(--ipn-secure-card-border);
    padding-top:14px; margin-top:4px;
  }

  /* KPIs: 2 col compactas */
  .ipn-kpi-grid,
  .ipn-kpi-grid--panel,
  .jobs-mla-kpis{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px; align-items:start; grid-auto-rows:min-content;
  }
  .ipn-kpi-grid .ipn-kpi,
  .ipn-kpi-grid--panel .ipn-kpi,
  .jobs-mla-kpi{
    padding:14px 15px; height:auto; min-height:0; align-self:start;
  }
  .ipn-kpi__value,
  .jobs-mla-kpi__value{ line-height:1; font-size:28px; margin:6px 0 4px; }

  /* Tablas: scroll en card; paginaci?n compacta */
  .ipn-secure-wrap .ipn-table-wrap,
  .ipn-secure .ipn-table-wrap{
    display:block !important;
    overflow-x:auto; -webkit-overflow-scrolling:touch;
    max-width:100%;
  }
  .ipn-pager{
    flex-direction:column; align-items:center; gap:10px; text-align:center;
  }
  .ipn-pager__spacer{ display:none; }
  .ipn-pager__controls{ margin:0 auto; }
  .ipn-pager__btn{ min-width:var(--ipn-touch-min); min-height:var(--ipn-touch-min); }

  /* Tabla ? cards de fila (opt-in: .ipn-table--stack + data-label en td) */
  .ipn-table--stack thead{ display:none; }
  .ipn-table--stack,
  .ipn-table--stack tbody{ display:block; width:100%; }
  .ipn-table--stack tbody tr{
    display:block;
    margin:0 0 12px;
    padding:14px 16px;
    background:#fff;
    border:1px solid var(--ipn-secure-card-border);
    border-radius:var(--ipn-secure-radius);
    box-shadow:0 1px 2px rgba(16,32,55,.04);
  }
  .ipn-table--stack tbody tr:last-child{ margin-bottom:0; }
  .ipn-table--stack tbody td{
    display:flex; align-items:flex-start; justify-content:space-between; gap:12px;
    border:0; padding:6px 0;
    white-space:normal;
  }
  .ipn-table--stack tbody td::before{
    content:attr(data-label);
    flex:0 0 auto;
    max-width:42%;
    font-size:12px; font-weight:500; color:#8493a6;
  }
  .ipn-table--stack tbody td:first-child{
    font-weight:700; color:#1e293b; font-size:14px;
  }
  .ipn-table--stack tbody td:first-child::before{ display:none; }

  /* Tipograf?a m?nima mobile */
  .ipn-secure-wrap,
  .ipn-secure{ font-size:13px; }
  .ipn-secure-wrap .ipn-label,
  .ipn-secure .ipn-label{ font-size:12px; }
}

/* ========== ?380px (mobile angosto) ========== */
@media (max-width:380px){
  .ipn-kpi-grid,
  .ipn-kpi-grid--panel,
  .jobs-mla-kpis,
  .ipn-quota-row{
    grid-template-columns:minmax(0,1fr);
  }
  .ipn-page-title{ font-size:18px; }
}

/* AV: 2026-07-19: QA reinforcements ? NO tocar max-width de .ipn-secure__body (rompe alineaci?n con topbar). */
.ipn-secure-wrap,
.ipn-secure{ max-width:none; }
.ipn-table-wrap,
.sp-table-wrap{ display:block; width:100%; max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
.ipn-table{ width:100%; max-width:none; }
.sp-table thead th{ font-size:12px; }
/* AV: 2026-07-27: #78065 ? icono privacidad MDAP (Material lock/public). */
.sp-ticket__privacy{
  display:inline-flex; align-items:center; vertical-align:-2px;
  margin-left:4px; color:#8493a6; cursor:help;
}
.sp-ticket__privacy .material-symbols-rounded{
  font-size:15px; line-height:1;
}
.sp-ticket__privacy--priv{ color:#c0392b; }
/* AV: 2026-07-27: QA mobile ? asunto del ticket wrappea (sin ellipsis agresivo) */
@media (max-width:700px){
  .sp-ticket__id{
    white-space:normal;
    overflow:visible;
    text-overflow:unset;
  }
  .sp-ticket__meta{ white-space:normal; }
}
@media (max-width:768px){
  /* Anula overrides locales que apilan el page-head (sin acciones).
     AV: 2026-08-25: con acciones, el bloque shell--nav / ap-wrap hace wrap. */
  .ipn-page-head:not(:has(.ipn-page-head__actions)),
  .ipn-secure .ipn-page-head:not(:has(.ipn-page-head__actions)),
  .encabezado.ipn-page-head:not(:has(.ipn-page-head__actions)){
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
  }
  .ipn-page-head:not(:has(.ipn-page-head__actions)) .ipn-page-head__actions{ width:auto !important; flex:0 0 auto !important; }
}

/* AV: 2026-08-25: Listados ERP (menu2) ? page-head mobile unificado.
   Pisa el nowrap global: Exportar/Agregar debajo del titulo; FAB vuelve a boton de fila.
   Cubre todos los modulos modernizados (no solo Familias/Categorias/Marcas). */
@media (max-width:768px){
  .ipn-shell--nav .ipn-page-head:has(.ipn-page-head__actions){
    flex-wrap:wrap !important;
    align-items:flex-start !important;
    gap:10px 12px;
  }
  .ipn-shell--nav .ipn-page-head:has(.ipn-page-head__actions) .ipn-page-head__text{
    flex:1 1 0 !important;
    min-width:0;
  }
  .ipn-shell--nav .ipn-page-head:has(.ipn-page-head__actions) .ipn-page-head__actions{
    flex:1 1 100% !important;
    width:100% !important;
    margin-left:0 !important;
    display:flex;
    flex-wrap:wrap;
    gap:8px;
  }
  .ipn-shell--nav .ipn-page-head__actions > .ipn-btn,
  .ipn-shell--nav .ipn-page-head__actions > .ipn-actions-dd{
    flex:1 1 auto;
    min-width:0;
    justify-content:center;
  }
  /* AV: 2026-08-29: Acciones dd al 100% de la fila ? ancla el men? al contenido (#118; reemplaza clamp 100vw de #101). */
  .ipn-shell--nav .ipn-page-head__actions > .ipn-actions-dd{
    display:flex;
    flex:1 1 100%;
    width:100%;
    max-width:100%;
    min-width:0;
    justify-content:flex-end;
    box-sizing:border-box;
  }
  /* AV: 2026-08-27: Acciones disponibles ? kebab en mobile (issue #68 taskScheduler). */
  .ipn-shell--nav .ipn-page-head__actions > .ipn-actions-dd .ipn-actions-dd__toggle{
    width:var(--ipn-touch-min, 44px);
    height:var(--ipn-touch-min, 44px);
    min-width:var(--ipn-touch-min, 44px);
    min-height:var(--ipn-touch-min, 44px);
    padding:0;
    gap:0;
    font-size:0;
    line-height:0;
    border-radius:10px;
    justify-content:center;
  }
  .ipn-shell--nav .ipn-page-head__actions > .ipn-actions-dd .ipn-actions-dd__toggle .material-symbols-rounded{
    display:none;
  }
  .ipn-shell--nav .ipn-page-head__actions > .ipn-actions-dd .ipn-actions-dd__toggle::before{
    content:"more_horiz";
    font-family:"Material Symbols Rounded", sans-serif;
    font-size:24px;
    font-weight:400;
    line-height:1;
    color:var(--ipn-text-2);
    font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24;
  }
  /* AV: 2026-08-29: Men? Acciones ? ancho de la fila de acciones, no 100vw (#118; patr?n paymentMethod). */
  .ipn-shell--nav .ipn-actions-dd__menu{
    left:0;
    right:0;
    min-width:0;
    width:100%;
    max-width:none;
    box-sizing:border-box;
  }
  .ipn-shell--nav .ipn-actions-dd__item{
    white-space:normal;
    overflow-wrap:anywhere;
    word-break:break-word;
  }
  .ipn-shell--nav .ipn-page-head__actions > .ipn-btn--primary,
  .ipn-shell--nav .ipn-page-head__actions > a.ipn-btn--primary{
    position:static !important;
    right:auto !important;
    bottom:auto !important;
    width:auto !important;
    height:auto !important;
    min-width:0 !important;
    min-height:44px !important;
    padding:10px 14px !important;
    margin:0 !important;
    gap:8px !important;
    border-radius:var(--ipn-radius-input, 8px) !important;
    font-size:13.5px !important;
    line-height:1.2 !important;
    box-shadow:none !important;
  }
  .ipn-shell--nav .ipn-page-head__actions > .ipn-btn--primary .material-symbols-rounded,
  .ipn-shell--nav .ipn-page-head__actions > a.ipn-btn--primary .material-symbols-rounded{
    font-size:20px !important;
    margin:0 !important;
  }
  /* AV: 2026-08-26: Page-head sin acciones (detalle/listado simple) ? wrap t?tulo/subt?tulo. */
  .ipn-shell--nav .ipn-page-head:not(:has(.ipn-page-head__actions)){
    flex-wrap:wrap !important;
    align-items:flex-start !important;
    gap:10px 12px;
  }
  .ipn-shell--nav .ipn-page-head:not(:has(.ipn-page-head__actions)) .ipn-page-head__icon{
    flex:0 0 40px;
    align-self:flex-start;
  }
  .ipn-shell--nav .ipn-page-head:not(:has(.ipn-page-head__actions)) .ipn-page-head__text{
    flex:1 1 0 !important;
    min-width:0;
  }
  .ipn-shell--nav .ipn-page-head:not(:has(.ipn-page-head__actions)) .ipn-page-title,
  .ipn-shell--nav .ipn-page-head:not(:has(.ipn-page-head__actions)) .ipn-page-subtitle{
    overflow-wrap:anywhere;
    line-height:1.3;
  }
  /* Filtros de listado: una columna */
  .ipn-shell--nav [class$="-filters"],
  .ipn-shell--nav [class*="-filters "]{
    flex-direction:column;
    align-items:stretch;
    gap:12px;
  }
  .ipn-shell--nav [class$="-filters"] .ipn-field,
  .ipn-shell--nav [class$="-filters"] .ipn-field--grow,
  .ipn-shell--nav [class*="-filters "] .ipn-field,
  .ipn-shell--nav [class*="-filters "] .ipn-field--grow{
    width:100%;
    min-width:0;
    flex:1 1 auto;
  }
  /* AV: 2026-08-27: Filtros mobile ? acciones a columna 100% (como secure; #91 Buscar). */
  .ipn-shell--nav [class$="-filters"] .ipn-secure-filters__actions,
  .ipn-shell--nav [class*="-filters "] .ipn-secure-filters__actions{
    width:100%;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:8px;
    margin-left:0;
  }
  .ipn-shell--nav [class$="-filters"] .ipn-secure-filters__actions .ipn-btn,
  .ipn-shell--nav [class*="-filters "] .ipn-secure-filters__actions .ipn-btn{
    flex:1 1 auto;
    width:100%;
    min-height:var(--ipn-touch-min,44px);
    justify-content:center;
    box-sizing:border-box;
  }
  /* AV: 2026-08-26: Pager listados menu2 ? columna en mobile (global, no por m?dulo). */
  .ipn-shell--nav .ipn-pager{
    flex-direction:column;
    align-items:stretch;
  }
  .ipn-shell--nav .ipn-pager__controls{
    margin-left:0;
    width:100%;
    justify-content:center;
  }
  /* AV: 2026-08-26: Chrome menu2 ? nav m?s compacta en mobile (issue #47 taskScheduler). */
  .ipn-shell--nav .ipn-nav{
    height:38px;
    min-height:38px;
  }
  .ipn-shell--nav .ipn-nav__tab,
  .ipn-shell--nav button.ipn-nav__tab,
  .ipn-shell--nav a.ipn-nav__tab{
    padding:0 10px !important;
    font-size:12.5px !important;
  }
  .ipn-shell--nav .ipn-nav__icon{
    font-size:17px !important;
  }
  .ipn-shell--nav .ipn-nav__chevron{
    font-size:14px !important;
  }
}

/* AV: 2026-08-25: Grillas ERP ? scroll-x en .ipn-table-wrap (shell clippea el documento). */
.ipn-shell--nav .ipn-card--table,
.ipn-shell--nav .ipn-table-wrap{
  max-width:100%;
  min-width:0;
}
.ipn-shell--nav .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-shell--nav .ipn-table--list{
  width:max-content;
  min-width:100%;
}

@media (max-width:700px){
  .ipn-secure, .ipn-secure-wrap{ font-size:13px; }
  .ipn-secure .ipn-muted, .ipn-secure small, .ipn-kpi__label,
  .ipn-cell-sub, .sp-ticket__date{ font-size:12px; }
  .ipn-table th, .ipn-table td, table.ipn-table th, table.ipn-table td,
  .sp-table th, .sp-table td, .pm-col-id{ font-size:12px; }
  /* Filtros / form-grids: forzar 1 col aunque el ASP traiga grid inline */
  .ipn-form-grid,
  .ipn-form-grid--2,
  .ipn-form-grid--3,
  .ipn-secure-filters,
  .ipn-secure-filters__grid,
  [class*="filters-grid"],
  [class*="FiltersGrid"]{
    grid-template-columns:minmax(0,1fr) !important;
    flex-direction:column !important;
  }
  .ipn-page-head__actions .ipn-btn:not(.ipn-btn--primary),
  .ipn-secure-actions .ipn-btn,
  .ipn-actions-dd__toggle,
  .ipn-pager a, .ipn-pager button{ min-height:44px; }
  .ipn-secure-wrap:has(.ipn-page-head__actions > .ipn-btn--primary) .ipn-secure__body,
  .ipn-secure:has(.ipn-page-head__actions > .ipn-btn--primary),
  .ipn-secure-wrap:has(.ipn-page-head__actions > a.ipn-btn--primary) .ipn-secure__body{
    padding-bottom:calc(110px + env(safe-area-inset-bottom, 0px));
  }
  .ipn-pager, .pagination{ margin-bottom:8px; padding-bottom:4px; }
}

/* AV: 2026-07-19: autofix QA font-12 */
@media (max-width:700px){
  .ipn-secure, .ipn-secure-wrap{ font-size:13px; }
  .ipn-secure .ipn-muted, .ipn-secure small, .ipn-kpi__label{ font-size:12px !important; }
}

/* AV: 2026-07-19: autofix QA no-hscroll (sin pisar max-width del body secure) */
.ipn-secure-wrap, .ipn-secure { max-width:none; }
.ipn-table-wrap { max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
/* AV: 2026-07-20: height:auto en SVG rompe toolbar Trumbowyg (iconos como puntos). */
.ipn-secure img:not(.ipn-secure-topbar__logo),
.ipn-secure canvas,
.ipn-secure video{ max-width:100%; height:auto; }
.ipn-secure svg{ max-width:100%; height:auto; }
.ipn-secure .trumbowyg-box svg{
  max-width:none;
  height:100%;
  width:17px;
}

/* AV: 2026-07-19: autofix QA fab-exists */
@media (max-width:700px){
  .ipn-secure-wrap .ipn-page-head__actions > .ipn-btn--primary,
  .ipn-secure .ipn-page-head__actions > .ipn-btn--primary,
  .ipn-secure-wrap .ipn-page-head__actions > a.ipn-btn--primary{
    position:fixed !important;
    right:max(16px, env(safe-area-inset-right, 0px)) !important;
    bottom:calc(16px + env(safe-area-inset-bottom, 0px)) !important;
    z-index:45 !important;
    width:56px !important; height:56px !important;
    min-width:56px !important; min-height:56px !important;
    padding:0 !important; border-radius:50% !important;
    font-size:0 !important; line-height:0 !important;
  }
}

/* AV: 2026-07-19: autofix QA fab-no-overlap */
@media (max-width:700px){
  .ipn-secure-wrap:has(.ipn-page-head__actions > .ipn-btn--primary) .ipn-secure__body,
  .ipn-secure:has(.ipn-page-head__actions > .ipn-btn--primary){
    padding-bottom:calc(96px + env(safe-area-inset-bottom, 0px)) !important;
  }
  .ipn-pager, .pagination { margin-bottom:12px; padding-bottom:8px; }
}

/* AV: 2026-07-19: autofix QA filters-1col */
@media (max-width:700px){
  .ipn-form-grid--2, .ipn-form-grid--3, .ipn-secure-filters{
    grid-template-columns:minmax(0,1fr) !important;
    flex-direction:column !important;
  }
  .ipn-secure-filters .ipn-input, .ipn-secure-filters .ipn-select{
    width:100% !important; max-width:100% !important;
  }
}

/* AV: 2026-07-19: autofix QA header-row
   AV: 2026-08-25: no forzar nowrap si hay acciones (listados ERP necesitan wrap). */
@media (max-width:700px){
  .ipn-page-head:not(:has(.ipn-page-head__actions)),
  .ipn-secure .ipn-page-head:not(:has(.ipn-page-head__actions)),
  .encabezado.ipn-page-head:not(:has(.ipn-page-head__actions)){
    flex-direction:row !important; flex-wrap:nowrap !important; align-items:center !important;
  }
}


/* =====================================================================
   22. ADMIN PANEL (frontend) ? adminPanel.asp
   AV: 2026-07-20: panel post-login / selecci?n de cuenta. Header con
   personalizaci?n por cliente v?a --ipn-header-* (inyectadas en el wrap).
   ===================================================================== */
:root{
  --ipn-header-bg:#122740;
  --ipn-header-fg:#ffffff;
  --ipn-header-muted:#aebbd4;
  /* AV: 2026-07-20: mismo borde logout que secure */
  --ipn-header-border:rgba(255,255,255,.55);
  --ipn-header-avatar:#2f6bb5;
}

/* AV: 2026-07-20: full-bleed como secure ? sin margin 8px del body UA */
body:has(.ipn-ap),
html:has(.ipn-ap-wrap),
body:has(.ipn-ap-wrap){
  margin:0 !important;
  padding:0 !important;
  width:100% !important;
  max-width:none !important;
  background:var(--ipn-page-bg) !important;
  font-family:var(--ipn-font);
}
/* AV: 2026-08-22: full-bleed aunque venga class "wraper" legacy (style.css width:975px). */
.ipn-ap-wrap,
.wraper.ipn-ap-wrap,
.ipn-ap-wrap.wraper{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  border:0 !important;
  background:var(--ipn-page-bg) !important;
  /* AV: 2026-07-22: sticky footer como secure ? UI ocupa el alto del viewport */
  min-height:100vh;
  min-height:100dvh;
  padding:0 !important;
  box-shadow:none !important;
  display:flex;
  flex-direction:column;
  box-sizing:border-box;
  font-family:var(--ipn-font);
  color:var(--ipn-text);
}
/* AV: 2026-07-22: primary brandado solo si el shell setea --ipn-brand*; si no, azul iPN2 */
.ipn-ap-wrap .ipn-btn--primary{
  background:var(--ipn-brand, var(--ipn-primary));
  color:var(--ipn-brand-fg, #fff);
  border-color:transparent;
}
.ipn-ap-wrap .ipn-btn--primary:hover{
  background:var(--ipn-brand-hover, var(--ipn-primary-hover));
  color:var(--ipn-brand-fg, #fff);
  text-decoration:none;
}
.ipn-ap-wrap a.ipn-btn--primary,
.ipn-ap-wrap a.ipn-btn--primary:link,
.ipn-ap-wrap a.ipn-btn--primary:visited,
.ipn-ap-wrap a.ipn-btn--primary:hover,
.ipn-ap-wrap a.ipn-btn--primary:active,
.ipn-ap-wrap a.ipn-btn--primary:focus{
  color:var(--ipn-brand-fg, #fff) !important;
  background:var(--ipn-brand, var(--ipn-primary));
}
.ipn-ap-wrap a.ipn-btn--primary:hover{
  background:var(--ipn-brand-hover, var(--ipn-primary-hover)) !important;
}
.ipn-ap-wrap > .main_content.ipn-ap{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  border:0 !important;
  background:var(--ipn-page-bg) !important;
  flex:1 1 auto;
  min-height:0;
  /* AV: 2026-08-24: min-width:0 evita que tablas/mega ensanchen el flex y generen scroll-x. */
  min-width:0;
  padding:0 !important;
  box-shadow:none !important;
  display:flex;
  flex-direction:column;
}
.ipn-ap *,
.ipn-ap *::before,
.ipn-ap *::after{ box-sizing:border-box; }

/* --- Topbar (personalizable) --- */
/* AV: 2026-07-31: alias .ipn-topbar ? misma topbar compartida (ipn_topbar.asp / menu2) */
.ipn-topbar,
.ipn-ap-topbar{
  background:var(--ipn-header-bg);
  color:var(--ipn-header-fg);
  height:var(--ipn-topbar-h);
  min-height:var(--ipn-topbar-h);
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  flex:0 0 auto;
  border:none !important;
  border-bottom:1px solid color-mix(in srgb, var(--ipn-header-fg) 12%, transparent) !important;
  box-sizing:border-box;
  position:relative;
  /* AV: 2026-07-27: QA 3.2.1 ? topbar > page-head (z 40); si no, Acciones tapa el men? de cuenta */
  z-index:100;
  overflow:visible;
}
.ipn-ap-topbar__inner{
  width:100%;
  max-width:var(--ipn-secure-content-max, 1440px);
  margin:0 auto;
  padding:0 24px;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.ipn-ap-topbar__brand{
  display:inline-flex;
  align-items:center;
  text-decoration:none;
  flex:0 0 auto;
  max-height:100%;
}
.ipn-ap-topbar__logo,
img.ipn-ap-topbar__logo{
  /* AV: 2026-07-23: mismo intermedio 32px que secure topbar y logo ERP. */
  height:auto !important;
  width:auto !important;
  max-height:32px !important;
  max-width:200px !important;
  object-fit:contain !important;
  display:block !important;
}
/* AV: 2026-07-20: account full-bleed a la derecha (sin campanita); igual que secure */
.ipn-ap-topbar__account{
  display:inline-flex;
  align-items:center;
  gap:12px;
  margin-left:auto;
  min-width:0;
  padding-left:14px;
  border-left:1px solid color-mix(in srgb, var(--ipn-header-fg) 22%, transparent);
  position:relative;
}
.ipn-ap-topbar__identity{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:1px;
  min-width:0;
  max-width:220px;
}
.ipn-ap-topbar__name{
  font-size:12.5px;
  font-weight:700;
  line-height:1.2;
  color:var(--ipn-header-fg);
  text-transform:uppercase;
  letter-spacing:.02em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:100%;
  display:block;
}
.ipn-ap-topbar__role{
  font-size:11.5px;
  font-weight:400;
  line-height:1.2;
  color:var(--ipn-header-muted);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:100%;
  display:block;
}
.ipn-ap-topbar__avatar{
  flex:0 0 auto;
  width:34px;
  height:34px;
  border-radius:50%;
  /* AV: 2026-08-19: avatar = --ipn-brand / --ipn-brand-fg (Bella Paloma naranja, etc.). */
  background:var(--ipn-brand, #2f62c4);
  color:var(--ipn-brand-fg, #fff);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:12px;
  font-weight:700;
  letter-spacing:.02em;
  line-height:1;
  transition:box-shadow .15s ease;
}
/* --- Body --- */
.ipn-ap__body{
  width:100%;
  max-width:var(--ipn-secure-content-max, 1440px);
  margin:0 auto;
  /* AV: 2026-07-22: un poco menos de aire entre topbar y breadcrumb */
  padding:20px 24px 8px;
  box-sizing:border-box;
  /* AV: 2026-07-22: crece para empujar el footer al fondo del viewport */
  flex:1 1 auto;
}
/* AV: 2026-07-22: aire breadcrumb ? page-head (patr?n Personalizaciones; todas las pantallas AP) */
.ipn-ap__body > .ipn-breadcrumb{
  margin:0 0 20px;
}
.ipn-ap-hero{ margin:0 0 28px; }
.ipn-ap-hero__eyebrow{
  margin:0 0 8px;
  font-size:12px;
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--ipn-text-muted);
}
.ipn-ap-hero__title{
  margin:0;
  display:flex;
  flex-direction:row;
  flex-wrap:nowrap;
  align-items:center;
  gap:12px;
  min-width:0;
}
.ipn-ap-hero__icon{
  flex:0 0 auto;
  width:40px;
  height:40px;
  border-radius:10px;
  background:var(--ipn-primary-soft);
  color:var(--ipn-secure-primary);
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.ipn-ap-hero__icon .material-symbols-rounded{ font-size:22px; }
.ipn-ap-hero__name{
  font-size:28px;
  font-weight:700;
  line-height:1.2;
  /* AV: 2026-07-22: siempre tinta oscura ? custom del header puede ser blanco/claro */
  color:var(--ipn-text, #122740);
  min-width:0;
  word-break:break-word;
}
.ipn-ap-section{ margin:0 0 32px; }
.ipn-ap-section__title{
  margin:0 0 14px;
  font-size:15px;
  font-weight:700;
  color:var(--ipn-text);
}

/* --- Stat cards --- */
.ipn-ap-stats{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:14px;
}
.ipn-ap-stat{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  gap:6px;
  background:var(--ipn-surface);
  border:1px solid var(--ipn-secure-card-border, var(--ipn-hairline));
  border-radius:var(--ipn-secure-radius, 14px);
  box-shadow:var(--ipn-shadow-card);
  padding:16px 16px 14px;
  text-decoration:none !important;
  color:inherit;
  min-width:0;
  min-height:0;
  transition:box-shadow .15s ease, transform .15s ease;
}
a.ipn-ap-stat:hover{
  box-shadow:var(--ipn-shadow-elev);
  transform:translateY(-1px);
  text-decoration:none !important;
  color:inherit;
}
.ipn-ap-stat__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:8px;
  margin-bottom:4px;
}
.ipn-ap-stat__icon{
  width:36px;
  height:36px;
  border-radius:10px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#eef3f9;
  color:var(--ipn-secure-primary);
}
.ipn-ap-stat__icon .material-symbols-rounded{ font-size:20px; }
.ipn-ap-stat__badge{
  font-size:11px;
  font-weight:700;
  letter-spacing:.02em;
  padding:3px 8px;
  border-radius:999px;
  line-height:1.2;
}
.ipn-ap-stat__label{
  font-size:12.5px;
  font-weight:500;
  color:var(--ipn-text-3);
}
.ipn-ap-stat__value{
  font-size:26px;
  font-weight:700;
  line-height:1.15;
  color:var(--ipn-text);
  font-variant-numeric:tabular-nums;
  text-decoration:none !important;
}
.ipn-ap-stat__bar{
  margin-top:8px;
  height:6px;
  border-radius:999px;
  background:#eef1f6;
  overflow:hidden;
}
.ipn-ap-stat__bar-fill{
  display:block;
  height:100%;
  border-radius:inherit;
  transition:width .25s ease;
}
.ipn-ap-stat--ok .ipn-ap-stat__badge{ background:var(--ipn-success-chip-bg); color:var(--ipn-success-chip-fg); }
.ipn-ap-stat--ok .ipn-ap-stat__bar-fill{ background:var(--ipn-success); }
.ipn-ap-stat--ok .ipn-ap-stat__icon{ background:#e4f2ec; color:var(--ipn-success); }
.ipn-ap-stat--warn .ipn-ap-stat__badge{ background:var(--ipn-warning-chip-bg); color:var(--ipn-warning-ink); }
.ipn-ap-stat--warn .ipn-ap-stat__bar-fill{ background:var(--ipn-warning); }
.ipn-ap-stat--warn .ipn-ap-stat__icon{ background:#f7efdf; color:var(--ipn-warning); }
.ipn-ap-stat--crit .ipn-ap-stat__badge{ background:var(--ipn-danger-chip-bg); color:var(--ipn-danger-chip-fg); }
.ipn-ap-stat--crit .ipn-ap-stat__bar-fill{ background:var(--ipn-danger); }
.ipn-ap-stat--crit .ipn-ap-stat__icon{ background:#fbe8e8; color:var(--ipn-danger); }

/* --- Shortcut tiles --- */
.ipn-ap-tiles{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
}
.ipn-ap-tile{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  gap:8px;
  background:var(--ipn-surface);
  border:1px solid var(--ipn-secure-card-border, var(--ipn-hairline));
  border-radius:var(--ipn-secure-radius, 14px);
  box-shadow:var(--ipn-shadow-card);
  padding:18px 18px 16px;
  text-decoration:none !important;
  color:inherit;
  min-height:0;
  transition:box-shadow .15s ease, transform .15s ease, border-color .15s ease;
}
.ipn-ap-tile:hover{
  box-shadow:var(--ipn-shadow-elev);
  transform:translateY(-2px);
  border-color:#cfd8e6;
  text-decoration:none !important;
  color:inherit;
}
.ipn-ap-tile__top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  margin-bottom:4px;
}
.ipn-ap-tile__icon{
  width:40px;
  height:40px;
  border-radius:10px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.ipn-ap-tile__icon .material-symbols-rounded{ font-size:22px; }
.ipn-ap-tile__icon--blue{ background:#e8f0fa; color:#1d4e86; }
.ipn-ap-tile__icon--indigo{ background:#ece8f8; color:#4b3f9a; }
.ipn-ap-tile__icon--teal{ background:#e5f5f2; color:#1a7a6a; }
.ipn-ap-tile__icon--amber{ background:#f7efdf; color:#946318; }
.ipn-ap-tile__icon--violet{ background:#f0e8f7; color:#6b3f8a; }
.ipn-ap-tile__arrow{
  font-size:18px !important;
  color:var(--ipn-text-faint);
}
.ipn-ap-tile__title{
  margin:0;
  font-size:15px;
  font-weight:700;
  color:#1d4e86;
  line-height:1.3;
}
.ipn-ap-tile__desc{
  margin:0;
  font-size:12.5px;
  line-height:1.45;
  color:var(--ipn-text-3);
}

/* --- Footer --- */
.ipn-ap-footer{
  width:100%;
  margin-top:auto;
  flex-shrink:0;
  border-top:1px solid var(--ipn-hairline);
  background:var(--ipn-page-bg);
  font-family:var(--ipn-font);
}
.ipn-ap-footer__inner{
  width:100%;
  max-width:var(--ipn-secure-content-max, 1440px);
  margin:0 auto;
  padding:14px 24px 18px;
  display:flex;
  flex-direction:column;
  gap:4px;
  box-sizing:border-box;
}
.ipn-ap-footer__row{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}
.ipn-ap-footer__brand,
.ipn-ap-footer__meta{
  display:flex;
  align-items:baseline;
  gap:8px;
  flex-wrap:wrap;
  font-size:12px;
  color:#8493a6;
  line-height:1.4;
}
.ipn-ap-footer__product{
  font-size:13px;
  font-weight:700;
  color:#1d4e86;
}
.ipn-ap-footer__copy,
.ipn-ap-footer__build,
.ipn-ap-footer__sep{
  font-size:12px;
  color:#8493a6;
}
.ipn-ap-footer__build{ font-variant-numeric:tabular-nums; }
.ipn-ap-footer__meta{
  justify-content:flex-end;
  text-align:right;
}
/* AV: 2026-07-20: links legales/actividad ? !important vs .ipn2 a (--ipn-primary) */
a.ipn-ap-footer__link,
a.ipn-ap-footer__link:link,
a.ipn-ap-footer__link:visited{
  font-size:12px;
  font-weight:500;
  color:#2563a8 !important;
  text-decoration:none !important;
}
a.ipn-ap-footer__link:hover,
a.ipn-ap-footer__link:focus{
  color:#1c4a80 !important;
  text-decoration:underline !important;
}
/* AV: 2026-07-20: debug pegado a la fila de marca (mismo contenedor, gap 4px) */
.ipn-ap-footer__debug{
  width:100%;
  margin:0;
  padding:0;
  font-size:11px;
  color:var(--ipn-text-faint);
  font-family:var(--ipn-font-mono);
  line-height:1.35;
  box-sizing:border-box;
}

/* Notices dentro del panel */
.ipn-ap__body > .ipn-notice{ margin-bottom:18px; }
.ipn-ap .ipn-notice__close{
  min-width:var(--ipn-touch-min, 44px);
  min-height:var(--ipn-touch-min, 44px);
}

/* AV: 2026-07-20: KPIs ? align-items start (regla UI-IPN2-CSS ?21) */
.ipn-ap-stats{ align-items:start; }

/* --- Responsive (breakpoints iPN2) --- */
@media (max-width:1000px){
  .ipn-ap-stats{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .ipn-ap-tiles{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
@media (max-width:700px){
  .ipn-ap-topbar__identity{ display:none; }
  .ipn-ap-topbar__account{ gap:8px; padding-left:10px; }
  .ipn-ap__body{ padding:20px 14px 40px; }
  .ipn-ap-hero__title{
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
  }
  .ipn-ap-hero__name{ font-size:22px; }
  .ipn-ap-stats{ grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px; align-items:start; }
  .ipn-ap-tiles{ grid-template-columns:1fr; }
  /* AV: 2026-07-23: Feedback mobile ? t?tulo a la derecha del ?cono (menos alto por tile). */
  .ipn-ap-tile{
    flex-direction:row;
    flex-wrap:wrap;
    align-items:center;
    gap:4px 12px;
    padding:14px 16px;
  }
  .ipn-ap-tile__top{ display:contents; margin:0; }
  .ipn-ap-tile__icon{ order:1; flex:0 0 auto; }
  .ipn-ap-tile__title{
    order:2;
    flex:1 1 auto;
    min-width:0;
    margin:0;
    font-size:14.5px;
  }
  .ipn-ap-tile__arrow{ order:3; flex:0 0 auto; }
  .ipn-ap-tile__desc{
    order:4;
    flex:1 1 100%;
    margin:0;
    padding-left:52px; /* 40px icon + 12px gap */
  }
  .ipn-ap-stat__value{ font-size:22px; }
  /* AV: 2026-07-23: Feedback mobile ? evitar scroll infinito (flex:1 + 100vh en iOS).
     AV: 2026-08-26: sin min-height 100dvh ? con contenido corto el footer quedaba flotando
     (issue #59); aplica a todo el shell menu2, no por m?dulo. */
  .ipn-ap-wrap{
    min-height:0;
  }
  .ipn-ap-wrap > .main_content.ipn-ap{ flex:0 1 auto; }
  .ipn-ap-wrap.ipn-shell--nav .ipn-shell__body{ flex:0 1 auto; }
  .ipn-ap__body{ flex:0 1 auto; }
  .ipn-ap-footer{ margin-top:24px; }
  /* AV: 2026-07-23: Page-head AP global (mismo patr?n secure ?21).
     Evita t?tulo letra-a-letra + FAB/kebab en TODAS las pantallas del Panel admin
     (no solo .ipn-users / .ipn-ap-msg / .ipn-my-account). */
  .ipn-ap .ipn-page-title,
  .ipn-ap .ipn-page-subtitle{
    overflow-wrap:break-word;
    word-break:normal;
    hyphens:none;
  }
  .ipn-ap .ipn-page-head__actions{
    margin-left:auto;
    width:auto;
    flex:0 0 auto;
    flex-direction:row;
    align-items:center;
    gap:4px;
  }
  .ipn-ap .ipn-page-head__actions > .ipn-btn--primary,
  .ipn-ap .ipn-page-head__actions > a.ipn-btn--primary{
    position:fixed;
    right:max(16px, env(safe-area-inset-right, 0px));
    bottom:calc(16px + env(safe-area-inset-bottom, 0px));
    z-index:45;
    width:56px; height:56px;
    min-width:56px; min-height:56px;
    padding:0; margin:0; gap:0;
    border-radius:50%;
    font-size:0; line-height:0;
    justify-content:center;
    box-shadow:0 6px 20px rgba(16,32,55,.30);
  }
  .ipn-ap .ipn-page-head__actions > .ipn-btn--primary .material-symbols-rounded,
  .ipn-ap .ipn-page-head__actions > a.ipn-btn--primary .material-symbols-rounded{
    font-size:26px; margin:0;
  }
  .ipn-ap-wrap:has(.ipn-page-head__actions > .ipn-btn--primary) .ipn-ap__body,
  .ipn-ap-wrap:has(.ipn-page-head__actions > a.ipn-btn--primary) .ipn-ap__body{
    padding-bottom:calc(88px + env(safe-area-inset-bottom, 0px));
  }
  /* AV: 2026-08-25: menu2 listados (ipn-shell--nav) ? NO FAB; Exportar+Agregar bajo el t?tulo.
     .ipn-ap envuelve el shell y el FAB de arriba amontonaba Marcas/Familias/etc. */
  .ipn-ap-wrap.ipn-shell--nav .ipn-page-head:has(.ipn-page-head__actions){
    flex-wrap:wrap !important;
    align-items:flex-start !important;
    gap:10px 12px;
  }
  .ipn-ap-wrap.ipn-shell--nav .ipn-page-head:has(.ipn-page-head__actions) .ipn-page-head__text{
    flex:1 1 0 !important;
    min-width:0;
  }
  .ipn-ap-wrap.ipn-shell--nav .ipn-page-head:has(.ipn-page-head__actions) .ipn-page-head__actions{
    flex:1 1 100% !important;
    width:100% !important;
    margin-left:0 !important;
    display:flex;
    flex-wrap:wrap;
    gap:8px;
  }
  .ipn-ap-wrap.ipn-shell--nav .ipn-page-head__actions > .ipn-btn{
    flex:1 1 auto;
    min-width:0;
    justify-content:center;
  }
  /* AV: 2026-08-29: Acciones dd full-width en fila mobile (#118; alinea con shell--nav ?768). */
  .ipn-ap-wrap.ipn-shell--nav .ipn-page-head__actions > .ipn-actions-dd{
    display:flex;
    flex:1 1 100%;
    width:100%;
    max-width:100%;
    min-width:0;
    justify-content:flex-end;
    box-sizing:border-box;
  }
  /* AV: 2026-08-27: Acciones disponibles ? kebab en mobile menu2 (issue #68). */
  .ipn-ap-wrap.ipn-shell--nav .ipn-page-head__actions > .ipn-actions-dd .ipn-actions-dd__toggle{
    width:var(--ipn-touch-min, 44px) !important;
    height:var(--ipn-touch-min, 44px) !important;
    min-width:var(--ipn-touch-min, 44px) !important;
    min-height:var(--ipn-touch-min, 44px) !important;
    padding:0 !important;
    gap:0 !important;
    font-size:0 !important;
    line-height:0 !important;
    border-radius:10px !important;
    justify-content:center;
  }
  .ipn-ap-wrap.ipn-shell--nav .ipn-page-head__actions > .ipn-actions-dd .ipn-actions-dd__toggle .material-symbols-rounded{
    display:none !important;
  }
  .ipn-ap-wrap.ipn-shell--nav .ipn-page-head__actions > .ipn-actions-dd .ipn-actions-dd__toggle::before{
    content:"more_horiz" !important;
    display:block !important;
    font-family:"Material Symbols Rounded", sans-serif;
    font-size:24px;
    font-weight:400;
    line-height:1;
    color:var(--ipn-text-2);
    font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24;
  }
  .ipn-ap-wrap.ipn-shell--nav .ipn-page-head__actions > .ipn-btn--primary,
  .ipn-ap-wrap.ipn-shell--nav .ipn-page-head__actions > a.ipn-btn--primary{
    position:static !important;
    right:auto !important;
    bottom:auto !important;
    z-index:auto !important;
    width:auto !important;
    height:auto !important;
    min-width:0 !important;
    min-height:44px !important;
    padding:10px 14px !important;
    margin:0 !important;
    gap:8px !important;
    border-radius:var(--ipn-radius-input, 8px) !important;
    font-size:13.5px !important;
    line-height:1.2 !important;
    box-shadow:none !important;
    justify-content:center;
  }
  .ipn-ap-wrap.ipn-shell--nav .ipn-page-head__actions > .ipn-btn--primary .material-symbols-rounded,
  .ipn-ap-wrap.ipn-shell--nav .ipn-page-head__actions > a.ipn-btn--primary .material-symbols-rounded{
    font-size:20px !important;
    margin:0 !important;
  }
  .ipn-ap-wrap.ipn-shell--nav:has(.ipn-page-head__actions > .ipn-btn--primary) .ipn-ap__body,
  .ipn-ap-wrap.ipn-shell--nav:has(.ipn-page-head__actions > a.ipn-btn--primary) .ipn-ap__body{
    padding-bottom:0 !important;
  }
  .ipn-ap .ipn-actions-dd__toggle{
    width:44px; height:44px;
    min-width:44px; min-height:44px;
    padding:0; gap:0; font-size:0; line-height:0;
    border-radius:10px;
    justify-content:center;
  }
  .ipn-ap .ipn-actions-dd__toggle .material-symbols-rounded{ display:none; }
  .ipn-ap .ipn-actions-dd__toggle::before{
    content:"more_horiz";
    font-family:"Material Symbols Rounded", sans-serif;
    font-size:24px; font-weight:400; line-height:1;
    color:var(--ipn-text-2);
    font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24;
  }
  /* AV: 2026-08-29: Men? Acciones AP ? mismo ancla full-width que shell (#118). */
  .ipn-ap .ipn-actions-dd__menu{
    left:0;
    right:0;
    min-width:0;
    width:100%;
    max-width:none;
    box-sizing:border-box;
  }
  .ipn-ap-footer__row{
    flex-direction:column;
    align-items:flex-start;
    gap:8px;
  }
  .ipn-ap-footer__meta{
    justify-content:flex-start;
    text-align:left;
  }
  .ipn-ap-footer__brand,
  .ipn-ap-footer__meta{
    flex-direction:column;
    align-items:flex-start;
    gap:4px;
  }
  .ipn-ap-footer__sep{ display:none; }
  .ipn-ap, .ipn-ap-wrap{ font-size:13px; }
}
@media (max-width:380px){
  .ipn-ap-stats{ grid-template-columns:1fr; }
}

/* =====================================================================
   23. USER MENU ? dropdown del header (secure + adminPanel)
   AV: 2026-07-20: anclado al avatar/nombre; tokens --ipn-header-*.
   ===================================================================== */
.ipn-user-menu-trigger{
  display:inline-flex;
  align-items:center;
  gap:12px;
  min-width:0;
  margin:0;
  padding:4px 2px 4px 6px;
  border:0;
  background:transparent;
  cursor:pointer;
  font:inherit;
  color:inherit;
  border-radius:10px;
  min-height:var(--ipn-touch-min, 44px);
}
.ipn-user-menu-trigger:hover{
  background:color-mix(in srgb, var(--ipn-header-fg, #fff) 8%, transparent);
}
.ipn-user-menu-trigger:focus-visible{
  outline:2px solid color-mix(in srgb, var(--ipn-header-fg, #fff) 55%, transparent);
  outline-offset:2px;
}
.ipn-user-menu-trigger.is-open .ipn-secure-topbar__avatar,
.ipn-user-menu-trigger.is-open .ipn-ap-topbar__avatar{
  box-shadow:0 0 0 3px rgba(255,255,255,.35);
}

.ipn-user-menu{
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  width:320px;
  max-width:calc(100vw - 32px);
  background:#fff;
  border:1px solid #e2e7ef;
  border-radius:14px;
  box-shadow:0 16px 44px rgba(16,32,55,.22);
  /* AV: 2026-07-20: overflow:hidden + padding-bottom para no recortar botones del pie */
  overflow:hidden;
  padding-bottom:14px;
  z-index:80;
  display:none;
  text-align:left;
  font-family:var(--ipn-font);
  color:var(--ipn-text);
}
.ipn-user-menu.is-open{
  display:block;
}
/* AV: 2026-07-20: identity como <span> dentro del trigger button */
.ipn-user-menu-trigger .ipn-secure-topbar__identity,
.ipn-user-menu-trigger .ipn-ap-topbar__identity{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
}

.ipn-user-menu__identity{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 16px 14px;
  border-bottom:1px solid #eef1f6;
}
.ipn-user-menu__avatar{
  flex:0 0 auto;
  width:46px;
  height:46px;
  border-radius:50%;
  background:var(--ipn-brand, #2f62c4);
  color:var(--ipn-brand-fg, #fff);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:14px;
  font-weight:700;
  letter-spacing:.02em;
}
.ipn-user-menu__who{ min-width:0; flex:1 1 auto; }
.ipn-user-menu__who-name{
  font-size:14px;
  font-weight:700;
  color:#1e293b;
  line-height:1.25;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.ipn-user-menu__who-role{
  margin-top:2px;
  font-size:12.5px;
  color:#8493a6;
  line-height:1.3;
}
.ipn-user-menu__who-code{
  margin-top:4px;
  font-size:12px;
  color:#5b6b80;
  line-height:1.3;
}
.ipn-user-menu__who-code .ipn-mono{
  font-family:var(--ipn-font-mono);
  font-variant-numeric:tabular-nums;
  color:#5b6b80;
}

.ipn-user-menu__primary{ padding:12px 16px 4px; }
.ipn-user-menu__btn-account{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:100%;
  min-height:40px;
  padding:0 14px;
  border-radius:9px;
  /* AV: 2026-07-22: mismo color de personalizaci?n que el header (+ contraste fg) */
  background:var(--ipn-header-bg, #1d4e86);
  color:var(--ipn-header-fg, #fff) !important;
  font-size:13.5px;
  font-weight:600;
  text-decoration:none !important;
  border:0;
  transition:filter .12s ease, background .12s ease;
}
.ipn-user-menu__btn-account:hover{
  filter:brightness(0.92);
  color:var(--ipn-header-fg, #fff) !important;
  text-decoration:none !important;
}
.ipn-user-menu__btn-account .material-symbols-rounded{ font-size:18px; }

.ipn-user-menu__nav{
  display:flex;
  flex-direction:column;
  padding:8px 8px 10px;
  gap:2px;
}
.ipn-user-menu__item{
  display:flex;
  align-items:center;
  gap:12px;
  min-height:48px;
  padding:8px 10px;
  border-radius:10px;
  text-decoration:none !important;
  color:inherit;
  transition:background .12s ease;
}
.ipn-user-menu__item:hover{
  background:#f4f7fb;
  text-decoration:none !important;
  color:inherit;
}
.ipn-user-menu__item-icon{
  flex:0 0 auto;
  width:34px;
  height:34px;
  border-radius:9px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.ipn-user-menu__item-icon .material-symbols-rounded{ font-size:20px; }
.ipn-user-menu__item-icon--blue{ background:#e8f0fa; color:#1d4e86; }
.ipn-user-menu__item-icon--teal{ background:#e5f5f2; color:#1a7a6a; }
.ipn-user-menu__item-icon--indigo{ background:#ece8f8; color:#4b3f9a; }
.ipn-user-menu__item-icon--violet{ background:#f0e8f7; color:#6b3f8a; }
.ipn-user-menu__item-icon--amber{ background:#f7efdf; color:#946318; }
.ipn-user-menu__item-label{
  flex:1 1 auto;
  min-width:0;
  font-size:13.5px;
  font-weight:700;
  color:#1e293b;
  line-height:1.3;
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.ipn-user-menu__item-arrow{
  flex:0 0 auto;
  font-size:18px !important;
  color:#9aa4b1;
}
.ipn-user-menu__badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:18px;
  height:18px;
  padding:0 6px;
  border-radius:999px;
  background:#e5484d;
  color:#fff;
  font-size:11px;
  font-weight:700;
  line-height:1;
}

/* AV: 2026-07-20: bloque secure al pie del nav (separado del resto) */
.ipn-user-menu__secure{
  display:flex;
  flex-direction:column;
  gap:2px;
  margin-top:6px;
  padding-top:8px;
  border-top:1px solid #eef1f6;
}
.ipn-user-menu__secure-sep{
  display:flex;
  align-items:center;
  padding:2px 10px 4px;
}
.ipn-user-menu__secure-cap{
  font-size:10.5px;
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:#9aa4b1;
  line-height:1.2;
}

/* AV: 2026-07-20: aire alrededor de Cambiar RS / Cerrar sesi?n */
.ipn-user-menu__actions{
  display:flex;
  gap:10px;
  padding:12px 14px;
  border-top:1px solid #eef1f6;
}
.ipn-user-menu__btn-action{
  flex:1 1 0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:40px;
  margin:0;
  padding:0 10px;
  border-radius:9px;
  border:1px solid #d4dbe6;
  background:#fff;
  color:#4a5a6e !important;
  font-size:12.5px;
  font-weight:600;
  text-decoration:none !important;
  transition:background .12s ease, border-color .12s ease;
}
.ipn-user-menu__btn-action:hover{
  background:#f4f6f9;
  border-color:#c5cedb;
  color:#4a5a6e !important;
  text-decoration:none !important;
}
.ipn-user-menu__btn-action .material-symbols-rounded{ font-size:18px; }

@media (max-width:700px){
  .ipn-user-menu{
    /* AV: 2026-08-24: right:0 (sin -8px); el clip del shell evita scroll-x por 100vw. */
    width:min(320px, calc(100vw - 32px));
    right:0;
  }
}

/* =====================================================================
   24. SELECCI?N DE RAZ?N SOCIAL ? defaultSelectedCompany.asp
   AV: 2026-07-20: scope .ipn-rsc; shell adminPanel (header/footer).
   ===================================================================== */
.ipn-rsc{
  font-family:var(--ipn-font);
  color:#1e293b;
}
.ipn-rsc-hero{ margin:0 0 22px; }
.ipn-rsc-hero__eyebrow{
  margin:0 0 8px;
  font-size:11.5px;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:#8493a6;
}
.ipn-rsc-hero__title{
  display:flex;
  align-items:center;
  gap:12px;
  margin:0 0 8px;
  flex-wrap:wrap;
}
.ipn-rsc-hero__icon{
  flex:0 0 auto;
  width:40px;
  height:40px;
  border-radius:10px;
  background:var(--ipn-primary-soft, #e8f0fa);
  color:var(--ipn-secure-primary, #1d4e86);
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.ipn-rsc-hero__icon .material-symbols-rounded{ font-size:22px; }
.ipn-rsc-hero__name{
  font-size:26px;
  font-weight:700;
  line-height:1.2;
  color:var(--ipn-secure-primary, #1d4e86);
}
.ipn-rsc-hero__sub{
  margin:0;
  font-size:14px;
  color:#5b6b80;
  line-height:1.45;
  max-width:42em;
}

.ipn-rsc-toolbar{
  margin:0 0 14px;
}
.ipn-rsc-search{
  position:relative;
  display:block;
  width:100%;
  max-width:380px;
}
.ipn-rsc-search__icon{
  position:absolute;
  left:12px;
  top:50%;
  transform:translateY(-50%);
  font-size:20px !important;
  color:#8493a6;
  pointer-events:none;
}
.ipn-rsc-search__input{
  width:100%;
  height:var(--ipn-touch-min, 44px);
  min-height:var(--ipn-touch-min, 44px);
  padding:0 14px 0 42px;
  border:1px solid #d4dbe6;
  border-radius:10px;
  background:#fff;
  font:inherit;
  font-size:14px;
  color:#1e293b;
  box-sizing:border-box;
}
.ipn-rsc-search__input:focus{
  outline:none;
  border-color:#1d4e86;
  box-shadow:0 0 0 3px rgba(29,78,134,.14);
}
.ipn-rsc-search__input::placeholder{ color:#9aa4b1; }

.ipn-rsc-card{
  overflow:hidden;
  border:1px solid #e2e7ef;
  border-radius:14px;
  box-shadow:0 1px 2px rgba(16,32,55,.04);
  background:#fff;
}
.ipn-rsc-card .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  max-width:100%;
}

.ipn-rsc-table{
  width:100%;
  border-collapse:collapse;
  font-size:13.5px;
}
.ipn-rsc-table thead th{
  padding:12px 16px;
  text-align:left;
  font-size:11.5px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:#8493a6;
  background:#f8fafc;
  border-bottom:1px solid #eef1f6;
  white-space:nowrap;
}
.ipn-rsc-table .ipn-rsc-th-num{ text-align:right; }
.ipn-rsc-table .ipn-rsc-th-action{ width:1%; }
.ipn-rsc-table tbody td{
  padding:14px 16px;
  border-bottom:1px solid #eef1f6;
  vertical-align:middle;
  color:#1e293b;
}
.ipn-rsc-table tbody tr.ipn-rsc-row{
  cursor:pointer;
  transition:background .12s ease;
}
.ipn-rsc-table tbody tr.ipn-rsc-row:hover,
.ipn-rsc-table tbody tr.ipn-rsc-row:focus{
  background:#f6f9fd;
  outline:none;
}
.ipn-rsc-table tbody tr.ipn-rsc-row:focus-visible{
  outline:2px solid #1d4e86;
  outline-offset:-2px;
}

.ipn-rsc-company{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}
.ipn-rsc-avatar{
  flex:0 0 auto;
  width:40px;
  height:40px;
  border-radius:10px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:13px;
  font-weight:700;
  letter-spacing:.02em;
  color:#fff;
}
.ipn-rsc-avatar--0{ background:#2f6bb5; }
.ipn-rsc-avatar--1{ background:#1a7a6a; }
.ipn-rsc-avatar--2{ background:#6b3f8a; }
.ipn-rsc-avatar--3{ background:#946318; }
.ipn-rsc-avatar--4{ background:#b0525a; }
.ipn-rsc-avatar--5{ background:var(--ipn-brand, #3f6091); }
.ipn-rsc-company__text{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}
.ipn-rsc-company__name{
  font-weight:700;
  font-size:14px;
  color:#1e293b;
  line-height:1.3;
}
.ipn-rsc-company__meta{
  font-size:12.5px;
  color:#8493a6;
  line-height:1.3;
}

.ipn-rsc-cuit{
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
  color:#5b6b80;
}
.ipn-rsc-num{
  text-align:right;
  font-variant-numeric:tabular-nums;
  font-weight:600;
  color:#5b6b80;
}

.ipn-rsc-badge{
  display:inline-flex;
  align-items:center;
  max-width:100%;
  padding:4px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:600;
  line-height:1.3;
  white-space:normal;
}
.ipn-rsc-badge--blue{ background:#e8effa; color:#1d4e86; }
.ipn-rsc-badge--teal{ background:#e9f3f5; color:#1a7085; }
.ipn-rsc-badge--gray{ background:#eef1f6; color:#5b6b80; }

.ipn-rsc-action{ text-align:right; white-space:nowrap; }
.ipn-rsc-operate{
  display:inline-flex;
  align-items:center;
  gap:4px;
  min-height:var(--ipn-touch-min, 44px);
  font-size:13.5px;
  font-weight:600;
  color:#2563a8;
}
.ipn-rsc-row:hover .ipn-rsc-operate{ color:#1c4a80; }
.ipn-rsc-operate__arrow{ font-weight:700; }

.ipn-rsc-empty{
  padding:28px 20px;
  text-align:center;
  font-size:14px;
  color:#8493a6;
  border-top:1px solid #eef1f6;
}
.ipn-visually-hidden{
  position:absolute !important;
  width:1px; height:1px;
  padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0);
  white-space:nowrap; border:0;
}

@media (max-width:700px){
  .ipn-rsc-hero__name{ font-size:22px; }
  .ipn-rsc-search{ max-width:none; }
  .ipn-rsc-table thead th,
  .ipn-rsc-table tbody td{ padding:12px 12px; }
  .ipn-rsc-company__name{ font-size:13.5px; }
}

/* =====================================================================
   22. SALES DASHBOARD ENTERPRISE (.ipn-sales-dash)
   AV: 2026-07-21: Design language enterprise (SAP/Odoo) ? tokens + componentes
   del Dashboard de ventas. Reutilizar .ipn-sd-* / .ipn-ent-* en otros dashboards.
   ===================================================================== */
:root{
  --ipn-ent-navy:#0f2544;
  --ipn-ent-accent:#1d4e86;
  --ipn-ent-teal:#0f766e;
  --ipn-ent-violet:#5b3fb0;
  --ipn-ent-positive:#1f7a52;
  --ipn-ent-negative:#b0525a;
  --ipn-ent-app-bg:#f4f6fa;
  --ipn-ent-border:#e4e9f0;
  --ipn-ent-grid:#eef1f6;
  --ipn-ent-shadow:0 1px 2px rgba(15,37,68,.04);
  --ipn-ent-radius:12px;
  --ipn-ent-gold:#c9a227;
}

.ipn-sales-dash{
  font-family:var(--ipn-font);
  color:var(--ipn-ent-navy);
  background:var(--ipn-ent-app-bg);
  padding:8px 4px 32px;
  box-sizing:border-box;
}
.ipn-sales-dash *,
.ipn-sales-dash *::before,
.ipn-sales-dash *::after{ box-sizing:border-box; }
.ipn-sales-dash .ipn-num,
.ipn-sales-dash .ipn-sd-kpi__value,
.ipn-sales-dash .ipn-sd-rank__amt,
.ipn-sales-dash .ipn-sd-prod__amt{
  font-variant-numeric:tabular-nums;
  letter-spacing:-.2px;
}

/* --- Cards planas --- */
.ipn-ent-card{
  background:#fff;
  border:1px solid var(--ipn-ent-border);
  border-radius:var(--ipn-ent-radius);
  box-shadow:var(--ipn-ent-shadow);
}
.ipn-ent-card__head{
  display:flex; align-items:flex-start; justify-content:space-between; gap:12px;
  padding:16px 18px 0;
}
.ipn-ent-card__title{
  margin:0; font-size:15px; font-weight:700; color:var(--ipn-ent-navy); letter-spacing:-.01em;
}
.ipn-ent-card__sub{
  margin:4px 0 0; font-size:12.5px; font-weight:500; color:#8493a6;
}
.ipn-ent-card__body{ padding:14px 18px 18px; }
.ipn-ent-card__link{
  font-size:13px; font-weight:600; color:var(--ipn-ent-accent); text-decoration:none;
  white-space:nowrap; display:inline-flex; align-items:center; gap:4px;
}
.ipn-ent-card__link:hover{ text-decoration:underline; }
/* AV: 2026-08-12: #78421 - Enlace de reporte alineado a la derecha en headers h2 legacy. */
.ipn-sales-dash h2 > .ipn-ent-card__link{
  float:right;
  margin-top:2px;
}

/* --- SVG icons --- */
.ipn-ent-ico{
  display:inline-flex; align-items:center; justify-content:center;
  flex:0 0 auto; line-height:0;
}
.ipn-ent-ico svg{
  width:18px; height:18px;
  stroke:currentColor; fill:none;
  stroke-width:2; stroke-linecap:round; stroke-linejoin:round;
}
.ipn-ent-ico--sm svg{ width:14px; height:14px; }
.ipn-ent-ico--lg svg{ width:20px; height:20px; }
.ipn-ent-tile{
  width:32px; height:32px; border-radius:8px;
  display:inline-flex; align-items:center; justify-content:center;
  flex:0 0 auto;
}
.ipn-ent-tile--navy{ background:#e8eef6; color:var(--ipn-ent-accent); }
.ipn-ent-tile--teal{ background:#e6f3f1; color:var(--ipn-ent-teal); }
.ipn-ent-tile--violet{ background:#efeaf8; color:var(--ipn-ent-violet); }
.ipn-ent-tile--gray{ background:#eef1f6; color:#5b6b80; }

/* --- Page head --- */
.ipn-sd-head{
  display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:space-between;
  gap:16px 24px; margin:4px 0 20px;
}
.ipn-sd-head__text{ min-width:0; flex:1 1 280px; }
.ipn-sd-eyebrow{
  margin:0 0 6px; font-size:11px; font-weight:700; letter-spacing:.08em;
  text-transform:uppercase; color:#8493a6;
}
.ipn-sd-title{
  margin:0; font-size:28px; font-weight:700; line-height:1.15;
  color:var(--ipn-ent-navy); letter-spacing:-.02em;
}
.ipn-sd-status{
  display:inline-flex; align-items:center; gap:8px;
  margin-top:8px; font-size:12.5px; color:#8493a6; font-weight:500;
}
.ipn-sd-status__dot{
  width:8px; height:8px; border-radius:50%;
  background:var(--ipn-ent-positive);
  box-shadow:0 0 0 3px rgba(31,122,82,.18);
  flex:0 0 auto;
}
.ipn-sd-controls{
  display:flex; flex-wrap:nowrap; align-items:center; gap:10px;
  flex:0 1 auto; max-width:100%;
}
.ipn-sd-seg{
  display:inline-flex; align-items:center; padding:3px;
  background:#eef1f6; border-radius:10px; border:1px solid var(--ipn-ent-border);
  flex:0 0 auto;
}
.ipn-sd-seg__btn{
  appearance:none; border:0; background:transparent; cursor:pointer;
  height:34px; padding:0 14px; border-radius:8px;
  font:inherit; font-size:13px; font-weight:600; color:#5b6b80;
  white-space:nowrap;
}
.ipn-sd-seg__btn.is-active{
  background:var(--ipn-ent-navy); color:#fff;
  box-shadow:0 1px 2px rgba(15,37,68,.12);
}
.ipn-sd-seg__btn:focus-visible{ outline:2px solid var(--ipn-ent-accent); outline-offset:2px; }
.ipn-sd-export{
  display:inline-flex; align-items:center; gap:8px;
  height:40px; padding:0 14px; border-radius:10px;
  border:1px solid var(--ipn-ent-border); background:#fff;
  color:var(--ipn-ent-navy); font:inherit; font-size:13px; font-weight:600;
  cursor:pointer; white-space:nowrap; box-shadow:var(--ipn-ent-shadow);
}
.ipn-sd-export:hover{ background:#f7f9fc; }
.ipn-sd-export .ipn-ent-ico{ color:#5b6b80; }

/* --- Hero KPIs --- */
.ipn-sd-hero{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px; margin-bottom:14px;
}
.ipn-sd-kpi{
  position:relative; overflow:hidden;
  padding:16px 18px 14px 20px;
  background:#fff; border:1px solid var(--ipn-ent-border);
  border-radius:var(--ipn-ent-radius); box-shadow:var(--ipn-ent-shadow);
  display:flex; flex-direction:column; gap:10px; min-width:0;
}
.ipn-sd-kpi::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:var(--ipn-ent-navy);
}
.ipn-sd-kpi--navy::before{ background:var(--ipn-ent-navy); }
.ipn-sd-kpi--teal::before{ background:var(--ipn-ent-teal); }
.ipn-sd-kpi--violet::before{ background:var(--ipn-ent-violet); }
.ipn-sd-kpi__top{
  display:flex; align-items:flex-start; justify-content:space-between; gap:10px;
}
.ipn-sd-kpi__label{
  margin:0; font-size:12.5px; font-weight:600; color:#5b6b80; line-height:1.35;
}
.ipn-sd-kpi__value{
  margin:0; font-size:28px; font-weight:700; color:var(--ipn-ent-navy);
  line-height:1.05; letter-spacing:-.2px; font-variant-numeric:tabular-nums;
  overflow-wrap:anywhere;
}
.ipn-sd-kpi__foot{
  display:flex; flex-wrap:wrap; align-items:center; gap:8px;
  font-size:12px; color:#8493a6;
}
.ipn-sd-trend{
  display:inline-flex; align-items:center; gap:4px;
  padding:3px 8px; border-radius:999px;
  font-size:12px; font-weight:700; line-height:1.2;
}
.ipn-sd-trend.is-up{ background:#e8f5ee; color:var(--ipn-ent-positive); }
.ipn-sd-trend.is-down{ background:#f8eaea; color:var(--ipn-ent-negative); }
.ipn-sd-trend.is-flat{ background:#eef1f6; color:#8493a6; }
.ipn-sd-trend .ipn-ent-ico svg{ width:12px; height:12px; }

/* --- Secondary KPIs --- */
.ipn-sd-sec{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px; margin-bottom:14px;
}
.ipn-sd-sec-kpi{
  display:flex; align-items:center; gap:12px;
  padding:14px 16px;
  background:#fff; border:1px solid var(--ipn-ent-border);
  border-radius:var(--ipn-ent-radius); box-shadow:var(--ipn-ent-shadow);
  min-width:0;
}
.ipn-sd-sec-kpi__meta{ min-width:0; }
.ipn-sd-sec-kpi__label{
  margin:0 0 4px; font-size:12.5px; font-weight:600; color:#5b6b80;
}
.ipn-sd-sec-kpi__value{
  margin:0; font-size:22px; font-weight:700; color:var(--ipn-ent-navy);
  letter-spacing:-.2px; font-variant-numeric:tabular-nums;
}

/* --- Chart card --- */
.ipn-sd-chart{ margin-bottom:14px; }
.ipn-sd-chart .ipn-ent-card__head{ align-items:center; padding-bottom:8px; }
.ipn-sd-chart__legend{
  display:inline-flex; align-items:center; gap:14px;
  font-size:12px; font-weight:600; color:#5b6b80;
}
.ipn-sd-chart__swatch{
  display:inline-flex; align-items:center; gap:6px;
}
.ipn-sd-chart__swatch i{
  display:inline-block; width:10px; height:10px; border-radius:2px;
  background:var(--ipn-ent-navy);
}
.ipn-sd-chart__swatch--line i{
  width:8px; height:8px; border-radius:50%; background:var(--ipn-ent-teal);
}
.ipn-sd-chart__canvas-wrap{
  position:relative; height:280px; width:100%;
  padding:0 8px 8px;
}

/* --- Split: donut + ranking --- */
.ipn-sd-split{
  display:grid; grid-template-columns:minmax(260px,.9fr) minmax(0,1.4fr);
  gap:14px; margin-bottom:14px; align-items:stretch;
}
.ipn-sd-donut__wrap{
  position:relative; height:220px; max-width:260px; margin:0 auto;
}
.ipn-sd-donut__center{
  position:absolute; inset:0; display:flex; flex-direction:column;
  align-items:center; justify-content:center; pointer-events:none;
  text-align:center;
}
.ipn-sd-donut__center span{
  font-size:11px; font-weight:600; color:#8493a6; text-transform:uppercase; letter-spacing:.04em;
}
.ipn-sd-donut__center strong{
  font-size:20px; font-weight:700; color:var(--ipn-ent-navy);
  letter-spacing:-.2px; font-variant-numeric:tabular-nums;
}
.ipn-sd-donut__legend{
  list-style:none; margin:12px 0 0; padding:0;
  display:flex; flex-direction:column; gap:8px;
}
.ipn-sd-donut__legend li{
  display:flex; align-items:center; gap:8px;
  font-size:12.5px; color:#5b6b80; font-weight:500;
}
.ipn-sd-donut__legend i{
  width:8px; height:8px; border-radius:50%; flex:0 0 auto;
}
.ipn-sd-donut__legend b{
  margin-left:auto; font-variant-numeric:tabular-nums; color:var(--ipn-ent-navy);
}

.ipn-sd-rank{ width:100%; border-collapse:collapse; font-size:13px; }
.ipn-sd-rank th{
  text-align:left; font-size:11px; font-weight:700; color:#8493a6;
  text-transform:uppercase; letter-spacing:.04em;
  padding:0 8px 10px; border-bottom:1px solid var(--ipn-ent-grid);
}
.ipn-sd-rank td{
  padding:10px 8px; border-bottom:1px solid var(--ipn-ent-grid);
  vertical-align:middle; color:var(--ipn-ent-navy);
}
.ipn-sd-rank tr:last-child td{ border-bottom:0; }
.ipn-sd-rank__n{
  width:28px; font-weight:700; color:#8493a6; font-variant-numeric:tabular-nums;
}
.ipn-sd-rank__n.is-gold{ color:var(--ipn-ent-gold); }
.ipn-sd-rank__name{ font-weight:600; min-width:0; }
.ipn-sd-rank__bar{
  width:100%; max-width:120px; height:6px; border-radius:999px;
  background:#eef1f6; overflow:hidden;
}
.ipn-sd-rank__bar > span{
  display:block; height:100%; border-radius:999px; background:#c5d0de;
}
.ipn-sd-rank__bar.is-lead > span{ background:var(--ipn-ent-navy); }
.ipn-sd-rank__amt{
  text-align:right; font-weight:700; white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.ipn-sd-rank__meta{
  text-align:right; color:#8493a6; font-size:12px; white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.ipn-sd-rank__pct{
  text-align:right; font-weight:600; color:#5b6b80; white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.ipn-sd-rank__total td{
  border-top:1px solid var(--ipn-ent-border); border-bottom:0;
  padding-top:12px; font-weight:700;
}

/* --- Top productos --- */
.ipn-sd-prods{ margin-bottom:14px; }
.ipn-sd-prods__grid{
  display:grid; grid-template-columns:1fr 1fr; gap:4px 28px;
}
.ipn-sd-prod{
  display:grid;
  /* AV: 2026-08-11: columnas importe / cant / % (reemplaza trend placeholder) */
  grid-template-columns:28px minmax(0,1fr) auto auto auto;
  gap:10px; align-items:center;
  padding:10px 4px; border-bottom:1px solid var(--ipn-ent-grid);
}
.ipn-sd-prod:last-child{ border-bottom:0; }
.ipn-sd-prod__rank{
  font-size:13px; font-weight:700; color:#8493a6;
  font-variant-numeric:tabular-nums;
}
.ipn-sd-prod__name{
  margin:0; font-size:13.5px; font-weight:700; color:var(--ipn-ent-navy);
  line-height:1.25; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.ipn-sd-prod__name a{ color:inherit; text-decoration:none; }
.ipn-sd-prod__name a:hover{ text-decoration:underline; }
.ipn-sd-prod__sub{
  margin:2px 0 0; font-size:12px; color:#8493a6; font-weight:500;
}
.ipn-sd-prod__amt{
  font-size:13.5px; font-weight:700; color:var(--ipn-ent-navy);
  white-space:nowrap; font-variant-numeric:tabular-nums;
  text-align:right; justify-self:end;
}
.ipn-sd-prod__qty,
.ipn-sd-prod__pct{
  font-size:12.5px; color:#8493a6; white-space:nowrap;
  font-variant-numeric:tabular-nums; text-align:right; justify-self:end;
  min-width:3.25em;
}
.ipn-sd-prod__pct{ font-weight:600; color:var(--ipn-ent-navy); }

/* --- Filters (rango) --- */
.ipn-sd-filters{
  margin-bottom:14px; padding:0;
}
.ipn-sd-filters.is-collapsed .ipn-sd-filters__body{ display:none; }
.ipn-sd-filters__toggle{
  width:100%; display:flex; align-items:center; justify-content:space-between;
  gap:12px; padding:14px 18px; border:0; background:transparent;
  cursor:pointer; font:inherit; font-size:14px; font-weight:700; color:var(--ipn-ent-navy);
  text-align:left;
}
.ipn-sd-filters__body{ padding:0 18px 18px; }
.ipn-sd-filters__grid{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 24px;
}
.ipn-sd-filters label{ font-size:12.5px; font-weight:600; color:#5b6b80; }
.ipn-sd-filters .ipn-input,
.ipn-sd-filters select{
  height:38px; border:1px solid #d5dbe6; border-radius:8px;
  padding:0 10px; font:inherit; font-size:13px; color:var(--ipn-ent-navy);
  background:#fff; max-width:100%;
}
.ipn-sd-filters__stores{ grid-column:1 / -1; }
.ipn-sd-filters__actions{ margin-top:14px; display:flex; gap:10px; flex-wrap:wrap; }

/* --- Legacy sections below --- */
.ipn-sd-section{ margin-bottom:14px; }
.ipn-sd-section .grilla_financiera{
  width:100%; border-collapse:collapse; font-size:13px;
}
.ipn-sd-section .grilla_financiera th{
  text-align:left; font-size:11px; font-weight:700; color:#8493a6;
  text-transform:uppercase; letter-spacing:.04em;
  padding:8px 10px; border-bottom:1px solid var(--ipn-ent-grid);
}
/* AV: 2026-08-11: headers num?ricos alineados con celdas (align=right) */
.ipn-sd-section .grilla_financiera th[align="right"]{
  text-align:right;
}
.ipn-sd-section .grilla_financiera td{
  padding:8px 10px; border-bottom:1px solid var(--ipn-ent-grid);
  vertical-align:middle;
}
.ipn-sd-section .grilla_financiera .tr_totales td{
  font-weight:700; border-top:1px solid var(--ipn-ent-border); border-bottom:0;
}
.ipn-sd-section__head{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  flex-wrap:wrap; margin-bottom:10px;
}
.ipn-sd-section__head h2{
  margin:0; font-size:15px; font-weight:700; color:var(--ipn-ent-navy);
}

/* AV: 2026-08-11: grillas legacy del panel (clientes/cobranzas/pedidos) a ancho completo + th right */
/* AV: 2026-08-12: #78421 - Anula max-width:370px/float de style.css; wrap con scroll-x. */
.ipn-sales-dash table.grilla_financiera{
  width:100% !important;
  max-width:100% !important;
  float:none !important;
  display:table !important;
  table-layout:auto;
}
.ipn-sales-dash table.grilla_financiera th[align="right"],
.ipn-sales-dash table.grilla_financiera td[align="right"]{
  text-align:right !important;
  white-space:nowrap;
}
.ipn-sales-dash table.grilla_financiera th[align="left"],
.ipn-sales-dash table.grilla_financiera td[align="left"]{
  text-align:left !important;
}
.ipn-sd-table-wrap{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-sales-dash .shadowBox{
  width:100%;
  max-width:100%;
  clear:both;
  overflow:visible;
  box-sizing:border-box;
}
.ipn-sales-dash .shadowBox > div{
  float:none !important;
  width:100% !important;
  max-width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
  box-sizing:border-box;
  overflow-x:auto;
}

/* AV: 2026-09-07: defaultSelectedStore.asp ? filtros Flatpickr/toggles + cards iPN2 */
.ipn-sales-dash .ipn-ent-card.ipn-sd-section{
  width:100%;
  max-width:100%;
  clear:both;
  overflow:visible;
  box-sizing:border-box;
  margin-bottom:14px;
  padding:16px 18px 18px;
}
.ipn-sales-dash .ipn-ent-card.ipn-sd-section > .ipn-sd-table-wrap{
  float:none !important;
  width:100% !important;
  max-width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
  box-sizing:border-box;
  overflow-x:auto;
}
/* AV: 2026-09-08: #469 - donut contenido (no width 100% ni canvas gigante) */
.ipn-sales-dash .ipn-sd-chart-side{
  float:none !important;
  width:auto !important;
  max-width:280px;
  margin:12px auto 0;
  box-sizing:border-box;
  overflow:visible;
}
.ipn-sales-dash .ipn-sd-chart-side .ipn-sd-donut__wrap{
  height:220px;
  max-width:260px;
  margin:0 auto;
}
.ipn-sales-dash .ipn-sd-date-row{
  display:flex; flex-wrap:wrap; align-items:center; gap:10px;
}
/* AV: 2026-09-08: #469 - Flatpickr canonico (input + btn unidos) */
.ipn-sales-dash .ipn-sd-date-row .ipn-datepicker{
  display:inline-flex;
  align-items:stretch;
  flex:1 1 140px;
  min-width:140px;
  max-width:220px;
}
.ipn-sales-dash .ipn-sd-date-row .ipn-datepicker input[data-input],
.ipn-sales-dash .ipn-sd-date-row .ipn-datepicker .ipn-input{
  flex:1 1 auto;
  min-width:0;
  width:auto;
  height:var(--ipn-form-control-h, 40px);
  padding:0 12px;
  border:1px solid #d5dbe6;
  border-right:0;
  border-radius:8px 0 0 8px;
  font:inherit;
  font-size:13px;
  color:var(--ipn-ent-navy);
  background:#fff;
  box-sizing:border-box;
}
.ipn-sales-dash .ipn-sd-date-row .ipn-datepicker input[data-input]:focus,
.ipn-sales-dash .ipn-sd-date-row .ipn-datepicker .ipn-input:focus{
  outline:none;
  border-color:var(--ipn-brand, var(--ipn-ent-accent, #1d4e86));
  z-index:1;
}
.ipn-sales-dash .ipn-sd-date-row .ipn-datepicker__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:40px;
  flex:0 0 40px;
  border:1px solid #d5dbe6;
  border-radius:0 8px 8px 0;
  background:#f5f7fb;
  color:#5b6b80;
  cursor:pointer;
  padding:0;
}
.ipn-sales-dash .ipn-sd-date-row .ipn-datepicker__btn:hover{
  background:#fff;
  color:var(--ipn-brand, var(--ipn-ent-accent, #1d4e86));
}
.ipn-sales-dash .ipn-sd-date-row .ipn-datepicker__btn .material-symbols-rounded{
  font-size:18px;
}
body:has(.ipn-sales-dash) .flatpickr-calendar{
  font-family:var(--ipn-font);
}
.ipn-sales-dash .ipn-sd-toggle-row{
  display:flex; align-items:center; gap:10px;
  min-height:var(--ipn-form-control-h, 40px);
  font-size:13px; font-weight:600; color:#5b6b80;
}
.ipn-sales-dash .ipn-sd-filters__stores-title{
  margin:0 0 10px; font-size:13px; font-weight:700; color:var(--ipn-ent-navy);
}
.ipn-sales-dash .ipn-sd-stores-table{
  width:100%; border-collapse:collapse;
}
.ipn-sales-dash .ipn-sd-stores-table td{
  padding:4px 8px 4px 0; vertical-align:middle;
}
.ipn-sales-dash .ipn-sd-stores-table td > div{
  width:auto !important; float:none !important; max-width:100%;
}
.ipn-sales-dash .ipn-sd-notice{ margin-bottom:14px; }
.ipn-sales-dash .ipn-sd-date-hint{
  font-size:18px; color:#8493a6; cursor:help; flex:0 0 auto;
}
.ipn-sales-dash .ipn-sd-section__actions{
  display:flex; justify-content:flex-end; flex-wrap:wrap; gap:8px;
  margin:8px 0 12px;
}
.ipn-sales-dash form.ipn-sales-dash,
form.ipn-sales-dash{
  display:block;
}
.ipn-sales-dash .ipn-sales-dash__inner{
  min-width:0;
}

/* --- Responsive --- */
@media (max-width:1280px){
  .ipn-sd-title{ font-size:24px; }
}
@media (max-width:1024px){
  .ipn-sd-split{ grid-template-columns:1fr; }
  .ipn-sd-prods__grid{ grid-template-columns:1fr; }
}
@media (max-width:900px){
  .ipn-sd-head{ flex-direction:column; align-items:stretch; }
  .ipn-sd-controls{ width:100%; justify-content:flex-start; overflow-x:auto; }
  .ipn-sd-hero{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ipn-sd-sec{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ipn-sd-filters__grid{ grid-template-columns:1fr; }
}
@media (max-width:700px){
  .ipn-sd-hero,
  .ipn-sd-sec{ grid-template-columns:1fr; }
  .ipn-sd-title{ font-size:22px; }
  .ipn-sd-kpi__value{ font-size:24px; }
  .ipn-sd-chart__canvas-wrap{ height:240px; }
  .ipn-sd-prod{
    grid-template-columns:24px minmax(0,1fr) auto auto;
    grid-template-rows:auto auto;
  }
  .ipn-sd-prod__amt{ grid-column:2; grid-row:2; justify-self:start; }
  .ipn-sd-prod__qty{ grid-column:3; grid-row:2; }
  .ipn-sd-prod__pct{ grid-column:4; grid-row:1 / 3; align-self:center; }
  .ipn-sales-dash .ipn-sd-date-row .ipn-datepicker{ max-width:none; flex:1 1 100%; }
}

/* =====================================================================
   23. Ticket detail ? stacking Choices vs Tagify
   AV: 2026-07-21: QA 2.2 ? tags/placeholder de Tagify quedaban encima del
   dropdown ?Asignado a? (Choices) porque Tags va despu?s en el DOM.
   ===================================================================== */
/* AV: 2026-07-23: Copiar ticket / ir a CDT son acciones; cursor pointer (span onclick) */
.ipn-ticketdetail .ipn-td-iconbtn{
  cursor:pointer;
}
/* AV: 2026-08-08: Feedback ticket detail 4.2 ? bot?n HOY junto a fecha estimada de soluci?n */
.ipn-ticketdetail .ipn-td-datepicker-row{
  display:flex;
  align-items:stretch;
  gap:8px;
}
.ipn-ticketdetail .ipn-td-datepicker-row .ipn-td-datepicker{
  flex:1 1 auto;
  min-width:0;
}
.ipn-ticketdetail .ipn-td-datepicker-row .ipn-td-date-hoy{
  flex:0 0 auto;
  align-self:stretch;
  min-height:44px;
  padding-left:12px;
  padding-right:12px;
  font-weight:700;
  letter-spacing:.04em;
}
/* AV: 2026-08-09: Feedback 4.3 ? lightbox de imgs del ticket: sin caja blanca/scrolls; zoom contain */
body .glightbox-container .gslide-media,
body .glightbox-container .ginner-container,
body .glightbox-container .gslide-image{
  background:transparent !important;
  box-shadow:none !important;
  overflow:visible !important;
}
body .glightbox-container .gslide-image img{
  object-fit:contain !important;
  min-width:0 !important;
  max-width:100vw !important;
  max-height:97vh !important;
  width:auto !important;
  height:auto !important;
  margin:auto !important;
  cursor:zoom-in;
  background:transparent !important;
}
body .glightbox-container .gslide-image img.ipn-td-lb-zoomed{
  cursor:zoom-out;
  max-width:none !important;
  max-height:none !important;
}
body .glightbox-container .gslide-external{
  background:transparent !important;
  overflow:hidden !important;
}
.ipn-ticketdetail .choices{
  position:relative;
  z-index:2;
}
.ipn-ticketdetail .choices.is-open{
  z-index:50;
}
.ipn-ticketdetail .ipn-td-field:has(.choices.is-open){
  position:relative;
  z-index:50;
}
.ipn-ticketdetail .choices__list--dropdown,
.ipn-ticketdetail .choices__list[aria-expanded="true"]{
  z-index:51;
}
.ipn-ticketdetail .tagify{
  position:relative;
  z-index:1;
}
.ipn-ticketdetail .tagify.tagify--focus,
.ipn-ticketdetail .tagify:focus-within{
  z-index:50;
}
.ipn-ticketdetail .tagify__dropdown{
  z-index:60;
}

/* =====================================================================
   24. Upload popup (.ipn-upload-popup) + chrome #iPNpopUpDiv
   AV: 2026-07-21: QA 2.5.1 ? UI iPN2 del popup gen?rico de archivos
   ===================================================================== */
body:has(.ipn-secure-wrap) #iPNpopUpDiv.iPNpopUpDiv,
body:has(.ipn-ticketdetail) #iPNpopUpDiv.iPNpopUpDiv,
.ipn-secure #iPNpopUpDiv.iPNpopUpDiv{
  padding:0;
  border-radius:14px;
  border:1px solid var(--ipn-hairline);
  box-shadow:0 16px 48px rgba(22,41,77,.22);
  overflow:hidden;
  background:#fff;
}
body:has(.ipn-secure-wrap) #iPNpopUpDiv.iPNpopUpDiv iframe,
body:has(.ipn-ticketdetail) #iPNpopUpDiv.iPNpopUpDiv iframe,
.ipn-secure #iPNpopUpDiv.iPNpopUpDiv iframe{
  display:block;
  border:0;
  background:#fff;
  vertical-align:top;
}

/* AV: 2026-08-24: Upload popup en ERP (menu2): caber en viewport con margenes.
   AV: 2026-08-25: desktop 720?560 (QA: 600?500 segu?a chico); mobile sin cambio. */
body.ipn2 #iPNpopUpDiv.iPNpopUpDiv:has(> iframe){
  box-sizing:border-box;
  width:720px;
  max-width:calc(100vw - 32px);
  padding:0;
  border-radius:14px;
  border:1px solid var(--ipn-hairline, #e6e9ef);
  box-shadow:0 16px 48px rgba(22,41,77,.22);
  overflow:hidden;
  background:#fff;
}
body.ipn2 #iPNpopUpDiv.iPNpopUpDiv:has(> iframe) > iframe{
  display:block;
  border:0;
  background:#fff;
  width:100%;
  max-width:100%;
  height:560px;
  box-sizing:border-box;
  vertical-align:top;
}
@media (max-width:700px){
  body.ipn2 #iPNpopUpDiv.iPNpopUpDiv:has(> iframe){
    left:50% !important;
    width:calc(100vw - 32px) !important;
    max-width:calc(100vw - 32px) !important;
    margin-left:0 !important;
    transform:translateX(-50%);
    top:max(16px, calc(env(safe-area-inset-top, 0px) + 64px)) !important;
    padding:0 !important;
  }
  body.ipn2 #iPNpopUpDiv.iPNpopUpDiv:has(> iframe) > iframe{
    width:100% !important;
    height:min(410px, calc(100dvh - 140px)) !important;
  }
}

html:has(.ipn-upload-popup),
.ipn-upload-popup{
  height:100%;
  margin:0;
}
.ipn-upload-popup{
  font-family:var(--ipn-font, Inter, "IBM Plex Sans", system-ui, sans-serif);
  color:var(--ipn-text, #16294d);
  background:#fff;
  overflow:hidden;
}
.ipn-upload-popup *{ box-sizing:border-box; }
.ipn-upload-popup__shell{
  display:flex;
  flex-direction:column;
  height:100%;
  min-height:100%;
}
.ipn-upload-popup__head{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
  border-bottom:1px solid var(--ipn-hairline, #e6e9ef);
  background:var(--ipn-surface-soft, #f7f9fc);
}
.ipn-upload-popup__title{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin:0;
  font-size:15px;
  font-weight:700;
  color:var(--ipn-text, #16294d);
  line-height:1.25;
}
.ipn-upload-popup__title .material-symbols-rounded{
  font-size:22px;
  color:var(--ipn-primary, var(--ipn-brand, #3f6091));
}
.ipn-upload-popup__close{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:var(--ipn-text-3, #6b7685);
  cursor:pointer;
  padding:0;
}
.ipn-upload-popup__close:hover{
  background:rgba(22,41,77,.06);
  color:var(--ipn-text, #16294d);
}
.ipn-upload-popup__close .material-symbols-rounded{ font-size:20px; }
.ipn-upload-popup__body{
  flex:1 1 auto;
  overflow:auto;
  padding:22px 20px 16px;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:14px;
}
.ipn-upload-popup__lead{
  margin:0;
  font-size:13.5px;
  font-weight:600;
  color:var(--ipn-text-2, #55606f);
}
.ipn-upload-popup__drop{
  width:100%;
  max-width:340px;
  border:1.5px dashed var(--ipn-border-input, #d7dce4);
  border-radius:12px;
  background:var(--ipn-surface-soft-2, #fbfcfe);
  padding:22px 18px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
}
.ipn-upload-popup__drop-icon{
  width:48px;
  height:48px;
  border-radius:12px;
  background:var(--ipn-primary-soft, #e9eff9);
  color:var(--ipn-primary, var(--ipn-brand, #3f6091));
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.ipn-upload-popup__drop-icon .material-symbols-rounded{ font-size:26px; }
.ipn-upload-popup__filebtn{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:40px;
  padding:0 18px;
  border-radius:9px;
  background:var(--ipn-primary, var(--ipn-brand, #3f6091));
  color:#fff;
  font-size:13.5px;
  font-weight:600;
  cursor:pointer;
  border:0;
  user-select:none;
}
.ipn-upload-popup__filebtn:hover{ background:var(--ipn-primary-hover, #33507b); }
.ipn-upload-popup__filebtn.is-disabled,
.ipn-upload-popup__filebtn.btnDisabled{
  opacity:.55;
  pointer-events:none;
  cursor:default;
}
.ipn-upload-popup__filebtn input[type=file]{
  /* AV: 2026-07-21: input transparente encima del CTA (clicks nativos) */
  position:absolute;
  inset:0;
  opacity:0;
  width:100%;
  height:100%;
  cursor:pointer;
  font-size:0;
  overflow:hidden;
}
.ipn-upload-popup__hint{
  margin:0;
  max-width:340px;
  font-size:12.5px;
  line-height:1.45;
  color:var(--ipn-text-3, #6b7685);
  text-align:center;
}
.ipn-upload-popup__hint strong{
  color:var(--ipn-text-2, #55606f);
  font-weight:600;
}
.ipn-upload-popup__progress{
  width:100%;
  max-width:340px;
  max-height:140px;
  overflow:auto;
  text-align:left;
  font-size:12.5px;
  line-height:1.45;
  color:var(--ipn-text-2, #55606f);
}
.ipn-upload-popup__progress p{
  margin:0 0 6px;
  padding:8px 10px;
  border-radius:8px;
  background:var(--ipn-surface-soft, #f7f9fc);
  border:1px solid var(--ipn-hairline, #e6e9ef);
}
.ipn-upload-popup__progress p[style*="green"],
.ipn-upload-popup__progress .is-ok{ color:var(--ipn-success, #1a9b57) !important; }
.ipn-upload-popup__foot{
  flex:0 0 auto;
  display:flex;
  justify-content:flex-end;
  gap:10px;
  padding:12px 16px;
  border-top:1px solid var(--ipn-hairline, #e6e9ef);
  background:#fff;
}
.ipn-upload-popup__error{
  margin:24px 20px;
  padding:14px 16px;
  border-radius:10px;
  background:var(--ipn-danger-chip-bg, #fbe8e8);
  color:var(--ipn-danger-chip-fg, #b83232);
  font-size:13.5px;
  line-height:1.45;
}

/* =====================================================================
   25. CUSTOMER STORES ADD (.ipn-csa)
   AV: 2026-07-21: Form alta/edicion sucursal ? tabs/card/grid iPN2
   ===================================================================== */
.ipn-csa{ margin-top:4px; }
.ipn-csa .ipn-tabs{ margin-bottom:14px; }
.ipn-csa__hint{
  margin:0 0 14px;
  font-size:13px;
  color:var(--ipn-text-2,#5b6b80);
  line-height:1.45;
}
.ipn-csa__readonly{
  display:inline-block;
  font-size:13px;
  color:var(--ipn-text-2,#5b6b80);
  padding-top:4px;
}
.ipn-csa .ipn-input--sm,
.ipn-csa .ipn-field--sm .ipn-input{
  max-width:160px;
}
.ipn-csa #judisdictionDiv select,
.ipn-csa #storeTypeID{
  width:100%;
}
.ipn-csa-billing-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) 160px;
  gap:12px;
  margin:0 0 10px;
  padding:0 0 8px;
  border-bottom:1px solid var(--ipn-hairline,#e6e9ef);
  font-size:12px;
  font-weight:600;
  color:var(--ipn-text-2,#5b6b80);
}
.ipn-csa-billing-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 48px;
  gap:12px;
  align-items:center;
  padding:10px 0;
  border-bottom:1px solid var(--ipn-hairline,#eef1f6);
}
.ipn-csa-billing-row:last-child{ border-bottom:0; }
.ipn-csa-help{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  margin-left:6px;
  padding:0;
  border:0;
  border-radius:8px;
  background:transparent;
  color:#8493a6;
  cursor:pointer;
  vertical-align:middle;
}
.ipn-csa-help:hover{ color:var(--ipn-primary,#1d4e86); background:#f0f4f9; }
.ipn-csa-help .material-symbols-rounded{ font-size:20px; }
.ipn-csa-restock-group{
  display:flex;
  align-items:center;
  gap:8px;
  margin:14px 0 6px;
  font-size:13px;
}
.ipn-csa-restock-item{
  display:flex;
  align-items:center;
  gap:8px;
  padding:4px 0 4px 22px;
  font-size:13px;
}
.ipn-csa-restock-item label{ cursor:pointer; }
@media (max-width:700px){
  .ipn-csa-billing-head,
  .ipn-csa-billing-row{ grid-template-columns:minmax(0,1fr); }
  .ipn-csa .ipn-input--sm{ max-width:none; }
}

/* =====================================================================
   26. TICKET DETAIL ? identidad de usuario (QA 2.3)
   AV: 2026-07-21: [id] Nombre [username] / cargo / [Cuenta N]
   ===================================================================== */
.ipn-ticketdetail .ipn-user-idblock,
.ipn-td-side .ipn-user-idblock{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}
.ipn-ticketdetail .ipn-user-idblock__line1,
.ipn-td-side .ipn-user-idblock__line1{
  font-size:13px;
  font-weight:700;
  color:var(--ipn-text,#0f2544);
  line-height:1.35;
  word-break:break-word;
}
.ipn-ticketdetail .ipn-user-idblock__line2,
.ipn-td-side .ipn-user-idblock__line2{
  font-size:12.5px;
  font-weight:500;
  color:var(--ipn-text-2,#5b6b80);
  line-height:1.35;
}
.ipn-ticketdetail .ipn-user-idblock__line3,
.ipn-td-side .ipn-user-idblock__line3{
  font-size:12px;
  font-weight:600;
  color:var(--ipn-text-3,#8493a6);
  line-height:1.35;
}
.ipn-td-side .ipn-td-dl__row--stack{
  align-items:flex-start;
}
.ipn-td-side .ipn-td-dl__row--stack .ipn-td-dl__k{
  padding-top:2px;
}
.ipn-ticketdetail .ipn-comment__who .ipn-user-idblock__line1{
  font-size:13.5px;
}

/* AV: 2026-07-23: M?dulos (secure/modules) ? estilos de grilla + buscador client-side. */
.ipn-modules-card .ipn-rsc-search{ max-width:420px; margin-bottom:12px; }
#modulesTable td:last-child{ white-space:nowrap; }
#modulesTable .mod-tree-toggle{
  font-size:18px; line-height:1; vertical-align:middle;
  color:var(--ipn-text-muted); cursor:pointer; user-select:none;
  margin-right:4px;
}
#modulesTable .mod-tree-toggle:hover{ color:var(--ipn-primary); }
#modulesTable .mod-menu-vis{
  font-size:18px; line-height:1; vertical-align:middle; color:var(--ipn-text-2);
}
#modulesTable .mod-menu-vis--off{ color:var(--ipn-text-muted); opacity:.55; }
#modulesTable .mod-thumb{ vertical-align:middle; border-radius:4px; }
#modulesTable .ipn-text-muted{ color:var(--ipn-text-muted); font-size:12px; }
.modules-filter .choices{ min-width:min(100%, 400px); }

/* AV: 2026-07-23: Feedback CDT ? privado vs p?blico m?s distinguible + badge siempre visible. */
.ipn-ticketdetail .ipn-comment.cntPublicComment{
  background:#ffffff;
  border:1px solid #e2e7ef;
  box-shadow:none;
}
.ipn-ticketdetail .ipn-comment.cntPrivateComment{
  background:#e8edf5;
  border:1px solid #c5d0e0;
  border-left:4px solid #5b6b80;
}
.ipn-ticketdetail .ipn-comment__privacy{
  display:inline-flex;
  align-items:center;
  gap:4px;
  margin-top:6px;
}
.ipn-ticketdetail .ipn-comment__privacy .material-symbols-rounded{
  font-size:16px;
  line-height:1;
}
.ipn-ticketdetail .ipn-comment.cntPrivateComment .ipn-comment__privacy{
  color:#5b6b80;
}
.ipn-ticketdetail .ipn-comment.cntPublicComment .ipn-comment__privacy{
  color:#2f9e6b;
}
.ipn-ticketdetail .ipn-comment__tag--priv{
  background:#dfe6f0;
  color:#3d4a5c;
}
.ipn-ticketdetail .ipn-comment__tag--pub{
  background:#d8f3e6;
  color:#1f7a52;
}

/* AV: 2026-08-03: CDT mobile ? icono + P?blico/Privado arriba del cliente;
   t?tulo y pills de estado usan todo el ancho de la card. */
@media (max-width:700px){
  .ipn-ticketdetail .ipn-td-header{
    display:grid;
    grid-template-columns:auto 1fr;
    grid-template-areas:
      "icon priv"
      "main main";
    gap:10px 12px;
    align-items:center;
  }
  .ipn-ticketdetail .ipn-td-header__icon{ grid-area:icon; }
  .ipn-ticketdetail .ipn-td-header__priv{
    grid-area:priv;
    justify-self:end;
    align-self:center;
  }
  .ipn-ticketdetail .ipn-td-header__main{
    grid-area:main;
    min-width:0;
    width:100%;
  }
  .ipn-ticketdetail .ipn-td-header__title{
    font-size:18px;
    line-height:1.3;
  }
  .ipn-ticketdetail .ipn-td-header__title h1{
    font-size:18px;
    display:block;
    width:100%;
    overflow-wrap:anywhere;
    word-break:break-word;
  }
  .ipn-ticketdetail .ipn-td-header__badges{
    width:100%;
  }
}

/* AV: 2026-08-04: CDT mobile ? Detalle del ticket entre Descripci?n y Gesti?n
   (sin scrollear past comentarios). display:contents + order; desktop intacto. */
@media (max-width:1080px){
  .ipn-ticketdetail .ipn-td-main,
  .ipn-ticketdetail .ipn-td-side{
    display:contents;
  }
  .ipn-ticketdetail .ipn-td-layout .ipn-td-card + .ipn-td-card{
    margin-top:0;
  }
  .ipn-ticketdetail .ipn-td-card--desc{ order:1; }
  .ipn-ticketdetail .ipn-td-card--detail{ order:2; }
  .ipn-ticketdetail .ipn-td-card--gestion{ order:3; }
  .ipn-ticketdetail .ipn-td-card--tabs{ order:4; }
  .ipn-ticketdetail .ipn-td-card--apps{ order:5; }
  .ipn-ticketdetail .ipn-td-card--people{ order:6; }
}

/* AV: 2026-07-23: Notice AJAX de comentario nuevo (antes .success sin CSS iPN2). */
.ipn-ticketdetail .tktComentario > .success.ipn-td-notice{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:12px;
}
.ipn-ticketdetail .tktComentario > .success.ipn-td-notice img{
  margin-left:auto;
  cursor:pointer;
  opacity:.55;
}
/* AV: 2026-07-27: Feedback #3 ? log de interacciones: wrap (sin scroll-x forzado). */
.ipn-ticketdetail #tabLog .ipn-td-tablewrap{
  overflow-x:visible;
}
.ipn-ticketdetail #tabLog .ipn-td-table{
  width:100%;
  table-layout:fixed;
}
.ipn-ticketdetail #tabLog .ipn-td-table th,
.ipn-ticketdetail #tabLog .ipn-td-table td{
  white-space:normal;
  word-wrap:break-word;
  overflow-wrap:anywhere;
  vertical-align:top;
}
.ipn-ticketdetail #tabLog .ipn-td-table th:nth-child(1),
.ipn-ticketdetail #tabLog .ipn-td-table td:nth-child(1){ width:16%; }
.ipn-ticketdetail #tabLog .ipn-td-table th:nth-child(2),
.ipn-ticketdetail #tabLog .ipn-td-table td:nth-child(2){ width:18%; }
.ipn-ticketdetail #tabLog .ipn-td-table th:nth-child(3),
.ipn-ticketdetail #tabLog .ipn-td-table td:nth-child(3){ width:8%; }
.ipn-ticketdetail #tabLog .ipn-td-table th:nth-child(4),
.ipn-ticketdetail #tabLog .ipn-td-table td:nth-child(4),
.ipn-ticketdetail #tabLog .ipn-td-table th:nth-child(5),
.ipn-ticketdetail #tabLog .ipn-td-table td:nth-child(5),
.ipn-ticketdetail #tabLog .ipn-td-table th:nth-child(6),
.ipn-ticketdetail #tabLog .ipn-td-table td:nth-child(6){ width:19%; }
.ipn-ticketdetail #tabLog .ipn-td-change{
  display:inline-flex;
  flex-wrap:wrap;
  align-items:center;
  gap:4px;
  max-width:100%;
  white-space:normal;
}
.ipn-ticketdetail #tabLog .ipn-td-change__from,
.ipn-ticketdetail #tabLog .ipn-td-change__to{
  white-space:normal;
}

/* AV: 2026-07-23: Tooltip rojo de generateInlineMsg (validation.js) ? style.css no se carga en iPN2.
   AV: 2026-07-27: Feedback #3 ? borde completo + flecha alineada (menos ?roto? junto a botones). */
#msg{
  display:none;
  position:absolute;
  z-index:1200;
  padding-left:10px;
  max-width:min(320px, 70vw);
  pointer-events:none;
}
#msg::before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  transform:translateY(-50%);
  border:7px solid transparent;
  border-right-color:#924949;
}
#msgcontent{
  display:block;
  background:#f3e6e6;
  border:2px solid #924949;
  padding:8px 12px;
  min-width:0;
  max-width:100%;
  color:#6b2a2a;
  font-size:13px;
  line-height:1.35;
  border-radius:8px;
  box-shadow:0 4px 14px rgba(80,30,30,.12);
}

/* =====================================================================
   23. USERS LOG ? actividad de cuenta (usersLog.asp, full-viewport)
   AV: 2026-07-21
   ===================================================================== */
/* AV: 2026-07-21: meta de version en auditoria de cambios (secure/audit) */
.ipn-audit-block__meta{
  padding:12px 16px;
  font-size:13px;
  color:var(--ipn-text-2,#5b6b80);
  border-bottom:1px solid var(--ipn-hairline,#e2e7ef);
  background:#f8fafc;
}
.ipn-audit-block__user{
  font-weight:600;
  color:var(--ipn-primary, var(--ipn-brand, #3f6091));
}
/* AV: 2026-08-26: Bloques de version en auditoria de cambios (#50) */
.ipn-audit-page .ipn-card > .ipn-audit-block,
.ipn-secure__body .ipn-card > .ipn-audit-block,
.ipn-audit-user .ipn-card > .ipn-audit-block{
  border:1px solid var(--ipn-hairline,#e2e7ef);
  border-radius:8px;
  overflow:hidden;
  background:#fff;
}
.ipn-audit-page .ipn-card > .ipn-audit-block + .ipn-audit-block,
.ipn-secure__body .ipn-card > .ipn-audit-block + .ipn-audit-block,
.ipn-audit-user .ipn-card > .ipn-audit-block + .ipn-audit-block{
  margin-top:20px;
}
.ipn-audit-page .ipn-audit-block .ipn-table-wrap,
.ipn-secure__body .ipn-audit-block .ipn-table-wrap,
.ipn-audit-user .ipn-audit-block .ipn-table-wrap{
  margin-bottom:0;
}
html:has(.ipn-ulog),
body:has(.ipn-ulog){
  margin:0 !important;
  padding:0 !important;
  width:100% !important;
  max-width:none !important;
  min-height:100vh;
  background:var(--ipn-page-bg,#eef1f6) !important;
  font-family:var(--ipn-font);
}
.ipn-ulog{
  min-height:100vh;
  min-height:100dvh;
  display:flex;
  flex-direction:column;
  background:var(--ipn-page-bg,#eef1f6);
  color:var(--ipn-text,#0f2544);
  font-family:var(--ipn-font);
  box-sizing:border-box;
}
.ipn-ulog *,
.ipn-ulog *::before,
.ipn-ulog *::after{ box-sizing:border-box; }
.ipn-ulog > .ipn-secure-topbar{
  flex:0 0 auto;
  width:100%;
}
.ipn-ulog__main{
  flex:1 1 auto;
  width:100%;
  max-width:var(--ipn-secure-content-max,1440px);
  margin:0 auto;
  padding:20px 24px 40px;
}
.ipn-ulog .ipn-page-head{ margin-bottom:18px; }
.ipn-ulog .ipn-card__head{
  padding:14px 20px;
  border-bottom:1px solid var(--ipn-hairline,#e2e7ef);
}
/* AV: 2026-07-21: columna Detalles (UA) en grilla iPN2 */
.ipn-ulog__ua-cell{
  max-width:420px;
  white-space:normal;
  word-break:break-word;
  font-size:12.5px;
  color:var(--ipn-text-2,#5b6b80);
}
.ipn-ulog .ipn-card__body{ padding:16px 20px; }
@media (max-width:700px){
  .ipn-ulog__main{ padding-left:14px; padding-right:14px; }
}

/* ==========================================================================
   AV: 2026-07-22: Personalizaciones (admin panel) - .ipn-ap-custom / .ipn-cust-*
   ========================================================================== */
.ipn-ap-custom .ipn-req{
  color:var(--ipn-danger,#c0392b);
  font-weight:600;
  margin-left:4px;
}
/* AV: 2026-07-22: aire entre breadcrumb y page-head (antes quedaba pegado) */
.ipn-ap-custom > .ipn-breadcrumb{
  margin:0 0 20px;
}
.ipn-ap-custom .ipn-page-head{ margin-bottom:18px; }
.ipn-ap-custom .ipn-card{ margin-bottom:16px; }
.ipn-cust-swatch{
  display:inline-block;
  width:28px;
  height:28px;
  border-radius:6px;
  border:1px solid var(--ipn-border,#d5dbe6);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.35);
  vertical-align:middle;
}
.ipn-cust-logo{
  display:inline-block;
  max-height:36px;
  max-width:140px;
  width:auto;
  height:auto;
  object-fit:contain;
  vertical-align:middle;
  border-radius:4px;
  background:var(--ipn-surface-soft,#f5f7fb);
  padding:4px 6px;
}
.ipn-cust-logo--preview{ max-height:46px; }
.ipn-cust-actions{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
}
.ipn-cust-actions .ipn-row-action{ opacity:1; }
.ipn-ap-custom .ipn-table th,
.ipn-ap-custom .ipn-table td{ vertical-align:middle; }
.ipn-ap-custom .color-box,
.ipn-ap-custom .ipn-cust-color{
  width:56px;
  min-width:56px;
  max-width:120px;
  height:36px;
  padding:4px 8px;
  border:1px solid var(--ipn-border-input,#c9d2e0);
  border-radius:8px;
  cursor:pointer;
  font-family:var(--ipn-font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);
  font-size:12px;
  color:transparent;
  text-shadow:none;
  caret-color:var(--ipn-text);
}
.ipn-ap-custom .color-box:focus,
.ipn-ap-custom .ipn-cust-color:focus{
  color:var(--ipn-text);
  outline:2px solid var(--ipn-primary-soft,#cfe4ff);
  outline-offset:1px;
}
.ipn-cust-logo-row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
}
/* AV: 2026-07-22: specs del logo visibles en alta/edici?n */
.ipn-cust-logo-specs{
  margin:0 0 12px;
  padding:10px 12px;
  font-size:12.5px;
  line-height:1.45;
  color:var(--ipn-text-2,#5b6b80);
  background:var(--ipn-surface-soft,#f5f7fb);
  border:1px solid var(--ipn-hairline,#e2e7ef);
  border-radius:8px;
}
.ipn-cust-logo-specs b{ color:var(--ipn-text,#0f2544); font-weight:600; }
.ipn-cust-help{
  font-size:20px !important;
  color:var(--ipn-text-muted,#7a8aa0);
  cursor:help;
  user-select:none;
}
.ipn-cust-help:hover{ color:var(--ipn-primary,#1a6dff); }
.ipn-cust-actions-bar{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:flex-end;
  margin-top:16px;
  margin-bottom:8px;
}
.ipn-cust-assign{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.ipn-cust-assign__all{
  padding-bottom:10px;
  border-bottom:1px solid var(--ipn-hairline,#e2e7ef);
}
.ipn-cust-assign__company{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:10px 12px;
  border:1px solid var(--ipn-hairline,#e2e7ef);
  border-radius:10px;
  background:var(--ipn-surface,#fff);
}
.ipn-cust-assign__stores{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin-left:28px;
}
body.ipn2:has(.ipn-ap-custom) #iPNpopUpDiv.iPNpopUpDiv{
  z-index:1300 !important;
}
@media (max-width:700px){
  .ipn-cust-assign__stores{ margin-left:12px; }
  .ipn-cust-actions-bar{ justify-content:stretch; }
  .ipn-cust-actions-bar .ipn-btn{ flex:1 1 auto; justify-content:center; }
}

/* ==========================================================================
   AV: 2026-07-22: Acciones disponibles (.ipn-action-row) - filas, no texto corrido
   ========================================================================== */
.ipn-action-row,
.ipn-secure-wrap .ipn-action-row,
.ipn-secure .ipn-action-row{
  display:flex !important;
  align-items:flex-start;
  gap:12px;
  padding:10px 14px;
  border:0;
  border-top:1px solid var(--ipn-hairline,#eef1f6);
  cursor:pointer;
  text-decoration:none !important;
  color:inherit;
  transition:background .12s ease;
  box-sizing:border-box;
  width:100%;
}
/* AV: 2026-09-08: #474 - first-child (no first-of-type): button/span Deshabilitar|Habilitar no deben perder el borde tras Clonar. */
.ipn-card__body > .ipn-action-row:first-child,
.ipn-side-block > .ipn-action-row:first-child{
  border-top:0;
}
.ipn-action-row:hover{
  background:var(--ipn-surface-soft,#f6f9fd);
  text-decoration:none !important;
  color:inherit;
}
a.ipn-action-row,
a.ipn-action-row:link,
a.ipn-action-row:visited,
a.ipn-action-row:hover,
a.ipn-action-row:active,
a.ipn-action-row:focus{
  color:inherit !important;
  text-decoration:none !important;
}
button.ipn-action-row{
  width:100%;
  text-align:left;
  font:inherit;
  background:#fff;
}
.ipn-action-row__icon{
  flex:0 0 34px;
  width:34px;
  height:34px;
  border-radius:9px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--ipn-primary-soft,#eef4fb);
  color:var(--ipn-primary,#1d4e86);
  margin-top:1px;
}
.ipn-action-row__icon .material-symbols-rounded{ font-size:20px; }
.ipn-action-row__body{
  min-width:0;
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.ipn-action-row__title{
  display:block;
  font-size:13px;
  font-weight:700;
  color:var(--ipn-text,#1e293b);
  line-height:1.25;
}
/* AV: 2026-08-11: Feedback 4.3.1 ? descripci?n completa (wrap); tippy/title en userDetails. */
.ipn-action-row__desc{
  display:block;
  margin:0;
  font-size:12px;
  color:var(--ipn-text-muted,#8493a6);
  line-height:1.35;
  white-space:normal;
  overflow:visible;
  text-overflow:unset;
}

/* ==========================================================================
   AV: 2026-07-22: Mensajes (admin panel) - .ipn-ap-msg / .ipn-msg-*
   ========================================================================== */
.ipn-ap-msg > .ipn-breadcrumb{ margin:0 0 20px; }
.ipn-ap-msg .ipn-page-head{ margin-bottom:18px; }
.ipn-ap-msg .ipn-tabs{ margin:0 0 14px; }
.ipn-ap-msg .ipn-tabs__item{
  appearance:none;
  -webkit-appearance:none;
  background:transparent;
  border:0;
  cursor:pointer;
  font:inherit;
}
.ipn-ap-msg .ipn-card{ margin-bottom:16px; }
.ipn-ap-msg .ipn-notice{ margin-bottom:14px; }
.ipn-ap-msg .ipn-msg-row__actions .ipn-row-action{ opacity:1; }

.ipn-msg-list{
  display:flex;
  flex-direction:column;
  gap:0;
}
.ipn-msg-row{
  display:flex;
  align-items:stretch;
  gap:8px;
  padding:14px 16px;
  border-bottom:1px solid var(--ipn-hairline,#e2e7ef);
  background:var(--ipn-surface,#fff);
  transition:background .12s ease;
}
.ipn-msg-row:last-child{ border-bottom:0; }
.ipn-msg-row:hover{ background:var(--ipn-surface-soft,#f5f7fb); }
.ipn-msg-row__main{
  flex:1 1 auto;
  min-width:0;
  display:flex;
  align-items:flex-start;
  gap:12px;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  text-align:left;
  cursor:pointer;
  font:inherit;
  color:inherit;
}
.ipn-msg-row__avatar{
  width:48px;
  height:48px;
  border-radius:50%;
  object-fit:cover;
  flex:0 0 auto;
  background:var(--ipn-surface-soft,#f5f7fb);
}
.ipn-msg-row__meta{ flex:1 1 auto; min-width:0; }
.ipn-msg-row__top{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  justify-content:space-between;
  gap:6px 12px;
  margin-bottom:2px;
}
.ipn-msg-row__user{
  font-size:14px;
  font-weight:600;
  color:var(--ipn-text,#122740);
}
.ipn-msg-row__date{
  font-size:12px;
  color:var(--ipn-text-3,#8493a6);
  white-space:nowrap;
}
.ipn-msg-row__title{
  font-size:14px;
  font-weight:600;
  color:var(--ipn-text,#122740);
  margin-bottom:4px;
}
.ipn-msg-row__preview{
  font-size:13px;
  color:var(--ipn-text-2,#5a6f88);
  line-height:1.4;
  max-height:1.4em;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ipn-msg-row__body-full,
.ipn-msg-row__hidden{ display:none; }
.ipn-msg-row__sent{
  display:inline-flex;
  align-items:center;
  gap:4px;
  margin-top:6px;
  font-size:12px;
  color:var(--ipn-text-3,#8493a6);
}
.ipn-msg-row__sent .material-symbols-rounded{ font-size:16px; }
.ipn-msg-row__actions{
  display:flex;
  align-items:center;
  flex:0 0 auto;
  padding-top:4px;
}
.ipn-ap-msg .ipn-pager{
  padding:12px 16px;
  border-top:1px solid var(--ipn-hairline,#e2e7ef);
}

/* AV: 2026-07-22: popup detalle mensaje */
.ipn-msg-popup.iPNpopUpDiv,
#iPNpopUpDiv.ipn-msg-popup{
  width:min(720px, calc(100vw - 32px)) !important;
  max-height:min(520px, calc(100vh - 48px));
  overflow:auto;
  padding:0 !important;
  background:#fff !important;
  border-radius:12px;
  box-shadow:var(--ipn-shadow-elev, 0 12px 40px rgba(16,32,55,.18));
}
body.ipn2:has(.ipn-ap-msg) #iPNpopUpDiv.iPNpopUpDiv{
  z-index:1300 !important;
}
.ipn-msg-popup__head{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:18px 20px 12px;
  border-bottom:1px solid var(--ipn-hairline,#e2e7ef);
}
.ipn-msg-popup__identity{
  display:flex;
  align-items:flex-start;
  gap:12px;
  min-width:0;
  flex:1 1 220px;
}
.ipn-msg-popup__avatar{
  width:52px;
  height:52px;
  border-radius:50%;
  object-fit:cover;
  background:var(--ipn-surface-soft,#f5f7fb);
}
.ipn-msg-popup__user{
  font-size:15px;
  font-weight:600;
  color:var(--ipn-text,#122740);
}
.ipn-msg-popup__title{
  font-size:14px;
  font-weight:600;
  color:var(--ipn-text-2,#5a6f88);
  margin-top:2px;
}
.ipn-msg-popup__meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  justify-content:flex-end;
}
.ipn-msg-popup__date{
  font-size:12px;
  color:var(--ipn-text-3,#8493a6);
}
.ipn-msg-popup__to{ font-size:12.5px; color:var(--ipn-text-2,#5a6f88); }
.ipn-msg-popup__dest{
  padding:10px 20px;
  font-size:13px;
  color:var(--ipn-text-2,#5a6f88);
  background:var(--ipn-surface-soft,#f5f7fb);
  border-bottom:1px solid var(--ipn-hairline,#e2e7ef);
}
.ipn-msg-popup__body{
  padding:16px 20px;
  font-size:14px;
  line-height:1.5;
  color:var(--ipn-text,#122740);
}
.ipn-msg-popup__actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  padding:12px 20px 18px;
  border-top:1px solid var(--ipn-hairline,#e2e7ef);
}

/* AV: 2026-07-22: alta de mensaje */
.ipn-ap-msg .ipn-req{
  color:var(--ipn-danger,#c0392b);
  font-weight:600;
  margin-left:4px;
}
/* AV: 2026-07-22: Destinatarios ? encabezado + badge; sin toggle Mostrar/Ocultar. */
.ipn-ap-msg .ipn-msg-contacts{
  margin-top:4px;
}
.ipn-ap-msg .ipn-msg-contacts__head{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 0 10px;
}
.ipn-ap-msg .ipn-msg-contacts__head .ipn-label{
  margin:0;
}
.ipn-ap-msg .ipn-msg-contacts__qty{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:22px;
  height:22px;
  padding:0 7px;
  border-radius:999px;
  font-size:12px;
  font-weight:700;
  line-height:1;
  color:var(--ipn-primary,#1d4e86);
  background:var(--ipn-primary-soft,#eef4fb);
}
.ipn-ap-msg .ipn-msg-contacts--flash{
  outline:2px solid #8fdc8a;
  outline-offset:4px;
  border-radius:8px;
  transition:outline-color .5s ease;
}
.ipn-ap-msg .ipn-msg-contact--removing{ background:#ffd0ce; }
.ipn-ap-msg #msgContacts .ipn-row-action{ opacity:1; }
.ipn-ap-msg .ipn-cust-actions-bar,
.ipn-ap-msg .ipn-secure-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:16px;
  margin-bottom:8px;
}
.ipn-ap-msg .ipn-secure-actions .ipn-btn--primary{ margin-left:auto; }
.ipn-ap-msg .ipn-textarea{
  min-height:100px;
  resize:vertical;
}

@media (max-width:700px){
  .ipn-msg-row{
    flex-direction:column;
    gap:10px;
    padding:12px 14px;
  }
  .ipn-msg-row__actions{ padding-top:0; align-self:flex-end; }
  .ipn-msg-row__preview{ white-space:normal; max-height:2.8em; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
  .ipn-msg-popup__head{ padding:14px 14px 10px; }
  .ipn-msg-popup__body{ padding:12px 14px; }
  .ipn-msg-popup__actions{ padding:10px 14px 14px; }
  /* AV: 2026-07-23: FAB/kebab AP mensajes ? regla global .ipn-ap (responsive ?22). */
}

/* ==========================================================================
   AV: 2026-07-22: Mi cuenta (ERP frontend) ? .ipn-my-account
   ========================================================================== */
.ipn-my-account .ipn-page-head{ margin-bottom:18px; }
.ipn-my-account .ipn-card{ margin-bottom:16px; overflow:hidden; }
.ipn-my-account .ipn-secure-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:16px;
  margin-bottom:8px;
}
.ipn-my-account .ipn-secure-actions .ipn-btn--primary{ margin-left:auto; }
.ipn-my-account .ipn-google-row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
}
.ipn-my-account .ipn-google-row__email{ font-weight:600; color:var(--ipn-text,#1e293b); }
.ipn-my-account__google-icon{
  width:16px;
  height:16px;
  display:block;
  object-fit:contain;
}
/* AV: 2026-07-22: sin transform ? iPNpopup centra con left:50% + margin-left */
/* AV: 2026-07-22: centrado en CSS (iPNpopup mide width=0 si display:none) */
.ipn-my-account-pw.iPNpopUpDiv,
#iPNpopUpDivBootstrap.ipn-my-account-pw{
  display:none;
  position:fixed;
  left:50% !important;
  margin-left:0 !important;
  transform:translateX(-50%);
  z-index:1300 !important;
  width:min(440px, calc(100vw - 32px)) !important;
  max-height:calc(100vh - 48px);
  overflow:auto;
  padding:0 !important;
  background:var(--ipn-surface,#fff) !important;
  border:1px solid var(--ipn-hairline,#e8edf4);
  border-radius:var(--ipn-radius-card,12px);
  box-shadow:0 16px 48px rgba(16,32,55,.22);
  box-sizing:border-box;
}
body.ipn2:has(.ipn-my-account-pw) #popUpDivBorder{
  display:none !important;
  opacity:0 !important;
  height:0 !important;
  width:0 !important;
  padding:0 !important;
  pointer-events:none !important;
}
body.ipn2:has(.ipn-my-account) .blackBackground{
  z-index:1290 !important;
}
.ipn-my-account-pw__head{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:18px 18px 12px;
  border-bottom:1px solid var(--ipn-hairline,#e8edf4);
}
.ipn-my-account-pw__icon{
  flex:0 0 auto;
  width:40px;
  height:40px;
  border-radius:10px;
  background:var(--ipn-primary-soft,#eef4fb);
  color:var(--ipn-primary,#1d4e86);
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.ipn-my-account-pw__icon .material-symbols-rounded{ font-size:22px; }
.ipn-my-account-pw__title{
  margin:0;
  font-size:16px;
  font-weight:700;
  color:var(--ipn-text,#1e293b);
}
.ipn-my-account-pw__sub{
  margin:4px 0 0;
  font-size:13px;
  color:var(--ipn-text-2,#5b6b80);
  line-height:1.4;
}
.ipn-my-account-pw__body{ padding:16px 18px; }
.ipn-my-account-pw__actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  padding:12px 18px 18px;
  border-top:1px solid var(--ipn-hairline,#e8edf4);
}
.ipn-my-account-pw__actions .ipn-btn--primary{ margin-left:auto; }
.ipn-my-account .ipn-tabs{
  padding-left:4px;
  padding-right:4px;
}
.ipn-my-account .ipn-sec-title{
  margin:0 0 16px;
  font-size:15px;
  font-weight:700;
  color:var(--ipn-text,#1e293b);
  letter-spacing:-.01em;
}
.ipn-my-account .ipn-kv-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:14px 28px;
}
.ipn-my-account .ipn-kv__label{
  display:block;
  font-size:12px;
  font-weight:500;
  color:#8493a6;
  margin-bottom:3px;
}
.ipn-my-account .ipn-kv__value{
  font-size:13.5px;
  font-weight:600;
  color:#1e293b;
  word-break:break-word;
}
.ipn-my-account .ipn-kv__value a:not(.ipn-btn){ color:#2f6bb5; font-weight:600; text-decoration:none; }
.ipn-my-account .ipn-kv__value a:not(.ipn-btn):hover{ text-decoration:underline; color:#1d4e86; }
.ipn-my-account .ipn-kv--full{ grid-column:1 / -1; }
.ipn-my-account .colorRojo{ color:var(--ipn-danger,#c0392b) !important; }
.ipn-my-account .colorVerde{ color:var(--ipn-success,#1f8a4c) !important; }
/* AV: 2026-07-22: estado del contrato ? badge + CTA (no link suelto) */
.ipn-my-account__toc-row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
}
.ipn-my-account__toc-meta{
  font-size:13.5px;
  font-weight:600;
  color:var(--ipn-text,#1e293b);
}
.ipn-my-account__activity-lead{
  margin:0 0 14px;
  font-size:13px;
  color:var(--ipn-text-2,#5b6b80);
  line-height:1.45;
}
.ipn-my-account__ua{
  max-width:420px;
  word-break:break-word;
  font-size:12.5px;
  color:var(--ipn-text-2,#5b6b80);
}
.ipn-my-account__apps{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(180px, 1fr));
  gap:14px;
}
.ipn-my-account__app{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  padding:16px 12px;
  border:1px solid var(--ipn-hairline,#e8edf4);
  border-radius:var(--ipn-radius-card,12px);
  background:var(--ipn-surface,#fff);
  text-decoration:none;
  color:inherit;
  transition:border-color .15s ease, box-shadow .15s ease, transform .15s ease;
  min-height:100%;
  box-sizing:border-box;
}
a.ipn-my-account__app:hover{
  border-color:#c9d7ea;
  box-shadow:0 4px 14px rgba(29,78,134,.08);
  transform:translateY(-1px);
  text-decoration:none;
  color:inherit;
}
.ipn-my-account__app.is-disabled{
  opacity:.42;
  filter:grayscale(.35);
  pointer-events:none;
}
.ipn-my-account__app-img{
  display:block;
  width:100%;
  max-width:160px;
  height:auto;
  object-fit:contain;
}
.ipn-my-account__app-title{
  display:block;
  text-align:center;
  font-size:12.5px;
  font-weight:600;
  color:var(--ipn-text,#1e293b);
  line-height:1.35;
}
.ipn-my-account__cbu{ margin-top:14px; }
.ipn-my-account .ipn-table tfoot th{
  background:var(--ipn-surface-soft-2,#f4f7fb);
  font-weight:700;
  border-top:1px solid var(--ipn-hairline,#e8edf4);
  padding:10px 12px;
}
/* AV: 2026-07-22: Total alineado a la derecha, pegado a la columna Saldo */
.ipn-my-account .ipn-table tfoot .ipn-my-account__total-lbl{
  text-align:right;
  font-weight:700;
}
.ipn-my-account .ipn-table tfoot .ipn-num{
  text-align:right;
  white-space:nowrap;
}
.ipn-my-account__group-row td{
  font-weight:700 !important;
  font-size:12.5px !important;
  color:#1d4e86 !important;
  background:var(--ipn-surface-soft-2,#f4f7fb) !important;
  padding-top:12px !important;
  padding-bottom:8px !important;
}
.ipn-my-account__subtotal-row th{
  font-weight:700;
  background:transparent;
  border-top:1px solid var(--ipn-hairline,#e8edf4);
  padding:8px 12px;
}
.ipn-my-account .ipn-table a{ text-decoration:none; font-weight:600; }
.ipn-my-account .ipn-table a:hover{ text-decoration:underline; }
.ipn-my-account .ipn-notice{ margin-bottom:14px; }

@media (max-width:700px){
  .ipn-my-account .ipn-kv-grid{ grid-template-columns:minmax(0,1fr); }
  .ipn-my-account__apps{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; }
  .ipn-my-account .ipn-page-head__actions{ flex-wrap:wrap; }
  /* AV: 2026-07-23: FAB AP Mi cuenta ? regla global .ipn-ap (responsive ?22). */
}
@media (max-width:380px){
  .ipn-my-account__apps{ grid-template-columns:minmax(0,1fr); }
}

/* ==========================================================================
   AV: 2026-07-22: Registro de inicios de sesi?n (secure/userAuditSessions)
   Filtros rotos: Fecha/Hora en un field angosto (flex 180px) apilaba los
   datepickers; CSS viv?a en <style> del ASP. Tabla sin footer visible
   (pager sin spacer / "P?gina" oculto si totalPagesQty=1).
   Scope: .ipn-login-audit
   ========================================================================== */
.ipn-login-audit__filters-card{ margin-bottom:16px; }
.ipn-login-audit__filters{
  display:flex;
  align-items:flex-end;
  gap:14px;
  flex-wrap:wrap;
}
.ipn-login-audit__user{
  flex:1 1 160px;
  min-width:140px;
  max-width:220px;
}
.ipn-login-audit__result{
  flex:1 1 200px;
  min-width:180px;
  max-width:280px;
}
.ipn-login-audit .ipn-field--sm{
  flex:0 0 auto;
  min-width:0;
  width:auto;
}
.ipn-login-audit .ipn-field--sm .ipn-datepicker,
.ipn-login-audit .ipn-field--sm .ipn-timepicker{
  width:auto;
}

/* Flatpickr wrap (input + bot?n) ? compartido en esta pantalla */
.ipn-login-audit .ipn-datepicker{
  display:inline-flex;
  align-items:stretch;
  max-width:168px;
  width:168px;
}
.ipn-login-audit .ipn-datepicker.ipn-timepicker{
  max-width:128px;
  width:128px;
}
.ipn-login-audit .ipn-datepicker input[data-input]{
  flex:1 1 auto;
  min-width:0;
  width:auto;
  height:var(--ipn-control-h,36px);
  padding:0 12px;
  border:1px solid var(--ipn-border-input,#c7d3e3);
  border-right:0;
  border-radius:var(--ipn-radius-input,8px) 0 0 var(--ipn-radius-input,8px);
  font:inherit;
  font-size:13px;
  color:var(--ipn-text);
  background:var(--ipn-surface);
  box-sizing:border-box;
}
.ipn-login-audit .ipn-datepicker input[data-input]:focus{
  outline:none;
  border-color:var(--ipn-primary);
  box-shadow:0 0 0 3px rgba(63,96,145,.14);
  z-index:1;
}
.ipn-login-audit .ipn-datepicker__btn{
  flex:0 0 40px;
  width:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--ipn-border-input,#c7d3e3);
  border-radius:0 var(--ipn-radius-input,8px) var(--ipn-radius-input,8px) 0;
  background:var(--ipn-surface-soft,#f5f8fb);
  color:var(--ipn-text-muted,#8493a6);
  cursor:pointer;
  padding:0;
}
.ipn-login-audit .ipn-datepicker__btn:hover{
  color:var(--ipn-primary);
  background:var(--ipn-primary-soft,#eef4fb);
}
.ipn-login-audit .ipn-datepicker__btn .material-symbols-rounded{ font-size:18px; }

.ipn-login-audit .ui-autocomplete{
  z-index:1300 !important;
  max-height:260px;
  overflow-y:auto;
  overflow-x:hidden;
}

/* Filas de resultado de conexi?n */
.ipn-login-audit .outOfSchedule > td{ background:#fff8e1; }
.ipn-login-audit .incorrectPass > td,
.ipn-login-audit .unabledUser > td{ background:#fdecea; }

/* Tabla ancha: scroll-x + headers sin wrap */
.ipn-login-audit__table{
  min-width:1100px;
}
.ipn-login-audit__table th{
  white-space:nowrap;
}
.ipn-login-audit__table td{
  vertical-align:middle;
  font-size:12.5px;
}

@media (max-width:700px){
  .ipn-login-audit__user,
  .ipn-login-audit__result{
    flex:1 1 100%;
    max-width:none;
  }
  .ipn-login-audit .ipn-field--sm{
    flex:1 1 calc(50% - 10px);
  }
  .ipn-login-audit .ipn-datepicker,
  .ipn-login-audit .ipn-datepicker.ipn-timepicker{
    width:100%;
    max-width:none;
  }
}

/* ==========================================================================
   AV: 2026-07-23: Fichaje de empleados (salesPoint/employeesSigning)
   ========================================================================== */
.ipn-signing .ipn-signing__filters-card{ margin-bottom:16px; }
.ipn-signing .ipn-datepicker{
  display:flex;
  align-items:stretch;
  max-width:160px;
}
.ipn-signing .ipn-datepicker input[data-input]{
  flex:1 1 auto;
  min-width:0;
  height:var(--ipn-control-h);
  padding:0 12px;
  border:1px solid var(--ipn-border-input);
  border-right:0;
  border-radius:var(--ipn-radius-input) 0 0 var(--ipn-radius-input);
  font:inherit;
  font-size:13px;
  color:var(--ipn-text);
  background:var(--ipn-surface);
  box-sizing:border-box;
}
.ipn-signing .ipn-datepicker input[data-input]:focus{
  outline:none;
  border-color:var(--ipn-primary);
  box-shadow:0 0 0 3px rgba(63,96,145,.14);
}
.ipn-signing .ipn-datepicker__btn{
  flex:0 0 40px;
  width:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--ipn-border-input);
  border-radius:0 var(--ipn-radius-input) var(--ipn-radius-input) 0;
  background:var(--ipn-surface-soft);
  color:var(--ipn-text-muted);
  cursor:pointer;
  padding:0;
}
.ipn-signing .ipn-datepicker__btn:hover{
  color:var(--ipn-primary);
  background:var(--ipn-primary-soft);
}
.ipn-signing .ipn-datepicker__btn .material-symbols-rounded{ font-size:18px; }
.ipn-signing .ipn-signing__place{
  font-size:12px;
  color:var(--ipn-text-muted);
}
.ipn-signing .ipn-signing__comments{
  display:flex;
  align-items:flex-start;
  gap:8px;
  padding:8px 12px;
  font-size:13px;
  color:var(--ipn-text-muted);
  font-style:italic;
}
.ipn-signing .ipn-signing__comments .material-symbols-rounded{
  font-size:18px;
  color:#8493a6;
  flex:0 0 auto;
}
.ipn-signing .ipn-signing__comments-row td{
  background:var(--ipn-surface-soft);
  border-top:0;
}
.ipn-signing .ipn-signing__col-actions{ width:48px; }
.ipn-signing .ipn-signing__datetime{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
}
.ipn-signing .ipn-signing__time-select{
  width:72px;
  min-width:72px;
}
.ipn-signing .ipn-signing__time-sep{
  color:var(--ipn-text-muted);
  font-weight:600;
}
.ipn-signing .ipn-signing__fixed-type{
  height:var(--ipn-control-h);
  display:flex;
  align-items:center;
  font-weight:600;
  color:var(--ipn-text);
}

@media (max-width:700px){
  .ipn-signing .ipn-datepicker{
    max-width:none;
    width:100%;
  }
  .ipn-signing .ipn-signing__datetime{
    width:100%;
  }
  .ipn-signing .ipn-signing__datetime .ipn-datepicker{
    flex:1 1 100%;
  }
}

/* AV: 2026-09-14: #571 ? Historial de fichajes (admin/employees): scroll-x de grilla. */
.ipn-employees-signing .ipn-card--table,
.ipn-employees-signing .ipn-table-wrap{
  max-width:100%;
  min-width:0;
}
.ipn-employees-signing .ipn-card--table{ overflow:visible; }
.ipn-employees-signing .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-employees-signing .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
body:has(.ipn-employees-signing) .flatpickr-calendar{
  font-family:var(--ipn-font);
}
@media (max-width:899px){
  .ipn-employees-signing .ipn-table--list thead th{ position:static; top:auto; }
}
@media (max-width:700px){
  .ipn-employees-signing .ipn-table--list th,
  .ipn-employees-signing .ipn-table--list td{
    padding:8px 10px;
  }
}



/* AV: 2026-09-14: #571 ? Empleados COMISIONES (.ipn-employees-comm): dominio only. */
.ipn-employees-comm .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-employees-comm .ipn-card--table,
.ipn-employees-comm .ipn-table-wrap{
  max-width:100%;
  min-width:0;
}
.ipn-employees-comm .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-employees-comm .ipn-table--list td.is-num,
.ipn-employees-comm .ipn-table--list th.is-num{
  text-align:right;
  font-variant-numeric:tabular-nums;
}
.ipn-employees-comm .ipn-table--list tr.is-default td{
  font-weight:600;
}
.ipn-employees-comm .ipn-table--list tr.is-version-head td{
  font-weight:600;
  background:var(--ipn-surface-muted, #f8f8f8);
}
.ipn-employees-comm__drag{
  width:44px;
  text-align:center;
  vertical-align:middle;
  cursor:grab;
  color:var(--ipn-muted, #667085);
  background-repeat:no-repeat;
  background-position:center;
  background-size:16px 16px;
}
.ipn-employees-comm__drag.is-loading{
  cursor:progress;
}
.ipn-employees-comm__amt--ok{ color:var(--ipn-success, #027a48); }
.ipn-employees-comm__amt--debt{ color:var(--ipn-danger, #b42318); }
.ipn-employees-comm__amt--credit{ color:var(--ipn-success, #027a48); }
.ipn-employees-comm-filters{
  display:flex;
  flex-wrap:wrap;
  gap:12px 16px;
  align-items:flex-end;
}
.ipn-employees-comm-filters .ipn-secure-filters__actions{
  margin-left:auto;
  display:flex;
  gap:8px;
  align-items:flex-end;
}
.ipn-employees-comm-filters .ipn-datepicker{
  min-width:140px;
}
.ipn-employees-comm-dates{
  display:flex;
  flex-wrap:wrap;
  gap:8px 12px;
  align-items:flex-end;
}
.ipn-employees-comm .ipn-field{ min-width:0; }
.ipn-employees-comm .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
}
.ipn-employees-comm .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ipn-employees-comm-form .ipn-form-section__title{ margin-top:8px; }
.ipn-employees-comm-form .ipn-form-section__title:first-child{ margin-top:0; }
.ipn-employees-comm-form select.ipn-select,
.ipn-employees-comm-form .ipn-select{
  max-width:100%;
}
.ipn-employees-comm-ac-hint{
  margin-top:4px;
  font-size:12px;
  color:var(--ipn-muted, #667085);
}
.ipn-employees-comm-radios{
  display:flex;
  flex-wrap:wrap;
  gap:8px 16px;
  align-items:center;
}
.ipn-employees-comm-comments{
  margin-top:16px;
}
.ipn-employees-comm-comments .ipn-textarea{
  min-height:90px;
  width:100%;
  max-width:640px;
}
.ipn-employees-comm-confirm{
  margin-top:12px;
}
.ipn-employees-comm .ipn-input--amt{
  width:100%;
  max-width:110px;
  text-align:right;
}
.ipn-employees-comm-info{
  margin-bottom:12px;
}
body:has(.ipn-employees-comm) .flatpickr-calendar{
  font-family:var(--ipn-font);
}
@media (max-width:899px){
  .ipn-employees-comm .ipn-table--list thead th{ position:static; top:auto; }
}
@media (max-width:700px){
  .ipn-employees-comm-filters{
    flex-direction:column;
    align-items:stretch;
  }
  .ipn-employees-comm-filters .ipn-secure-filters__actions{
    margin-left:0;
    width:100%;
  }
  .ipn-employees-comm-filters .ipn-secure-filters__actions .ipn-btn{
    width:100%;
  }
  .ipn-employees-comm-dates{
    flex-direction:column;
    align-items:stretch;
  }
  .ipn-employees-comm .ipn-table--list th,
  .ipn-employees-comm .ipn-table--list td{
    padding:8px 10px;
  }
}


/* AV: 2026-09-14: #571 ? Retiros de mercader?a empleados (.ipn-employees-stock): dominio only. */

.ipn-employees-stock-filters{
  display:flex;
  flex-wrap:wrap;
  gap:12px 16px;
  align-items:flex-end;
}
.ipn-employees-stock-filters .ipn-secure-filters__actions{
  margin-left:auto;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.ipn-employees-stock-filters .ipn-datepicker{
  display:inline-flex;
  align-items:stretch;
  max-width:160px;
}
/* AV: 2026-09-15: #590 - chrome Flatpickr retiros stock (input+btn unidos). */
.ipn-employees-stock-filters .ipn-datepicker input[data-input]{
  flex:1 1 auto;
  width:110px;
  min-width:0;
  height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  min-height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  padding:0 12px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-right:0;
  border-radius:var(--ipn-radius-input, 8px) 0 0 var(--ipn-radius-input, 8px);
  font:inherit;
  font-size:14px;
  color:var(--ipn-text);
  background:var(--ipn-surface);
  box-sizing:border-box;
}
.ipn-employees-stock-filters .ipn-datepicker input[data-input]:focus{
  outline:none;
  border-color:var(--ipn-brand, var(--ipn-primary));
  z-index:1;
}
.ipn-employees-stock-filters .ipn-datepicker__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  flex:0 0 42px;
  height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  min-height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-radius:0 var(--ipn-radius-input, 8px) var(--ipn-radius-input, 8px) 0;
  background:var(--ipn-surface-soft, #f5f7fb);
  color:var(--ipn-text-2, #5b6b80);
  cursor:pointer;
  padding:0;
  line-height:1;
  box-sizing:border-box;
}
.ipn-employees-stock-filters .ipn-datepicker__btn:hover{
  background:#eef2f7;
  color:var(--ipn-text);
}
.ipn-employees-stock-filters .ipn-datepicker__btn .material-symbols-rounded{
  font-size:18px;
  line-height:1;
  display:block;
}
.ipn-employees-stock .ipn-table--list{
  width:max-content;
  min-width:100%;
}
.ipn-employees-stock .ipn-card--table,
.ipn-employees-stock .ipn-table-wrap{
  overflow:visible;
}
.ipn-employees-stock .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-employees-stock__annulled{
  color:var(--ipn-danger, #b42318);
  font-weight:600;
}
.ipn-employees-stock__pending{
  color:var(--ipn-danger, #b42318);
  font-weight:700;
}
.ipn-employees-stock-form .ipn-form-section__title{ margin-top:8px; }
.ipn-employees-stock-form .ipn-form-section__title:first-child{ margin-top:0; }
.ipn-employees-stock-form .ipn-field{ min-width:0; }
.ipn-employees-stock-barcode{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.ipn-employees-stock-barcode .ipn-input{ flex:0 1 180px; min-width:0; }
.ipn-employees-stock-product-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.ipn-employees-stock-items .ipn-input{
  width:100%;
  max-width:100%;
}
.ipn-employees-stock-items td.is-num,
.ipn-employees-stock-items th.is-num{
  text-align:right;
}
.ipn-employees-stock-items__code{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
}
.ipn-employees-stock-items__code .ipn-input{
  width:100px;
  flex:0 1 100px;
}
.ipn-employees-stock-add-row{
  margin:8px 0 0;
  text-align:right;
}
.ipn-employees-stock-detail .ipn-audit{
  margin-top:16px;
}
.ipn-employees-stock-totals{
  margin-top:12px;
  max-width:360px;
  margin-left:auto;
}
.ipn-employees-stock-comments{
  color:var(--ipn-text-muted, #667085);
  font-style:italic;
  line-height:1.4;
}
.ipn-employees-stock-pay-actions{
  display:inline-flex;
  gap:8px;
  align-items:center;
  justify-content:flex-end;
}
body:has(.ipn-employees-stock) .flatpickr-calendar{
  font-family:var(--ipn-font);
}
@media (max-width:700px){
  .ipn-employees-stock-filters{
    flex-direction:column;
    align-items:stretch;
  }
  .ipn-employees-stock-filters .ipn-secure-filters__actions{
    margin-left:0;
    width:100%;
  }
  .ipn-employees-stock-filters .ipn-secure-filters__actions .ipn-btn{
    width:100%;
  }
  .ipn-employees-stock-filters .ipn-datepicker{
    max-width:none;
  }
  .ipn-employees-stock-filters .ipn-datepicker input[data-input]{
    width:100%;
  }
  .ipn-employees-stock .ipn-table--list th,
  .ipn-employees-stock .ipn-table--list td{
    padding:8px 10px;
  }
}


/* ==========================================================================
   AV: 2026-07-22: Usuarios y permisos (Panel admin) ? scope .ipn-users
   ========================================================================== */
.ipn-users .ipn-users__quota{
  margin:0 0 14px;
  font-size:13.5px;
  color:var(--ipn-text-muted,#5b6b7c);
}
.ipn-users .ipn-users__hint{
  font-size:12.5px;
  color:var(--ipn-text-muted,#8493a6);
}
.ipn-users .ipn-users__tip{
  font-size:16px;
  vertical-align:middle;
  color:var(--ipn-primary);
  cursor:help;
  margin-left:4px;
}
.ipn-users .ipn-users__status{ font-size:20px; }
.ipn-users .ipn-users__status--ok{ color:#2e7d32; }
.ipn-users .ipn-users__status--off{ color:#c62828; }
.ipn-users .is-hidden{ display:none !important; }
/* AV: 2026-07-28: securityUsers ? anchos fijos; sin Email; Acciones visibles. */
.ipn-users #usersResult{
  table-layout:fixed;
  width:100%;
}
.ipn-users #usersResult th,
.ipn-users #usersResult td{
  overflow:hidden;
  text-overflow:ellipsis;
}
.ipn-users #usersResult .ipn-users__col-user{ width:16%; }
.ipn-users #usersResult .ipn-users__col-profile{ width:10%; }
.ipn-users #usersResult .ipn-users__col-desc{ width:16%; }
.ipn-users #usersResult .ipn-users__col-access{ width:16%; }
.ipn-users #usersResult .ipn-users__col-store{ width:16%; }
.ipn-users #usersResult .ipn-users__col-pos{ width:14%; }
.ipn-users #usersResult .ipn-users__col-status{ width:6%; white-space:nowrap; }
.ipn-users #usersResult .ipn-users__col-actions{
  width:6%;
  white-space:nowrap;
  overflow:visible;
}
/* AV: 2026-07-22: Perfiles ? toolbar compacta + empty en la misma card. */
.ipn-users .ipn-users__profiles-toolbar{
  padding:14px 18px;
}
.ipn-users .ipn-users__profiles-empty{
  padding:14px 18px 16px;
  border-top:1px solid var(--ipn-hairline,#eef1f6);
}
.ipn-users .ipn-users__profiles-empty .ipn-notice{ margin:0; }
.ipn-users .ipn-users__profiles .ipn-table-wrap{
  border-top:1px solid var(--ipn-hairline,#eef1f6);
}
/* AV: 2026-07-22: Tab Sucursales ? .ipn-check global (15x15) es para INPUT; ac? va en LABEL. */
.ipn-users .ipn-users__stores-actions{
  display:flex;
  justify-content:flex-end;
  margin-top:14px;
}
.ipn-users .ipn-users__stores-toggle{ margin-bottom:12px; }
.ipn-users .ipn-users__stores-help{
  margin:0 0 12px;
  font-size:13px;
  line-height:1.4;
  color:var(--ipn-text-muted,#5b6b7c);
}
.ipn-users .ipn-users__stores-level0{ margin:0 0 10px; }
.ipn-users .ipn-users__stores-level1{
  display:block;
  clear:both;
  margin:14px 0 6px;
}
.ipn-users .ipn-users__stores-level2{
  display:block;
  clear:both;
  margin:10px 0 6px 8px;
  font-size:12.5px;
  font-weight:650;
  color:var(--ipn-text-muted,#5b6b7c);
}
.ipn-users .ipn-users__stores-level3{
  display:inline-flex;
  vertical-align:top;
  box-sizing:border-box;
  width:calc(33.333% - 12px);
  min-width:200px;
  max-width:340px;
  margin:0 12px 10px 16px;
}
.ipn-users label.ipn-check,
.ipn-users .ipn-check{
  display:inline-flex !important;
  align-items:flex-start;
  gap:8px;
  width:auto !important;
  height:auto !important;
  max-width:100%;
  margin:0;
  font-size:13px;
  line-height:1.35;
  color:var(--ipn-text,#122740);
  cursor:pointer;
  white-space:normal;
}
.ipn-users .ipn-check input[type="checkbox"]{
  flex:0 0 auto;
  width:16px !important;
  height:16px !important;
  min-width:16px;
  margin:2px 0 0 !important;
  padding:0;
  accent-color:var(--ipn-primary,#1d9a8c);
}
.ipn-users .ipn-check span{
  flex:1 1 auto;
  min-width:0;
}
.ipn-users .ui-autocomplete{
  z-index:1300 !important;
  max-height:260px;
  overflow-y:auto;
}

/* AV: 2026-07-22: Popup export usuarios (Buscar / Acciones) */
body.ipn2:has(.ipn-users) #iPNpopUpDiv.ipn-users-export,
#iPNpopUpDiv.ipn-users-export{
  width:min(520px,92vw) !important;
  max-width:92vw !important;
  padding:0 !important;
  border:0 !important;
  border-radius:14px !important;
  background:#fff !important;
  box-shadow:0 18px 48px rgba(15,23,42,.22) !important;
  overflow:hidden;
  z-index:1300 !important;
}
body.ipn2:has(.ipn-users) .blackBackground{
  z-index:1290 !important;
}
.ipn-users-export__head{
  display:flex;
  gap:12px;
  align-items:flex-start;
  padding:18px 20px 12px;
  border-bottom:1px solid var(--ipn-hairline,#eef1f6);
}
.ipn-users-export__icon{
  flex:0 0 auto;
  width:40px;height:40px;border-radius:10px;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--ipn-primary-soft,#e8f7f5);
  color:var(--ipn-primary,#1d9a8c);
}
.ipn-users-export__icon .material-symbols-rounded{ font-size:22px; }
.ipn-users-export__title{
  margin:0;font-size:17px;font-weight:650;color:var(--ipn-text,#122740);
}
.ipn-users-export__sub{
  margin:4px 0 0;font-size:13px;color:var(--ipn-text-muted,#5b6b7c);
}
.ipn-users-export__options{ padding:14px 20px 8px; }
.ipn-users-export__option{
  display:flex;align-items:center;gap:10px;
  margin:0 0 10px;font-size:13.5px;
  color:var(--ipn-text,#122740);
}
.ipn-users-export__option input[type="radio"]{
  position:static !important;
  float:none !important;
  width:16px !important;
  height:16px !important;
  margin:0 !important;
  accent-color:var(--ipn-primary,#1d9a8c);
}
.ipn-users-export__option label{
  float:none !important;
  display:inline !important;
  width:auto !important;
  margin:0 !important;
  padding:0 !important;
  cursor:pointer;
  font-weight:500;
}
.ipn-users-export #warningTaskScheduler{ margin:0 20px 10px; }
.ipn-users-export__actions{
  display:flex;align-items:center;justify-content:space-between;
  gap:10px;padding:12px 20px 16px;
  border-top:1px solid var(--ipn-border,#e2e8f0);
  background:var(--ipn-surface-soft,#f8fafc);
}
.ipn-users-export__actions .ipn-btn{
  display:inline-flex;align-items:center;gap:6px;
}

@media (max-width:900px){
  .ipn-users .ipn-users__stores-level3{
    width:calc(50% - 12px);
    max-width:none;
  }
}
@media (max-width:700px){
  .ipn-users .ipn-users__stores-level3{
    display:flex;
    width:100%;
    min-width:0;
    max-width:none;
    margin:0 0 8px 8px;
  }
  /* AV: 2026-07-23: FAB/kebab/t?tulo AP users ? regla global .ipn-ap (responsive ?22). */
}

/* AV: 2026-07-22: Perfiles / matriz / auditor?a de sesiones bajo .ipn-users */
.ipn-users .outOfSchedule > td{ background:#fff8e1; }
.ipn-users .incorrectPass > td,
.ipn-users .unabledUser > td{ background:#fdecea; }
.ipn-users .ipn-users__title-user{ font-weight:650; }
.ipn-users .ipn-users__matrix-wrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
.ipn-users .ipn-users__matrix th,
.ipn-users .ipn-users__matrix td{
  white-space:nowrap;
  vertical-align:middle;
}
.ipn-users .ipn-users__matrix th:first-child,
.ipn-users .ipn-users__matrix td:first-child{
  position:sticky;
  left:0;
  z-index:2;
  background:var(--ipn-surface,#fff);
  text-align:left;
  min-width:140px;
  box-shadow:2px 0 0 var(--ipn-border,#e2e8f0);
}
.ipn-users .ipn-users__matrix thead th:first-child{
  z-index:3;
  background:var(--ipn-surface-soft,#f8fafc);
}
.ipn-users .ipn-users__access{
  font-size:22px;
  line-height:1;
  cursor:pointer;
  user-select:none;
  vertical-align:middle;
}
.ipn-users .ipn-users__access--ok{ color:#2e7d32; }
.ipn-users .ipn-users__access--off{ color:#c62828; }
.ipn-users .ipn-users__access--na{
  color:#9e9e9e;
  cursor:default;
  filter:grayscale(1);
}
.ipn-users .ipn-users__access--loading{
  color:var(--ipn-text-muted,#8493a6);
  cursor:wait;
  animation:ipn-users-spin 0.9s linear infinite;
}
@keyframes ipn-users-spin{
  to{ transform:rotate(360deg); }
}

/* AV: 2026-07-22: addUser/addProfile ? layout sin Bootstrap (shell admin solo carga iPN2.css) */
.ipn-add-user,
.ipn-add-profile{
  --ipn-add-label-w:200px;
  --ipn-add-control-max:420px;
}
.ipn-add-user .ipn-page-head,
.ipn-add-profile .ipn-page-head{ margin-bottom:16px; }

/* AV: 2026-07-22: Nav vertical + footer de acciones a ancho del card */
.ipn-add-user__layout,
.ipn-add-profile__layout{
  display:grid;
  grid-template-columns:minmax(200px,240px) minmax(0,1fr);
  grid-template-rows:minmax(0,1fr) auto;
  align-items:stretch;
  margin:0 0 8px;
  border:1px solid var(--ipn-border,#e2e7ef);
  border-radius:var(--ipn-radius-card,12px);
  background:var(--ipn-surface,#fff);
  overflow:hidden;
}
.ipn-add-user .ipn-tabs,
.ipn-add-user__nav,
.ipn-add-profile .ipn-tabs,
.ipn-add-profile__nav{
  grid-column:1;
  grid-row:1;
  display:flex;
  flex-direction:column;
  flex-wrap:nowrap;
  align-items:stretch;
  align-self:stretch;
  gap:2px;
  margin:0;
  padding:10px 8px;
  min-height:100%;
  height:100%;
  overflow-x:visible;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
  scrollbar-color:#c5d0de transparent;
  border:0;
  border-right:1px solid var(--ipn-border,#e2e7ef);
  border-radius:0;
  background:#f7f9fc;
  box-shadow:none;
  position:static;
  max-height:none;
}
.ipn-add-user .ipn-tabs::-webkit-scrollbar,
.ipn-add-user__nav::-webkit-scrollbar,
.ipn-add-profile .ipn-tabs::-webkit-scrollbar,
.ipn-add-profile__nav::-webkit-scrollbar{ width:6px; height:auto; }
.ipn-add-user .ipn-tabs::-webkit-scrollbar-thumb,
.ipn-add-user__nav::-webkit-scrollbar-thumb,
.ipn-add-profile .ipn-tabs::-webkit-scrollbar-thumb,
.ipn-add-profile__nav::-webkit-scrollbar-thumb{
  background:#c5d0de;
  border-radius:6px;
}
.ipn-add-user .ipn-tabs__item,
.ipn-add-profile .ipn-tabs__item{
  width:100%;
  justify-content:flex-start;
  padding:10px 12px;
  border-radius:8px;
  white-space:normal;
  line-height:1.3;
  box-shadow:none !important;
  border-left:3px solid transparent;
}
.ipn-add-user .ipn-tabs__item.is-active,
.ipn-add-user .ipn-tabs__item.active,
.ipn-add-profile .ipn-tabs__item.is-active,
.ipn-add-profile .ipn-tabs__item.active{
  color:#1d4e86 !important;
  background:#fff;
  border-left-color:#1d4e86;
  box-shadow:none !important;
}
.ipn-add-user .ipn-tabs__item.is-disabled,
.ipn-add-profile .ipn-tabs__item.is-disabled{
  opacity:.45;
  pointer-events:none;
}
.ipn-add-user .ipn-tabs__slot{
  display:flex;
  flex:0 0 auto;
  align-items:stretch;
  width:100%;
}
.ipn-add-user .ipn-tabs__slot > .ipn-tabs__item{ width:100%; }
.ipn-add-user .ipn-add-user__panel,
.ipn-add-profile .ipn-add-profile__panel{
  grid-column:2;
  grid-row:1;
  padding:20px 22px 16px;
  border:0;
  border-radius:0;
  box-shadow:none;
  min-width:0;
  min-height:0;
}
.ipn-add-user .ipn-add-user__actions,
.ipn-add-profile .ipn-add-profile__actions{
  grid-column:1 / -1;
  grid-row:2;
  margin:0;
  padding:14px 22px;
  border-top:1px solid #e2e7ef;
  background:#fafbfd;
  border-radius:0;
}
@media (max-width:900px){
  .ipn-add-user__layout,
  .ipn-add-profile__layout{
    grid-template-columns:1fr;
    grid-template-rows:auto auto auto;
  }
  .ipn-add-user .ipn-tabs,
  .ipn-add-user__nav,
  .ipn-add-profile .ipn-tabs,
  .ipn-add-profile__nav{
    grid-column:1;
    grid-row:1;
    flex-direction:row;
    flex-wrap:wrap;
    position:static;
    max-height:none;
    height:auto;
    min-height:0;
    border-right:0;
    border-bottom:1px solid var(--ipn-border,#e2e7ef);
    padding:8px;
  }
  .ipn-add-user .ipn-add-user__panel,
  .ipn-add-profile .ipn-add-profile__panel{
    grid-column:1;
    grid-row:2;
  }
  .ipn-add-user .ipn-add-user__actions,
  .ipn-add-profile .ipn-add-profile__actions{
    grid-column:1;
    grid-row:3;
  }
  .ipn-add-user .ipn-tabs__item,
  .ipn-add-profile .ipn-tabs__item{
    width:auto;
    flex:1 1 auto;
    border-left:0;
    border-bottom:2px solid transparent;
    border-radius:8px 8px 0 0;
  }
  .ipn-add-user .ipn-tabs__item.is-active,
  .ipn-add-user .ipn-tabs__item.active,
  .ipn-add-profile .ipn-tabs__item.is-active,
  .ipn-add-profile .ipn-tabs__item.active{
    border-left-color:transparent;
    border-bottom-color:#1d4e86;
  }
  .ipn-add-user .ipn-tabs__slot{ width:auto; }
  .ipn-add-user .ipn-tabs__slot > .ipn-tabs__item{ width:auto; }
}
.ipn-add-user .cnt_secundario > h2,
.ipn-add-profile .cnt_secundario > h2{
  margin:0 0 6px;
  font-size:15px;
  font-weight:650;
  color:var(--ipn-text);
}
.ipn-add-user .cnt_secundario > hr,
.ipn-add-profile .cnt_secundario > hr{
  border:0;
  border-top:1px solid #eef1f6;
  margin:0 0 16px;
}

/* Utilidades Bootstrap usadas en el markup legacy */
.ipn-add-user .d-flex,
.ipn-add-profile .d-flex,
.ipn-add-user .d-sm-flex,
.ipn-add-profile .d-sm-flex{ display:flex; }
/* AV: 2026-08-11: Feedback 4.2.1 ? sin .d-none el checkbox de ?modificar precios?
   segu?a en el grid al ocultar el label y desfasaba label/control en Permisos (PV limitado). */
.ipn-add-user .d-none,
.ipn-add-profile .d-none{ display:none !important; }
/* AV: 2026-07-22: un solo spacing checkbox?label (gap). Sin margin-left ni &nbsp; (sumaban ~25px). */
.ipn-add-user .d-flex.align-items-center,
.ipn-add-profile .d-flex.align-items-center{ gap:8px; }
.ipn-add-user .ipn-add-user__check-label,
.ipn-add-profile .ipn-add-user__check-label{
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.ipn-add-user input[type=checkbox] + label,
.ipn-add-profile input[type=checkbox] + label{
  margin-left:0 !important;
}
.ipn-add-user .align-items-center,
.ipn-add-profile .align-items-center{ align-items:center; }
.ipn-add-user .justify-content-start,
.ipn-add-profile .justify-content-start{ justify-content:flex-start; }
.ipn-add-user .justify-content-center,
.ipn-add-profile .justify-content-center{ justify-content:center; }
.ipn-add-user .position-relative,
.ipn-add-profile .position-relative{ position:relative; }
.ipn-add-user .float-none,
.ipn-add-profile .float-none{ float:none; }
.ipn-add-user .w-100,
.ipn-add-profile .w-100{ width:100%; max-width:100%; }
.ipn-add-user .w-auto,
.ipn-add-profile .w-auto{ width:auto !important; max-width:none; }
.ipn-add-user .mx-0,
.ipn-add-profile .mx-0{ margin-left:0; margin-right:0; }
.ipn-add-user .px-0,
.ipn-add-profile .px-0{ padding-left:0; padding-right:0; }
.ipn-add-user .p-0,
.ipn-add-profile .p-0{ padding:0; }
.ipn-add-user .mb-0,
.ipn-add-profile .mb-0{ margin-bottom:0; }
.ipn-add-user .mb-3,
.ipn-add-profile .mb-3{ margin-bottom:12px; }
.ipn-add-user .mb-4,
.ipn-add-profile .mb-4{ margin-bottom:16px; }
.ipn-add-user .my-3,
.ipn-add-profile .my-3{ margin-top:12px; margin-bottom:12px; }
.ipn-add-user .mt-2,
.ipn-add-profile .mt-2{ margin-top:8px; }
.ipn-add-user .mr-0,
.ipn-add-profile .mr-0{ margin-right:0; }
.ipn-add-user .mr-2,
.ipn-add-profile .mr-2{ margin-right:8px; }
.ipn-add-user .mr-4,
.ipn-add-profile .mr-4{ margin-right:16px; }
.ipn-add-user .font-weight-bold,
.ipn-add-profile .font-weight-bold{ font-weight:650; }
.ipn-add-user .text-center,
.ipn-add-profile .text-center{ text-align:center; }

/* Filas label | control (reemplazo de .form-group.row + col-sm-*) */
.ipn-add-user .form-row,
.ipn-add-profile .form-row{
  display:flex;
  flex-direction:column;
  gap:12px;
  max-width:760px;
}
.ipn-add-user .form-group.row,
.ipn-add-profile .form-group.row{
  display:flex;
  flex-direction:row;
  flex-wrap:wrap;
  align-items:center;
  gap:10px 14px;
  margin:0;
  width:100%;
  max-width:760px;
}
.ipn-add-user .form-group.row > .col-form-label,
.ipn-add-profile .form-group.row > .col-form-label,
.ipn-add-user .form-group.row > label.col-sm-2,
.ipn-add-profile .form-group.row > label.col-sm-2{
  flex:0 0 var(--ipn-add-label-w);
  width:var(--ipn-add-label-w);
  max-width:var(--ipn-add-label-w);
  margin:0;
  padding:0;
  font-size:13px;
  font-weight:650;
  color:var(--ipn-text,#1e293b);
  line-height:1.3;
}
.ipn-add-user .form-group.row > .col-sm-10,
.ipn-add-profile .form-group.row > .col-sm-10,
.ipn-add-user .form-group.row > .d-flex.col-sm-10,
.ipn-add-profile .form-group.row > .d-flex.col-sm-10,
.ipn-add-user .form-group.row > .d-sm-flex.col-sm-10,
.ipn-add-profile .form-group.row > .d-sm-flex.col-sm-10{
  flex:1 1 auto;
  min-width:0;
  max-width:none;
  display:flex;
  align-items:center;
  flex-wrap:nowrap;
  gap:8px;
  padding:0;
}
/* AV: 2026-07-22: Ancho fijo del control; sin shrink para que * / hint / bot?n no lo achiquen. */
.ipn-add-user .form-group.row .form-control.w-100,
.ipn-add-profile .form-group.row .form-control.w-100,
.ipn-add-user .form-group.row select.w-100,
.ipn-add-profile .form-group.row select.w-100,
.ipn-add-user .form-group.row > input.col-sm-10,
.ipn-add-profile .form-group.row > input.col-sm-10,
.ipn-add-user .form-group.row > select.col-sm-10,
.ipn-add-profile .form-group.row > select.col-sm-10{
  flex:0 0 auto;
  width:var(--ipn-add-control-max);
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}
.ipn-add-user .form-group.row > .d-sm-flex.col-sm-10,
.ipn-add-profile .form-group.row > .d-sm-flex.col-sm-10{
  flex-wrap:wrap;
}
.ipn-add-user .form-group.row .ipn-btn,
.ipn-add-profile .form-group.row .ipn-btn{
  flex:0 0 auto;
  white-space:nowrap;
}

/* Controles de texto/select (no checkboxes/radios) */
.ipn-add-user input.form-control:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=button]):not([type=submit]),
.ipn-add-profile input.form-control:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=button]):not([type=submit]),
.ipn-add-user select:not(.choices__input),
.ipn-add-profile select:not(.choices__input),
.ipn-add-user input[type=text]:not(.choices__input),
.ipn-add-profile input[type=text]:not(.choices__input),
.ipn-add-user input[type=password],
.ipn-add-profile input[type=password]{
  height:var(--ipn-control-h,36px);
  border:1px solid var(--ipn-border-input,#c7d3e3);
  border-radius:var(--ipn-radius-input,8px);
  padding:0 12px;
  font-size:13px;
  color:var(--ipn-text,#1e293b);
  background:var(--ipn-surface,#fff);
  box-sizing:border-box;
  max-width:100%;
}
.ipn-add-user input[type=checkbox],
.ipn-add-profile input[type=checkbox],
.ipn-add-user input[type=radio],
.ipn-add-profile input[type=radio]{
  width:16px !important;
  height:16px !important;
  min-width:16px;
  margin:0;
  padding:0;
  border:1px solid #9aacc2;
  border-radius:3px;
  background:#fff;
  accent-color:var(--ipn-primary,#1d9a8c);
  box-shadow:none;
}
.ipn-add-user input[type=radio],
.ipn-add-profile input[type=radio]{ border-radius:50%; }
.ipn-add-user .campoRequerido,
.ipn-add-profile .campoRequerido{
  color:#c62828;
  margin:0;
  font-weight:700;
  font-size:12px;
  white-space:nowrap;
}
.ipn-add-user .campoRequerido.mt-2,
.ipn-add-profile .campoRequerido.mt-2{ white-space:normal; }
/* AV: 2026-08-09: Contrase?a (7.1) ? hint debajo sin achicar ni bajar el input */
.ipn-add-user .form-group.row.ipn-add-user__row-with-hint{
  align-items:flex-start;
}
.ipn-add-user .ipn-add-user__row-with-hint > label.col-sm-2,
.ipn-add-user .ipn-add-user__row-with-hint > .col-form-label{
  padding-top:10px;
}
.ipn-add-user .form-group.row > .col-sm-10.ipn-add-user__field-stack{
  flex:1 1 auto;
  min-width:0;
  max-width:none;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:4px;
  padding:0;
}
.ipn-add-user .ipn-add-user__control-line{
  display:flex;
  align-items:center;
  gap:8px;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
.ipn-add-user .ipn-add-user__control-line > input.form-control.w-100{
  flex:0 0 var(--ipn-add-control-max);
  width:var(--ipn-add-control-max);
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}
.ipn-add-user .ipn-add-user__hint{
  display:block;
  margin:0;
  padding:0;
  width:var(--ipn-add-control-max);
  max-width:100%;
  font-size:12px;
  font-weight:600;
  color:#c62828;
  line-height:1.3;
  white-space:normal;
}
/* AV: 2026-08-04: legacy field-wrap (por si queda markup viejo) */
.ipn-add-user .form-group.row > .d-flex.col-sm-10.ipn-add-user__field-wrap{
  flex-wrap:wrap;
  align-items:center;
}
.ipn-add-user .ipn-add-user__field-wrap > input.form-control.w-100{
  flex:0 0 var(--ipn-add-control-max);
  width:var(--ipn-add-control-max);
  max-width:100%;
}
/* AV: 2026-07-29: Acceso supervisor ? input + bot?n empaquetados al ancho est?ndar */
.ipn-add-user .ipn-add-user__input-with-btn{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
  width:var(--ipn-add-control-max);
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}
.ipn-add-user .ipn-add-user__input-with-btn .form-control{
  flex:1 1 auto;
  width:auto !important;
  max-width:none;
  min-width:0;
}
.ipn-add-user .ipn-add-user__input-with-btn .ipn-btn{
  flex:0 0 auto;
}
.ipn-add-user .mw-select,
.ipn-add-profile .mw-select{
  display:block;
  width:100%;
  max-width:var(--ipn-add-control-max);
}
.ipn-add-user .mw-select select,
.ipn-add-profile .mw-select select{ width:100%; }
.ipn-add-user .grid-container-8,
.ipn-add-profile .grid-container-8{
  display:grid;
  grid-template-columns:minmax(220px,380px) auto;
  column-gap:14px;
  row-gap:12px;
  align-items:center;
  justify-items:start;
  max-width:760px;
}
/* AV: 2026-07-27: QA 3.1.1 ? Permisos (addUser) usa grid-container-9; sin esto
   el shell admin (solo iPN2) apila label arriba / checkbox abajo. Misma fila:
   permiso a la izquierda, control a la derecha. */
.ipn-add-user .grid-container-9{
  display:grid;
  grid-template-columns:minmax(240px,1fr) auto;
  column-gap:16px;
  row-gap:12px;
  align-items:center;
  justify-items:start;
  max-width:720px;
}
.ipn-add-user .grid-container-9 .workcenter-input-container{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  min-height:22px;
}
/* AV: 2026-07-29: Select + * en una sola fila (Lista de precios asignada) */
.ipn-add-user .grid-container-9 .ipn-add-user__control-req{
  flex-wrap:nowrap;
  max-width:100%;
}
.ipn-add-user .grid-container-9 .ipn-add-user__control-req > select{
  width:var(--ipn-add-control-max);
  max-width:calc(100% - 1.25rem);
  flex:0 1 auto;
  min-width:0;
}
.ipn-add-user .grid-container-9 .ipn-add-user__control-req > .campoRequerido{
  flex:0 0 auto;
}
.ipn-add-user .grid-container-9 > div > label,
.ipn-add-user .grid-container-9 > div > span,
.ipn-add-user .grid-container-9 > div > p{
  margin:0;
  font-size:13px;
  line-height:1.35;
  color:var(--ipn-text,#1e293b);
}
.ipn-add-user .choices{ margin-bottom:0; width:var(--ipn-add-control-max); max-width:100%; }
.ipn-add-user .choices__inner{
  min-height:var(--ipn-control-h,36px);
  border-radius:var(--ipn-radius-input,8px);
  border-color:var(--ipn-border-input,#c7d3e3);
  font-size:13px;
}
/* AV: 2026-07-22: Choices de Empleado en grilla ? m?s compacto (menos alto/ancho). */
.ipn-add-user td .choices,
.ipn-add-user [name="td_employeeID"] .choices{
  width:100%;
  max-width:240px;
  min-width:160px;
  font-size:12.5px;
}
.ipn-add-user td .choices__inner,
.ipn-add-user [name="td_employeeID"] .choices__inner{
  min-height:32px;
  padding:3px 8px;
  font-size:12.5px;
  line-height:1.25;
}
.ipn-add-user td .choices__list--single,
.ipn-add-user [name="td_employeeID"] .choices__list--single{
  padding:2px 20px 2px 2px;
}
.ipn-add-user td .choices__list--single .choices__item,
.ipn-add-user [name="td_employeeID"] .choices__list--single .choices__item{
  padding:0;
  line-height:1.3;
}
.ipn-add-user td .choices[data-type*="select-one"]::after,
.ipn-add-user [name="td_employeeID"] .choices[data-type*="select-one"]::after{
  right:8px;
  margin-top:-3px;
  border-width:5px 5px 0;
}
.ipn-add-user .img-icon-16{
  width:16px;
  height:16px;
  vertical-align:middle;
  opacity:.75;
}
.ipn-add-user .ipn-secure-actions,
.ipn-add-profile .ipn-secure-actions{
  margin-top:0;
  padding-top:14px;
}
.ipn-add-user .ipn-secure-actions .ipn-btn--primary,
.ipn-add-profile .ipn-secure-actions .ipn-btn--primary{ margin-left:auto; }

/* Tablas de permisos / limitaciones */
.ipn-add-user table.grilla,
.ipn-add-profile table.grilla,
.ipn-add-user table.ipn-table,
.ipn-add-profile table.ipn-table,
.ipn-add-user table.table-responsive,
.ipn-add-profile table.table-responsive,
.ipn-add-user tbody.grilla,
.ipn-add-profile tbody.grilla{
  width:100%;
  border-collapse:collapse;
}
.ipn-add-user table.table-responsive,
.ipn-add-profile table.table-responsive{
  display:table;
  border:1px solid #e2e7ef;
  border-radius:8px;
  overflow:hidden;
}
.ipn-add-user tbody.grilla th,
.ipn-add-profile tbody.grilla th,
.ipn-add-user table.grilla th,
.ipn-add-profile table.grilla th{
  background:#f5f8fc;
  font-size:12px;
  font-weight:650;
  color:var(--ipn-text-2,#475569);
  padding:10px 12px;
  border-bottom:1px solid #e2e7ef;
  text-align:left;
}
.ipn-add-user tbody.grilla td,
.ipn-add-profile tbody.grilla td,
.ipn-add-user table.grilla td,
.ipn-add-profile table.grilla td{
  padding:9px 12px;
  border-bottom:1px solid #eef1f6;
  font-size:13px;
  vertical-align:middle;
}

/* Limitaci?n horaria */
.ipn-add-user .calendar-grid{
  display:grid;
  grid-template-columns:80px 120px 120px;
  gap:10px 16px;
  align-items:center;
  max-width:420px;
  margin-top:8px;
}
.ipn-add-user .calendar-grid .input-group,
.ipn-add-user [id$=TimeFromPicker],
.ipn-add-user [id$=TimeToPicker]{
  display:block;
  position:relative;
}
.ipn-add-user .timeInput,
.ipn-add-user [id$=TimeFrom],
.ipn-add-user [id$=TimeTo]{
  text-align:center;
  max-width:110px !important;
  width:100%;
}
/* AV: 2026-07-23: Migrado desde <style> de secure/addUser.asp */
.ipn-add-user .timeInput:disabled{
  background-color:#ddd;
}
.ipn-add-user [name="accessDays"],
.ipn-add-user [for^="accessDays_"]{
  display:block;
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}
.ipn-add-user .input-append{
  position:relative;
}

@media (max-width:700px){
  .ipn-add-user .form-group.row,
  .ipn-add-profile .form-group.row{
    flex-direction:column;
    align-items:stretch;
    gap:6px;
  }
  .ipn-add-user .form-group.row > .col-form-label,
  .ipn-add-profile .form-group.row > .col-form-label,
  .ipn-add-user .form-group.row > label.col-sm-2,
  .ipn-add-profile .form-group.row > label.col-sm-2{
    flex:0 0 auto;
    width:auto;
    max-width:none;
  }
  .ipn-add-user .form-group.row > .col-sm-10,
  .ipn-add-profile .form-group.row > .col-sm-10,
  .ipn-add-user .form-group.row > .d-flex.col-sm-10,
  .ipn-add-profile .form-group.row > .d-flex.col-sm-10,
  .ipn-add-user .form-group.row > .d-sm-flex.col-sm-10,
  .ipn-add-profile .form-group.row > .d-sm-flex.col-sm-10,
  .ipn-add-user .form-group.row > input.col-sm-10,
  .ipn-add-profile .form-group.row > input.col-sm-10{
    max-width:none;
  }
  .ipn-add-user .ipn-add-user__row-with-hint > label.col-sm-2,
  .ipn-add-user .ipn-add-user__row-with-hint > .col-form-label{
    padding-top:0;
  }
  .ipn-add-user .ipn-add-user__control-line > input.form-control.w-100{
    flex:1 1 auto;
    width:100%;
  }
  .ipn-add-user .calendar-grid{
    grid-template-columns:56px 1fr 1fr;
    max-width:100%;
  }
  /* AV: 2026-07-27: QA 3.1.1 ? en mobile seguir en 2 cols (label | control), no apilar */
  .ipn-add-user .grid-container-9{
    grid-template-columns:minmax(140px,1fr) auto;
    column-gap:10px;
    row-gap:10px;
    max-width:100%;
  }
  /* AV: 2026-07-29: Acceso supervisor ? bot?n debajo si no entra en fila */
  .ipn-add-user .ipn-add-user__input-with-btn{
    flex-wrap:wrap;
  }
  .ipn-add-user .ipn-add-user__input-with-btn > .ipn-btn{
    width:100%;
  }
}

/* AV: 2026-07-22: userPassword / deleteUser / cloneUser ? scopes cortos Panel admin */
.ipn-user-password .ipn-card,
.ipn-delete-user .ipn-card{
  max-width:640px;
}
.ipn-user-password .ipn-form-stack{
  max-width:420px;
}
.ipn-user-password .campoRequerido,
.ipn-clone-user .campoRequerido{
  color:#c62828;
  font-weight:700;
  margin-left:2px;
}
.ipn-user-password .ipn-secure-actions,
.ipn-delete-user .ipn-secure-actions{
  max-width:640px;
  margin-top:16px;
}
.ipn-user-password .ipn-secure-actions .ipn-btn--primary,
.ipn-delete-user .ipn-secure-actions .ipn-btn--primary,
.ipn-delete-user .ipn-secure-actions .ipn-btn--danger{
  margin-left:auto;
}
.ipn-delete-user .ipn-notice--warning{
  margin-bottom:16px;
}
.ipn-delete-user .ipn-delete-user__confirm{
  margin:0 0 12px;
}
.ipn-delete-user .ipn-users__hint{
  margin:0;
  line-height:1.45;
}

.ipn-clone-user .ipn-clone-user__tip,
.ipn-clone-user .ipn-clone-user__eye{
  width:20px;
  height:20px;
  flex:0 0 auto;
  cursor:pointer;
  opacity:.8;
}
.ipn-clone-user .ipn-clone-user__genpass{
  flex:0 0 auto;
  white-space:nowrap;
}
.ipn-clone-user .ipn-add-user__panel{
  margin-top:0;
}
/* AV: 2026-08-11: Feedback 4.1.1 ? aire vertical entre filas (antes margin:0 y quedaban pegadas). */
.ipn-clone-user .cnt_secundario > h2{
  margin:0 0 12px;
}
.ipn-clone-user .form-group.row{
  margin:0 0 16px;
  align-items:center;
}
.ipn-clone-user .form-group.row:last-child{
  margin-bottom:0;
}
/* AV: 2026-08-12: Contrase?a ? mismo alto/ancho que dem?s inputs; ojo+Generar dentro del control. */
.ipn-clone-user .ipn-clone-user__pass-controls{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
  width:var(--ipn-add-control-max,420px);
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
  flex-wrap:nowrap;
}
.ipn-clone-user .ipn-clone-user__pass-controls > input.form-control[type=password]{
  flex:1 1 auto;
  width:auto !important;
  max-width:none;
  min-width:0;
  height:var(--ipn-control-h,40px) !important;
  min-height:var(--ipn-control-h,40px) !important;
  padding:0 12px !important;
  box-sizing:border-box;
  line-height:1.2;
}
.ipn-clone-user .ipn-clone-user__pass-controls > .ipn-btn{
  flex:0 0 auto;
  height:var(--ipn-control-h,40px);
  padding:0 12px;
}
.ipn-clone-user .ipn-clone-user__pass-row{
  align-items:center;
}
.ipn-clone-user .ipn-secure-actions{
  margin-top:20px;
}
@media (max-width:700px){
  .ipn-user-password .ipn-card,
  .ipn-delete-user .ipn-card,
  .ipn-user-password .ipn-secure-actions,
  .ipn-delete-user .ipn-secure-actions{
    max-width:none;
  }
  .ipn-clone-user .ipn-clone-user__pass-controls{
    flex-wrap:wrap;
    width:100%;
  }
  .ipn-clone-user .ipn-clone-user__pass-controls > input.form-control[type=password]{
    flex:1 1 100%;
    width:100% !important;
  }
  .ipn-clone-user .ipn-clone-user__pass-controls > .ipn-btn{
    width:100%;
  }
}

/* ==========================================================================
   AV: 2026-07-22: userDetails / userModules / audit user ? scopes Panel admin
   ========================================================================== */
.ipn-user-details .ipn-user-details__layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(260px,320px);
  gap:18px;
  align-items:start;
}
.ipn-user-details .ipn-user-details__main{ min-width:0; }
.ipn-user-details .ipn-tabs{ margin:0 0 12px; }
.ipn-user-details .ipn-user-details__panel{ margin:0; }
/* AV: 2026-07-23: Acciones ya usan .ipn-action-row (mismo markup que users/userDetails). */
.ipn-user-details .ipn-user-details__kv-table{
  width:100%;
  border-collapse:collapse;
}
.ipn-user-details .ipn-user-details__kv-table td{
  padding:10px 8px;
  border-bottom:1px solid var(--ipn-hairline,#eef1f6);
  vertical-align:top;
  font-size:13px;
}
.ipn-user-details .ipn-user-details__kv-table td:first-child{
  width:200px;
  color:var(--ipn-text-muted,#8493a6);
  font-weight:600;
}
.ipn-user-details .ipn-user-details__pwd{ margin-right:8px; }
.ipn-user-details .ipn-btn--sm{
  height:auto;
  min-height:28px;
  padding:4px 10px;
  font-size:12px;
}
@media (max-width:900px){
  .ipn-user-details .ipn-user-details__layout{
    grid-template-columns:1fr;
  }
}
/* AV: 2026-07-23: Feedback Gabriel ? detalle usuario roto en mobile (label 260px + tabs). */
@media (max-width:700px){
  /* AV: 2026-08-04: Tabs en wrap ? Accesos quedaba fuera sin cue de scroll horizontal */
  .ipn-user-details .ipn-tabs{
    flex-wrap:wrap;
    overflow-x:visible;
    align-items:stretch;
    gap:0;
    padding:0;
    margin:0 0 10px;
  }
  .ipn-user-details .ipn-tabs__item{
    flex:1 1 42%;
    justify-content:center;
    text-align:center;
    white-space:normal;
    line-height:1.25;
    padding:12px 8px;
    min-height:44px;
    box-sizing:border-box;
  }
  .ipn-user-details .ipn-user-details__main{
    min-width:0;
    max-width:100%;
  }
  .ipn-user-details .form-group.row{
    flex-direction:column;
    align-items:stretch;
    gap:4px;
    padding:0 0 12px;
    margin:0 0 4px;
  }
  .ipn-user-details .form-group.row > .col-form-label,
  .ipn-user-details .form-group.row > span.col-form-label{
    flex:0 0 auto;
    max-width:100%;
    width:100%;
  }
  .ipn-user-details .form-group.row > .col-sm-8,
  .ipn-user-details .form-group.row > .d-flex.col-sm-8{
    flex:1 1 auto;
    width:100%;
    max-width:100%;
  }
  .ipn-user-details .ipn-user-details__kv-table td:first-child{
    width:auto;
    display:block;
    padding-bottom:2px;
    border-bottom:0;
  }
  .ipn-user-details .ipn-user-details__kv-table td{
    display:block;
    width:100%;
  }
  .ipn-user-details .ipn-user-details__access-row{
    flex-direction:column;
    align-items:stretch;
  }
  .ipn-user-details .ipn-breadcrumb{
    flex-wrap:wrap;
    row-gap:4px;
  }
  .ipn-user-details .ipn-page-title{
    overflow-wrap:break-word;
    word-break:normal;
  }
}
.ipn-user-details .ipn-user-details__sec-title,
.ipn-user-details .cnt_secundario > h2.ipn-user-details__sec-title{
  margin:0 0 12px;
  font-size:16px;
  font-weight:700;
  color:var(--ipn-text,#0f2544);
}
/* AV: 2026-07-22: Tab Accesos ? t?tulos de secci?n (no h2 de p?gina). */
.ipn-user-details .ipn-user-details__access-list{
  display:flex;
  flex-direction:column;
}
.ipn-user-details .ipn-user-details__access-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px 16px;
  padding:12px 0;
  border-bottom:1px solid var(--ipn-hairline,#eef1f6);
}
.ipn-user-details .ipn-user-details__access-row:last-child{ border-bottom:0; padding-bottom:0; }
.ipn-user-details .ipn-user-details__access-main{
  min-width:0;
  flex:1 1 auto;
}
.ipn-user-details .ipn-user-details__access-title{
  margin:0 0 4px;
  padding:0;
  font-size:13px;
  font-weight:650;
  line-height:1.3;
  color:var(--ipn-text-2,#475569);
}
.ipn-user-details .ipn-user-details__access-main > div,
.ipn-user-details .ipn-user-details__access-main > span{
  font-size:13px;
  line-height:1.4;
  color:var(--ipn-text,#0f2544);
}
.ipn-user-details .ipn-user-details__access-main ul{
  margin:4px 0 0;
  padding-left:1.15em;
}
/* AV: 2026-07-22: Link Auditor?a con ?cono + texto (no PNG legacy ni ?cono solo). */
.ipn-user-details .ipn-user-details__audit-link{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  gap:4px;
  height:30px;
  padding:0 10px;
  border-radius:8px;
  border:1px solid #d7dee8;
  background:#fff;
  color:var(--ipn-primary,#1d4e86) !important;
  font-size:12px;
  font-weight:650;
  line-height:1;
  text-decoration:none !important;
  white-space:nowrap;
}
.ipn-user-details .ipn-user-details__audit-link:hover{
  background:var(--ipn-primary-soft,#eef4fb);
  border-color:#c5d0de;
  text-decoration:none !important;
  color:var(--ipn-primary,#1d4e86) !important;
}
.ipn-user-details .ipn-user-details__audit-link .material-symbols-rounded{
  font-size:18px;
  line-height:1;
}
.ipn-user-details .cnt_secundario{ display:none; }
.ipn-user-details .ipn-user-details__tip{
  font-size:18px;
  color:var(--ipn-text-muted,#8493a6);
  vertical-align:middle;
  cursor:help;
  margin-left:4px;
}
.ipn-user-details .ipn-user-details__actions .ipn-card__body{
  padding:0;
}
.ipn-user-details .ipn-action-row.is-disabled{
  opacity:.55;
  cursor:not-allowed;
  pointer-events:auto;
}
.ipn-user-details .ipn-audit{ margin-top:18px; }

/* Polyfill filas label|valor (sin Bootstrap) ? misma idea que .ipn-add-user */
.ipn-user-details .form-row{
  display:flex;
  flex-direction:column;
  width:100%;
  margin:0;
}
.ipn-user-details .form-group.row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 16px;
  width:100%;
  margin:0 0 8px;
  padding:0 0 10px;
  border-bottom:1px solid var(--ipn-hairline,#eef1f6);
  border-left:0;
}
.ipn-user-details .form-group.row > .col-form-label,
.ipn-user-details .form-group.row > span.col-form-label{
  flex:0 0 260px;
  max-width:48%;
  font-size:12.5px;
  font-weight:500;
  color:#8493a6;
}
.ipn-user-details .form-group.row > .col-sm-8,
.ipn-user-details .form-group.row > .d-flex.col-sm-8{
  flex:1 1 200px;
  min-width:0;
  font-size:13.5px;
  font-weight:600;
  color:var(--ipn-text,#0f2544);
}
/* AV: 2026-07-23: Bloque Permisos ? lista compacta en card, sin l?nea lateral corta. */
.ipn-user-details .ipn-user-details__kv{
  border:1px solid var(--ipn-border,#e2e7ef);
  border-radius:10px;
  overflow:hidden;
  background:#fff;
}
.ipn-user-details .ipn-user-details__kv .form-group.row{
  margin:0;
  padding:11px 14px;
  border-bottom:1px solid #eef1f6;
  border-left:0;
  background:#fff;
}
.ipn-user-details .ipn-user-details__kv .form-group.row:nth-child(even){
  background:#fafbfd;
}
.ipn-user-details .ipn-user-details__kv .form-group.row:last-child{
  border-bottom:0;
}
.ipn-user-details .ipn-user-details__flag{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:36px;
  min-height:22px;
  padding:0 9px;
  border-radius:999px;
  font-size:12px;
  font-weight:650;
  line-height:1;
}
.ipn-user-details .ipn-user-details__flag.is-yes{
  background:#e8f6ee;
  color:#1f8a4c;
}
.ipn-user-details .ipn-user-details__flag.is-no{
  background:#f1f4f8;
  color:#64748b;
}
.ipn-user-details .border-bottom-gray{
  border-bottom:1px solid var(--ipn-hairline,#eef1f6) !important;
}
.ipn-user-details .d-flex{ display:flex; }
.ipn-user-details .align-items-center{ align-items:center; }
.ipn-user-details .align-items-start{ align-items:flex-start; }
.ipn-user-details .justify-content-between{ justify-content:space-between; }
.ipn-user-details .flex-column{ flex-direction:column; }
.ipn-user-details .w-100{ width:100%; }
.ipn-user-details .mb-0{ margin-bottom:0; }
.ipn-user-details .mb-1{ margin-bottom:4px; }
.ipn-user-details .mb-2{ margin-bottom:8px; }
.ipn-user-details .mb-3{ margin-bottom:12px; }
.ipn-user-details .mb-4{ margin-bottom:16px; }
.ipn-user-details .mt-0{ margin-top:0; }
.ipn-user-details .p-0{ padding:0; }
.ipn-user-details .px-0{ padding-left:0; padding-right:0; }
.ipn-user-details .pr-2{ padding-right:8px; }
.ipn-user-details .pb-2{ padding-bottom:8px; }
.ipn-user-details .font-weight-bold{ font-weight:650; }
.ipn-user-details .position-relative{ position:relative; }
.ipn-user-details .img-icon-16{ width:16px; height:16px; vertical-align:middle; }
.ipn-user-details table.accessLimitTable,
.ipn-user-details .accessLimitTable{
  width:100%;
  border-collapse:collapse;
  font-size:12px;
  margin-top:8px;
}
.ipn-user-details table.accessLimitTable th,
.ipn-user-details table.accessLimitTable td,
.ipn-user-details .accessLimitTable th,
.ipn-user-details .accessLimitTable td{
  padding:6px 8px;
  border:1px solid #e2e7ef;
  text-align:center;
}
.ipn-user-details table.accessLimitTable th,
.ipn-user-details .accessLimitTable th{
  background:#f5f8fc;
  font-weight:650;
}
.ipn-user-details ul{ margin:0; padding-left:18px; }
.ipn-user-details .li-styled{ list-style:disc; }

/* AV: 2026-07-22: Tab Empresas y sucursales ? columnas alineadas (reemplazo de Bootstrap col-*). */
.ipn-user-details .ipn-user-details__stores-wrap{
  margin-top:4px;
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-user-details table.ipn-user-details__stores{
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
  font-size:13px;
}
.ipn-user-details table.ipn-user-details__stores thead th{
  background:#f5f8fc;
  font-size:12px;
  font-weight:650;
  color:var(--ipn-text-2,#475569);
  text-align:left;
  padding:10px 12px;
  border-bottom:1px solid #e2e7ef;
  vertical-align:middle;
}
.ipn-user-details table.ipn-user-details__stores tbody td{
  padding:12px;
  border-bottom:1px solid #eef1f6;
  vertical-align:top;
  color:var(--ipn-text,#0f2544);
  word-wrap:break-word;
  overflow-wrap:anywhere;
}
.ipn-user-details table.ipn-user-details__stores tbody tr:last-child td{
  border-bottom:0;
}
.ipn-user-details .ipn-user-details__col-rs{ width:24%; }
.ipn-user-details .ipn-user-details__col-store{ width:38%; }
.ipn-user-details .ipn-user-details__col-emp{ width:22%; }
.ipn-user-details .ipn-user-details__col-mobile{ width:16%; }
.ipn-user-details .ipn-user-details__store-list{
  margin:0;
  padding:0 0 0 1.15em;
  list-style:disc;
}
.ipn-user-details .ipn-user-details__store-item{
  margin:0 0 6px;
  line-height:1.35;
}
.ipn-user-details .ipn-user-details__store-item:last-child{ margin-bottom:0; }
.ipn-user-details .ipn-user-details__store-item.is-nosell{ color:#c62828; }
/* AV: 2026-07-27: tablet ? scroll interno; sin expandir el documento (Feedback 19.1). */
@media (max-width:800px) and (min-width:701px){
  .ipn-user-details table.ipn-user-details__stores{
    table-layout:auto;
    min-width:640px;
  }
}
@media (max-width:700px){
  /* AV: 2026-07-27: Feedback 19.1 ? no ?salir? del layout; cards en Empresas/sucursales. */
  .ipn-user-details{
    max-width:100%;
    min-width:0;
    overflow-x:clip;
  }
  .ipn-user-details .ipn-user-details__layout,
  .ipn-user-details .ipn-user-details__main,
  .ipn-user-details .ipn-user-details__panel,
  .ipn-user-details .ipn-card,
  .ipn-user-details .ipn-card__body,
  .ipn-user-details .cnt_secundario{
    max-width:100%;
    min-width:0;
  }
  .ipn-user-details .ipn-breadcrumb{
    max-width:100%;
    min-width:0;
  }
  .ipn-user-details .ipn-breadcrumb a,
  .ipn-user-details .ipn-breadcrumb b{
    overflow-wrap:anywhere;
  }
  .ipn-user-details table.ipn-user-details__stores.ipn-table--stack{
    min-width:0;
    width:100%;
    table-layout:auto;
  }
  .ipn-user-details table.ipn-user-details__stores.ipn-table--stack .ipn-user-details__col-rs,
  .ipn-user-details table.ipn-user-details__stores.ipn-table--stack .ipn-user-details__col-store,
  .ipn-user-details table.ipn-user-details__stores.ipn-table--stack .ipn-user-details__col-emp,
  .ipn-user-details table.ipn-user-details__stores.ipn-table--stack .ipn-user-details__col-mobile{
    width:auto;
  }
  .ipn-user-details table.ipn-user-details__stores.ipn-table--stack tbody td{
    padding:6px 0;
  }
  .ipn-user-details table.ipn-user-details__stores.ipn-table--stack .ipn-user-details__store-list{
    margin:0;
    padding:0;
    list-style:none;
    text-align:right;
  }
  .ipn-user-details table.ipn-user-details__stores.ipn-table--stack .ipn-user-details__store-item{
    margin:0 0 8px;
    line-height:1.4;
  }
  .ipn-user-details table.ipn-user-details__stores.ipn-table--stack .ipn-user-details__store-item:last-child{
    margin-bottom:0;
  }
  .ipn-user-details table.ipn-user-details__stores.ipn-table--stack tbody td > *{
    min-width:0;
    text-align:right;
  }
}

.ipn-user-modules .ipn-user-modules__hint{
  margin:0 0 14px;
  font-size:13px;
  color:var(--ipn-text-2,#5b6b80);
}
.ipn-user-modules .ipn-user-modules__check-all{
  margin:0 0 14px;
  font-weight:650;
}
.ipn-user-modules .ipn-user-modules__tree{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.ipn-user-modules .ipn-user-modules__row{
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 0;
  border-bottom:1px solid var(--ipn-hairline,#eef1f6);
}
.ipn-user-modules label.ipn-check{
  width:auto !important;
  height:auto !important;
  display:inline-flex !important;
  align-items:center;
  gap:8px;
  margin:0;
  cursor:pointer;
  font-size:13px;
  color:var(--ipn-text,#0f2544);
}
.ipn-user-modules .ipn-secure-actions{ margin-top:16px; }
.ipn-user-modules .ipn-secure-actions .ipn-btn--primary{ margin-left:auto; }

/* AV: 2026-07-22: Acceso a funcionalidades ? tip Tippy (reutiliza ?rbol de .ipn-user-modules). */
.ipn-user-functionalities .ipn-user-functionalities__tip{
  color:var(--ipn-text-muted,#7a8799);
  cursor:help;
  margin-left:4px;
  vertical-align:middle;
}

/* AV: 2026-07-22: Asignaci?n de usuarios a perfil. */
.ipn-assign-users .ipn-assign-users__filters td{
  padding:6px 10px 6px 0;
  vertical-align:middle;
}
.ipn-assign-users .ipn-card{ margin-bottom:16px; }
.ipn-assign-users .ipn-table-wrap{ overflow-x:auto; }
.ipn-assign-users .ipn-card__foot{
  display:flex;
  justify-content:flex-end;
  padding:12px 16px;
  border-top:1px solid var(--ipn-hairline,#e2e7ef);
}
.ipn-assign-users .ipn-check{ margin:0 0 12px; }

.ipn-audit-user .ipn-card{ overflow:hidden; }
.ipn-audit-user .ipn-audit-block__meta + .ipn-table-wrap{ margin-bottom:0; }
.ipn-audit-user .ipn-table th,
.ipn-audit-user .ipn-table td{
  font-size:13px;
  vertical-align:top;
}

@media (max-width:960px){
  .ipn-user-details .ipn-user-details__layout{
    grid-template-columns:1fr;
  }
}
@media (max-width:700px){
  .ipn-user-details .form-group.row{
    flex-direction:column;
    align-items:stretch;
  }
  .ipn-user-details .form-group.row > .col-form-label,
  .ipn-user-details .form-group.row > span.col-form-label{
    flex:0 0 auto;
    max-width:none;
  }
}

/* ==========================================================================
   AV: 2026-07-22: Auditor?as de acceso (fondos, precios, etc.) ? .ipn-user-access-audit
   ========================================================================== */
.ipn-user-access-audit .ipn-page-head{ margin-bottom:16px; }
.ipn-user-access-audit .ipn-users__title-user{
  font-weight:600;
  color:var(--ipn-text-2,#5b6b80);
}
.ipn-user-access-audit .ipn-card{ margin-bottom:16px; overflow:hidden; }
.ipn-user-access-audit .ipn-table-wrap{ overflow-x:auto; }
.ipn-user-access-audit .ipn-table th,
.ipn-user-access-audit .ipn-table td{
  font-size:13px;
  vertical-align:top;
  white-space:nowrap;
}
.ipn-user-access-audit .ipn-table td:nth-child(2),
.ipn-user-access-audit .ipn-table th:nth-child(2){
  white-space:normal;
  min-width:140px;
}
.ipn-user-access-audit .ipn-notice{ margin-bottom:16px; }
.ipn-user-access-audit .ipn-secure-actions{ margin-top:4px; }

/* ==========================================================================
   AV: 2026-07-23: Facturas electronicas pendientes (secure/AFIP_PendingInvoices)
   ========================================================================== */
.ipn-afip-pending .ipn-secure__section-title{
  display:flex;
  align-items:center;
  gap:8px;
  margin:8px 0 12px;
}
.ipn-afip-pending .ipn-secure__section-title .material-symbols-rounded{
  font-size:22px;
  color:var(--ipn-primary);
}
.ipn-afip-pending__svc-card,
.ipn-afip-pending__results-card{
  margin-bottom:16px;
  overflow:hidden;
}
.ipn-afip-pending__svc-table th{
  white-space:nowrap;
}
.ipn-afip-pending__svc-table td{
  vertical-align:middle;
}
.ipn-afip-pending__ws-name{
  font-weight:700;
  letter-spacing:.02em;
  color:var(--ipn-text);
}
.ipn-afip-pending__muted{
  color:var(--ipn-text-muted,#8493a6);
  font-size:12px;
}
.ipn-afip-pending__results tbody td{
  vertical-align:top;
  font-size:12.5px;
}
.ipn-afip-pending__silo{
  background:var(--ipn-primary-soft) !important;
  color:var(--ipn-primary) !important;
  font-weight:700;
  font-size:13px;
  padding:12px 16px !important;
  text-align:left !important;
}
.ipn-afip-pending__silo .material-symbols-rounded{
  font-size:18px;
  vertical-align:middle;
  margin-right:6px;
}
.ipn-afip-pending__sort{
  font-size:16px !important;
  color:#8493a6;
  vertical-align:middle;
  margin-left:2px;
}
.ipn-afip-pending__results thead th[data-sort]{
  cursor:pointer;
  white-space:nowrap;
  user-select:none;
}
.ipn-afip-pending__group-row td{
  border-top:0;
  padding:0 !important;
}
.ipn-afip-pending__group{
  background:linear-gradient(180deg, #f5f7fb 0%, #eef2f8 100%) !important;
  color:var(--ipn-text-2) !important;
  font-size:12.5px;
  font-weight:500;
}
.ipn-afip-pending__group-toggle{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  margin:0;
  padding:12px 14px;
  border:0;
  background:transparent;
  cursor:pointer;
  font:inherit;
  color:inherit;
  text-align:left;
}
.ipn-afip-pending__group-toggle:hover{
  background:rgba(47,107,181,.06);
}
.ipn-afip-pending__chevron{
  font-size:22px !important;
  color:var(--ipn-primary);
  transition:transform .15s ease;
  flex:0 0 auto;
}
.ipn-afip-pending__group-row.is-open .ipn-afip-pending__chevron{
  transform:rotate(90deg);
}
.ipn-afip-pending__count{
  margin-left:auto;
  font-size:12px;
  font-weight:600;
  color:#8493a6;
  white-space:nowrap;
}
.ipn-afip-pending__detail-row.is-collapsed{
  display:none;
}
.ipn-afip-pending__chip{
  display:inline-flex;
  align-items:baseline;
  gap:6px;
  margin:0;
  flex-wrap:wrap;
}
.ipn-afip-pending__chip-label{
  font-size:10px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:#8493a6;
}
.ipn-afip-pending__id{
  font-weight:700;
  font-variant-numeric:tabular-nums;
}
.ipn-afip-pending__sub{
  display:block;
  margin-top:2px;
  font-size:11.5px;
  color:var(--ipn-text-muted,#8493a6);
  line-height:1.35;
}
.ipn-afip-pending__company{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
}
.ipn-afip-pending__store{
  display:flex;
  align-items:center;
  gap:4px;
  margin-top:4px;
  font-size:12px;
  color:var(--ipn-text-2);
}
.ipn-afip-pending__store .material-symbols-rounded{
  font-size:16px;
  color:#8493a6;
}
.ipn-afip-pending__flag{
  width:18px;
  height:18px;
  object-fit:contain;
  border-radius:2px;
  flex:0 0 auto;
}
.ipn-afip-pending__tag-wrap{ margin-top:6px; }
.ipn-afip-pending .ipn-tag-badge{
  display:inline-block;
  background:var(--ipn-primary-soft);
  color:var(--ipn-primary);
  font-size:11px;
  font-weight:600;
  padding:2px 8px;
  border-radius:10px;
}
.ipn-afip-pending__date{
  display:block;
  font-weight:600;
  white-space:nowrap;
}
.ipn-afip-pending__voucher{
  display:block;
  font-weight:600;
  white-space:nowrap;
}
.ipn-afip-pending__rg{
  margin-top:4px;
  font-size:11px;
  font-weight:600;
}
.ipn-afip-pending__rg--ok{ color:var(--ipn-success-chip-fg,#1a7a4f); }
.ipn-afip-pending__rg--warn{ color:var(--ipn-danger-chip-fg,#b0525a); }
.ipn-afip-pending__amount{
  display:block;
  margin-top:4px;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
  color:var(--ipn-text);
}
.ipn-afip-pending__motivo{ max-width:220px; min-width:140px; }
.ipn-afip-pending__motivo-box{
  max-height:72px;
  overflow-y:auto;
  overflow-x:hidden;
  line-height:1.4;
  overflow-wrap:break-word;
  padding:8px 10px;
  border-radius:8px;
  background:var(--ipn-surface-soft,#f5f7fb);
  border:1px solid var(--ipn-border,#e2e8f0);
  font-size:12px;
  color:var(--ipn-text-2);
}
.ipn-afip-pending__actions{ min-width:96px; }
/* AV: 2026-07-23: Sync + Acciones sticky a la derecha para no perderse al scrollear */
.ipn-afip-pending__results th.ipn-afip-pending__col-sync,
.ipn-afip-pending__results td.ipn-afip-pending__col-sync{
  position:sticky;
  right:96px;
  z-index:2;
  background:var(--ipn-surface,#fff);
  box-shadow:-6px 0 8px -6px rgba(16,24,40,.18);
  white-space:nowrap;
  min-width:88px;
}
.ipn-afip-pending__results th.ipn-afip-pending__col-actions,
.ipn-afip-pending__results td.ipn-afip-pending__col-actions{
  position:sticky;
  right:0;
  z-index:2;
  background:var(--ipn-surface,#fff);
  box-shadow:-4px 0 8px -4px rgba(16,24,40,.12);
}
.ipn-afip-pending__results thead th.ipn-afip-pending__col-sync,
.ipn-afip-pending__results thead th.ipn-afip-pending__col-actions{
  z-index:3;
  background:var(--ipn-surface-soft,#f5f7fb);
}
.ipn-afip-pending__results{ min-width:920px; }
.ipn-afip-pending .actionButton{
  display:inline-flex;
  align-items:center;
  gap:6px;
  cursor:pointer;
  border:1px solid var(--ipn-border);
  background:var(--ipn-surface);
  color:var(--ipn-text);
  font:inherit;
  font-size:12px;
  font-weight:600;
  padding:5px 10px;
  border-radius:8px;
  white-space:nowrap;
}
.ipn-afip-pending .actionButton:hover{ background:var(--ipn-surface-soft); }
.ipn-afip-pending .actionButton::after{ content:"\25BE"; font-size:10px; opacity:.7; }
/* AV: 2026-07-23: menu se appenda a body ? selectores globales */
.ipn-action-menu{
  position:absolute;
  z-index:1200;
  min-width:220px;
  background:var(--ipn-surface);
  border:1px solid var(--ipn-border);
  border-radius:10px;
  box-shadow:var(--ipn-shadow-elev);
  padding:6px;
  display:flex;
  flex-direction:column;
}
.ipn-action-menu__item{
  display:flex;
  align-items:center;
  gap:8px;
  width:100%;
  text-align:left;
  background:transparent;
  border:0;
  cursor:pointer;
  font:inherit;
  font-size:13px;
  color:var(--ipn-text);
  padding:7px 10px;
  border-radius:7px;
  white-space:nowrap;
}
.ipn-action-menu__item:hover{
  background:var(--ipn-primary-soft);
  color:var(--ipn-primary);
}
.ipn-action-menu__icon{ width:16px; height:16px; flex:0 0 auto; }

/* AV: 2026-07-23: Popup export migrado desde style del ASP
   AV: 2026-08-20: Scope .ipn-einvoice-pending (admin accounting).
   AV: 2026-08-26: Sin z-index bajo ? overlay iPN2 usa 1200; popup debe quedar encima. */
.ipn-afip-pending ~ #iPNpopUpDiv,
.ipn-einvoice-pending ~ #iPNpopUpDiv,
#iPNpopUpDiv.ipn-einvoice-export-popup{
  padding:18px 20px !important;
  background:var(--ipn-surface) !important;
  position:fixed !important;
  /* AV: 2026-08-26: issue #60 ? centrado viewport; iPNpopup() inline top:105px no aplica con !important. */
  top:50% !important;
  left:50% !important;
  transform:translate(-50%, -50%) !important;
  margin:0 !important;
  margin-left:0 !important;
  display:none;
  box-sizing:border-box;
  border-radius:12px;
  box-shadow:var(--ipn-shadow-elev);
  font-family:var(--ipn-font);
  color:var(--ipn-text);
}
.ipn-einvoice-pending ~ #popUpDivBorder,
body > #popUpDivBorder{
  display:none !important;
}
body > .blackBackground{
  position:fixed !important;
  top:0 !important;
  left:0 !important;
  width:100% !important;
  height:100% !important;
  background:#000 !important;
  z-index:999 !important;
  display:none;
}
#iPNpopUpDiv .ipn-export-title{
  font-size:15px;
  font-weight:700;
  margin:0 0 12px;
  padding-bottom:8px;
  border-bottom:1px solid var(--ipn-border);
}
#iPNpopUpDiv .ipn-export-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:16px;
  flex-wrap:wrap;
}
#iPNpopUpDiv .ipn-export-actions .ipn-btn--primary{ margin-left:auto; }

@media (max-width:700px){
  .ipn-afip-pending__chip{ display:flex; margin:0 0 6px; }
  .ipn-afip-pending__motivo{ max-width:none; }
}

/* AV: 2026-07-25: Notificaciones add/edit ? razones sociales indentadas bajo iL Customer.
   AV: 2026-07-27: QA 6.1 ? specificity > .cnt_secundario ul (shim en add.asp) que pon?a padding-left:0. */
.cnt_secundario ul.UlCompanies,
.UlCompanies{
  margin:4px 0 10px;
  padding:0 0 0 28px;
  list-style:none;
  box-sizing:border-box;
}
.cnt_secundario ul.UlCompanies > li,
.UlCompanies > li{
  margin:2px 0;
}
/* AV: 2026-07-25: MDAP ? chips QA DEV (amarillo) vs PRD (rojo) distinguibles. */
.sp-mdachip--qa-dev{
  color:#7a6200;
  border-color:#e6d66a;
  background:#fff8c5;
  text-transform:uppercase;
}
.sp-mdachip--qa-prd{
  color:#9b1c2e;
  border-color:#f0a0ab;
  background:#fde8ec;
  text-transform:uppercase;
}
/* AV: 2026-07-29: MDAP ? chips/badges sin clip (QA 7.1 categor?a/estado/MDA + WAITING) */
.ipn-secure-wrap .sp-mdachip{
  white-space:normal !important;
  line-height:1.3 !important;
  overflow-wrap:break-word;
  word-break:normal;
  padding:4px 9px;
  font-size:10.5px;
  max-width:100%;
  box-sizing:border-box;
}
.ipn-secure-wrap .sp-badge--cat,
.ipn-secure-wrap .sp-badge--status{
  overflow:visible !important;
  text-overflow:unset !important;
  white-space:normal !important;
  line-height:1.3 !important;
  overflow-wrap:break-word;
  word-break:normal;
  hyphens:manual;
  max-width:100%;
  box-sizing:border-box;
}
.ipn-secure-wrap .sp-table tbody td.sp-td-cat,
.ipn-secure-wrap .sp-table tbody td.sp-td-status,
.ipn-secure-wrap .sp-table tbody td.sp-td-mda,
.ipn-secure-wrap .sp-table tbody td#estimatedSolutionDate{
  overflow:visible !important;
}
.ipn-secure-wrap .sp-table col.sp-col-mda{
  width:13% !important;
}
@media (max-width:900px){
  /* AV: 2026-07-29: Mobile MDAP ? m?s ancho m?nimo para que chips y fechas quepan */
  .ipn-secure-wrap .sp-table{
    min-width:980px !important;
  }
  .ipn-secure-wrap .sp-table col.sp-col-cat{ width:160px !important; }
  .ipn-secure-wrap .sp-table col.sp-col-status{ width:150px !important; }
  .ipn-secure-wrap .sp-table col.sp-col-mda{ width:140px !important; }
  .ipn-secure-wrap .sp-table col.sp-col-date{ width:110px !important; }
  /* AV: 2026-07-29: ETA / ?lt. cliente ? no clipar dd/mm/yyyy */
  .ipn-secure-wrap .sp-table tbody td{
    overflow:visible !important;
  }
  .ipn-secure-wrap .sp-time{
    font-size:12px !important;
    letter-spacing:-0.02em;
  }
}

/* AV: 2026-08-09: Feedback MDAP 5.2.2 / 5.3.2 ? bot?n HOY junto a ETA del popup de edici?n */
/* AV: 2026-08-10: Feedback 3.1.1 / 3.2.1 ? HOY a la misma altura que ETA (individual y masiva = mismo modal). */
#iPNpopUpDivBootstrap .ipn-mdap-eta-row{
  display:flex;
  align-items:center;
  gap:6px;
  width:100%;
}
#iPNpopUpDivBootstrap .ipn-mdap-eta-row .input-group.date{
  display:flex;
  flex-direction:row;
  flex-wrap:nowrap;
  align-items:center;
  flex:1 1 auto;
  min-width:0;
  height:30px;
}
/* Flatpickr envuelve el input; no forzar width:100% block que desarma la fila junto a HOY. */
#iPNpopUpDivBootstrap .ipn-mdap-eta-row .flatpickr-wrapper{
  display:flex !important;
  flex:1 1 auto;
  min-width:0;
  width:auto !important;
  height:30px;
  align-items:center;
}
#iPNpopUpDivBootstrap .ipn-mdap-eta-row .datePickerContent,
#iPNpopUpDivBootstrap .ipn-mdap-eta-row .flatpickr-wrapper .datePickerContent{
  width:100% !important;
  flex:1 1 auto;
  min-width:0;
  height:30px !important;
  max-height:30px;
  box-sizing:border-box;
  padding:0 8px !important;
  margin:0 !important;
  font-size:13px;
  line-height:30px;
}
#iPNpopUpDivBootstrap .ipn-mdap-eta-row .input-group-addon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  height:30px;
  padding:0 8px;
  box-sizing:border-box;
}
#iPNpopUpDivBootstrap .ipn-mdap-eta-row .ipn-btn.ipn-mdap-eta-hoy{
  flex:0 0 auto;
  align-self:center;
  height:30px !important;
  min-height:0 !important;
  max-height:30px;
  padding:0 10px !important;
  font-size:11px;
  font-weight:700;
  letter-spacing:.04em;
  line-height:1;
  box-sizing:border-box;
}

/* AV: 2026-08-04: MDAP mobile ? toggle Responsables con un solo subrayado alineado */
#paramsTitleMobile .sp-resp-toggle{
  display:inline-flex;
  align-items:center;
  gap:2px;
  margin:0 0 1rem;
  padding:2px 0;
  border:0;
  border-bottom:1px solid #1e293b;
  background:transparent;
  font:inherit;
  font-size:15px;
  font-weight:700;
  color:#1e293b;
  line-height:1.2;
  cursor:pointer;
  text-decoration:none;
}
#paramsTitleMobile .sp-resp-toggle .material-symbols-rounded{
  font-size:22px;
  line-height:1;
  color:inherit;
}

/* AV: 2026-07-23: Toast copiar al portapapeles (supportPriorities / ticket detail). */
.ipn-copy-toast{
  position:fixed;
  left:50%;
  bottom:28px;
  transform:translateX(-50%) translateY(12px);
  z-index:10050;
  padding:10px 16px;
  border-radius:10px;
  background:#0f2544;
  color:#fff;
  font-size:13px;
  font-weight:650;
  line-height:1.3;
  box-shadow:0 8px 24px rgba(15,37,68,.28);
  opacity:0;
  pointer-events:none;
  transition:opacity .18s ease, transform .18s ease;
}
.ipn-copy-toast.is-visible{
  opacity:1;
  transform:translateX(-50%) translateY(0);
}

/* AV: 2026-07-23: Choices Responsable a ancho del campo (modales prioridades). */
#responsibleDiv .input-group,
#responsibleDiv .choices,
#iPNpopUpDivBootstrap #responsibleDiv .choices{
  width:100%;
  max-width:100%;
  flex:1 1 auto;
  min-width:0;
}
#responsibleDiv .choices__inner{
  min-height:36px;
}

/* AV: 2026-07-23: Flatpickr mes/a?o equilibrados (edici?n masiva ETA). */
.flatpickr-current-month .flatpickr-monthDropdown-months{
  max-width:8.5em;
  font-size:14px;
  font-weight:600;
  height:28px;
  padding:0 6px;
  vertical-align:middle;
}
.flatpickr-current-month .numInputWrapper{
  width:4.25em;
  vertical-align:middle;
}
.flatpickr-current-month input.cur-year{
  height:28px;
  font-size:14px;
  font-weight:600;
}

/* AV: 2026-07-27: Feedback MDAP 20.1.1 ? calendar static visible (?ltima semana del mes). */
@media (max-width:768px){
  #iPNpopUpDivBootstrap .modal-body,
  #dailyReportPopUp .modal-body{
    max-height:calc(100dvh - 100px);
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    scroll-padding-bottom:24px;
  }
  #iPNpopUpDivBootstrap:has(.flatpickr-calendar.open) .modal-body,
  #dailyReportPopUp:has(.flatpickr-calendar.open) .modal-body{
    max-height:calc(100dvh - 72px);
  }
}

/* AV: 2026-07-27: Feedback MDAP 20.1.2 ? checkbox + texto en una fila. */
#iPNpopUpDivBootstrap .ipn-check-row{
  white-space:normal;
  max-width:100%;
}

/* AV: 2026-07-28: Centro de desarrollo ? espacio entre chips (.wc-devbar) y avisos. */
/* AV: 2026-07-31: mismo gap para el aviso de cumplea?os (quedaba pegado a la barra de chips). */
/* AV: 2026-08-06: success/error al crear/editar ticket tambi?n quedaban pegados a .wc-devbar. */
.wc-devbar + .ipn-notice,
.ipn-secure__body > .wc-licence-notice,
.ipn-secure__body > .wc-birthday-notice{
  margin-top:16px;
}

/* ============================================================
   NAV iPN2 (menu2.asp) ? AV: 2026-07-31
   Mockup 10c: fila 1 logo+utils; fila 2 m?dulos; mega debajo.
   Especificidad bajo .ipn-shell--nav para ganar a style.css legacy.
   ============================================================ */
.ipn-shell--nav > .main_content.ipn-ap{
  overflow:visible !important;
  min-width:0;
  max-width:100%;
}
/* AV: 2026-08-24: clip horizontal en el wrap (no en main_content: el mega sale del nav). */
.ipn-ap-wrap.ipn-shell--nav{
  max-width:100%;
  width:100%;
  overflow-x:clip;
}
.ipn-shell--nav .ipn-ap-topbar,
.ipn-shell--nav .ipn-topbar{
  z-index:320 !important;
  border-bottom:0 !important;
  overflow:visible !important;
}
.ipn-shell--nav .ipn-ap-topbar__inner{
  gap:12px;
  align-items:center;
}
.ipn-shell--nav .ipn-ap-topbar__account{
  align-self:center;
  gap:4px;
  padding-left:10px;
  flex:0 0 auto;
  min-width:auto;
  margin-left:auto;
}
.ipn-shell--nav .ipn-user-menu-trigger{
  flex:0 0 auto;
}
.ipn-shell--nav .ipn-ap-topbar__identity{
  max-width:220px;
}
/* AV: 2026-07-31: Review 01 ? account solo identidad+avatar (sin campana/soporte). */
.ipn-shell--nav .ipn-ap-topbar__account{
  gap:8px;
  padding-left:12px;
}

/* AV: 2026-07-31: fila 2 ? m?dulos (debajo del logo, mockup 10c) */
/* AV: 2026-08-20: chrome sticky ? topbar + nav fijos al scrollear el body. */
.ipn-shell--nav{
  /* AV: 2026-08-20: thead top:0; offset chrome no aplica (table-wrap overflow). */
  --ipn-sticky-top:0px;
}
.ipn-shell--nav .ipn-ap-topbar,
.ipn-shell--nav .ipn-topbar{
  position:sticky !important;
  top:0;
  z-index:320 !important;
}
.ipn-shell--nav .ipn-nav{
  background:var(--ipn-header-bg, #16294d) !important;
  color:var(--ipn-header-muted, #aebbd4) !important;
  height:var(--ipn-nav-h, 46px);
  min-height:var(--ipn-nav-h, 46px);
  flex:0 0 auto;
  border:0 !important;
  position:sticky;
  top:var(--ipn-topbar-h, 56px);
  z-index:310;
  overflow:visible !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  font-family:var(--ipn-font, "Inter", "IBM Plex Sans", sans-serif) !important;
}
.ipn-shell--nav .ipn-nav__inner{
  width:100%;
  max-width:var(--ipn-container, var(--ipn-secure-content-max, 1440px));
  margin:0 auto;
  padding:0 24px;
  height:100%;
  display:flex;
  align-items:stretch;
  box-sizing:border-box;
  overflow:visible;
  /* AV: 2026-08-19: overflow:hidden recortaba la barra is-current de 3px. */
  position:relative;
  z-index:310;
}
.ipn-shell--nav .ipn-nav__tabs{
  display:flex;
  align-items:stretch;
  gap:2px;
  min-width:0;
  flex:1 1 auto;
  height:100%;
  /* AV: 2026-08-24: hidden (no visible) ? tabs nowrap no ensanchan el documento; layoutOverflow sigue midiendo scrollWidth. */
  overflow-x:hidden;
  overflow-y:visible;
}
.ipn-shell--nav .ipn-nav__tab,
.ipn-shell--nav button.ipn-nav__tab,
.ipn-shell--nav a.ipn-nav__tab{
  appearance:none !important;
  -webkit-appearance:none !important;
  display:inline-flex !important;
  align-items:center;
  gap:8px;
  margin:0 !important;
  padding:0 14px !important;
  height:100% !important;
  border:0 !important;
  border-radius:10px 10px 0 0 !important;
  background:transparent !important;
  color:color-mix(in srgb, var(--ipn-header-fg, #fff) 65%, transparent) !important;
  font-family:var(--ipn-font, "Inter", "IBM Plex Sans", sans-serif) !important;
  /* AV: 2026-08-26: Tabs chrome menu2 m?s compactos (issue #46). */
  font-size:11px !important;
  font-weight:500 !important;
  line-height:1.2 !important;
  text-decoration:none !important;
  text-transform:none !important;
  white-space:nowrap;
  cursor:pointer !important;
  box-sizing:border-box;
  float:none !important;
  width:auto !important;
  /* AV: 2026-07-31: NO encoger ? si no entra, layoutOverflow manda a "M?s" */
  flex:0 0 auto !important;
  min-width:auto !important;
  max-width:none !important;
  overflow:visible !important;
  text-overflow:clip !important;
  box-shadow:none !important;
  position:relative;
  z-index:1;
}
/* AV: 2026-07-31: display:!important pisaba [hidden] nativo ? tabs fantasma recortados */
.ipn-shell--nav .ipn-nav__tab[hidden],
.ipn-shell--nav button.ipn-nav__tab[hidden],
.ipn-shell--nav a.ipn-nav__tab[hidden],
.ipn-shell--nav .ipn-nav__tab--overflow,
.ipn-shell--nav button.ipn-nav__tab--overflow,
.ipn-shell--nav a.ipn-nav__tab--overflow{
  display:none !important;
}
.ipn-shell--nav a.ipn-nav__tab:visited,
.ipn-shell--nav a.ipn-nav__tab:hover,
.ipn-shell--nav a.ipn-nav__tab:active,
.ipn-shell--nav a.ipn-nav__tab:focus{
  color:color-mix(in srgb, var(--ipn-header-fg, #fff) 65%, transparent) !important;
  text-decoration:none !important;
  background:transparent !important;
}
.ipn-shell--nav .ipn-nav__tab:hover{
  color:var(--ipn-header-fg, #fff) !important;
  background:color-mix(in srgb, var(--ipn-header-fg, #fff) 10%, transparent) !important;
}
.ipn-shell--nav .ipn-nav__tab:focus-visible{
  outline:2px solid color-mix(in srgb, var(--ipn-header-fg, #fff) 55%, transparent);
  outline-offset:-2px;
}
/* AV: 2026-08-24: is-current = tint claro + texto marca.
   AV: 2026-09-14: #582 ? mezclar brand con #fff (no rgba soft sobre header oscuro):
   con marca negra el soft rgba(0,0,0,.12) + texto brand dejaba el tab ilegible hasta hover. */
.ipn-shell--nav .ipn-nav__tab.is-current,
.ipn-shell--nav button.ipn-nav__tab.is-current,
.ipn-shell--nav a.ipn-nav__tab.is-current,
.ipn-shell--nav a.ipn-nav__tab.is-current:visited{
  background:color-mix(in srgb, var(--ipn-brand, #2f62c4) 16%, #fff) !important;
  border-radius:9px 9px 0 0 !important;
  color:var(--ipn-brand, #2f62c4) !important;
  font-weight:600 !important;
}
.ipn-shell--nav .ipn-nav__tab.is-current .ipn-nav__label,
.ipn-shell--nav .ipn-nav__tab.is-current .ipn-nav__icon,
.ipn-shell--nav .ipn-nav__tab.is-current .ipn-nav__chevron,
.ipn-shell--nav .ipn-nav__tab.is-current:hover .ipn-nav__label,
.ipn-shell--nav .ipn-nav__tab.is-current:hover .ipn-nav__icon,
.ipn-shell--nav .ipn-nav__tab.is-current:hover .ipn-nav__chevron{
  color:var(--ipn-brand, #2f62c4) !important;
}
.ipn-shell--nav .ipn-nav__tab.is-current:hover{
  background:color-mix(in srgb, var(--ipn-brand, #2f62c4) 18%, #fff) !important;
  color:var(--ipn-brand, #2f62c4) !important;
}
.ipn-shell--nav .ipn-nav__tab.is-current::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:3px;
  border-radius:0;
  background:var(--ipn-brand, #2f62c4);
  pointer-events:none;
  z-index:2;
}
.ipn-shell--nav .ipn-nav__tab.is-open,
.ipn-shell--nav .ipn-nav__tab[aria-expanded="true"],
.ipn-shell--nav button.ipn-nav__tab[aria-expanded="true"]{
  background:#fff !important;
  color:#122740 !important;
  z-index:330;
  font-weight:600 !important;
}
.ipn-shell--nav .ipn-nav__tab.is-open .ipn-nav__label,
.ipn-shell--nav .ipn-nav__tab.is-open .ipn-nav__icon,
.ipn-shell--nav .ipn-nav__tab.is-open .ipn-nav__chevron,
.ipn-shell--nav .ipn-nav__tab[aria-expanded="true"] .ipn-nav__label,
.ipn-shell--nav .ipn-nav__tab[aria-expanded="true"] .ipn-nav__icon,
.ipn-shell--nav .ipn-nav__tab[aria-expanded="true"] .ipn-nav__chevron,
.ipn-shell--nav .ipn-nav__tab.is-open:hover .ipn-nav__label,
.ipn-shell--nav .ipn-nav__tab.is-open:hover .ipn-nav__icon,
.ipn-shell--nav .ipn-nav__tab.is-open:hover .ipn-nav__chevron,
.ipn-shell--nav .ipn-nav__tab[aria-expanded="true"]:hover .ipn-nav__label,
.ipn-shell--nav .ipn-nav__tab[aria-expanded="true"]:hover .ipn-nav__icon,
.ipn-shell--nav .ipn-nav__tab[aria-expanded="true"]:hover .ipn-nav__chevron{
  color:#122740 !important;
}
.ipn-shell--nav .ipn-nav__tab.is-current.is-open::after,
.ipn-shell--nav .ipn-nav__tab.is-current[aria-expanded="true"]::after{
  bottom:0;
}
.ipn-shell--nav .ipn-nav__icon{
  font-family:"Material Symbols Rounded" !important;
  font-size:19px !important;
  line-height:1;
  flex:0 0 auto;
  font-style:normal !important;
  font-weight:normal !important;
  font-variation-settings:"FILL" 0, "wght" 400, "GRAD" 0, "opsz" 20;
  /* AV: 2026-09-11: #564 - color solido (no color-mix/transparent via inherit) para liga Material Symbols. */
  color:var(--ipn-header-muted, #aebbd4) !important;
  -webkit-font-feature-settings:"liga";
  font-feature-settings:"liga";
}
.ipn-shell--nav .ipn-nav__chevron{
  font-family:"Material Symbols Rounded" !important;
  font-size:16px !important;
  line-height:1;
  opacity:.75;
  font-style:normal !important;
  font-weight:normal !important;
  flex:0 0 auto;
  /* AV: 2026-09-11: #564 - mismo criterio de contraste que __icon. */
  color:var(--ipn-header-muted, #aebbd4) !important;
  -webkit-font-feature-settings:"liga";
  font-feature-settings:"liga";
}
.ipn-shell--nav .ipn-nav__tab.is-open .ipn-nav__chevron,
.ipn-shell--nav .ipn-nav__tab[aria-expanded="true"] .ipn-nav__chevron{
  opacity:1;
}

/* --- Mega-men? (pixel 10c) --- */
.ipn-shell--nav .ipn-mega-host{
  position:absolute;
  left:0;
  right:0;
  top:100%;
  z-index:301;
  pointer-events:none;
  overflow:visible;
  max-width:100%;
  box-sizing:border-box;
}
.ipn-shell--nav .ipn-nav-scrim{
  position:fixed;
  inset:0;
  background:transparent;
  pointer-events:auto;
  z-index:300;
}
.ipn-shell--nav .ipn-nav-scrim[hidden]{ display:none !important; }
.ipn-shell--nav .ipn-mega{
  pointer-events:auto;
  position:relative;
  z-index:302;
  /* AV: 2026-08-24: ancho acotado al host/viewport ? evita scroll-x al abrir el mega. */
  width:auto;
  max-width:100%;
  margin:0;
  background:#fff !important;
  color:#122740 !important;
  border:1px solid #e6e9ef !important;
  border-radius:0 14px 14px 14px !important;
  box-shadow:0 22px 48px rgba(18,39,64,.18) !important;
  box-sizing:border-box;
  padding:22px 24px !important;
  font-family:var(--ipn-font, "Inter", "IBM Plex Sans", sans-serif) !important;
}
.ipn-shell--nav .ipn-mega[hidden]{ display:none !important; }
.ipn-shell--nav .ipn-mega.is-open{
  display:block !important;
  /* AV: 2026-08-26: Scroll interno + no propagar al body (issue #33 ? Configuraci?n). */
  max-height:calc(100dvh - var(--ipn-topbar-h, 56px) - var(--ipn-nav-h, 46px) - 12px);
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable;
  scrollbar-width:thin;
  scrollbar-color:color-mix(in srgb, var(--ipn-brand, #2f62c4) 45%, #c8d0dc) transparent;
}
.ipn-shell--nav .ipn-mega.is-open::-webkit-scrollbar{ width:8px; }
.ipn-shell--nav .ipn-mega.is-open::-webkit-scrollbar-track{
  background:transparent;
  margin:8px 0;
}
.ipn-shell--nav .ipn-mega.is-open::-webkit-scrollbar-thumb{
  background:color-mix(in srgb, var(--ipn-brand, #2f62c4) 40%, #c8d0dc);
  border-radius:999px;
  border:2px solid #fff;
}
.ipn-shell--nav .ipn-mega__inner{
  display:flex;
  gap:32px;
  align-items:flex-start;
}
.ipn-shell--nav .ipn-mega__cols{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:10px 32px;
  flex:1 1 auto;
  min-width:0;
}
.ipn-shell--nav .ipn-mega__col{ min-width:0; }
.ipn-shell--nav .ipn-mega__group + .ipn-mega__group{ margin-top:20px; }
.ipn-shell--nav .ipn-mega__cap{
  font-size:10.5px !important;
  font-weight:600 !important;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#8a96a8 !important;
  padding:0 10px 8px;
  margin:0 0 6px;
  border-bottom:1px solid #e8ecf2;
}
/* AV: 2026-08-21: 3er nivel (Empaques / Sectores) dentro del grupo STOCK. */
.ipn-shell--nav .ipn-mega__subcap{
  font-size:11px !important;
  font-weight:600 !important;
  letter-spacing:.04em;
  color:#5a6f88 !important;
  padding:10px 10px 4px;
  margin:4px 0 0;
}
/* AV: 2026-08-24: 4to nivel (Compras/Gesti?n bajo Reportes?Administraci?n). */
.ipn-shell--nav .ipn-mega__subcap--l3{
  padding-left:18px;
  color:#6b7c92 !important;
}
.ipn-shell--nav .ipn-mega__item--nested{
  padding-left:22px !important;
}
.ipn-shell--nav .ipn-mega__item--l4{
  padding-left:30px !important;
}
.ipn-shell--nav .ipn-mega__empty{
  margin:0;
  padding:12px 10px;
  color:#5a6f88;
  font-size:13.5px;
}
.ipn-shell--nav .ipn-mega__item,
.ipn-shell--nav a.ipn-mega__item,
.ipn-shell--nav button.ipn-mega__item{
  display:flex !important;
  align-items:center;
  gap:12px;
  width:100% !important;
  margin:0 !important;
  padding:9px 10px !important;
  border:0 !important;
  border-radius:10px !important;
  background:transparent !important;
  color:#1a2b44 !important;
  font-family:var(--ipn-font, "Inter", "IBM Plex Sans", sans-serif) !important;
  font-size:13.5px !important;
  font-weight:500 !important;
  line-height:1.25 !important;
  text-align:left !important;
  text-decoration:none !important;
  text-transform:none !important;
  cursor:pointer !important;
  box-sizing:border-box;
  float:none !important;
  box-shadow:none !important;
  transition:background .12s ease, color .12s ease;
}
.ipn-shell--nav a.ipn-mega__item:visited,
.ipn-shell--nav a.ipn-mega__item:hover,
.ipn-shell--nav a.ipn-mega__item:active{
  color:#1a2b44 !important;
  text-decoration:none !important;
}
/* AV: 2026-08-26: :visited no debe ?lavar? el ?tem actual ni los labels (issue #33). */
.ipn-shell--nav a.ipn-mega__item.is-current:visited,
.ipn-shell--nav .ipn-mega__item.is-current:visited{
  color:var(--ipn-brand, #2f62c4) !important;
}
.ipn-shell--nav a.ipn-mega__item:visited .ipn-mega__item-label,
.ipn-shell--nav a.ipn-mega__item:link .ipn-mega__item-label{
  color:inherit !important;
}
.ipn-shell--nav .ipn-mega__item:hover,
.ipn-shell--nav .ipn-mega__item:focus-visible{
  background:var(--ipn-brand-soft, #eaf1fb) !important;
  color:var(--ipn-brand, #2f62c4) !important;
  outline:none;
}
.ipn-shell--nav .ipn-mega__item.is-current,
.ipn-shell--nav a.ipn-mega__item.is-current{
  background:var(--ipn-brand-soft, #e8f0fc) !important;
  color:var(--ipn-brand, #2f62c4) !important;
  font-weight:600 !important;
}
/* AV: 2026-08-13: icono solo en subm?dulos modernizados (whitelist menu2). */
.ipn-shell--nav .ipn-mega__item-icon{
  font-family:"Material Symbols Rounded" !important;
  font-size:20px !important;
  color:var(--ipn-brand, #2f62c4) !important;
  flex:0 0 auto;
  font-style:normal !important;
  font-weight:normal !important;
  font-variation-settings:"FILL" 0, "wght" 400, "GRAD" 0, "opsz" 20;
  -webkit-font-feature-settings:"liga";
  font-feature-settings:"liga";
  opacity:.92;
  line-height:1;
}
.ipn-shell--nav .ipn-mega__item.is-current .ipn-mega__item-icon,
.ipn-shell--nav .ipn-mega__item:hover .ipn-mega__item-icon,
.ipn-shell--nav .ipn-mega__item:focus-visible .ipn-mega__item-icon{
  color:var(--ipn-brand, #2f62c4) !important;
  opacity:1;
}
.ipn-shell--nav .ipn-mega__item-label{ flex:1 1 auto; min-width:0; }
.ipn-shell--nav .ipn-drawer__sub--icon{
  justify-content:flex-start;
  gap:10px;
}
.ipn-shell--nav .ipn-drawer__sub--icon .ipn-mega__badge{ margin-left:auto; }
.ipn-shell--nav .ipn-drawer__sub-icon{
  font-family:"Material Symbols Rounded" !important;
  font-size:20px !important;
  color:var(--ipn-brand, #2f62c4) !important;
  flex:0 0 auto;
  line-height:1;
  font-variation-settings:"FILL" 0, "wght" 400, "GRAD" 0, "opsz" 20;
  /* AV: 2026-09-11: #564 - liga + contraste via --ipn-brand saneado. */
  -webkit-font-feature-settings:"liga";
  font-feature-settings:"liga";
}
.ipn-shell--nav .ipn-mega__badge{
  flex:0 0 auto;
  min-width:18px;
  height:18px;
  padding:0 5px;
  border-radius:999px;
  background:#e53935 !important;
  color:#fff !important;
  font-size:11px !important;
  font-weight:700 !important;
  line-height:18px;
  text-align:center;
}

/* AV: 2026-07-31: el .content legacy arma un caj?n blanco; en shell lo aplanamos */
.ipn-shell--nav .ipn-shell__body{
  flex:1 1 auto;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 0 32px !important;
  box-sizing:border-box;
  background:#f4f6f9 !important;
  border:0 !important;
  overflow:visible;
  /* AV: 2026-08-24: no expandir el documento por grillas anchas (scroll queda en .ipn-table-wrap). */
  min-width:0;
}
.ipn-shell--nav .ipn-shell__body > .content,
.ipn-shell--nav .ipn-shell__body > [class^="ipn-"],
.ipn-shell--nav .ipn-shell__body > form[class*="ipn-"]{
  width:100% !important;
  max-width:var(--ipn-container, var(--ipn-secure-content-max, 1440px)) !important;
  margin:0 auto !important;
  padding:20px 24px 0 !important;
  background:transparent !important;
  border:0 !important;
  box-sizing:border-box;
  /* AV: 2026-08-25: min-width:0 ? la grilla scrollea en .ipn-table-wrap (no ensancha ni clippea el shell). */
  min-width:0;
  color:#122740;
  font-family:var(--ipn-font, "Inter", "IBM Plex Sans", sans-serif);
}
/* AV: 2026-08-23: Resultado de reportes a 1380 (vence el max-width del shell). */
.ipn-shell--nav .ipn-shell__body > .ipn-rpt-result,
.ipn-shell--nav .ipn-shell__body > form.ipn-rpt-result{
  max-width:1380px !important;
}
/* AV: 2026-08-13: mismo ritmo breadcrumb?title que secure (.ipn-secure__body > .ipn-breadcrumb). */
.ipn-shell--nav .ipn-shell__body .ipn-breadcrumb a,
.ipn-shell--nav .ipn-shell__body > [class^="ipn-"] > .ipn-breadcrumb a,
.ipn-shell--nav .ipn-shell__body > form[class*="ipn-"] > .ipn-breadcrumb a{
  color:var(--ipn-brand-link, var(--ipn-brand, var(--ipn-primary)));
  text-decoration:none;
  font-weight:500;
}
.ipn-shell--nav .ipn-shell__body .ipn-breadcrumb a:hover,
.ipn-shell--nav .ipn-shell__body > [class^="ipn-"] > .ipn-breadcrumb a:hover,
.ipn-shell--nav .ipn-shell__body > form[class*="ipn-"] > .ipn-breadcrumb a:hover{
  text-decoration:underline;
}
/* AV: 2026-08-26: Patrones compartidos menu2 (configuration/control) ? shell, no por m?dulo. */
.ipn-shell--nav .ipn-page-head{ margin-bottom:20px; }
.ipn-shell--nav .ipn-card + .ipn-card,
.ipn-shell--nav .ipn-card + .ipn-notice,
.ipn-shell--nav .ipn-notice-stack + .ipn-card,
.ipn-shell--nav .ipn-notice-stack + .ipn-detail-layout,
.ipn-shell--nav .ipn-info-box + .ipn-card,
.ipn-shell--nav .ipn-card + .ipn-info-box,
.ipn-shell--nav .ipn-notice-stack + .ipn-info-box{ margin-top:16px; }
/* AV: 2026-09-04: #373 - anula gap entre paneles de tab bajo shell--nav (especificidad). */
.ipn-shell--nav .ipn-tabs ~ .ipn-card[data-panel],
.ipn-shell--nav .ipn-tabs ~ .ipn-card[data-ipn-panel]{ margin-top:0; }
/* AV: 2026-08-27: gap filtros?grilla cuando el card de filtros va dentro de <form> (#100). */
.ipn-shell--nav form + .ipn-card{ margin-top:16px; }
/* AV: 2026-09-04: #371 - gap filtros->empty/info notice cuando el notice es hermano del form. */
.ipn-shell--nav form + .ipn-notice{ margin-top:16px; }
.ipn-shell--nav .ipn-shell__body > [class^="ipn-"],
.ipn-shell--nav .ipn-shell__body > form[class*="ipn-"]{
  max-width:100%;
}
.ipn-shell--nav .ipn-pager{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:12px;
  padding:12px 16px;
  border-top:1px solid var(--ipn-hairline, #e6e9ef);
}
.ipn-shell--nav .ipn-pager__controls{ margin-left:auto; }
.ipn-shell--nav .ipn-page-head__actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  margin-left:auto;
}
/* AV: 2026-08-26: Importaciones ? filtros listado (flatpickr, icon-btn, select). Issue #43. */
.ipn-importation-filters{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:12px 16px;
}
.ipn-importation-filters .ipn-field--sm{ flex:0 1 168px; min-width:140px; }
.ipn-importation-filters .ipn-field--grow{
  flex:1 1 240px;
  min-width:200px;
}
.ipn-importation-filters .ipn-field--sm .ipn-datepicker,
.ipn-importation-filters .ipn-field--sm .ipn-input,
.ipn-importation-filters .ipn-field--grow .ipn-select{
  max-width:100%;
  width:100%;
  box-sizing:border-box;
  color:var(--ipn-text);
}
.ipn-importation-filters .ipn-datepicker{
  display:inline-flex;
  align-items:stretch;
  max-width:168px;
  width:100%;
}
.ipn-importation-filters .ipn-datepicker input[data-input]{
  flex:1 1 auto;
  min-width:0;
  width:auto;
  height:var(--ipn-control-h, 42px);
  padding:0 12px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-right:0;
  border-radius:var(--ipn-radius-input, 8px) 0 0 var(--ipn-radius-input, 8px);
  font:inherit;
  font-size:14px;
  color:var(--ipn-text);
  background:var(--ipn-surface);
  box-sizing:border-box;
}
.ipn-importation-filters .ipn-datepicker input[data-input]:focus{
  outline:none;
  border-color:var(--ipn-brand, var(--ipn-primary));
  z-index:1;
}
.ipn-importation-filters .ipn-datepicker__btn{
  flex:0 0 42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-radius:0 var(--ipn-radius-input, 8px) var(--ipn-radius-input, 8px) 0;
  background:var(--ipn-surface-soft, #f5f7fb);
  color:var(--ipn-text-2, #5b6b80);
  cursor:pointer;
  padding:0;
}
.ipn-importation-filters .ipn-datepicker__btn:hover{
  background:var(--ipn-surface);
  color:var(--ipn-brand, var(--ipn-primary));
}
.ipn-importation-filters .ipn-datepicker__btn .material-symbols-rounded{ font-size:18px; }
.ipn-importation-filters .ipn-secure-filters__actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
  margin-left:0;
}
.ipn-importation-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
.ipn-importation .ipn-label .ipn-icon-btn{
  margin-left:4px;
  vertical-align:middle;
}
.ipn-importation .ipn-icon-btn,
.ipn-importation-form .ipn-icon-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  margin-left:4px;
  padding:0;
  border:0;
  border-radius:8px;
  background:transparent;
  color:var(--ipn-brand, #2f62c4);
  cursor:pointer;
  vertical-align:middle;
}
.ipn-importation .ipn-icon-btn:hover,
.ipn-importation-form .ipn-icon-btn:hover{
  background:rgba(47,98,196,.08);
}
.ipn-importation .ipn-icon-btn .material-symbols-rounded,
.ipn-importation-form .ipn-icon-btn .material-symbols-rounded{
  font-size:20px;
}
body:has(.ipn-importation) .flatpickr-calendar{
  z-index:4000 !important;
}
/* AV: 2026-08-26: Alta importaci?n ? tabla legacy con controles iPN2. Issue #63. */
.ipn-importation-form #importationTable{
  width:100%;
  border-collapse:collapse;
}
.ipn-importation-form #importationTable > tbody > tr > td{
  padding:10px 0;
  vertical-align:top;
}
.ipn-importation-form #importationTable > tbody > tr > td:first-child{
  width:30%;
  padding-right:16px;
  font-size:13px;
  font-weight:500;
  color:var(--ipn-text-2);
}
.ipn-importation-form #importationTable > tbody > tr > td:last-child{
  width:70%;
}
.ipn-importation-form #importationTable select,
.ipn-importation-form #importationTable select.field.select{
  height:var(--ipn-control-h);
  padding:0 12px;
  padding-right:34px;
  border:1px solid var(--ipn-border-input);
  border-radius:var(--ipn-radius-input);
  background-color:var(--ipn-surface);
  font:inherit;
  font-size:13px;
  color:var(--ipn-text);
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%238a94a2' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 10px center;
  max-width:100%;
  box-sizing:border-box;
}
.ipn-importation-form #importationTable #importationTypeID{
  display:inline-block;
  width:auto;
  min-width:min(100%, 420px);
  max-width:calc(100% - 44px);
  vertical-align:middle;
}
.ipn-importation-form #importationTable input[type="text"]:not(.ipn-input--bare),
.ipn-importation-form #importationTable input[type="number"],
.ipn-importation-form #importationTable textarea{
  height:var(--ipn-control-h);
  padding:0 12px;
  border:1px solid var(--ipn-border-input);
  border-radius:var(--ipn-radius-input);
  background:var(--ipn-surface);
  font:inherit;
  font-size:13px;
  color:var(--ipn-text);
  max-width:100%;
  box-sizing:border-box;
}
.ipn-importation-form #importationTable textarea{
  height:auto;
  min-height:80px;
  padding:10px 12px;
}
.ipn-importation-form #importationTable .campoRequerido{
  color:var(--ipn-danger, #c62828);
  margin-left:4px;
}
.ipn-importation-form #importationTable .ipn-check-row,
.ipn-importation-form #importationTable .ipn-check-row label{
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.ipn-importation-form .ipn-secure-actions #buttonsTr{
  display:inline-flex;
}
.ipn-importation-form .msjInfo{
  margin-bottom:16px;
  padding:12px 14px;
  border-radius:8px;
  background:var(--ipn-primary-soft, #eef3ff);
  color:var(--ipn-text);
  font-size:13.5px;
  line-height:1.45;
}
/* AV: 2026-08-26: Contenedor kendoDialog de errores API ? oculto hasta abrir. Issue #63. */
body.ipn2 #autocompleteErrorAlert{ display:none; }
@media (max-width:768px){
  .ipn-importation-filters .ipn-field--sm,
  .ipn-importation-filters .ipn-field--grow{ flex:1 1 100%; min-width:0; }
  .ipn-importation-filters .ipn-field--sm .ipn-datepicker{ max-width:100%; width:100%; }
  .ipn-importation-filters .ipn-secure-filters__actions{ width:100%; }
  .ipn-importation-filters .ipn-secure-filters__actions .ipn-btn{ flex:1 1 auto; justify-content:center; }
  .ipn-importation-form #importationTable > tbody > tr > td,
  .ipn-importation-form #importationTable > tbody > tr > td:first-child,
  .ipn-importation-form #importationTable > tbody > tr > td:last-child{
    display:block;
    width:100% !important;
    padding-right:0;
  }
  .ipn-importation-form #importationTable #importationTypeID{
    display:block;
    width:100%;
    min-width:0;
    max-width:100%;
    margin-bottom:8px;
  }
  .ipn-importation-form #importationTable select,
  .ipn-importation-form #importationTable input[type="text"],
  .ipn-importation-form #importationTable textarea{
    width:100% !important;
    max-width:100%;
  }
  .ipn-importation-form .ipn-secure-actions{
    flex-wrap:wrap;
    gap:10px;
  }
  .ipn-importation-form .ipn-secure-actions #buttonsTr,
  .ipn-importation-form .ipn-secure-actions #buttonsTr .ipn-btn{
    width:100%;
    justify-content:center;
  }
}
/* AV: 2026-08-30: Detalle importacion -- acciones main + datepicker Flatpickr. Issue #138.
   AV: 2026-08-31: #189 -- audit ipn-audit; #554 reemplaza tablaComprobante por .ipn-dl. */
.ipn-importation-detail .ipn-secure-actions{
  justify-content:flex-end;
}
.ipn-importation-detail .ipn-datepicker{
  display:inline-flex;
  align-items:center;
  gap:0;
  max-width:160px;
}
.ipn-importation-detail .ipn-datepicker input[data-input]{
  min-width:0;
  width:110px;
}
/* AV: 2026-09-10: #554 -- info general/importacion en dos cards + .ipn-dl (reemplaza tablaComprobante). */
.ipn-importation-detail__info{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:16px;
  align-items:start;
  width:100%;
  min-width:0;
}
.ipn-importation-detail__info > .ipn-card{
  min-width:0;
  max-width:100%;
}
/* AV: 2026-09-10: #554 -- anular margin-top global .ipn-card+.ipn-card en grid 2 cols. */
.ipn-importation-detail__info > .ipn-card + .ipn-card{
  margin-top:0;
}
.ipn-importation-detail__info .ipn-dl{
  min-width:0;
  max-width:100%;
}
.ipn-importation-detail__info .ipn-dl__label{
  flex:0 0 160px;
  max-width:42%;
  min-width:0;
}
.ipn-importation-detail__info .ipn-dl__value{
  flex:1 1 0;
  min-width:0;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.ipn-importation-detail__info .ipn-dl__row--note{
  display:block;
  padding:10px 0;
}
.ipn-importation-detail__info .ipn-dl__row--note .ipn-dl__value{
  flex:none;
  width:100%;
  color:var(--ipn-text-2, #5b6b80);
  line-height:1.45;
}
.ipn-importation-detail__info .ipn-icon-btn{
  flex-shrink:0;
  vertical-align:middle;
}
@media (max-width:900px){
  .ipn-importation-detail__info{
    grid-template-columns:1fr;
  }
  .ipn-importation-detail__info .ipn-dl__row:not(.ipn-dl__row--note){
    flex-direction:column;
    align-items:stretch;
    gap:4px;
  }
  .ipn-importation-detail__info .ipn-dl__label,
  .ipn-importation-detail__info .ipn-dl__value{
    flex:0 0 auto;
    max-width:none;
    width:100%;
  }
}
/* AV: 2026-09-02: #247 ? filtros de filas modernizados (reemplazo fieldset). */
.ipn-importation-detail .ipn-importation-row-filters{
  margin-top:16px;
}
.ipn-importation-detail .ipn-importation-row-filters + .ipn-notice{
  margin-top:12px;
}
.ipn-importation-detail form + .ipn-notice,
.ipn-importation-detail .ipn-importation-row-filters ~ .ipn-notice{
  margin-top:12px;
}
/* AV: 2026-08-31: #195 ? parametros de busqueda en detalle (fieldset legacy sin style.css). */
.ipn-importation-detail fieldset.busqueda{
  border:1px solid var(--ipn-border, #e2e8f0);
  border-radius:var(--ipn-radius-md, 12px);
  padding:16px 18px;
  margin:16px 0 0;
  background:var(--ipn-surface-soft, #f8fafc);
}
.ipn-importation-detail fieldset.busqueda legend{
  font-size:14px;
  font-weight:600;
  color:var(--ipn-text);
  padding:0 6px;
}
.ipn-importation-detail fieldset.busqueda table td{
  padding:6px 12px 6px 0;
  vertical-align:middle;
  font-size:13px;
  font-family:var(--ipn-font, "Inter", sans-serif);
}
.ipn-importation-detail fieldset.busqueda img[alt="|"]{
  display:none;
}
.ipn-importation-detail fieldset.busqueda select{
  min-width:180px;
  height:42px;
  padding:0 12px;
  border:1px solid var(--ipn-border, #e2e8f0);
  border-radius:var(--ipn-radius-sm, 8px);
  background:var(--ipn-surface, #fff);
  font-family:var(--ipn-font, "Inter", sans-serif);
  font-size:13px;
}
.ipn-importation-detail .ipn-audit{
  margin-top:8px;
}
/* AV: 2026-09-01: #230 ? grilla de resultados + pager en detalle importaci?n (patr?n #89). */
.ipn-importation-detail .ipn-importation-results{
  margin-top:16px;
  overflow:visible;
}
.ipn-importation-detail .ipn-importation-results .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-importation-detail .ipn-importation-grid{
  width:max-content;
  min-width:100%;
}
/* AV: 2026-09-02: #266 ? columna # + tippy sin clip. */
.ipn-importation-detail .ipn-importation-grid__tip-col{
  width:72px;
  min-width:72px;
  max-width:none;
  white-space:nowrap;
  overflow:visible;
  text-align:left;
}
.ipn-importation-detail .ipn-importation-grid__tip-label{
  margin-right:2px;
  vertical-align:middle;
}
.ipn-importation-detail .ipn-importation-grid__tip-col .ipn-icon-btn{
  width:32px;
  height:32px;
  margin-left:0;
}
.ipn-importation-detail .ipn-importation-grid th,
.ipn-importation-detail .ipn-importation-grid td{
  white-space:nowrap;
  vertical-align:middle;
  overflow:visible;
}
.ipn-importation-detail .ipn-importation-grid td[class*="editImportationPopUp"],
.ipn-importation-detail .ipn-importation-grid td.editImportationPopUp{
  white-space:normal;
  max-width:280px;
  cursor:pointer;
}
.ipn-importation-detail .ipn-importation-results-pager{
  margin-top:12px;
}
/* AV: 2026-09-10: #538 - popups detalle importation (errores + edicion) sin cnt_principal/colorbox. */
body.ipn2:has(.ipn-importation-detail) #iPNpopUpDiv.ipn-importation-errors-popup,
#iPNpopUpDiv.ipn-importation-errors-popup{
  position:fixed !important;
  top:105px !important;
  left:50% !important;
  transform:translateX(-50%) !important;
  margin-left:0 !important;
  width:min(520px, calc(100vw - 32px)) !important;
  max-height:min(70vh, 560px);
  padding:18px 20px !important;
  border-radius:12px;
  border:1px solid var(--ipn-hairline, #e6e9ef);
  background:var(--ipn-surface, #fff) !important;
  box-shadow:var(--ipn-shadow-elev, 0 16px 48px rgba(22,41,77,.22));
  font-family:var(--ipn-font);
  color:var(--ipn-text);
  box-sizing:border-box;
  overflow:hidden;
}
.ipn-importation-errors-popup__title{
  margin:0 0 12px;
  font-size:18px;
  font-weight:700;
  line-height:1.3;
}
.ipn-importation-errors-popup__body{
  min-height:180px;
  max-height:min(48vh, 320px);
  overflow-y:auto;
  padding:0 2px;
  font-size:13px;
}
.ipn-importation-errors-popup__list{
  list-style:none;
  margin:0;
  padding:0;
}
.ipn-importation-errors-popup__item{
  display:flex;
  align-items:flex-start;
  gap:8px;
  margin:0 0 10px;
  line-height:1.4;
}
.ipn-importation-errors-popup__icon{
  flex:0 0 auto;
  width:16px;
  height:16px;
  margin-top:2px;
  vertical-align:middle;
}
.ipn-importation-errors-popup__item .ipn-icon-btn{
  flex:0 0 auto;
  margin-left:4px;
}
.ipn-importation-errors-popup__actions{
  display:flex;
  justify-content:flex-start;
  gap:8px;
  margin-top:12px;
}
/* AV: 2026-09-10: #538 - oculto hasta iPNpopup(); clase iPNpopUpDiv en markup. */
body.ipn2:has(.ipn-importation-detail) #iPNpopUpDivEdit.ipn-importation-edit-popup,
#iPNpopUpDivEdit.ipn-importation-edit-popup{
  display:none;
  position:fixed !important;
  top:105px !important;
  left:50% !important;
  transform:translateX(-50%) !important;
  margin-left:0 !important;
  width:min(680px, calc(100vw - 32px)) !important;
  padding:0 !important;
  border-radius:14px;
  border:1px solid var(--ipn-hairline, #e6e9ef);
  background:var(--ipn-surface, #fff) !important;
  box-shadow:var(--ipn-shadow-elev, 0 16px 48px rgba(22,41,77,.22));
  overflow:hidden;
  box-sizing:border-box;
}
#iPNpopUpDivEdit.ipn-importation-edit-popup > iframe{
  display:block;
  border:0;
  background:#fff;
  width:100%;
  max-width:100%;
  height:280px;
  box-sizing:border-box;
  vertical-align:top;
}
body.ipn-importation-popup,
.ipn-importation-popup{
  margin:0;
  padding:16px 18px;
  font-family:var(--ipn-font);
  color:var(--ipn-text);
  background:#fff;
  box-sizing:border-box;
}
.ipn-importation-popup__head{
  margin-bottom:12px;
}
.ipn-importation-popup__title{
  margin:0;
  font-size:1.1rem;
  font-weight:700;
  line-height:1.3;
}
.ipn-importation-popup__actions{
  margin-top:12px;
}
@media (max-width:700px){
  body.ipn2:has(.ipn-importation-detail) #iPNpopUpDiv.ipn-importation-errors-popup,
  #iPNpopUpDiv.ipn-importation-errors-popup,
  body.ipn2:has(.ipn-importation-detail) #iPNpopUpDivEdit.ipn-importation-edit-popup,
  #iPNpopUpDivEdit.ipn-importation-edit-popup{
    top:max(16px, calc(env(safe-area-inset-top, 0px) + 64px)) !important;
    width:calc(100vw - 32px) !important;
  }
  #iPNpopUpDivEdit.ipn-importation-edit-popup > iframe{
    height:min(360px, calc(100dvh - 140px));
  }
}
.ipn-importation-form .autocomplete-suggestions{
  z-index:12050;
}
.ipn-email-sched .ipn-page-head,
.ipn-commercial-cond .ipn-page-head,
.ipn-transport .ipn-page-head,
.ipn-config-abm .ipn-page-head,
.ipn-cash-concept .ipn-page-head,
.ipn-cash-subconcept .ipn-page-head,
.ipn-sub-provider-type .ipn-page-head,
.ipn-expenses-concept .ipn-page-head,
.ipn-expenses-concept-store .ipn-page-head,
.ipn-sub-expenses .ipn-page-head,
.ipn-bank-concepts .ipn-page-head,
.ipn-payment-method .ipn-page-head,
.ipn-mp-accounts .ipn-page-head,
.ipn-mp-logs .ipn-page-head,
.ipn-payway-logs .ipn-page-head,
.ipn-clover-logs .ipn-page-head,
.ipn-checkbook .ipn-page-head,
.ipn-currency .ipn-page-head,
.ipn-currency-arca .ipn-page-head,
.ipn-price-lists .ipn-page-head,
.ipn-admin-price-lists .ipn-page-head,
.ipn-promotions .ipn-page-head,
.ipn-ib2b-settings .ipn-page-head,
.ipn-audit-page .ipn-page-head,
.ipn-plans .ipn-page-head,
.ipn-profit-centre .ipn-page-head{
  margin-bottom:20px;
}
/* AV: 2026-08-24: Volver al pie del contenido (accion final). */
.ipn-audit-page .ipn-secure-actions{
  margin-top:16px;
  margin-bottom:8px;
}

@media (max-width:1199px){
  .ipn-shell--nav .ipn-mega__cols{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
@media (max-width:900px){
  .ipn-shell--nav .ipn-mega__inner{ flex-direction:column; }
  .ipn-shell--nav .ipn-mega__cols{ grid-template-columns:1fr; }
}
@media (max-width:767px){
  .ipn-shell--nav .ipn-nav{ display:none !important; }
}

/* --- Mobile chrome + drawer (opcion 10d) ? AV: 2026-07-31 --- */
.ipn-nav-burger{
  display:none;
}
body.ipn-nav-overlay-open,
body.ipn-nav-drawer-open{
  overflow:hidden;
  touch-action:none;
}
.ipn-drawer-scrim,
.ipn-drawer{
  display:none;
}

@media (max-width:767px){
  /* AV: 2026-09-01: #109 ? mobile: burger+logo a la izq; solo avatar a la der (identidad en user-menu). */
  .ipn-shell--nav .ipn-ap-topbar,
  .ipn-shell--nav .ipn-topbar{
    height:var(--ipn-topbar-h, 56px);
    min-height:var(--ipn-topbar-h, 56px);
  }
  .ipn-shell--nav .ipn-ap-topbar__inner{
    height:var(--ipn-topbar-h, 56px);
    padding:0 12px;
    gap:4px;
    align-items:center;
    justify-content:flex-start;
  }
  .ipn-shell--nav .ipn-nav-burger{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    margin:0;
    padding:0;
    border:0;
    border-radius:8px;
    background:transparent;
    color:var(--ipn-header-fg, #fff);
    cursor:pointer;
    flex:0 0 auto;
  }
  .ipn-shell--nav .ipn-nav-burger:focus-visible{
    outline:2px solid color-mix(in srgb, var(--ipn-header-fg, #fff) 55%, transparent);
    outline-offset:2px;
  }
  .ipn-shell--nav .ipn-nav-burger .material-symbols-rounded{
    font-size:26px;
  }
  .ipn-shell--nav .ipn-ap-topbar__brand{
    margin-right:0;
    min-width:0;
    flex:1 1 auto;
    max-width:none;
  }
  .ipn-shell--nav .ipn-ap-topbar__logo,
  .ipn-shell--nav img.ipn-ap-topbar__logo{
    max-width:min(200px, 100%) !important;
  }
  .ipn-shell--nav .ipn-ap-topbar__identity{
    display:none !important;
  }
  .ipn-shell--nav .ipn-ap-topbar__account{
    margin-left:auto;
    border-left:0;
    padding-left:0;
    gap:0;
    min-width:0;
    flex:0 0 auto;
  }
  .ipn-shell--nav .ipn-user-menu-trigger{
    gap:0;
    padding:0;
    min-width:44px;
    min-height:44px;
    width:44px;
    height:44px;
    justify-content:center;
    max-width:none;
  }
  .ipn-shell--nav .ipn-ap-topbar__avatar{
    width:28px;
    height:28px;
    font-size:10px;
  }

  .ipn-drawer-scrim{
    display:block;
    position:fixed;
    inset:0;
    z-index:200;
    background:rgba(18,39,64,.45);
  }
  .ipn-drawer-scrim[hidden]{ display:none !important; }

  .ipn-drawer{
    display:flex;
    flex-direction:column;
    position:fixed;
    inset:0;
    z-index:210;
    background:var(--ipn-header-bg, #16294d);
    color:var(--ipn-header-fg, #fff);
    transform:translateX(-105%);
    transition:transform .22s ease;
    overflow:auto;
    -webkit-overflow-scrolling:touch;
  }
  .ipn-drawer[hidden]{ display:none !important; }
  .ipn-drawer.is-open{
    display:flex;
    transform:translateX(0);
  }
  .ipn-drawer__head{
    display:flex;
    align-items:center;
    gap:8px;
    min-height:56px;
    padding:8px 12px;
    flex:0 0 auto;
  }
  .ipn-drawer__close{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    border:0;
    border-radius:8px;
    background:transparent;
    color:inherit;
    cursor:pointer;
  }
  .ipn-drawer__logo{
    height:28px;
    width:auto;
    max-width:140px;
    object-fit:contain;
  }
  .ipn-drawer__user{
    display:flex;
    align-items:center;
    gap:12px;
    padding:8px 16px 16px;
    flex:0 0 auto;
  }
  .ipn-drawer__avatar{
    width:44px;
    height:44px;
    border-radius:50%;
    background:var(--ipn-brand, #2f62c4);
    color:var(--ipn-brand-fg, #fff);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:14px;
    font-weight:700;
    flex:0 0 auto;
  }
  .ipn-drawer__who{ min-width:0; flex:1 1 auto; }
  .ipn-drawer__name{
    font-size:14px;
    font-weight:700;
    line-height:1.25;
  }
  .ipn-drawer__role{
    font-size:12px;
    color:var(--ipn-header-muted, #aebbd4);
  }
  .ipn-drawer__logout{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    color:inherit;
    border-radius:8px;
    text-decoration:none;
    flex:0 0 auto;
  }
  .ipn-drawer__nav{
    flex:1 1 auto;
    padding:4px 10px 12px;
  }
  .ipn-drawer__mod{
    appearance:none;
    -webkit-appearance:none;
    display:flex;
    align-items:center;
    gap:12px;
    width:100%;
    min-height:48px;
    margin:0;
    padding:0 12px;
    border:0;
    border-radius:10px;
    background:transparent;
    color:inherit;
    font-family:var(--ipn-font, "Inter", "IBM Plex Sans", sans-serif);
    font-size:14.5px;
    font-weight:600;
    text-align:left;
    text-decoration:none;
    cursor:pointer;
    box-sizing:border-box;
  }
  a.ipn-drawer__mod,
  a.ipn-drawer__mod:visited,
  a.ipn-drawer__mod:hover{
    color:inherit;
    text-decoration:none;
  }
  .ipn-drawer__mod .material-symbols-rounded{
    font-size:22px;
    flex:0 0 auto;
  }
  .ipn-drawer__mod-icon{
    font-size:20px !important;
    font-variation-settings:"FILL" 0, "wght" 400, "GRAD" 0, "opsz" 20;
  }
  .ipn-drawer__mod-label{ flex:1 1 auto; min-width:0; }
  .ipn-drawer__mod-chevron{
    transition:transform .18s ease;
  }
  .ipn-drawer__group.is-open .ipn-drawer__mod-chevron,
  .ipn-drawer__mod[aria-expanded="true"] .ipn-drawer__mod-chevron{
    transform:rotate(180deg);
  }
  .ipn-drawer__group.is-current > .ipn-drawer__mod,
  .ipn-drawer__mod--link.is-current{
    background:color-mix(in srgb, var(--ipn-header-fg, #fff) 10%, transparent);
  }
  .ipn-drawer__subs{
    margin:0 0 6px 18px;
    padding:4px 0 8px 14px;
    border-left:2px solid color-mix(in srgb, var(--ipn-header-fg, #fff) 18%, transparent);
  }
  .ipn-drawer__subs[hidden]{ display:none !important; }
  /* AV: 2026-08-26: Acorde?n anidado L1/L2 en drawer (issue #33 ? Stock / Administraci?n). */
  .ipn-drawer__subgroup{
    margin:2px 0 4px;
    border-radius:10px;
  }
  .ipn-drawer__subgroup.is-current > .ipn-drawer__subhead,
  .ipn-drawer__subgroup.is-open > .ipn-drawer__subhead{
    background:color-mix(in srgb, var(--ipn-header-fg, #fff) 8%, transparent);
  }
  .ipn-drawer__subhead{
    appearance:none;
    -webkit-appearance:none;
    display:flex;
    align-items:center;
    gap:8px;
    width:100%;
    min-height:44px;
    margin:0;
    padding:0 10px;
    border:0;
    border-radius:8px;
    background:transparent;
    color:var(--ipn-header-fg, #fff);
    font-family:var(--ipn-font, "Inter", "IBM Plex Sans", sans-serif);
    font-size:11px;
    font-weight:700;
    letter-spacing:.1em;
    text-transform:uppercase;
    text-align:left;
    cursor:pointer;
    box-sizing:border-box;
  }
  .ipn-drawer__subhead--nested{
    letter-spacing:.04em;
    text-transform:none;
    font-size:13px;
    font-weight:600;
    padding-left:14px;
    color:color-mix(in srgb, var(--ipn-header-fg, #fff) 88%, transparent);
  }
  .ipn-drawer__subhead-label{
    flex:1 1 auto;
    min-width:0;
    text-align:left;
  }
  .ipn-drawer__subhead-chevron{
    font-size:18px !important;
    opacity:.75;
    transition:transform .18s ease;
    flex:0 0 auto;
  }
  .ipn-drawer__subgroup.is-open > .ipn-drawer__subhead .ipn-drawer__subhead-chevron,
  .ipn-drawer__subhead[aria-expanded="true"] .ipn-drawer__subhead-chevron{
    transform:rotate(180deg);
    opacity:1;
  }
  .ipn-drawer__subnest{
    margin:0 0 4px 10px;
    padding:2px 0 6px 12px;
    border-left:2px solid color-mix(in srgb, var(--ipn-header-fg, #fff) 14%, transparent);
  }
  .ipn-drawer__subnest--nested{
    margin-left:6px;
    padding-left:10px;
    border-left-color:color-mix(in srgb, var(--ipn-header-fg, #fff) 10%, transparent);
  }
  .ipn-drawer__subnest[hidden]{ display:none !important; }
  .ipn-drawer__subhead:focus-visible,
  .ipn-drawer__subhead:hover{
    background:color-mix(in srgb, var(--ipn-brand, #2f62c4) 22%, transparent);
    outline:none;
  }
  .ipn-drawer__subcap{
    font-size:10px;
    font-weight:600;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--ipn-header-muted, #aebbd4);
    padding:8px 10px 4px;
  }
  /* AV: 2026-08-21: subcap L3 + indentaci?n de hijos (Empaques / Sectores). */
  .ipn-drawer__subcap--nested{
    letter-spacing:.06em;
    text-transform:none;
    font-size:11px;
    padding:10px 10px 2px 18px;
    color:color-mix(in srgb, var(--ipn-header-fg, #fff) 72%, transparent);
  }
  /* AV: 2026-08-24: carpeta L3 (Compras/Gesti?n) + hojas L4. */
  .ipn-drawer__subcap--l3{
    letter-spacing:.04em;
    text-transform:none;
    font-size:11px;
    padding:8px 10px 2px 26px;
    color:color-mix(in srgb, var(--ipn-header-fg, #fff) 65%, transparent);
  }
  .ipn-drawer__sub--nested{
    padding-left:18px;
  }
  .ipn-drawer__sub--l4{
    padding-left:28px;
  }
  .ipn-drawer__sub{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    min-height:44px;
    padding:0 10px;
    border-radius:8px;
    color:var(--ipn-header-fg, #fff) !important;
    text-decoration:none !important;
    font-size:13.5px;
    font-weight:500;
  }
  a.ipn-drawer__sub:link,
  a.ipn-drawer__sub:visited,
  a.ipn-drawer__sub:hover,
  a.ipn-drawer__sub:active{
    color:var(--ipn-header-fg, #fff) !important;
    text-decoration:none !important;
  }
  .ipn-drawer a.ipn-drawer__sub .ipn-drawer__sub-icon{
    color:var(--ipn-brand, #2f62c4) !important;
  }
  .ipn-drawer__sub:hover,
  .ipn-drawer__sub:focus-visible,
  .ipn-drawer__mod:focus-visible,
  .ipn-drawer__close:focus-visible,
  .ipn-drawer__logout:focus-visible{
    background:color-mix(in srgb, var(--ipn-brand, #2f62c4) 35%, transparent);
    outline:none;
  }
  .ipn-drawer__group.is-current .ipn-drawer__sub.is-active,
  .ipn-drawer__sub.is-active{
    background:var(--ipn-brand, #2f62c4);
    color:#fff !important;
    font-weight:600;
  }
  .ipn-drawer__sub.is-active .ipn-drawer__sub-icon{
    color:#fff !important;
    opacity:.95;
  }
  a.ipn-drawer__sub.is-active:link,
  a.ipn-drawer__sub.is-active:visited,
  a.ipn-drawer__sub.is-active:hover{
    color:#fff !important;
  }
  .ipn-drawer__utils{
    flex:0 0 auto;
    margin-top:auto;
    padding:12px 10px calc(12px + env(safe-area-inset-bottom, 0px));
    border-top:1px solid color-mix(in srgb, var(--ipn-header-fg, #fff) 14%, transparent);
  }
  .ipn-drawer__util{
    display:flex;
    align-items:center;
    gap:12px;
    min-height:48px;
    padding:0 12px;
    border-radius:10px;
    color:inherit;
    text-decoration:none;
    font-size:14px;
    font-weight:600;
  }
  a.ipn-drawer__util:visited,
  a.ipn-drawer__util:hover{
    color:inherit;
    text-decoration:none;
  }
  .ipn-drawer__util .material-symbols-rounded{ font-size:22px; }
}

@media (prefers-reduced-motion: reduce){
  .ipn-mega,
  .ipn-nav__tab,
  .ipn-drawer,
  .ipn-drawer__mod-chevron{
    transition:none !important;
  }
}

/* AV: 2026-07-31: Piloto Familias ? listado iPN2 (scope .ipn-family) */
/* AV: 2026-08-24: grilla ancha (contable) scrollea adentro, no el documento.
   AV: 2026-08-25: max-content + overflow (Familias faltaba; descripcion sticky sin scroll-x). */
.ipn-family{
  min-width:0;
  max-width:100%;
}
.ipn-family .ipn-card--table,
.ipn-family .ipn-table-wrap{
  max-width:100%;
  min-width:0;
}
.ipn-family .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-family .ipn-table--list{
  width:max-content;
  min-width:100%;
}
.ipn-family-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-family-filters .ipn-secure-filters__actions{
  margin-left:0;
  flex:0 0 auto;
  gap:8px;
}
.ipn-family-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
.ipn-family__thumb{
  width:100%;
  height:100%;
  object-fit:contain;
}


/* AV: 2026-08-19: Categor?as de art?culos ? listado iPN2 (scope .ipn-category). */
/* AV: 2026-08-24: grilla ancha scrollea en .ipn-table-wrap (shell clippea el documento). */
.ipn-category{
  min-width:0;
  max-width:100%;
}
.ipn-category .ipn-card--table,
.ipn-category .ipn-table-wrap{
  max-width:100%;
  min-width:0;
}
.ipn-category .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-category .ipn-table--list{
  width:max-content;
  min-width:100%;
}
.ipn-category-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-category-filters .ipn-field{ min-width:180px; }
.ipn-category-filters .ipn-field--grow{ flex:1 1 240px; min-width:220px; }
.ipn-category-filters .ipn-secure-filters__actions{
  margin-left:0;
  flex:0 0 auto;
  gap:8px;
}
.ipn-category-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
.ipn-category__thumb{
  width:100%;
  height:100%;
  object-fit:contain;
}
/* AV: 2026-08-24: Columna C?digo = misma familia tipogr?fica que el resto del listado (no mono). */
.ipn-category .ipn-table__code,
.ipn-category .ipn-table__code-link{
  font-family:var(--ipn-font);
}

@media (max-width:768px){
  .ipn-category-filters{
    flex-direction:column;
    align-items:stretch;
    gap:12px;
  }
  .ipn-category-filters .ipn-field,
  .ipn-category-filters .ipn-field--grow{
    width:100%;
    min-width:0;
    flex:1 1 auto;
  }
  .ipn-category-filters .ipn-secure-filters__actions{
    width:100%;
    display:flex;
    gap:8px;
  }
  .ipn-category-filters .ipn-secure-filters__actions .ipn-btn{
    flex:1 1 auto;
    width:auto;
  }
}

.ipn-table__group > td{
  background:#f0f3f8;
  padding:8px 12px !important;
  height:auto !important;
  max-height:none !important;
  border-bottom:1px solid #e2e7ef;
}
.ipn-table__group-label{
  font-size:12.5px;
  font-weight:700;
  color:#16294d;
  letter-spacing:.01em;
}
.ipn-table__code-link{
  color:inherit;
  text-decoration:none;
  font-weight:600;
}
.ipn-table__code-link:hover{ text-decoration:underline; }
a.ipn-table__chip{
  text-decoration:none;
}
a.ipn-table__chip:hover{
  filter:brightness(.96);
}

/* AV: 2026-07-31: Alta/edici?n Familias (.ipn-family-form) */
/* AV: 2026-08-13: grilla 2 cols alineada (sin id-row / sm que romp?an columnas). */
/* AV: 2026-08-20: sin max-width 720 ? mismo ancho de contenedor que listado/detalle. */
.ipn-family-form .ipn-card__body{
  padding:20px 22px 18px;
}
.ipn-family-form .ipn-form-section{ margin-bottom:18px; }
.ipn-family-form .ipn-form-section:last-of-type{ margin-bottom:4px; }
.ipn-family-form .ipn-form-grid--2{
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px 18px;
  align-items:start;
}
.ipn-family-form .choices{ margin-bottom:0; width:100%; }
.ipn-family-form .choices__inner{
  min-height:var(--ipn-control-h, 42px);
}
.ipn-family-form__image{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:16px;
}
.ipn-family-form__preview{
  max-width:250px;
  max-height:180px;
  border-radius:10px;
  border:1px solid var(--ipn-hairline, #e6e9ef);
  background:#fff;
}
.ipn-family-form__image-actions{
  display:flex;
  flex-direction:column;
  gap:8px;
  align-items:flex-start;
}
.ipn-family-form__rg-row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px 18px;
}
.ipn-family-form__tip{
  font-size:18px !important;
  color:var(--ipn-text-3, #8a96a8);
  vertical-align:middle;
  cursor:help;
  margin-left:4px;
}
.ipn-family-form__deleting{
  font-size:13px;
  color:var(--ipn-text-3);
}
.ipn-family-form .select2-container{ width:100% !important; }
.ipn-family-form .ipn-check{
  display:inline-flex;
  align-items:flex-start;
  gap:8px;
  font-size:13.5px;
  color:var(--ipn-text, #122740);
  cursor:pointer;
}
.ipn-family-form .ipn-check input{ margin-top:3px; flex:0 0 auto; }

/* AV: 2026-08-13: Detalle Familias ? dl + sidebar acciones. */
.ipn-family-detail__preview{
  display:inline-flex;
  border:1px solid #e2e7ef;
  border-radius:10px;
  overflow:hidden;
  background:#fff;
  max-width:250px;
}
.ipn-family-detail__preview img{
  display:block;
  max-width:100%;
  height:auto;
}

/* AV: 2026-08-19: Detalle / borrado Categor?as ? mismos patrones que Familias. */
.ipn-category-detail__preview{
  display:inline-flex;
  border:1px solid #e2e7ef;
  border-radius:10px;
  overflow:hidden;
  background:#fff;
  max-width:250px;
}
.ipn-category-detail__preview img{
  display:block;
  max-width:100%;
  height:auto;
}
.ipn-category-detail__tree{
  margin:0;
  font-size:13.5px;
  color:var(--ipn-text, #122740);
  line-height:1.45;
}
.ipn-category-detail .ipn-section{ margin-top:18px; }

/* AV: 2026-08-20: Marcas ? listado / detalle / form / borrado iPN2 (scope .ipn-trademark*). */
/* AV: 2026-08-25: grilla ancha scrollea en .ipn-table-wrap (shell clippea el documento). */
.ipn-trademark{
  min-width:0;
  max-width:100%;
}
.ipn-trademark .ipn-card--table,
.ipn-trademark .ipn-table-wrap{
  max-width:100%;
  min-width:0;
}
.ipn-trademark .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
/* AV: 2026-08-25: max-content (no fixed/100%) ? permite scroll-x en mobile; Nombre no ?come? el viewport. */
.ipn-trademark .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-trademark .ipn-table--list .ipn-table__th-desc,
.ipn-trademark .ipn-table--list .ipn-table__desc{
  width:auto;
  max-width:220px;
  position:static;
  left:auto;
  z-index:auto;
  background:transparent;
}
.ipn-trademark .ipn-table--list .ipn-table__th-thumb{
  width:72px;
}
.ipn-trademark .ipn-table--list thead th.ipn-table__th-actions,
.ipn-trademark .ipn-table--list tbody td.ipn-table__th-actions{
  position:static;
  width:112px;
  min-width:112px;
  max-width:112px;
  overflow:visible;
  text-overflow:clip;
  white-space:nowrap;
  vertical-align:middle;
  background:transparent;
  box-shadow:none;
}
.ipn-trademark .ipn-row-actions{
  display:inline-flex;
  opacity:1;
  visibility:visible;
  gap:4px;
}
.ipn-trademark .ipn-row-action{
  opacity:1 !important;
  visibility:visible !important;
  color:#445064 !important;
  background:#f0f3f8;
  border:1px solid #d9dfe9;
  border-radius:8px;
  width:32px;
  height:32px;
}
.ipn-trademark .ipn-row-action:hover{
  background:#e7edf6;
  color:var(--ipn-brand, #2f62c4) !important;
}
.ipn-trademark .ipn-row-action--danger:hover{
  background:#fdeaea;
  color:#cf3b3b !important;
  border-color:#f5c2c2;
}
.ipn-trademark .ipn-row-action .material-symbols-rounded{
  font-size:18px;
  line-height:1;
}
.ipn-trademark-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-trademark-filters .ipn-field--grow{ flex:1 1 240px; min-width:220px; }
.ipn-trademark-filters .ipn-secure-filters__actions{
  margin-left:0;
  flex:0 0 auto;
  gap:8px;
}
.ipn-trademark-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}

@media (max-width:768px){
  .ipn-trademark-filters{
    flex-direction:column;
    align-items:stretch;
    gap:12px;
  }
  .ipn-trademark-filters .ipn-field,
  .ipn-trademark-filters .ipn-field--grow{
    width:100%;
    min-width:0;
    flex:1 1 auto;
  }
  .ipn-trademark-filters .ipn-secure-filters__actions{
    width:100%;
    display:flex;
    gap:8px;
  }
  .ipn-trademark-filters .ipn-secure-filters__actions .ipn-btn{
    flex:1 1 auto;
    width:auto;
  }
}

.ipn-trademark-detail__preview{
  display:inline-flex;
  border:1px solid #e2e7ef;
  border-radius:10px;
  overflow:hidden;
  background:#fff;
  max-width:250px;
}
.ipn-trademark-detail__preview img{
  display:block;
  max-width:100%;
  height:auto;
}

/* AV: 2026-08-20: ABM gen?rico configuration (Empaques / Materiales / L?neas / ?) ? scope .ipn-config-abm. */
.ipn-config-abm-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-config-abm-filters .ipn-field--grow{ flex:1 1 240px; min-width:220px; }
/* AV: 2026-08-27: Desktop ? input + ?Mostrar deshabilitadas? + Buscar en una fila (#89). */
@media (min-width:701px){
  .ipn-config-abm-filters{
    flex-wrap:nowrap;
  }
  .ipn-config-abm-filters .ipn-field--grow{
    flex:1 1 auto;
    min-width:0;
  }
}
.ipn-config-abm-filters .ipn-secure-filters__actions{
  margin-left:0;
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:8px;
}
.ipn-config-abm-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
/* AV: 2026-08-27: Baseline com?n checkbox ?Mostrar deshabilitados? + Buscar (#77, moduleID 95/523). */
.ipn-config-abm-filters__deleted{
  flex:0 0 auto;
  margin:0;
  align-self:flex-end;
  min-height:42px;
  display:flex;
  align-items:center;
  white-space:nowrap;
}
.ipn-config-abm__deleted{
  color:#b42318;
  text-decoration:line-through;
}
.ipn-config-abm .ipn-row-action.is-disabled{
  opacity:0.35;
  cursor:not-allowed;
  pointer-events:none;
  filter:grayscale(1);
}
/* AV: 2026-08-27: gap listado tras filtros sin style inline (#82). */
.ipn-config-abm > form + .ipn-card{ margin-top:16px; }
.ipn-config-abm-delete__hint{
  margin:8px 0 0;
  font-size:13px;
  color:#5b6573;
  line-height:1.45;
}
@media (max-width:700px){
  /* AV: 2026-08-27: No pelear el shell mobile (flex:0 0 auto + align center en desktop) (#91). */
  .ipn-config-abm-filters .ipn-secure-filters__actions{
    flex:1 1 auto;
    width:100%;
    align-items:stretch;
    flex-direction:column;
  }
  .ipn-config-abm-filters .ipn-secure-filters__actions .ipn-btn{
    width:100%;
  }
  .ipn-config-abm-filters__deleted{
    width:100%;
    min-height:var(--ipn-touch-min,44px);
    white-space:normal;
    align-self:stretch;
  }
  .ipn-config-abm-filters__deleted > span{
    min-width:0;
    flex:1 1 auto;
    overflow-wrap:anywhere;
    line-height:1.35;
  }
}

/* AV: 2026-08-25: nombre al lateral del titulo (nowrap + ellipsis; sin salto de linea). */
.ipn-trademark-form .ipn-page-title{
  display:flex;
  flex-wrap:nowrap;
  align-items:baseline;
  gap:8px;
  min-width:0;
  max-width:100%;
}
.ipn-trademark-form .ipn-page-head__text{
  min-width:0;
}
.ipn-trademark-form .ipn-page-title__label{
  flex:0 0 auto;
  white-space:nowrap;
}
.ipn-trademark-form .ipn-page-title__entity{
  flex:1 1 auto;
  min-width:0;
  font-size:16px;
  font-weight:600;
  color:var(--ipn-text-2, #55606f);
  line-height:1.3;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ipn-trademark-form__image{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:16px;
}
.ipn-trademark-form__preview{
  max-width:250px;
  max-height:180px;
  border-radius:10px;
  border:1px solid var(--ipn-hairline, #e6e9ef);
  background:#fff;
}
.ipn-trademark-form__image-actions{
  display:flex;
  flex-direction:column;
  gap:8px;
  align-items:flex-start;
}
.ipn-trademark-form__deleting{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:13px;
  color:var(--ipn-text-3);
}

/* AV: 2026-08-20: Sectores de stock + distribuci?n ? listado / detalle / form / borrado (scope .ipn-store-sector*). */
.ipn-store-sector-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-store-sector-filters .ipn-field--grow{ flex:1 1 240px; min-width:220px; }
.ipn-store-sector-filters .ipn-field .ipn-select,
.ipn-store-sector-filters .ipn-field select.ipn-select{
  min-width:220px;
}
.ipn-store-sector-filters .ipn-secure-filters__actions{
  margin-left:0;
  flex:0 0 auto;
  gap:8px;
}
.ipn-store-sector-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
/* AV: 2026-08-27: #100/#98 ? card visible (no clippea scroll-x); patr?n #89. */
.ipn-store-sector .ipn-card--table{
  overflow:visible;
}
/* AV: 2026-08-27: Listado distribuci?n ? scroll-x en grilla (issue #67). */
.ipn-store-sector{
  min-width:0;
  max-width:100%;
}
.ipn-store-sector .ipn-card--table,
.ipn-store-sector .ipn-table-wrap{
  max-width:100%;
  min-width:0;
}
.ipn-store-sector .ipn-card--table:not(:has(> .ipn-pager)) > .ipn-table-wrap,
.ipn-store-sector .ipn-table-wrap{
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-store-sector .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
@media (max-width:899px){
  .ipn-store-sector .ipn-table--list thead th{
    position:static;
    top:auto;
  }
}

/* AV: 2026-08-21: Grupos de empaques (421) ? listado / detalle / form / borrado. */
/* AV: 2026-08-27: #98 ? no overflow:hidden en card de tabla (clippea scroll-x; patr?n #89). */
/* AV: 2026-08-26: Layout + grilla ? no ensanchar shell; scroll-x en tablas anchas. */
.ipn-pkg-groups{
  min-width:0;
  max-width:100%;
}
.ipn-pkg-groups .ipn-card--table,
.ipn-pkg-groups .ipn-table-wrap{
  max-width:100%;
  min-width:0;
}
.ipn-pkg-groups .ipn-card--table{
  overflow:visible;
}
.ipn-pkg-groups .ipn-table-wrap{
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-pkg-groups .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-pkg-groups-detail .ipn-detail-main,
.ipn-pkg-groups-detail .ipn-detail-layout,
.ipn-pkg-groups-detail .ipn-card,
.ipn-pkg-groups-detail .ipn-card__body,
.ipn-pkg-groups-detail .ipn-dl{
  min-width:0;
  max-width:100%;
}
.ipn-pkg-groups-detail .ipn-dl__value{
  flex:1 1 0;
  min-width:0;
  white-space:normal;
  overflow:visible;
  text-overflow:unset;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.ipn-pkg-groups-detail .ipn-dl__label{
  min-width:0;
}
.ipn-pkg-groups-detail .ipn-card__title{
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ipn-pkg-groups-detail .ipn-audit__item > span{
  min-width:0;
  overflow-wrap:anywhere;
}
/* AV: 2026-08-27: Detalle ? scroll-x equivalencias (#65/#98); card visible, wrap scrollea. */
.ipn-pkg-groups-detail .ipn-detail-main > .ipn-card--table{
  overflow:visible;
}
.ipn-pkg-groups-detail .ipn-table-wrap{
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-pkg-groups-detail .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-pkg-groups-detail .ipn-card--table .ipn-table--list th,
.ipn-pkg-groups-detail .ipn-card--table .ipn-table--list td{
  white-space:nowrap;
}
/* AV: 2026-08-27: Form ? misma scroll-x en equivalencias (#98). */
.ipn-pkg-groups-form .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-pkg-groups-form .ipn-table-wrap .ipn-table{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
@media (max-width:899px){
  .ipn-pkg-groups .ipn-table--list thead th{
    position:static;
    top:auto;
  }
  /* AV: 2026-08-27: #98 ? sin sticky left en Nombre (bloquea scroll-x). */
  .ipn-pkg-groups .ipn-table--list .ipn-table__th-desc,
  .ipn-pkg-groups .ipn-table--list .ipn-table__desc{
    position:static;
    left:auto;
    z-index:auto;
    background:transparent;
  }
}
@media (max-width:700px){
  .ipn-shell--nav .ipn-shell__body > .ipn-pkg-groups,
  .ipn-shell--nav .ipn-shell__body > form.ipn-pkg-groups{
    padding:16px 16px 0 !important;
  }
  .ipn-pkg-groups > .ipn-breadcrumb{
    font-size:12px;
    flex-wrap:wrap;
    align-items:center;
    row-gap:2px;
    min-width:0;
    margin-bottom:10px;
  }
  .ipn-pkg-groups > .ipn-breadcrumb a,
  .ipn-pkg-groups > .ipn-breadcrumb b{
    min-width:0;
    overflow-wrap:anywhere;
    line-height:1.35;
  }
  .ipn-pkg-groups > .ipn-breadcrumb .material-symbols-rounded{
    font-size:14px;
    flex-shrink:0;
  }
  .ipn-pkg-groups-detail .ipn-page-head__text{
    min-width:0;
  }
  .ipn-pkg-groups-detail .ipn-page-title{
    overflow-wrap:anywhere;
    line-height:1.25;
  }
  .ipn-pkg-groups-detail .ipn-page-subtitle{
    overflow-wrap:anywhere;
    line-height:1.35;
  }
  .ipn-pkg-groups-detail .ipn-audit{
    flex-direction:column;
    gap:10px;
  }
  /* AV: 2026-08-27: #98 ? padding compacto; nowrap + scroll-x (sin wrap que anula scroll). */
  .ipn-pkg-groups .ipn-table--list thead th{
    font-size:10px;
    line-height:1.25;
    padding:8px 10px;
    letter-spacing:.04em;
  }
  .ipn-pkg-groups .ipn-table--list tbody td{
    font-size:12px;
    padding:8px 10px;
  }
  .ipn-pkg-groups-detail .ipn-audit__item{
    flex:1 1 100%;
  }
}
.ipn-pkg-groups-form .ipn-input--sm{
  width:88px;
  max-width:100%;
  text-align:center;
}
.ipn-pkg-groups-form__add-row{
  display:flex;
  justify-content:flex-end;
  margin-top:12px;
}
.ipn-pkg-groups-eq{
  display:inline-flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  justify-content:center;
}
.ipn-pkg-groups-eq__unit{
  font-size:13px;
  color:var(--ipn-text-3, #5a6f88);
}

/* AV: 2026-08-20: Categor?as de atributos ? listado / detalle / form / borrado (scope .ipn-attr-category*). */
/* AV: 2026-08-27: Listado sin pager ? overflow:hidden global clippea scroll-x (issue #80). */
.ipn-attr-category{
  min-width:0;
  max-width:100%;
}
.ipn-attr-category .ipn-card--table,
.ipn-attr-category .ipn-table-wrap{
  max-width:100%;
  min-width:0;
}
.ipn-attr-category .ipn-card--table:not(:has(> .ipn-pager)) > .ipn-table-wrap,
.ipn-attr-category .ipn-table-wrap{
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-attr-category .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
@media (max-width:899px){
  .ipn-attr-category .ipn-table--list thead th{
    position:static;
    top:auto;
  }
}
/* AV: 2026-08-26: Detalle ? nombre gris junto al titulo (issue #42). */
.ipn-attr-category-detail .ipn-page-head__text{ min-width:0; }
.ipn-attr-category-detail .ipn-page-title{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:8px;
  min-width:0;
}
.ipn-attr-category-detail .ipn-page-title__label{
  flex:0 0 auto;
  white-space:nowrap;
}
.ipn-attr-category-detail .ipn-page-title__entity{
  flex:1 1 auto;
  min-width:0;
  font-size:16px;
  font-weight:600;
  color:var(--ipn-text-2, #55606f);
  line-height:1.3;
  overflow-wrap:anywhere;
}
@media (max-width:767px){
  /* AV: 2026-08-26: Breadcrumb compacto en rutas largas (issue #42). */
  .ipn-attr-category > .ipn-breadcrumb{
    font-size:10px;
    line-height:1.35;
    margin-bottom:10px;
  }
  .ipn-attr-category > .ipn-breadcrumb a,
  .ipn-attr-category > .ipn-breadcrumb b{
    overflow-wrap:anywhere;
  }
  .ipn-attr-category > .ipn-breadcrumb .material-symbols-rounded{
    font-size:13px;
  }
}

/* AV: 2026-08-20: Actividades IIBB ? listado / form / borrado (scope .ipn-iibb-activity*). */
.ipn-iibb-activity-form .ipn-field--sm .ipn-input{
  max-width:160px;
}
.ipn-iibb-activity-form__hint{
  margin:0 0 14px;
  font-size:13.5px;
  color:var(--ipn-muted, #5b6b80);
  line-height:1.45;
}
.ipn-iibb-activity-form .ipn-form-section{ margin-bottom:18px; }
.ipn-iibb-activity-form .ipn-form-section:last-of-type{ margin-bottom:4px; }
.ipn-iibb-activity-form__jurisdictions{ margin-top:4px; }
.ipn-iibb-activity-form__th-alicuota{ width:140px; }
.ipn-iibb-activity-form__jur-row{
  margin:0;
  align-items:center;
  gap:10px;
}
.ipn-iibb-activity-form__jur-row [name="jurisdictionName"]{
  cursor:pointer;
  user-select:none;
}
.ipn-iibb-activity-form__alicuota-cell{ white-space:nowrap; }
.ipn-iibb-activity-form__alicuota{
  display:inline-flex;
  align-items:center;
  gap:6px;
  max-width:140px;
}
.ipn-iibb-activity-form__alicuota .ipn-input{
  width:88px;
  max-width:88px;
  text-align:right;
}
.ipn-iibb-activity-form__pct{
  font-size:13px;
  color:var(--ipn-muted, #5b6b80);
  font-weight:500;
}

/* AV: 2026-08-20: Condiciones comerciales ? solo dominio (flags / deadlines / form).
   AV: 2026-08-30: #133 ? tabs/card/disabled/tablas detalle ? CSS global; no duplicar bajo m?dulo. */
.ipn-commercial-cond .ipn-notice + .ipn-card{ margin-top:16px; }
.ipn-commercial-cond__flag{
  font-size:20px;
  line-height:1;
  vertical-align:middle;
}
.ipn-commercial-cond__flag--ok{ color:#039855; }
.ipn-commercial-cond__flag--no{ color:#98a2b3; }
.ipn-commercial-cond-panel.is-hidden{ display:none !important; }
.ipn-commercial-cond-deadlines{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.ipn-commercial-cond-deadline-row{ margin:0; }
.ipn-commercial-cond-form .ipn-field--sm .ipn-input,
.ipn-commercial-cond-form .ipn-field--sm .ipn-select{
  max-width:160px;
}
.ipn-commercial-cond-form .ipn-form-section{ margin-top:20px; }

/* AV: 2026-08-20: Transportes ? listado / detalle / form / borrado (scope .ipn-transport*). */
.ipn-transport form + .ipn-card{ margin-top:16px; }
.ipn-transport-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-transport-filters .ipn-field--grow{ flex:1 1 240px; min-width:220px; }
/* AV: 2026-09-08: Buscar a la derecha en desktop (#134); pager usa CSS global (dentro del card). */
.ipn-transport-filters .ipn-secure-filters__actions{
  margin-left:auto;
  flex:0 0 auto;
  gap:8px;
}
.ipn-transport-filters .ipn-btn{
  white-space:nowrap;
}
@media (max-width:700px){
  .ipn-transport-filters .ipn-secure-filters__actions{
    margin-left:0;
    width:100%;
  }
}
.ipn-transport-form .ipn-field #jurisdictionID{
  max-width:100%;
  width:100%;
  min-height:40px;
  border:1px solid var(--ipn-border, #d0d5dd);
  border-radius:8px;
  padding:8px 12px;
  font:inherit;
  background:#fff;
  box-sizing:border-box;
}
/* AV: 2026-08-27: scroll-x mobile (#92) ? overflow:hidden del wrap clippeaba la grilla. */
.ipn-transport{
  min-width:0;
  max-width:100%;
}
.ipn-transport .ipn-card--table,
.ipn-transport .ipn-table-wrap{
  max-width:100%;
  min-width:0;
}
.ipn-transport .ipn-card--table:not(:has(> .ipn-pager)) > .ipn-table-wrap,
.ipn-transport .ipn-table-wrap{
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-transport .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
@media (max-width:899px){
  .ipn-transport .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-transport .ipn-table--list .ipn-table__th-desc,
  .ipn-transport .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}

/* AV: 2026-08-27: B2C transports ? scroll-x mobile (#108), patr?n #89/#92. */
.ipn-b2c-transports{
  min-width:0;
  max-width:100%;
}
.ipn-b2c-transports .ipn-card--table{
  overflow:visible;
  max-width:100%;
  min-width:0;
}
.ipn-b2c-transports .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-b2c-transports .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
@media (max-width:899px){
  .ipn-b2c-transports .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-b2c-transports .ipn-table--list .ipn-table__th-desc,
  .ipn-b2c-transports .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}



/* AV: 2026-09-04: #347 ? B2C languages (Env?os internacionales / Idiomas); scroll-x mobile (patr?n #89). */
.ipn-b2c-languages{
  min-width:0;
  max-width:100%;
}
.ipn-b2c-languages .ipn-card--table{
  overflow:visible;
  max-width:100%;
  min-width:0;
}
.ipn-b2c-languages .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-b2c-languages .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
@media (max-width:899px){
  .ipn-b2c-languages .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-b2c-languages .ipn-table--list .ipn-table__th-desc,
  .ipn-b2c-languages .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}

/* AV: 2026-09-04: #385 ? B2C regions (Env?os internacionales / Zonas); scroll-x mobile (patr?n #89). */
.ipn-b2c-regions{
  min-width:0;
  max-width:100%;
}
.ipn-b2c-regions .ipn-card--table{
  overflow:visible;
  max-width:100%;
  min-width:0;
}
.ipn-b2c-regions .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-b2c-regions .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-b2c-regions-filters .ipn-field--grow{ flex:1 1 240px; min-width:220px; }
.ipn-b2c-regions-filters .ipn-secure-filters__actions{
  margin-left:auto;
}
.ipn-b2c-regions-filters .ipn-btn{
  white-space:nowrap;
}
.ipn-b2c-regions-form .ipn-field{ min-width:0; }
.ipn-b2c-regions-form .ipn-input,
.ipn-b2c-regions-form .ipn-select{
  max-width:100%;
}
.ipn-b2c-regions__cities{
  margin-top:4px;
}
.ipn-b2c-regions__cities .ipn-table-wrap{
  border:1px solid var(--ipn-border, #e6ebf2);
  border-radius:10px;
}
.ipn-b2c-regions-detail .ipn-card--table{
  margin-top:16px;
}
@media (max-width:899px){
  .ipn-b2c-regions .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-b2c-regions .ipn-table--list .ipn-table__th-desc,
  .ipn-b2c-regions .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}
@media (max-width:700px){
  .ipn-b2c-regions-filters{
    flex-direction:column;
    align-items:stretch;
  }
  .ipn-b2c-regions-filters .ipn-field,
  .ipn-b2c-regions-filters .ipn-field--grow{
    flex:1 1 auto;
    min-width:0;
    width:100%;
  }
  .ipn-b2c-regions-filters .ipn-secure-filters__actions{
    margin-left:0;
    width:100%;
  }
  .ipn-b2c-regions-filters .ipn-secure-filters__actions .ipn-btn{
    width:100%;
  }
  .ipn-b2c-regions .ipn-table--list th,
  .ipn-b2c-regions .ipn-table--list td{
    padding:8px 10px;
  }
}

/* AV: 2026-09-04: #384 ? B2C cities (Env?os internacionales / Localidades); filtros + scroll-x mobile (#89). */
.ipn-b2c-cities{
  min-width:0;
  max-width:100%;
}
.ipn-b2c-cities-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-b2c-cities-filters .ipn-field{
  flex:1 1 180px;
  min-width:160px;
}
.ipn-b2c-cities-filters .ipn-secure-filters__actions{
  margin-left:auto;
  flex:0 0 auto;
  gap:8px;
}
.ipn-b2c-cities-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
.ipn-b2c-cities .ipn-card--table{
  overflow:visible;
  max-width:100%;
  min-width:0;
}
.ipn-b2c-cities .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-b2c-cities .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-b2c-cities-form .ipn-field{ min-width:0; }
@media (max-width:700px){
  .ipn-b2c-cities-filters{
    flex-direction:column;
    align-items:stretch;
  }
  .ipn-b2c-cities-filters .ipn-field{
    flex:1 1 auto;
    min-width:0;
    width:100%;
  }
  .ipn-b2c-cities-filters .ipn-secure-filters__actions{
    margin-left:0;
    width:100%;
  }
  .ipn-b2c-cities-filters .ipn-secure-filters__actions .ipn-btn{
    width:100%;
  }
}
@media (max-width:899px){
  .ipn-b2c-cities .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-b2c-cities .ipn-table--list .ipn-table__th-desc,
  .ipn-b2c-cities .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}


/* AV: 2026-09-04: #346 ? B2C shippingRules listado/detalle; scroll-x mobile (patr?n #89).
   AV: 2026-09-09: #503 ? tabs filtros 4 esquinas; badge DESHABILITADA con aire; form tabs flush. */
.ipn-b2c-shipping-rules{
  min-width:0;
  max-width:100%;
}
.ipn-b2c-shipping-rules .ipn-card--table{
  overflow:visible;
  max-width:100%;
  min-width:0;
}
.ipn-b2c-shipping-rules .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-b2c-shipping-rules .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-b2c-shipping-rules .ipn-b2c-shipping-rules-filters .ipn-tabs{
  margin-bottom:14px;
  border:1px solid var(--ipn-hairline, #e2e7ef);
  border-radius:var(--ipn-radius-card, 12px);
  box-shadow:none;
}
.ipn-b2c-shipping-rules .ipn-b2c-shipping-rules-filters .ipn-secure-filters__actions{
  margin-left:auto;
}
.ipn-b2c-shipping-rules__types{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));
  gap:8px 16px;
  margin:12px 0 16px;
}
.ipn-b2c-shipping-rules__types .ipn-check-row{
  white-space:normal;
  align-items:flex-start;
  max-width:100%;
}
.ipn-b2c-shipping-rules__types .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ipn-b2c-shipping-rules__row--deleted td,
.ipn-b2c-shipping-rules__row--deleted .ipn-table__desc-link{
  color:#c62828;
  text-decoration:line-through;
}
.ipn-b2c-shipping-rules__badge-deleted{
  display:inline-block;
  margin-left:10px;
  color:#c62828;
  font-size:12px;
  font-weight:600;
  text-decoration:none;
  vertical-align:middle;
}
.ipn-b2c-shipping-rules__flag{
  font-size:20px;
  vertical-align:middle;
}
.ipn-b2c-shipping-rules__flag--yes{ color:#2e7d32; }
.ipn-b2c-shipping-rules__flag--no{ color:#9aa5b5; }
.ipn-b2c-shipping-rules-detail .ipn-b2c-shipping-rules__stores{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin:0;
  padding:0;
  list-style:none;
}
.ipn-b2c-shipping-rules-detail .ipn-b2c-shipping-rules__stores li{
  padding:10px 12px;
  border:1px solid var(--ipn-border, #e6ebf2);
  border-radius:10px;
  background:var(--ipn-surface, #fff);
}
/* AV: 2026-09-09: #503 ? aire entre aviso info y checkbox (confirm/delete). */
.ipn-b2c-shipping-rules-confirm .ipn-card__body > .ipn-notice + .ipn-check-row,
.ipn-b2c-shipping-rules-delete .ipn-card__body > .ipn-notice + .ipn-check-row{
  margin-top:16px;
}
@media (max-width:899px){
  .ipn-b2c-shipping-rules .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-b2c-shipping-rules .ipn-table--list .ipn-table__th-desc,
  .ipn-b2c-shipping-rules .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
  .ipn-b2c-shipping-rules .ipn-b2c-shipping-rules-filters .ipn-secure-filters__actions{
    margin-left:0;
    width:100%;
  }
}
@media (max-width:700px){
  .ipn-b2c-shipping-rules__types{
    grid-template-columns:1fr;
  }
}

/* AV: 2026-09-04: #386 ? form alta/edici?n shippingRules
   AV: 2026-09-09: #503 ? card tras tabs sin radio superior (wrappers #info/#permission). */
.ipn-b2c-shipping-rules-form .ipn-field{
  min-width:0;
}
.ipn-b2c-shipping-rules-form .ipn-tabs + #info > .ipn-card,
.ipn-b2c-shipping-rules-form .ipn-tabs ~ #permission > .ipn-card{
  margin-top:0;
  border-top-left-radius:0;
  border-top-right-radius:0;
}
.ipn-b2c-shipping-rules-form .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
}
.ipn-b2c-shipping-rules-form .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ipn-b2c-shipping-rules-form .ipn-b2c-shipping-rules__stores-table{
  width:100%;
  min-width:640px;
}
.ipn-b2c-shipping-rules-form .ipn-b2c-shipping-rules__weight{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
}
.ipn-b2c-shipping-rules-form .ipn-b2c-shipping-rules__weight .ipn-input{
  width:100px;
  max-width:100%;
}
.ipn-b2c-shipping-rules-form .ipn-b2c-shipping-rules__datetime{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
}
.ipn-b2c-shipping-rules-form .ipn-b2c-shipping-rules__datetime .ipn-datepicker{
  flex:1 1 160px;
  min-width:0;
}
.ipn-b2c-shipping-rules-form .ipn-b2c-shipping-rules__datetime .ipn-select{
  width:auto;
  min-width:88px;
}
.ipn-b2c-shipping-rules-form .ipn-b2c-shipping-rules__help{
  font-size:18px;
  vertical-align:middle;
  cursor:help;
  color:var(--ipn-muted, #6b7280);
  margin-left:4px;
}
.ipn-b2c-shipping-rules-form .ipn-b2c-shipping-rules__ship-type-info{
  margin:8px 0 16px;
  padding:10px 12px;
  border-radius:8px;
  background:var(--ipn-surface-2, #f3f4f6);
  font-size:14px;
  line-height:1.4;
}
.ipn-b2c-shipping-rules-form .ipn-b2c-shipping-rules__access-types{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-bottom:16px;
}
.ipn-b2c-shipping-rules-form .ipn-b2c-shipping-rules__frontend-label{
  font-size:14px;
  line-height:1.4;
}
.ipn-b2c-shipping-rules-form .ipn-b2c-shipping-rules__stores-block{
  margin-top:16px;
}
.ipn-b2c-shipping-rules-form select.is-disabled,
.ipn-b2c-shipping-rules-form .ipn-select.is-disabled{
  opacity:0.7;
  cursor:not-allowed;
  background-color:var(--ipn-surface-2, #f0f0f0);
}
body:has(.ipn-b2c-shipping-rules-form) .flatpickr-calendar{
  font-family:var(--ipn-font);
}
.ipn-b2c-shipping-rules-form .cleditorMain{
  max-width:100%;
}
.ipn-b2c-shipping-rules-form .ipn-field-hint{
  display:block;
  margin-top:4px;
  font-size:12px;
  color:var(--ipn-muted, #6b7280);
}

/* AV: 2026-09-04: #387 - filtro por CP: dual-list + checkbox wrap + panel.
   AV: 2026-09-09: #503 ? multi-select sin chevron fantasma de .ipn-select. */
.ipn-b2c-shipping-rules-zip .ipn-field{
  min-width:0;
}
.ipn-b2c-shipping-rules-zip .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
}
.ipn-b2c-shipping-rules-zip .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
}
.ipn-b2c-shipping-rules-zip .ipn-b2c-shipping-rules__zip-panel{
  margin-top:16px;
  display:flex;
  flex-direction:column;
  gap:16px;
}
.ipn-b2c-shipping-rules-zip .ipn-b2c-shipping-rules__xfer{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  gap:16px;
  align-items:end;
}
.ipn-b2c-shipping-rules-zip .ipn-b2c-shipping-rules__xfer-col{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.ipn-b2c-shipping-rules-zip .ipn-b2c-shipping-rules__xfer-actions{
  display:flex;
  flex-direction:column;
  gap:8px;
  align-items:stretch;
  padding-bottom:4px;
}
.ipn-b2c-shipping-rules-zip .ipn-b2c-shipping-rules__xfer-select{
  height:300px;
  width:100%;
  min-height:220px;
  padding-right:10px;
  background-image:none;
}
.ipn-b2c-shipping-rules-zip .ipn-b2c-shipping-rules__xfer-city{
  padding-left:10px;
  font-size:70%;
}
@media (max-width:700px){
  .ipn-b2c-shipping-rules-zip .ipn-b2c-shipping-rules__xfer{
    grid-template-columns:1fr;
    align-items:stretch;
  }
  .ipn-b2c-shipping-rules-zip .ipn-b2c-shipping-rules__xfer-actions{
    flex-direction:row;
    flex-wrap:wrap;
    justify-content:center;
  }
  .ipn-b2c-shipping-rules-zip .ipn-b2c-shipping-rules__xfer-select{
    height:220px;
  }
}

/* AV: 2026-09-04: #348 - B2C operativas OCA; filtros + scroll-x mobile (patron #89). */
.ipn-b2c-operativas{
  min-width:0;
  max-width:100%;
}
.ipn-b2c-operativas-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-b2c-operativas-filters .ipn-field--grow{ flex:1 1 240px; min-width:220px; }
.ipn-b2c-operativas-filters .ipn-secure-filters__actions{
  margin-left:auto;
  flex:0 0 auto;
  gap:8px;
}
.ipn-b2c-operativas-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
.ipn-b2c-operativas .ipn-card--table{
  overflow:visible;
  max-width:100%;
  min-width:0;
}
.ipn-b2c-operativas .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-b2c-operativas .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-b2c-operativas-form .ipn-field{ min-width:0; }
.ipn-b2c-operativas-form__flags{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-width:0;
}
.ipn-b2c-operativas-form .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
  box-sizing:border-box;
}
.ipn-b2c-operativas-form .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
@media (max-width:700px){
  .ipn-b2c-operativas-filters{
    flex-direction:column;
    align-items:stretch;
    gap:12px;
  }
  .ipn-b2c-operativas-filters .ipn-field,
  .ipn-b2c-operativas-filters .ipn-field--grow{
    width:100%;
    min-width:0;
    flex:1 1 auto;
  }
  .ipn-b2c-operativas-filters .ipn-secure-filters__actions{
    margin-left:0;
    width:100%;
    display:flex;
    gap:8px;
  }
  .ipn-b2c-operativas-filters .ipn-secure-filters__actions .ipn-btn{
    flex:1 1 auto;
    width:100%;
  }
}
@media (max-width:899px){
  .ipn-b2c-operativas .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-b2c-operativas .ipn-table--list .ipn-table__th-desc,
  .ipn-b2c-operativas .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}

/* AV: 2026-09-04: #335 - B2C cacheUpdaterJobs listado; scroll-x mobile (patron #89). */
.ipn-b2c-cache-jobs{
  min-width:0;
  max-width:100%;
}
.ipn-b2c-cache-jobs .ipn-card--table{
  overflow:visible;
  max-width:100%;
  min-width:0;
}
.ipn-b2c-cache-jobs .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-b2c-cache-jobs .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
@media (max-width:899px){
  .ipn-b2c-cache-jobs .ipn-table--list thead th{ position:static; top:auto; }
}
/* AV: 2026-09-04: #379 - secure/cacheUpdaterJobs; sin style embebido; scroll-x (#89). */
/* AV: 2026-09-09: #507 - no pisar max-width de .ipn-secure__body (1440); solo min-width:0. */
.ipn-cuj{
  min-width:0;
}
.ipn-cuj .ipn-cuj-filters-card{
  margin-bottom:16px;
}
.ipn-cuj .ipn-secure-filters .ipn-field{
  flex:1 1 200px;
  min-width:200px;
}
.ipn-cuj .ipn-card--table{
  overflow:visible;
  max-width:100%;
  min-width:0;
}
.ipn-cuj .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-cuj .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-cuj .ipn-cuj-th-id{
  width:60px;
  text-align:center;
}
.ipn-cuj .ipn-cuj-th-client{
  width:80px;
  text-align:center;
}
.ipn-cuj .ipn-cuj-th-actions,
.ipn-cuj .ipn-cuj-td-actions{
  text-align:right;
}
.ipn-cuj .ipn-cuj-td-center{
  text-align:center;
}
@media (max-width:899px){
  .ipn-cuj .ipn-table--list thead th{ position:static; top:auto; }
}
/* AV: 2026-09-04: #364 - B2C Configuration/settings listado/form/delete; scroll-x (#89); fila no definida. */
.ipn-b2c-settings{
  min-width:0;
  max-width:100%;
}
.ipn-b2c-settings .ipn-card--table{
  overflow:visible;
  max-width:100%;
  min-width:0;
}
.ipn-b2c-settings .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-b2c-settings .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
/* AV: 2026-09-09: #508 - Descripcion/Valor con max-width+ellipsis (nowrap global no debe empujar Acciones). */
.ipn-b2c-settings__th-id{ width:88px; }
.ipn-b2c-settings__th-desc,
.ipn-b2c-settings__desc{
  max-width:360px;
  width:360px;
}
.ipn-b2c-settings__desc{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ipn-b2c-settings__th-value,
.ipn-b2c-settings__value{
  max-width:280px;
  width:280px;
}
.ipn-b2c-settings__row--undefined td{
  background:#fff7f7;
}
.ipn-b2c-settings__value{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ipn-b2c-settings-form .ipn-field{ min-width:0; }
.ipn-b2c-settings-form .ipn-input,
.ipn-b2c-settings-form .ipn-textarea{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
.ipn-b2c-settings-form .ipn-input:disabled{
  opacity:.72;
  cursor:not-allowed;
}
.ipn-b2c-settings-delete .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
  box-sizing:border-box;
  margin-top:12px;
}
.ipn-b2c-settings-delete .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
@media (max-width:899px){
  .ipn-b2c-settings .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-b2c-settings .ipn-table--list .ipn-table__th-desc,
  .ipn-b2c-settings .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
  .ipn-b2c-settings__row--undefined td{
    background:#fff7f7;
  }
}
/* AV: 2026-09-04: #396 ? B2C stockCommittedStorePriority; DnD SortableJS; scroll-x (#89). */
.ipn-b2c-scp{
  min-width:0;
  max-width:100%;
}
.ipn-b2c-scp .ipn-card--table{
  overflow:visible;
  max-width:100%;
  min-width:0;
}
.ipn-b2c-scp .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-b2c-scp .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-b2c-scp .is-hidden,
.ipn-b2c-scp [hidden]{
  display:none !important;
}
.ipn-b2c-scp.is-editing #dragNdrop tbody tr[name="tr_store"]{
  cursor:grab;
}
.ipn-b2c-scp.is-editing #dragNdrop tbody tr[name="tr_store"].sortable-chosen{
  cursor:grabbing;
}
.ipn-b2c-scp__row--flash td{
  background:#d4ffaa;
  transition:background-color .5s ease;
}
.ipn-b2c-scp .ipn-b2c-scp__low-col .ipn-check-row{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  white-space:nowrap;
  margin:0;
}
.ipn-b2c-scp .ipn-b2c-scp__priority-num{
  margin:0;
}
@media (max-width:899px){
  .ipn-b2c-scp .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-b2c-scp .ipn-table--list .ipn-table__th-desc,
  .ipn-b2c-scp .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}
/* AV: 2026-09-04: #363 ? B2C Configuration/settings/default (Sistema / e-commerce); cards por parametro. */
.ipn-b2c-sys-settings{
  min-width:0;
  max-width:100%;
}
.ipn-b2c-sys-settings__error.is-hidden,
.ipn-b2c-sys-settings__error[hidden]{
  display:none !important;
}
.ipn-b2c-sys-settings__list{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin:0 0 8px;
}
.ipn-b2c-sys-settings__rule{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:16px 18px;
  background:var(--ipn-surface, #fff);
  border:1px solid var(--ipn-hairline, #e2e7ef);
  border-radius:var(--ipn-radius-card, 12px);
  box-shadow:var(--ipn-shadow-card, 0 1px 2px rgba(18,39,64,.04));
  border-left:3px solid var(--ipn-brand, #1e60a2);
}
.ipn-b2c-sys-settings__rule--default{
  background:#fff8f8;
  border-left-color:var(--ipn-danger, #d92d20);
}
.ipn-b2c-sys-settings__rule-head{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:8px 12px;
}
.ipn-b2c-sys-settings__id{
  flex:0 0 auto;
  font-size:12px;
  font-weight:700;
  color:var(--ipn-text-3, #5b6b80);
  font-variant-numeric:tabular-nums;
  line-height:1.4;
  padding-top:2px;
}
.ipn-b2c-sys-settings__rule-title{
  flex:1 1 160px;
  min-width:0;
  margin:0;
  font-size:15px;
  font-weight:650;
  color:var(--ipn-text, #122740);
  line-height:1.3;
  /* AV: 2026-09-08: #482 - nombres sin espacios (OrderService.*) deben partir en mobile. */
  overflow-wrap:anywhere;
  word-break:break-word;
}
.ipn-b2c-sys-settings__rule-links{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 12px;
  margin-left:auto;
}
.ipn-b2c-sys-settings__link{
  appearance:none;
  border:0;
  background:transparent;
  padding:0;
  margin:0;
  font:inherit;
  font-size:12px;
  font-weight:650;
  color:var(--ipn-brand, #1e60a2);
  text-decoration:underline;
  cursor:pointer;
  white-space:nowrap;
}
.ipn-b2c-sys-settings__link--danger{
  color:var(--ipn-danger, #d92d20);
}
.ipn-b2c-sys-settings__rule-desc{
  margin:0;
  font-size:13px;
  color:var(--ipn-text-3, #5b6b80);
  line-height:1.45;
}
.ipn-b2c-sys-settings__rule-body{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
  margin-top:4px;
}
.ipn-b2c-sys-settings__rule-control{
  flex:1 1 220px;
  min-width:0;
  max-width:min(100%, 480px);
}
.ipn-b2c-sys-settings__rule-control .ipn-input{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
.ipn-b2c-sys-settings__rule-control .ipn-check-row{
  align-items:flex-start;
}
.ipn-b2c-sys-settings__rule-control .ipn-check-row > span{
  white-space:normal;
  overflow-wrap:anywhere;
}
.ipn-b2c-sys-settings__rule-body > .ipn-btn{
  flex:0 0 auto;
  margin-left:auto;
}
@media (max-width:700px){
  .ipn-b2c-sys-settings__rule-links{
    margin-left:0;
    width:100%;
  }
  .ipn-b2c-sys-settings__rule-control{
    max-width:100%;
    flex-basis:100%;
  }
  .ipn-b2c-sys-settings__rule-body > .ipn-btn{
    margin-left:0;
    width:100%;
  }
}

/* AV: 2026-09-04: #345 - B2C packaging listado / detalle / form; scroll-x (#89), filtros, fav, deleted. */
.ipn-b2c-packaging{
  min-width:0;
  max-width:100%;
}
.ipn-b2c-packaging-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-b2c-packaging-filters .ipn-field--grow{ flex:1 1 240px; min-width:220px; }
.ipn-b2c-packaging-filters .ipn-secure-filters__actions{
  margin-left:auto;
  flex:0 0 auto;
  gap:8px;
}
.ipn-b2c-packaging-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
.ipn-b2c-packaging .ipn-card--table{
  overflow:visible;
  max-width:100%;
  min-width:0;
}
.ipn-b2c-packaging .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-b2c-packaging .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-b2c-packaging__fav{
  font-size:18px;
  color:#c9a227;
  vertical-align:middle;
  margin-right:4px;
}
.ipn-b2c-packaging__row--deleted td,
.ipn-b2c-packaging__row--deleted .ipn-table__desc-link{
  color:#b42318 !important;
  text-decoration:line-through !important;
}
.ipn-b2c-packaging__badge-deleted{
  color:#b42318;
  font-size:0.85em;
  font-weight:600;
  margin-left:6px;
}
.ipn-b2c-packaging-form .ipn-field{ min-width:0; }
.ipn-b2c-packaging-form .ipn-input,
.ipn-b2c-packaging-form .ipn-select{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
@media (max-width:899px){
  .ipn-b2c-packaging .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-b2c-packaging .ipn-table--list .ipn-table__th-desc,
  .ipn-b2c-packaging .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}
@media (max-width:700px){
  .ipn-b2c-packaging-filters{
    flex-direction:column;
    align-items:stretch;
    gap:12px;
  }
  .ipn-b2c-packaging-filters .ipn-field,
  .ipn-b2c-packaging-filters .ipn-field--grow{
    width:100%;
    min-width:0;
    flex:1 1 auto;
  }
  .ipn-b2c-packaging-filters .ipn-secure-filters__actions{
    margin-left:0;
    width:100%;
    display:flex;
    gap:8px;
  }
  .ipn-b2c-packaging-filters .ipn-secure-filters__actions .ipn-btn{
    flex:1 1 auto;
    width:100%;
  }
  .ipn-b2c-packaging .ipn-table--list th,
  .ipn-b2c-packaging .ipn-table--list td{
    padding:8px 10px;
  }
}

/* AV: 2026-09-04: #356 ? B2C Categories listado/form/?rbol; scroll-x (#89); sin chrome global. */
.ipn-b2c-categories{
  min-width:0;
  max-width:100%;
}
.ipn-b2c-categories .ipn-card--table{
  overflow:visible;
  max-width:100%;
  min-width:0;
}
.ipn-b2c-categories .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-b2c-categories .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-b2c-categories__star-helper{
  font-size:18px;
  color:var(--ipn-brand, #c9a227);
  cursor:help;
  vertical-align:middle;
}
.ipn-b2c-categories__special{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  color:#c4c4c4;
  line-height:1;
}
.ipn-b2c-categories__special .material-symbols-rounded{
  font-size:20px;
  font-variation-settings:"FILL" 0, "wght" 400, "GRAD" 0, "opsz" 20;
}
.ipn-b2c-categories__special.active{
  color:#c9a227;
}
.ipn-b2c-categories__special.active .material-symbols-rounded{
  font-variation-settings:"FILL" 1, "wght" 500, "GRAD" 0, "opsz" 20;
}
.ipn-b2c-categories__flag{
  font-size:18px;
  vertical-align:middle;
}
.ipn-b2c-categories__flag--yes{ color:#1f7a52; }
.ipn-b2c-categories__flag--no{ color:#b42318; }
.ipn-b2c-categories__name{
  white-space:nowrap;
}
.ipn-b2c-categories__name-text{
  font-weight:600;
  vertical-align:middle;
}
.ipn-b2c-categories__tree-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  margin:0 4px 0 0;
  padding:0;
  border:0;
  background:transparent;
  color:var(--ipn-text, #1a1a1a);
  cursor:pointer;
  vertical-align:middle;
  border-radius:6px;
}
.ipn-b2c-categories__tree-btn:hover{
  background:rgba(0,0,0,.06);
}
.ipn-b2c-categories__tree-btn .material-symbols-rounded{
  font-size:20px;
}
.ipn-b2c-categories__tree-btn.is-leaf{
  visibility:hidden;
  pointer-events:none;
}
.ipn-b2c-categories__tree-btn.is-loading .material-symbols-rounded{
  animation:ipn-b2c-cat-spin 0.9s linear infinite;
}
@keyframes ipn-b2c-cat-spin{
  to{ transform:rotate(360deg); }
}
.ipn-b2c-categories-form .ipn-field{ min-width:0; }
.ipn-b2c-categories-form .ipn-input,
.ipn-b2c-categories-form .ipn-select,
.ipn-b2c-categories-form .ipn-textarea{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
.ipn-b2c-categories-form .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
  box-sizing:border-box;
}
.ipn-b2c-categories-form .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ipn-b2c-categories__flags{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-width:0;
  margin:0 0 16px;
}
.ipn-b2c-categories__dates{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  margin:0 0 16px;
}
.ipn-b2c-categories__dates.is-hidden{ display:none !important; }
.ipn-b2c-categories__dates .ipn-field{ min-width:160px; }
.ipn-b2c-categories__url-notice{ margin:12px 0 16px; }
.ipn-b2c-categories__url-row{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.ipn-b2c-categories__url{
  margin:0;
  font-style:italic;
  font-weight:600;
  word-break:break-all;
}
.ipn-b2c-categories__parent-path{
  display:block;
  margin-top:6px;
  font-size:13px;
  color:var(--ipn-muted, #667085);
}
.ipn-b2c-categories__suggested-list{
  margin:0 0 12px;
  padding-left:1.25rem;
}
.ipn-b2c-categories__suggested-list li{ margin:4px 0; }
.ipn-b2c-categories__suggested-link{ margin:0; }
.ipn-b2c-categories-form .ipn-form-section__title{
  margin:0 0 12px;
  font-size:1rem;
}
.ipn-b2c-categories-delete .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
  box-sizing:border-box;
}
.ipn-b2c-categories-delete .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
/* AV: 2026-09-04: #392 ? gesti?n de imagen de categor?a B2C. */
.ipn-b2c-categories-img__row{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:16px;
}
/* AV: 2026-09-09: #517 ? wrap + img visibles (display/object-fit; patr?n companies). */
.ipn-b2c-categories-img__preview-wrap{
  display:inline-block;
  max-width:100%;
  padding:8px;
  border-radius:10px;
  border:1px solid var(--ipn-hairline, #e6e9ef);
  background:#fff;
}
.ipn-b2c-categories-img__preview{
  display:block;
  max-width:370px;
  max-height:200px;
  width:auto;
  height:auto;
  object-fit:contain;
  border-radius:6px;
  background:#fff;
}
.ipn-b2c-categories-img__actions{
  display:flex;
  flex-direction:column;
  gap:8px;
  align-items:flex-start;
}
.ipn-b2c-categories-img__deleting{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:13px;
  color:var(--ipn-text-2, #5b6573);
}
.ipn-b2c-categories-img__deleting .material-symbols-rounded{
  font-size:18px;
  animation:ipn-spin 1s linear infinite;
}
/* AV: 2026-09-09: #506/#517 - mobile: botones 100%; preview wrap full-width. */
@media (max-width:700px){
  .ipn-b2c-categories-img .ipn-b2c-categories-img__row{
    flex-direction:column;
    align-items:stretch;
  }
  .ipn-b2c-categories-img .ipn-b2c-categories-img__preview-wrap{
    max-width:100%;
    width:100%;
    box-sizing:border-box;
  }
  .ipn-b2c-categories-img .ipn-b2c-categories-img__preview{
    max-width:100%;
    width:100%;
    height:auto;
  }
  .ipn-b2c-categories-img .ipn-b2c-categories-img__actions{
    width:100%;
    align-items:stretch;
  }
  .ipn-b2c-categories-img .ipn-b2c-categories-img__actions > div{
    width:100%;
  }
  .ipn-b2c-categories-img .ipn-b2c-categories-img__actions .ipn-btn,
  .ipn-b2c-categories-img .ipn-secure-actions .ipn-btn{
    width:100%;
    justify-content:center;
    box-sizing:border-box;
  }
  .ipn-b2c-categories-img .ipn-secure-actions{
    flex-direction:column;
    align-items:stretch;
  }
}
@media (max-width:899px){
  .ipn-b2c-categories .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-b2c-categories .ipn-table--list .ipn-table__th-desc,
  .ipn-b2c-categories .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}
@media (max-width:700px){
  .ipn-b2c-categories .ipn-table--list th,
  .ipn-b2c-categories .ipn-table--list td{
    padding:8px 10px;
  }
  .ipn-b2c-categories__dates{
    flex-direction:column;
  }
  .ipn-b2c-categories__dates .ipn-field{
    width:100%;
    min-width:0;
  }
}

/* AV: 2026-09-04: #393/#394 ? B2C Categories publicacion/despublicacion masiva. */
.ipn-b2c-cat-publish,
.ipn-b2c-cat-depublish{
  min-width:0;
  max-width:100%;
}
.ipn-b2c-cat-publish .ipn-card--table,
.ipn-b2c-cat-depublish .ipn-card--table{
  overflow:visible;
  max-width:100%;
  min-width:0;
}
.ipn-b2c-cat-publish .ipn-table-wrap,
.ipn-b2c-cat-depublish .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-b2c-cat-publish .ipn-table--list,
.ipn-b2c-cat-depublish .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-b2c-cat-publish .ipn-form-section__title,
.ipn-b2c-cat-depublish .ipn-form-section__title{
  margin:0 0 12px;
  font-size:1rem;
}
.ipn-b2c-cat-publish-filters,
.ipn-b2c-cat-depublish-filters{
  margin-bottom:12px;
}
.ipn-b2c-cat-publish-filters .ipn-field,
.ipn-b2c-cat-depublish-filters .ipn-field{ min-width:0; }
.ipn-b2c-cat-publish-filters .ipn-input,
.ipn-b2c-cat-publish-filters .ipn-select,
.ipn-b2c-cat-depublish-filters .ipn-input,
.ipn-b2c-cat-depublish-filters .ipn-select{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
.ipn-b2c-cat-publish-filters .ipn-secure-filters__actions,
.ipn-b2c-cat-depublish-filters .ipn-secure-filters__actions{
  margin-left:auto;
}
.ipn-b2c-cat-publish__season,
.ipn-b2c-cat-depublish__season{
  display:flex;
  align-items:center;
  gap:6px;
}
.ipn-b2c-cat-publish__season .ipn-select,
.ipn-b2c-cat-depublish__season .ipn-select{ flex:1 1 auto; min-width:0; }
.ipn-b2c-cat-publish__season-help,
.ipn-b2c-cat-depublish__season-help{
  flex:0 0 auto;
  padding:0 8px;
  min-width:40px;
}
.ipn-b2c-cat-publish__search-hint,
.ipn-b2c-cat-depublish__search-hint{ margin-top:8px; }
.ipn-b2c-cat-publish__results,
.ipn-b2c-cat-depublish__results{ margin-top:12px; }
.ipn-b2c-cat-publish__results .ipn-secure-actions,
.ipn-b2c-cat-depublish__results .ipn-secure-actions{
  margin-top:12px;
  justify-content:flex-end;
}
.ipn-b2c-cat-publish #itemContainer .ipn-secure-actions,
.ipn-b2c-cat-depublish #itemContainer .ipn-secure-actions{
  margin-top:12px;
  justify-content:flex-end;
}
.ipn-b2c-cat-publish .ipn-check-row,
.ipn-b2c-cat-depublish .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
  box-sizing:border-box;
}
.ipn-b2c-cat-publish .ipn-check-row > span,
.ipn-b2c-cat-depublish .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
@media (max-width:899px){
  .ipn-b2c-cat-publish .ipn-table--list thead th,
  .ipn-b2c-cat-depublish .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-b2c-cat-publish .ipn-table--list .ipn-table__th-desc,
  .ipn-b2c-cat-publish .ipn-table--list .ipn-table__desc,
  .ipn-b2c-cat-depublish .ipn-table--list .ipn-table__th-desc,
  .ipn-b2c-cat-depublish .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}
@media (max-width:700px){
  .ipn-b2c-cat-publish .ipn-table--list th,
  .ipn-b2c-cat-publish .ipn-table--list td,
  .ipn-b2c-cat-depublish .ipn-table--list th,
  .ipn-b2c-cat-depublish .ipn-table--list td{
    padding:8px 10px;
  }
  .ipn-b2c-cat-publish-filters .ipn-secure-filters__actions,
  .ipn-b2c-cat-depublish-filters .ipn-secure-filters__actions{
    margin-left:0;
    width:100%;
  }
  .ipn-b2c-cat-publish-filters .ipn-secure-filters__actions .ipn-btn,
  .ipn-b2c-cat-depublish-filters .ipn-secure-filters__actions .ipn-btn{
    width:100%;
  }
}

/* AV: 2026-09-09: #504 ? B2C suggestedProducts (art?culos/productos sugeridos por categor?a). */
.ipn-b2c-suggested{
  min-width:0;
  max-width:100%;
}
.ipn-b2c-suggested .ipn-card--table{
  overflow:visible;
  max-width:100%;
  min-width:0;
}
.ipn-b2c-suggested .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-b2c-suggested .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-b2c-suggested .ipn-form-section__title{
  margin:0 0 12px;
  font-size:1rem;
}
.ipn-b2c-suggested-filters{
  margin-bottom:12px;
}
.ipn-b2c-suggested-filters .ipn-field{ min-width:0; }
.ipn-b2c-suggested-filters .ipn-input,
.ipn-b2c-suggested-filters .ipn-select{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
.ipn-b2c-suggested-filters .ipn-secure-filters__actions{
  margin-left:auto;
}
.ipn-b2c-suggested__results{ margin-top:12px; }
.ipn-b2c-suggested__results .ipn-secure-actions{
  margin-top:12px;
  justify-content:flex-start;
}
@media (max-width:899px){
  .ipn-b2c-suggested .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-b2c-suggested .ipn-table--list .ipn-table__th-desc,
  .ipn-b2c-suggested .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}
@media (max-width:700px){
  .ipn-b2c-suggested .ipn-table--list th,
  .ipn-b2c-suggested .ipn-table--list td{
    padding:8px 10px;
  }
  .ipn-b2c-suggested-filters .ipn-secure-filters__actions{
    margin-left:0;
    width:100%;
  }
  .ipn-b2c-suggested-filters .ipn-secure-filters__actions .ipn-btn{
    width:100%;
  }
}

/* AV: 2026-09-04: #359 ? B2C AutomaticReminder listado / detalle / form; scroll-x (#89). */
.ipn-b2c-auto-reminder{
  min-width:0;
  max-width:100%;
}
.ipn-b2c-auto-reminder .ipn-card--table{
  overflow:visible;
  max-width:100%;
  min-width:0;
}
.ipn-b2c-auto-reminder .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-b2c-auto-reminder .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-b2c-auto-reminder__row--disabled td,
.ipn-b2c-auto-reminder__row--disabled .ipn-table__desc-link{
  color:var(--ipn-muted, #667085);
}
.ipn-b2c-auto-reminder__badge-disabled{
  color:#b42318;
  font-size:0.85em;
  font-weight:600;
  margin-left:6px;
}
.ipn-b2c-auto-reminder-form .ipn-field{ min-width:0; }
.ipn-b2c-auto-reminder-form .ipn-input,
.ipn-b2c-auto-reminder-form .ipn-select{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
.ipn-b2c-auto-reminder-form__interval{
  display:flex;
  gap:8px;
  align-items:center;
  min-width:0;
}
.ipn-b2c-auto-reminder-form__interval .ipn-input{
  flex:1 1 120px;
  min-width:0;
}
.ipn-b2c-auto-reminder-form__interval .ipn-select{
  flex:0 0 110px;
  width:110px;
}
.ipn-b2c-auto-reminder-form .ipn-check-row{
  align-items:flex-start;
}
.ipn-b2c-auto-reminder-form .ipn-check-row > span{
  white-space:normal;
  overflow-wrap:anywhere;
}
.ipn-b2c-auto-reminder-delete .ipn-card{
  max-width:none;
}
@media (max-width:899px){
  .ipn-b2c-auto-reminder .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-b2c-auto-reminder .ipn-table--list .ipn-table__th-desc,
  .ipn-b2c-auto-reminder .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}
@media (max-width:700px){
  .ipn-b2c-auto-reminder .ipn-table--list th,
  .ipn-b2c-auto-reminder .ipn-table--list td{
    padding:8px 10px;
  }
  .ipn-b2c-auto-reminder-form__interval{
    flex-direction:column;
    align-items:stretch;
  }
  .ipn-b2c-auto-reminder-form__interval .ipn-select{
    width:100%;
    flex:1 1 auto;
  }
}
/* AV: 2026-09-04: #358 ? B2C predefinedMessages listado/form/delete; scroll-x mobile (#89). */
.ipn-b2c-predefined-messages{
  min-width:0;
  max-width:100%;
}
.ipn-b2c-predefined-messages .ipn-card--table{
  overflow:visible;
  max-width:100%;
  min-width:0;
}
.ipn-b2c-predefined-messages .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-b2c-predefined-messages .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-b2c-predefined-messages-form .ipn-field{ min-width:0; }
.ipn-b2c-predefined-messages-form .ipn-input,
.ipn-b2c-predefined-messages-form .ipn-textarea{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
.ipn-b2c-predefined-messages-delete .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
  box-sizing:border-box;
  margin-top:16px;
}
.ipn-b2c-predefined-messages-delete .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
@media (max-width:899px){
  .ipn-b2c-predefined-messages .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-b2c-predefined-messages .ipn-table--list .ipn-table__th-desc,
  .ipn-b2c-predefined-messages .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
  .ipn-b2c-predefined-messages .ipn-table--list th,
  .ipn-b2c-predefined-messages .ipn-table--list td{
    padding:8px 10px;
  }
}

/* AV: 2026-09-04: #349 ? iCP procesos productivos; scroll-x mobile (patron #89). */
.ipn-icp-processes{
  min-width:0;
  max-width:100%;
}
.ipn-icp-processes .ipn-card--table{
  overflow:visible;
  max-width:100%;
  min-width:0;
}
.ipn-icp-processes .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-icp-processes .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-icp-processes-form .ipn-field{ min-width:0; }
.ipn-icp-processes-form .ipn-input,
.ipn-icp-processes-form .ipn-select{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
.ipn-icp-processes-delete .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
  box-sizing:border-box;
}
.ipn-icp-processes-delete .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
@media (max-width:899px){
  .ipn-icp-processes .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-icp-processes .ipn-table--list .ipn-table__th-desc,
  .ipn-icp-processes .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}
@media (max-width:700px){
  .ipn-icp-processes .ipn-table--list th,
  .ipn-icp-processes .ipn-table--list td{
    padding:8px 10px;
  }
}

/* AV: 2026-09-04: #360 ? B2C tipos de promoci?n; scroll-x mobile (patr?n #89). */
.ipn-b2c-promo-code-types{
  min-width:0;
  max-width:100%;
}
.ipn-b2c-promo-code-types .ipn-card--table{
  overflow:visible;
  max-width:100%;
  min-width:0;
}
.ipn-b2c-promo-code-types .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-b2c-promo-code-types .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-b2c-promo-code-types-form .ipn-field{ min-width:0; }
.ipn-b2c-promo-code-types-form .ipn-input{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
.ipn-b2c-promo-code-types-delete .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
  box-sizing:border-box;
}
.ipn-b2c-promo-code-types-delete .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
@media (max-width:899px){
  .ipn-b2c-promo-code-types .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-b2c-promo-code-types .ipn-table--list .ipn-table__th-desc,
  .ipn-b2c-promo-code-types .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}
@media (max-width:700px){
  .ipn-b2c-promo-code-types .ipn-table--list th,
  .ipn-b2c-promo-code-types .ipn-table--list td{
    padding:8px 10px;
  }
}

/* AV: 2026-08-20: Atributos de art?culos ? listado / detalle / form / borrado / popups (scope .ipn-item-attr*). */
/* AV: 2026-08-25: scroll-x en mobile (max-content + sin sticky left/thead). */
.ipn-item-attr{
  min-width:0;
  max-width:100%;
}
.ipn-item-attr .ipn-card--table,
.ipn-item-attr .ipn-table-wrap{
  max-width:100%;
  min-width:0;
}
/* AV: 2026-08-27: Listado sin pager ? overflow:hidden global clippea scroll-x (issue #81). */
.ipn-item-attr .ipn-card--table:not(:has(> .ipn-pager)) > .ipn-table-wrap,
.ipn-item-attr .ipn-table-wrap{
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-item-attr .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-item-attr .ipn-table--list .ipn-table__th-desc,
.ipn-item-attr .ipn-table--list .ipn-table__desc{
  width:auto;
  max-width:280px;
  position:static;
  left:auto;
  z-index:auto;
  background:transparent;
}
@media (max-width:899px){
  .ipn-item-attr .ipn-table--list thead th{
    position:static;
    top:auto;
  }
  .ipn-item-attr .ipn-table--list .ipn-table__th-desc,
  .ipn-item-attr .ipn-table--list .ipn-table__desc{
    max-width:none;
  }
}
.ipn-item-attr-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-item-attr-filters .ipn-field--grow{ flex:1 1 260px; min-width:220px; }
.ipn-item-attr-filters .ipn-secure-filters__actions{
  margin-left:0;
  flex:0 0 auto;
  gap:8px;
}
.ipn-item-attr-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
.ipn-item-attr__hint{
  margin:0;
  font-size:13.5px;
  color:var(--ipn-muted, #5b6b80);
  line-height:1.45;
}
.ipn-item-attr__featured{
  font-size:18px;
  color:#c9a227;
  vertical-align:middle;
  margin-right:4px;
}
.ipn-item-attr .ipn-table__desc .ipn-table__chip,
.ipn-item-attr .ipn-table__desc button.ipn-table__chip{
  margin-left:8px;
  vertical-align:middle;
  border:0;
  cursor:pointer;
  font:inherit;
}
.ipn-item-attr-detail .ipn-secure-actions{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:16px;
}
.ipn-item-attr-form__flags{
  display:flex;
  flex-direction:column;
  gap:8px;
  justify-content:flex-end;
  min-width:0;
  max-width:100%;
}
/* AV: 2026-08-25: labels largos de flags wrap (sin nowrap global de .ipn-check-row). */
.ipn-item-attr-form .ipn-field{
  min-width:0;
}
.ipn-item-attr-form .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
  box-sizing:border-box;
}
.ipn-item-attr-form .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ipn-item-attr-popup{
  background:#fff;
  margin:0;
  padding:16px 18px 12px;
}
.ipn-item-attr-popup__inner{ max-width:100%; }
.ipn-item-attr-popup .ipn-secure-actions{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:16px;
}
.ipn-item-attr-popup .ipn-secure-actions .ipn-btn--primary{ margin-left:auto; }
.ipn-item-attr__b2c{
  font-size:18px;
  color:var(--ipn-brand, #2f62c4);
  vertical-align:middle;
}

/* AV: 2026-08-26: Responsive celular / tablet / desktop ? Atributos de art?culos. */
@media (max-width:899px){
}
@media (max-width:767px){
  .ipn-shell--nav .ipn-shell__body > .ipn-item-attr,
  .ipn-shell--nav .ipn-shell__body > form.ipn-item-attr{
    padding:16px 16px 0 !important;
  }
  /* AV: 2026-08-26: Rutas largas (ID + nombre) ? hereda flujo inline de #36; fuente m?s chica (issue #37). */
  .ipn-item-attr > .ipn-breadcrumb{
    font-size:11px;
    line-height:1.35;
    margin-bottom:10px;
  }
  .ipn-item-attr > .ipn-breadcrumb a,
  .ipn-item-attr > .ipn-breadcrumb b{
    overflow-wrap:anywhere;
  }
  .ipn-item-attr > .ipn-breadcrumb .material-symbols-rounded{
    font-size:13px;
  }
}
@media (max-width:700px){
  .ipn-item-attr-detail .ipn-page-head__text,
  .ipn-item-attr-form .ipn-page-head__text{
    min-width:0;
  }
  .ipn-item-attr-detail .ipn-page-subtitle,
  .ipn-item-attr-form .ipn-page-subtitle{
    overflow-wrap:anywhere;
    line-height:1.35;
  }
  .ipn-item-attr .ipn-card__body{
    padding:14px 16px;
  }
  .ipn-item-attr-form .ipn-card__head{
    padding:12px 16px 0;
  }
  /* Listado + grilla embebida: tipograf?a compacta, celdas wrap. */
  .ipn-item-attr .ipn-table--list thead th{
    white-space:normal;
    font-size:10px;
    line-height:1.25;
    padding:8px 10px;
    letter-spacing:.04em;
  }
  .ipn-item-attr .ipn-table--list tbody td{
    white-space:normal;
    font-size:12px;
    padding:8px 10px;
    height:auto;
    max-height:none;
    overflow:visible;
    text-overflow:unset;
  }
  .ipn-item-attr .ipn-table--list tbody td *{
    white-space:normal;
  }
  .ipn-item-attr-detail .ipn-audit__item{
    flex:1 1 100%;
  }
  /* Formularios / borrado: barra sticky inferior (mismo patr?n secure, scope ERP). */
  .ipn-item-attr-form .ipn-card__body,
  .ipn-item-attr-delete{
    padding-bottom:8px;
  }
  .ipn-item-attr-form .ipn-secure-actions,
  .ipn-item-attr-delete .ipn-secure-actions{
    position:sticky;
    bottom:0;
    z-index:30;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px;
    margin:16px 0 0;
    padding:12px 16px;
    padding-bottom:calc(12px + env(safe-area-inset-bottom, 0px));
    background:#fff;
    border-top:1px solid var(--ipn-hairline, #e2e7ef);
    box-shadow:0 -4px 16px rgba(16,32,55,.06);
  }
  .ipn-item-attr-form .ipn-card .ipn-secure-actions{
    margin-left:-16px;
    margin-right:-16px;
    margin-bottom:-14px;
    border-top:1px solid var(--ipn-hairline, #e2e7ef);
  }
  .ipn-item-attr-form .ipn-secure-actions .ipn-btn,
  .ipn-item-attr-delete .ipn-secure-actions .ipn-btn{
    min-height:44px;
    justify-content:center;
  }
  /* Alta/edici?n (2 botones): Cancelar | primario. */
  .ipn-item-attr-form .ipn-secure-actions .ipn-btn--secondary{
    flex:1 1 auto;
  }
  .ipn-item-attr-form .ipn-secure-actions .ipn-btn--primary{
    flex:1 1 auto;
    margin-left:auto;
  }
  /* addValue (3 botones): Cancelar ancho completo; Guardar y nuevo + Guardar en fila 2. */
  .ipn-item-attr-form .ipn-secure-actions:has(#btnSaveAndNew) .ipn-btn--secondary:first-child{
    flex:1 1 100%;
  }
  .ipn-item-attr-form .ipn-secure-actions:has(#btnSaveAndNew) .ipn-btn--secondary:not(:first-child){
    flex:1 1 calc(50% - 4px);
  }
  .ipn-item-attr-form .ipn-secure-actions:has(#btnSaveAndNew) .ipn-btn--primary{
    flex:1 1 calc(50% - 4px);
    margin-left:0;
  }
  .ipn-item-attr-delete .ipn-secure-actions .ipn-btn--secondary{
    flex:1 1 auto;
  }
  .ipn-item-attr-delete .ipn-secure-actions .ipn-btn--danger{
    flex:1 1 auto;
    margin-left:auto;
  }
}

/* AV: 2026-08-27: #83 ? sin footer en detalle; CSS de .ipn-secure-actions del detalle eliminado. */

/* AV: 2026-08-20: Atributos de clientes ? listado / detalle / form / borrado (scope .ipn-cust-attr*). */
.ipn-cust-attr-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-cust-attr-filters .ipn-field--grow{ flex:1 1 260px; min-width:220px; }
.ipn-cust-attr-filters .ipn-secure-filters__actions{
  margin-left:0;
  flex:0 0 auto;
  gap:8px;
}
.ipn-cust-attr-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
.ipn-cust-attr__hint{
  margin:0;
  font-size:13.5px;
  color:var(--ipn-muted, #5b6b80);
  line-height:1.45;
}
/* AV: 2026-08-27: Listado sin pager ? overflow:hidden global clippea scroll-x (issue #87 / #81). */
.ipn-cust-attr .ipn-card--table,
.ipn-cust-attr .ipn-table-wrap{
  max-width:100%;
  min-width:0;
}
.ipn-cust-attr .ipn-card--table:not(:has(> .ipn-pager)) > .ipn-table-wrap,
.ipn-cust-attr .ipn-table-wrap{
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-cust-attr .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-cust-attr .ipn-table--list .ipn-table__th-desc,
.ipn-cust-attr .ipn-table--list .ipn-table__desc{
  width:auto;
  max-width:280px;
  position:static;
  left:auto;
  z-index:auto;
  background:transparent;
}
/* AV: 2026-08-27: Categor?as attr. clientes ? scroll-x mobile patr?n #89 (#106). */
.ipn-cust-attr-cat .ipn-card--table{
  overflow:visible;
}
.ipn-cust-attr-cat .ipn-card--table,
.ipn-cust-attr-cat .ipn-table-wrap{
  max-width:100%;
  min-width:0;
}
.ipn-cust-attr-cat .ipn-card--table:not(:has(> .ipn-pager)) > .ipn-table-wrap,
.ipn-cust-attr-cat .ipn-table-wrap{
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-cust-attr-cat .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-cust-attr-detail .ipn-secure-actions{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:16px;
}
.ipn-cust-attr-form__flags{
  display:flex;
  flex-direction:column;
  gap:8px;
  justify-content:flex-end;
}

/* AV: 2026-08-20: Alta/edici?n Categor?as (.ipn-category-form) ? mismos patrones que .ipn-family-form. */
/* AV: 2026-08-20: sin max-width 720 ? mismo ancho de contenedor que listado/detalle. */
.ipn-category-form .choices{ margin-bottom:0; width:100%; }
.ipn-category-form .choices__inner{
  min-height:var(--ipn-control-h, 42px);
}
.ipn-category-form__image{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:16px;
}
.ipn-category-form__preview{
  max-width:250px;
  max-height:180px;
  border-radius:10px;
  border:1px solid var(--ipn-hairline, #e6e9ef);
  background:#fff;
}
.ipn-category-form__image-actions{
  display:flex;
  flex-direction:column;
  gap:8px;
  align-items:flex-start;
}
.ipn-category-form__deleting{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:13px;
  color:var(--ipn-text-3);
}
.ipn-category-form .select2-container{ width:100% !important; }
.ipn-category-form .ipn-check{
  display:inline-flex;
  align-items:flex-start;
  gap:8px;
  font-size:13.5px;
  color:var(--ipn-text, #122740);
  cursor:pointer;
}
.ipn-category-form .ipn-check input{ margin-top:3px; flex:0 0 auto; }
.ipn-category-form .comboMargin{
  margin-right:8px;
  margin-bottom:8px;
  width:auto;
  min-width:180px;
  max-width:100%;
}
.ipn-category-form__cascade{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:4px 0;
}
.ipn-category-form__mla-del{
  padding:4px 6px;
  min-height:auto;
  margin:0 8px 8px 0;
  vertical-align:middle;
}
.ipn-category-form__mla-del .material-symbols-rounded{
  font-size:18px;
  line-height:1;
}

.ipn-dl{
  display:flex;
  flex-direction:column;
}
.ipn-dl__row{
  display:flex;
  gap:16px;
  padding:11px 0;
  border-bottom:1px solid var(--ipn-border-input, #e2e7ef);
  flex-wrap:wrap;
}
.ipn-dl__row:last-child{ border-bottom:0; }
.ipn-dl__label{
  flex:0 0 220px;
  font-weight:600;
  color:var(--ipn-text-2, #5b6b80);
  font-size:13px;
}
.ipn-dl__value{
  flex:1 1 220px;
  color:var(--ipn-text, #122740);
  font-size:13px;
}
.ipn-family-form .ipn-card .ipn-secure-actions{
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid var(--ipn-hairline, #e2e7ef);
}

/* AV: 2026-08-04: #78113 ? popup Asistencia IA (prompt + descarga ZIP). */
body.ipn-ai-assist{
  margin:0;
  min-height:100dvh;
  background:linear-gradient(160deg,#f3f6fb 0%,#e8eef7 45%,#f7f8fa 100%);
  font-family:var(--ipn-font, Inter, "IBM Plex Sans", system-ui, sans-serif);
  color:var(--ipn-text,#1f2937);
}
.ipn-ai-assist__shell{
  max-width:720px;
  margin:0 auto;
  padding:28px 24px 32px;
  display:flex;
  flex-direction:column;
  gap:20px;
  min-height:100dvh;
  box-sizing:border-box;
}
.ipn-ai-assist__shell--error{
  justify-content:center;
  align-items:flex-start;
  gap:12px;
  max-width:520px;
}
.ipn-ai-assist__shell--error h1{
  margin:0;
  font-size:1.35rem;
  font-weight:700;
}
.ipn-ai-assist__shell--error p{
  margin:0 0 8px;
  color:var(--ipn-text-muted,#667085);
  line-height:1.45;
}
.ipn-ai-assist__head{
  display:flex;
  align-items:flex-start;
  gap:14px;
}
.ipn-ai-assist__icon{
  font-size:32px;
  color:var(--ipn-primary,#2f6bb5);
  line-height:1;
}
.ipn-ai-assist__head-text h1{
  margin:0 0 4px;
  font-size:1.45rem;
  font-weight:700;
  letter-spacing:-0.02em;
}
.ipn-ai-assist__ticket{
  margin:0;
  color:var(--ipn-text-muted,#667085);
  font-size:0.95rem;
  line-height:1.4;
}
.ipn-ai-assist__steps{
  background:#fff;
  border:1px solid var(--ipn-border,#e4e7ec);
  border-radius:12px;
  padding:14px 18px;
}
.ipn-ai-assist__steps ol{
  margin:0;
  padding-left:1.2rem;
  color:var(--ipn-text-muted,#475467);
  line-height:1.55;
}
.ipn-ai-assist__prompt-block{
  display:flex;
  flex-direction:column;
  gap:8px;
  flex:1;
}
.ipn-ai-assist__prompt-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.ipn-ai-assist__prompt-bar .ipn-label{ margin:0; }
.ipn-ai-assist__prompt-bar .ipn-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.ipn-ai-assist__prompt-bar .material-symbols-rounded{ font-size:18px; }
.ipn-ai-assist__prompt{
  width:100%;
  min-height:280px;
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size:13px;
  line-height:1.45;
  box-sizing:border-box;
}
.ipn-ai-assist__hint{
  margin:0;
  font-size:0.85rem;
  color:var(--ipn-success,#039855);
}
#downloadHint.ipn-ai-assist__hint{
  color:var(--ipn-text-muted,#667085);
  text-align:right;
}
.ipn-ai-assist__actions .ipn-btn.is-loading,
.ipn-ai-assist__actions .ipn-btn[aria-disabled="true"]{
  pointer-events:none;
  opacity:0.72;
}
.ipn-ai-assist__actions{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  padding-top:4px;
}
.ipn-ai-assist__actions .ipn-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.ipn-ai-assist__actions .material-symbols-rounded{ font-size:18px; }
.sp-ai{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  background:transparent;
  color:#667085;
  cursor:pointer;
  padding:2px;
  margin-left:2px;
  vertical-align:middle;
  text-decoration:none;
}
.sp-ai:hover{ color:#2f6bb5; }
.sp-ai .material-symbols-rounded{ font-size:16px; }
@media (max-width:700px){
  .ipn-ai-assist__shell{ padding:20px 16px 24px; }
  .ipn-ai-assist__prompt{ min-height:220px; }
  .ipn-ai-assist__actions{ justify-content:stretch; }
  .ipn-ai-assist__actions .ipn-btn{ flex:1; justify-content:center; }
}

/* ==========================================================================
   AV: 2026-08-09: Bridge .ipn-cce (customerCompaniesEdit) ? reintroducido.
   Se habia perdido tras merges; sin esto tabs/tablas/Choices explotan bajo
   menu_secure_responsive. Scope: .ipn-cce (+ tabContainer en .ipn-secure-wrap).
   ========================================================================== */
.ipn-secure-wrap .tabContainer.ipn-tabs,
.ipn-cce .tabContainer.ipn-tabs{
  float:none;
  width:100%;
  margin:0;
  padding:0 8px;
  display:flex;
  align-items:flex-end;
  gap:2px;
  flex-wrap:nowrap;
  overflow-x:auto;
  background:var(--ipn-surface,#fff);
  border:1px solid var(--ipn-hairline,#e2e7ef);
  border-bottom:0;
  border-radius:var(--ipn-secure-radius,14px) var(--ipn-secure-radius,14px) 0 0;
  box-shadow:inset 0 -1px 0 #eef1f6;
  box-sizing:border-box;
  top:auto;
  position:relative;
}
.ipn-secure-wrap .tabContainer.ipn-tabs a,
.ipn-secure-wrap .tabContainer.ipn-tabs a:link,
.ipn-secure-wrap .tabContainer.ipn-tabs a:visited,
.ipn-cce .tabContainer.ipn-tabs a,
.ipn-cce .tabContainer.ipn-tabs a:link,
.ipn-cce .tabContainer.ipn-tabs a:visited{
  float:none;
  flex:0 0 auto;
  margin:0;
  padding:14px 14px;
  height:auto;
  line-height:normal;
  border:0 !important;
  background:none !important;
  color:#8493a6 !important;
  font-size:13.5px;
  font-weight:600;
  text-decoration:none !important;
  white-space:nowrap;
  cursor:pointer;
  box-shadow:none;
  display:inline-flex;
  align-items:center;
}
.ipn-secure-wrap .tabContainer.ipn-tabs a:hover,
.ipn-cce .tabContainer.ipn-tabs a:hover{
  color:var(--ipn-text,#1a2433) !important;
}
.ipn-secure-wrap .tabContainer.ipn-tabs a.active,
.ipn-secure-wrap .tabContainer.ipn-tabs a.is-active,
.ipn-cce .tabContainer.ipn-tabs a.active,
.ipn-cce .tabContainer.ipn-tabs a.is-active{
  color:#1d4e86 !important;
  box-shadow:inset 0 -2px 0 #1d4e86;
}

.ipn-cce .cnt_principal{
  clear:both;
  background:var(--ipn-surface,#fff);
  border:1px solid var(--ipn-hairline,#e2e7ef);
  border-radius:0 0 var(--ipn-secure-radius,14px) var(--ipn-secure-radius,14px);
  padding:18px 20px 22px;
  box-sizing:border-box;
  box-shadow:0 1px 2px rgba(16,32,55,.04);
  margin-top:0;
}
.ipn-cce .cnt_secundario{
  background:transparent;
  border:0;
  padding:0;
}
.ipn-cce .cnt_secundario > table{
  width:100%;
  border-collapse:collapse;
  color:var(--ipn-text-2,#3d4a5c);
  table-layout:fixed;
}
.ipn-cce .cnt_secundario > table > tbody > tr > td,
.ipn-cce .cnt_secundario > table > tr > td,
.ipn-cce .cnt_secundario > table > tbody > tr > th,
.ipn-cce .cnt_secundario > table > tr > th{
  padding:10px 12px;
  vertical-align:middle;
  border-bottom:1px solid var(--ipn-hairline,#eef1f6);
  word-wrap:break-word;
}
.ipn-cce .cnt_secundario > table > tbody > tr.NoBorderBottom > td,
.ipn-cce .cnt_secundario > table > tbody > tr > td.NoBorderBottom,
.ipn-cce .cnt_secundario > table > tr.NoBorderBottom > td,
.ipn-cce .cnt_secundario > table th.NoBorderBottom{
  border-bottom:0;
}
/* AV: 2026-08-09: columnas label | campo | label | campo */
.ipn-cce .cnt_secundario > table > tbody > tr > td:nth-child(1),
.ipn-cce .cnt_secundario > table > tbody > tr > td:nth-child(3),
.ipn-cce .cnt_secundario > table > tr > td:nth-child(1),
.ipn-cce .cnt_secundario > table > tr > td:nth-child(3){
  width:160px;
}
.ipn-cce .cnt_secundario > table > tbody > tr > td[colspan],
.ipn-cce .cnt_secundario > table > tr > td[colspan]{
  width:auto;
}
.ipn-cce .cnt_secundario > table span:not(.glyphicon):not(.campoRequerido):not(.material-symbols-rounded):not(.choices__button):not(.choices__placeholder){
  font-weight:600;
  color:var(--ipn-text,#1a2433);
}
.ipn-cce .cnt_secundario > table td input[type="text"],
.ipn-cce .cnt_secundario > table td input[type="password"],
.ipn-cce .cnt_secundario > table td input[type="email"],
.ipn-cce .cnt_secundario > table td select{
  width:100%;
  max-width:280px;
  box-sizing:border-box;
  height:var(--ipn-control-h,38px);
  border:1px solid var(--ipn-border-input,#c5d0de);
  border-radius:var(--ipn-radius-input,8px);
  padding:0 12px;
  font:inherit;
  font-size:13px;
  color:var(--ipn-text,#1a2433);
  background:var(--ipn-surface,#fff);
}
.ipn-cce .cnt_secundario > table td textarea{
  width:100% !important;
  max-width:100% !important;
  min-height:80px;
  height:auto !important;
  box-sizing:border-box;
  border:1px solid var(--ipn-border-input,#c5d0de);
  border-radius:var(--ipn-radius-input,8px);
  padding:10px 12px;
  font:inherit;
  font-size:13px;
  color:var(--ipn-text,#1a2433);
  resize:vertical;
}
.ipn-cce .cnt_secundario > table td input[type="checkbox"],
.ipn-cce .cnt_secundario > table td input[type="radio"]{
  width:auto !important;
  max-width:none !important;
  height:auto;
  margin:0 6px 0 0;
  vertical-align:middle;
}
.ipn-cce .cnt_secundario h2,
.ipn-cce .cnt_secundario > table td h2{
  float:none;
  display:block;
  margin:20px 0 8px;
  padding:0;
  font-size:15px;
  font-weight:700;
  color:var(--ipn-primary,#1d4e86);
  letter-spacing:-0.01em;
}
.ipn-cce .cnt_secundario > table tr:first-child td h2{
  margin-top:0;
}
.ipn-cce .campoRequerido{
  color:#c62828;
  font-weight:700;
  margin-left:4px;
}
.ipn-cce .ipn-cce-iibb-table{
  width:100%;
  max-width:100%;
  table-layout:fixed;
  border-collapse:collapse;
  margin:4px 0 8px;
}
.ipn-cce .ipn-cce-iibb-table td{
  padding:8px 10px !important;
  border-bottom:1px solid var(--ipn-hairline,#eef1f6);
  vertical-align:middle;
  font-size:12.5px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.ipn-cce .ipn-cce-iibb-table tr:first-child td{
  font-weight:700;
  color:var(--ipn-text-2,#3d4a5c);
  background:#f6f8fb;
  white-space:normal;
}
.ipn-cce .ipn-cce-iibb-table td:nth-child(1){ width:78px; text-align:center; }
.ipn-cce .ipn-cce-iibb-table td:nth-child(2){ width:104px; text-align:center; }
.ipn-cce .ipn-cce-iibb-table td:nth-child(3){ width:64px; }
.ipn-cce .ipn-cce-iibb-table td:nth-child(4){ width:80px; }
.ipn-cce .ipn-cce-iibb-table td:nth-child(5){ width:72px; }
.ipn-cce .ipn-cce-iibb-table td:nth-child(6){
  width:auto;
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
}
.ipn-cce .ipn-cce-iibb-table input[type="checkbox"],
.ipn-cce .ipn-cce-iibb-table input[type="radio"]{
  float:none !important;
  margin:0;
  width:auto !important;
  max-width:none !important;
}
.ipn-cce .ipn-cce-rubro{
  display:flex;
  align-items:center;
  gap:8px;
  max-width:420px;
  width:100%;
}
.ipn-cce .ipn-cce-rubro .choices{
  flex:1 1 auto;
  min-width:0;
  max-width:380px;
  margin-bottom:0;
}
.ipn-cce .ipn-cce-rubro .choices__inner{
  min-height:38px;
  border-radius:8px;
  border-color:var(--ipn-border-input,#c5d0de);
}
.ipn-cce .ipn-cce-rubro .campoRequerido{
  flex:0 0 auto;
  margin-left:0;
}
.ipn-cce .input-group.date{
  display:inline-flex;
  align-items:center;
  gap:6px;
  max-width:200px;
}
.ipn-cce .input-group.date .datePickerContent,
.ipn-cce #actInicDateChr{
  width:120px !important;
  max-width:120px !important;
  margin-left:0 !important;
}
.ipn-cce .input-group.date .input-group-addon,
.ipn-cce .input-group.date .glyphicon{
  color:#8493a6;
  cursor:pointer;
}
.ipn-cce .cntBotones,
.ipn-cce .ipn-secure-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:18px;
  padding-top:14px;
  border-top:1px solid var(--ipn-hairline,#eef1f6);
}
.ipn-cce .cntBotones_l,
.ipn-cce .cntBotones_r{
  float:none;
  margin:0;
  padding:0;
}
.ipn-cce .cntBotones_r{ margin-left:auto; }
.ipn-cce a.btn_agregar,
.ipn-cce a.ipn-btn.btn_agregar{
  float:none !important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:32px;
  padding:0 12px;
  border-radius:8px;
  border:1px solid var(--ipn-border-input,#c5d0de);
  background:#fff;
  color:var(--ipn-text,#1a2433) !important;
  font-size:12.5px;
  font-weight:600;
  text-decoration:none !important;
  cursor:pointer;
}
.ipn-cce a.btn_agregar:hover{
  border-color:#9aa8bc;
  background:#f6f8fb;
}
.ipn-cce .ipn-notice{ margin:0 0 14px; }
.ipn-cce .cnt_auditoria{
  margin-top:18px;
  height:auto !important;
}
@media (max-width:700px){
  .ipn-cce .cnt_secundario > table{ table-layout:auto; }
  .ipn-cce .cnt_secundario > table > tbody > tr > td,
  .ipn-cce .cnt_secundario > table > tr > td{
    display:block;
    width:100% !important;
    border-bottom:0;
    padding:4px 0;
  }
  .ipn-cce .cnt_secundario > table > tbody > tr,
  .ipn-cce .cnt_secundario > table > tr{
    display:block;
    padding:10px 0;
    border-bottom:1px solid var(--ipn-hairline,#eef1f6);
  }
  .ipn-cce .cnt_secundario > table td input[type="text"],
  .ipn-cce .cnt_secundario > table td input[type="password"],
  .ipn-cce .cnt_secundario > table td select{
    max-width:100%;
  }
  .ipn-cce .ipn-cce-rubro,
  .ipn-cce .ipn-cce-rubro .choices{ max-width:100%; }
  .ipn-cce .ipn-cce-iibb-table{ display:block; overflow-x:auto; }
  .ipn-cce .cntBotones,
  .ipn-cce .ipn-secure-actions{ flex-wrap:wrap; }
}

/* ==========================================================================
   AV: 2026-08-09: operationsReport ? CSS migrado desde <style> del ASP (8.x)
   ========================================================================== */
.ipn-ops-report .ipn-tabs{
  margin:0;
  border:1px solid var(--ipn-hairline,#e2e7ef);
  border-bottom:0;
  border-radius:var(--ipn-radius-card,14px) var(--ipn-radius-card,14px) 0 0;
  background:var(--ipn-surface,#fff);
}
.ipn-ops-report .ipn-ops-report__filters-card{
  margin:0 0 16px;
  border-top-left-radius:0;
  border-top-right-radius:0;
}
.ipn-ops-report .ipn-table td:last-child,
.ipn-ops-report .ipn-table thead th:last-child{
  text-align:right;
  font-variant-numeric:tabular-nums;
}
.ipn-ops-report .ipn-datepicker{
  display:flex;
  align-items:stretch;
  max-width:168px;
}
.ipn-ops-report .ipn-datepicker input[data-input]{
  flex:1 1 auto;
  min-width:0;
  height:var(--ipn-control-h);
  padding:0 12px;
  border:1px solid var(--ipn-border-input);
  border-right:0;
  border-radius:var(--ipn-radius-input) 0 0 var(--ipn-radius-input);
  font:inherit;
  font-size:13px;
  color:var(--ipn-text);
  background:var(--ipn-surface);
  box-sizing:border-box;
}
.ipn-ops-report .ipn-datepicker input[data-input]:focus{
  outline:none;
  border-color:var(--ipn-primary);
  box-shadow:0 0 0 3px rgba(63,96,145,.14);
}
.ipn-ops-report .ipn-datepicker__btn{
  flex:0 0 40px;
  width:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--ipn-border-input);
  border-radius:0 var(--ipn-radius-input) var(--ipn-radius-input) 0;
  background:var(--ipn-surface-soft);
  color:var(--ipn-text-muted);
  cursor:pointer;
  padding:0;
}
.ipn-ops-report .ipn-datepicker__btn:hover{
  color:var(--ipn-primary);
  background:var(--ipn-primary-soft);
}
.ipn-ops-report .ipn-datepicker__btn .material-symbols-rounded{ font-size:18px; }
/* AV: 2026-08-09: Flatpickr/Autocomplete se montan en body ? :has(.ipn-ops-report) */
body:has(.ipn-ops-report) .flatpickr-calendar{
  z-index:4000 !important;
  font-family:var(--ipn-font);
}
body:has(.ipn-ops-report) .ui-autocomplete{
  z-index:4001 !important;
  max-height:260px;
  overflow-y:auto;
  overflow-x:hidden;
}
body:has(.ipn-ops-report) .flatpickr-day.selected,
body:has(.ipn-ops-report) .flatpickr-day.startRange,
body:has(.ipn-ops-report) .flatpickr-day.endRange{
  background:var(--ipn-primary) !important;
  border-color:var(--ipn-primary) !important;
}
.ipn-ops-report .ipn-time-select{ width:72px; }
.ipn-ops-report .ipn-op-types-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));
  gap:10px 16px;
}
.ipn-ops-report #IL_CustomerIdToFilter{ max-width:72px; }

/* ==========================================================================
   AV: 2026-08-11: #72981 - Mesa de ayuda: interacciones
   ========================================================================== */
.ipn-mda-interactions .si-filter-card{ margin-bottom:16px; }
.ipn-mda-interactions .si-filter-head,
.ipn-mda-interactions .si-results-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:16px;
}
.ipn-mda-interactions .si-filter-head h2,
.ipn-mda-interactions .si-results-head h2{ margin:0; font-size:15px; color:var(--ipn-text); }
.ipn-mda-interactions .si-filter-head a{ font-size:13px; font-weight:600; }
.ipn-mda-interactions .ipn-form-section{ margin-top:22px; padding-top:18px; border-top:1px solid var(--ipn-border); }
.ipn-mda-interactions .si-multi{ min-height:112px; padding:5px; }
.ipn-mda-interactions .ipn-field small{ margin-top:5px; color:var(--ipn-text-muted); font-size:11px; }
.ipn-mda-interactions .si-actions{ justify-content:flex-end; margin-top:18px; }
.ipn-mda-interactions .si-results-head{ padding:16px 18px 0; }
.ipn-mda-interactions .si-results-head span{ margin-left:6px; color:var(--ipn-text-muted); font-size:12px; font-weight:500; }
.ipn-mda-interactions .si-table{ min-width:850px; table-layout:fixed; }
.ipn-mda-interactions .si-table th:nth-child(1){ width:125px; }
.ipn-mda-interactions .si-table th:nth-child(2){ width:250px; }
.ipn-mda-interactions .si-table th:nth-child(3){ width:190px; }
.ipn-mda-interactions .si-table th:nth-child(4){ width:180px; }
.ipn-mda-interactions .si-table th:nth-child(5){ width:105px; }
.ipn-mda-interactions .si-table td{ vertical-align:top; }
.ipn-mda-interactions .si-table td strong,
.ipn-mda-interactions .si-table td small,
.ipn-mda-interactions .si-ticket-link{ display:block; }
.ipn-mda-interactions .si-table td small{ margin-top:4px; color:var(--ipn-text-muted); line-height:1.35; }
.ipn-mda-interactions .si-ticket-link{ margin-top:5px; line-height:1.35; font-weight:600; }
.ipn-mda-interactions .si-date abbr{ border:0; text-decoration:none; font-weight:600; }
.ipn-mda-interactions .si-privacy{ display:inline-flex; align-items:center; gap:4px; padding:3px 8px; border-radius:999px; font-size:11px; font-weight:700; text-transform:uppercase; }
.ipn-mda-interactions .si-privacy .material-symbols-rounded{ font-size:15px; }
.ipn-mda-interactions .si-privacy.is-public{ background:#e6f5ee; color:#237a52; }
.ipn-mda-interactions .si-privacy.is-private{ background:#eef1f6; color:#53657c; }
.ipn-mda-interactions .si-comment-row td{ padding-top:10px; border-top:0; background:var(--ipn-surface-soft,#f8fafc); }
.ipn-mda-interactions .si-comment{ width:100%; }
.ipn-mda-interactions .si-comment > strong{ display:block; margin-bottom:5px; color:var(--ipn-text-muted); font-size:11px; text-transform:uppercase; }
.ipn-mda-interactions .si-comment > div{ white-space:pre-wrap; line-height:1.5; overflow-wrap:anywhere; }
@media (max-width:700px){
  .ipn-mda-interactions .si-filter-head{ align-items:flex-start; }
  .ipn-mda-interactions .si-actions .ipn-btn{ width:100%; justify-content:center; }
}

/* =====================================================================
   FORMULARIOS iPN2 ? sistema de ABM (REGLAS_FORMULARIOS.md ?11)
   AV: 2026-08-14: Clases gen?ricas para add/edit.
   Corto: .ipn-form__page--sm > ? > .ipn-actions (en flujo, bajo el card).
   Largo: .ipn-actions--sticky (fixed al viewport) + .ipn-form__scroll.
   Extra vs ?11: __scroll, __page--sm/lg, __inner, __spacer.
   ===================================================================== */

/* --- Tokens locales del sistema de formularios --- */
.ipn-form{
  --ipn-form-control-h:42px;
  --ipn-form-border:#d9dfe9;
  --ipn-form-border-hover:#c2c9d4;
  --ipn-form-focus:var(--ipn-brand, #2f62c4);
  --ipn-form-focus-ring:var(--ipn-brand-ring, 0 0 0 3px rgba(47,98,196,.15));
  --ipn-form-radius:9px;
  --ipn-form-label:#4a5566;
  --ipn-form-hint:#9aa5b4;
  --ipn-form-error:#cf3b3b;
  --ipn-form-primary:var(--ipn-brand, #2f62c4);
  --ipn-form-primary-fg:var(--ipn-brand-fg, #fff);
  --ipn-form-page-sm:var(--ipn-container, 1440px);
  --ipn-form-page-lg:var(--ipn-container, 1440px);
  position:relative;
  width:100%;
  box-sizing:border-box;
}
.ipn-form > form{
  display:block;
  width:100%;
  margin:0;
  padding:0;
}

/* Solo formularios largos con barra fija: reserva espacio al pie */
.ipn-form__scroll{
  box-sizing:border-box;
}
.ipn-form:has(.ipn-actions--sticky) .ipn-form__scroll{
  padding-bottom:100px;
}

/* Columna de contenido centrada */
.ipn-form__page{
  width:100%;
  margin:0 auto;
  box-sizing:border-box;
}
.ipn-form__page--sm{
  width:100%;
  max-width:var(--ipn-container, 1440px);
  margin:0 auto;
}
.ipn-form__page--lg{
  max-width:var(--ipn-form-page-lg);
  width:100%;
}

/* Formulario largo: ?ndice lateral + cuerpo */
.ipn-form__page--lg{
  display:grid;
  grid-template-columns:196px minmax(0,1fr);
  gap:28px;
  align-items:start;
}
.ipn-form__aside{
  position:sticky;
  top:var(--ipn-sticky-top, 0);
  display:flex;
  flex-direction:column;
  gap:4px;
  padding-top:4px;
}
.ipn-form__aside a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:8px 10px;
  border-radius:8px;
  font-size:12.5px;
  font-weight:500;
  color:var(--ipn-text-3, #6b7685);
  text-decoration:none;
  line-height:1.3;
}
.ipn-form__aside a:hover{
  background:var(--ipn-surface-soft, #f7f9fc);
  color:var(--ipn-text, #16294d);
}
.ipn-form__aside a.is-active{
  background:var(--ipn-brand-soft, #e8eef8);
  color:var(--ipn-form-focus);
  font-weight:600;
}
.ipn-form__aside a.is-invalid .material-symbols-rounded,
.ipn-form__aside a .ipn-form__aside-err{
  color:var(--ipn-form-error);
  font-size:16px;
}
.ipn-form__body{ min-width:0; }

/* Breadcrumb / page-head dentro del form (medidas 12a) */
.ipn-form .ipn-breadcrumb{
  font-size:12.5px;
  color:#8a94a2;
  margin:4px 0 14px;
}
.ipn-form .ipn-breadcrumb a{
  color:var(--ipn-brand-link, var(--ipn-brand, #2f62c4));
  text-decoration:none;
  font-weight:500;
}
.ipn-form .ipn-breadcrumb a:hover{ text-decoration:underline; }
.ipn-form .ipn-breadcrumb b{
  color:#8a94a2;
  font-weight:500;
}
.ipn-form .ipn-page-head{
  align-items:flex-start;
  margin-bottom:18px;
}
.ipn-form .ipn-page-head__icon{
  width:48px;
  height:48px;
  flex:0 0 48px;
  border-radius:12px;
  background:var(--ipn-brand-soft, #e8eef8);
  color:var(--ipn-brand, #2f62c4);
}
.ipn-form .ipn-page-head__icon .material-symbols-rounded{ font-size:24px; }
.ipn-form .ipn-page-title{
  font-size:24px;
  font-weight:700;
  letter-spacing:-.02em;
  color:#16294d;
  line-height:1.2;
}
.ipn-form .ipn-page-subtitle{
  font-size:13.5px;
  color:#6b7685;
  margin-top:4px;
}
.ipn-form .ipn-page-subtitle .ipn-req{
  margin-left:0;
  color:var(--ipn-form-error);
}

/* Card del formulario */
.ipn-form .ipn-card{
  background:#fff;
  border:1px solid #e6e9ef;
  border-radius:12px;
  padding:22px 24px 24px;
  display:flex;
  flex-direction:column;
  gap:22px;
  box-shadow:none;
  box-sizing:border-box;
}
/* AV: 2026-09-07: #439 ? .ipn-form .ipn-card reaplica radius y pisa el flush can?nico de tabs (#133). */
.ipn-form .ipn-tabs + .ipn-card,
.ipn-form .ipn-tabs + .ipn-card--table,
.ipn-form .ipn-tabs ~ .ipn-card[data-panel],
.ipn-form .ipn-tabs ~ .ipn-card[data-ipn-panel]{
  margin-top:0;
  border-top-left-radius:0;
  border-top-right-radius:0;
}
.ipn-form .ipn-card > .ipn-card__body{
  padding:0;
  display:flex;
  flex-direction:column;
  gap:22px;
}

/* --- Secciones --- */
.ipn-section{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:16px; /* AV: 2026-08-19: mismo gap vertical entre filas (.ipn-grid) que dentro del grid. */
}
.ipn-section__title{
  margin:0;
  padding-bottom:9px;
  border-bottom:1px solid #eef1f6;
  font-size:11px;
  font-weight:700;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:#8a94a2;
  line-height:1.3;
}

/* --- Grilla 12 col --- */
.ipn-grid{
  display:grid;
  grid-template-columns:repeat(12, minmax(0, 1fr));
  gap:16px 18px;
  align-items:start;
}
/* AV: 2026-08-19: fila visual vac?a (campos .is-hidden) no deja hueco entre grids. */
.ipn-grid:not(:has(> .ipn-field:not(.is-hidden))){
  display:none;
}

/* --- Campo --- */
.ipn-form .ipn-field,
.ipn-grid > .ipn-field{
  display:flex;
  flex-direction:column;
  gap:0;
  min-width:0;
}
.ipn-field--c2{ grid-column:span 2; }
.ipn-field--c2 .ipn-field__hint{ white-space:nowrap; }
.ipn-field--c3{ grid-column:span 3; }
.ipn-field--c4{ grid-column:span 4; }
.ipn-field--c6{ grid-column:span 6; }
.ipn-field--c7{ grid-column:span 7; } /* AV: 2026-08-22: multi-select reportes (7/12). */
.ipn-field--c8{ grid-column:span 8; }
.ipn-field--c9{ grid-column:span 9; }
.ipn-field--c12{ grid-column:span 12; }

.ipn-field__label,
.ipn-form .ipn-label{
  display:block;
  font-size:12.5px;
  font-weight:500;
  color:var(--ipn-form-label, #4a5566);
  margin:0 0 6px;
  line-height:1.3;
}
.ipn-form .ipn-req,
.ipn-field__label .ipn-req{
  color:var(--ipn-form-error, #cf3b3b);
  font-weight:600;
  margin-left:0;
}
.ipn-field__hint{
  margin:5px 0 0;
  font-size:11.5px;
  color:var(--ipn-form-hint, #9aa5b4);
  line-height:1.4;
}
.ipn-field__error{
  display:flex;
  align-items:flex-start;
  gap:4px;
  margin:5px 0 0;
  font-size:11.5px;
  color:var(--ipn-form-error, #cf3b3b);
  line-height:1.4;
}
.ipn-field__error .material-symbols-rounded{
  font-size:14px !important;
  line-height:1.2;
  flex:0 0 auto;
  margin-top:1px;
}

/* Controles: 42px, borde y foco del sistema de formularios */
.ipn-form .ipn-input,
.ipn-form .ipn-select,
.ipn-form select.ipn-select,
.ipn-form .ipn-textarea,
.ipn-form-grid .ipn-input,
.ipn-form-grid .ipn-select,
.ipn-form-grid select.ipn-select,
.ipn-form-grid .ipn-textarea,
.ipn-grid .ipn-input,
.ipn-grid .ipn-select,
.ipn-grid select.ipn-select,
.ipn-grid .ipn-textarea{
  height:var(--ipn-form-control-h, 42px);
  min-height:var(--ipn-form-control-h, 42px);
  padding:0 13px;
  border:1px solid var(--ipn-form-border, #d9dfe9);
  border-radius:var(--ipn-form-radius, 9px);
  background:#fff;
  font:inherit;
  font-size:13.5px;
  color:#1e2733;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  transition:border-color .12s ease, box-shadow .12s ease;
}
.ipn-form .ipn-textarea,
.ipn-form-grid .ipn-textarea,
.ipn-grid .ipn-textarea{
  height:auto;
  min-height:78px;
  padding:11px 13px;
  resize:vertical;
  line-height:1.45;
}
.ipn-form .ipn-input:hover,
.ipn-form .ipn-select:hover,
.ipn-form select.ipn-select:hover,
.ipn-form .ipn-textarea:hover,
.ipn-form-grid .ipn-input:hover,
.ipn-form-grid .ipn-select:hover,
.ipn-form-grid select.ipn-select:hover,
.ipn-form-grid .ipn-textarea:hover,
.ipn-grid .ipn-input:hover,
.ipn-grid .ipn-select:hover,
.ipn-grid select.ipn-select:hover,
.ipn-grid .ipn-textarea:hover{
  border-color:var(--ipn-form-border-hover, #c2c9d4);
}
.ipn-form .ipn-input:focus,
.ipn-form .ipn-select:focus,
.ipn-form select.ipn-select:focus,
.ipn-form .ipn-textarea:focus,
.ipn-form-grid .ipn-input:focus,
.ipn-form-grid .ipn-select:focus,
.ipn-form-grid select.ipn-select:focus,
.ipn-form-grid .ipn-textarea:focus,
.ipn-grid .ipn-input:focus,
.ipn-grid .ipn-select:focus,
.ipn-grid select.ipn-select:focus,
.ipn-grid .ipn-textarea:focus{
  outline:none;
  border-color:var(--ipn-form-focus, var(--ipn-brand, #2f62c4));
  box-shadow:var(--ipn-form-focus-ring);
}

/* AV: 2026-08-26: Choices.js y readonly en formularios ERP (sin scope *-form). */
.ipn-form .choices,
.ipn-form-grid .choices,
.ipn-grid .choices{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
.ipn-form .ipn-readonly,
.ipn-form-grid .ipn-readonly,
.ipn-grid .ipn-readonly{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}

/* Select: chevron propio (appearance:none + glifo) */
.ipn-form .ipn-select,
.ipn-form select.ipn-select,
.ipn-form-grid .ipn-select,
.ipn-form-grid select.ipn-select,
.ipn-grid .ipn-select,
.ipn-grid select.ipn-select{
  appearance:none;
  -webkit-appearance:none;
  padding-right:36px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M7 10l5 5 5-5' stroke='%238a94a2' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 10px center;
  background-color:#fff;
  cursor:pointer;
}

/* Num?ricos: derecha + mono + tabular */
.ipn-input--num{
  text-align:right;
  font-family:var(--ipn-font-mono, 'IBM Plex Mono', ui-monospace, monospace);
  font-variant-numeric:tabular-nums;
}

/* Affix: sufijo % / $ dentro del campo (extiende Review 02) */
.ipn-form .ipn-input-affix,
.ipn-grid .ipn-input-affix,
.ipn-field .ipn-input-affix{
  height:var(--ipn-form-control-h, 42px);
  min-height:var(--ipn-form-control-h, 42px);
  max-width:100%;
  width:100%;
  padding:0 13px;
  border:1px solid var(--ipn-form-border, #d9dfe9);
  border-radius:var(--ipn-form-radius, 9px);
  background:#fff;
  box-sizing:border-box;
}
.ipn-form .ipn-input-affix:hover,
.ipn-grid .ipn-input-affix:hover,
.ipn-field .ipn-input-affix:hover{
  border-color:var(--ipn-form-border-hover, #c2c9d4);
}
.ipn-form .ipn-input-affix:focus-within,
.ipn-grid .ipn-input-affix:focus-within,
.ipn-field .ipn-input-affix:focus-within{
  border-color:var(--ipn-form-focus, var(--ipn-brand, #2f62c4));
  box-shadow:var(--ipn-form-focus-ring);
}
.ipn-input-affix__suffix{
  flex:none;
  font-size:13.5px;
  font-weight:500;
  color:var(--ipn-form-hint, #9aa5b4);
  font-family:var(--ipn-font-mono, 'IBM Plex Mono', ui-monospace, monospace);
  line-height:1;
  pointer-events:none;
  user-select:none;
}
.ipn-form .ipn-input--bare,
.ipn-grid .ipn-input--bare,
.ipn-field .ipn-input--bare{
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  height:100%;
  min-height:0;
  padding:0;
  outline:none;
}
.ipn-input-affix .ipn-input--num{
  text-align:right;
}

/* Estados invalid / readonly / disabled */
.ipn-input.is-invalid,
.ipn-select.is-invalid,
select.ipn-select.is-invalid,
.ipn-textarea.is-invalid,
.ipn-field.is-invalid .ipn-input,
.ipn-field.is-invalid .ipn-select,
.ipn-field.is-invalid select.ipn-select,
.ipn-field.is-invalid .ipn-textarea,
.ipn-field.is-invalid .ipn-input-affix{
  border-color:var(--ipn-form-error, #cf3b3b) !important;
}
.ipn-input.is-invalid:focus,
.ipn-select.is-invalid:focus,
.ipn-textarea.is-invalid:focus,
.ipn-field.is-invalid .ipn-input:focus,
.ipn-field.is-invalid .ipn-select:focus,
.ipn-field.is-invalid .ipn-textarea:focus,
.ipn-field.is-invalid .ipn-input-affix:focus-within{
  box-shadow:0 0 0 3px rgba(207,59,59,.15);
}
.ipn-input.is-readonly,
.ipn-select.is-readonly,
.ipn-textarea.is-readonly,
.ipn-input[readonly],
.ipn-textarea[readonly]{
  background:#f7f9fc;
  color:#8a94a2;
  border-color:#e6e9ef;
  cursor:default;
}
.ipn-input:disabled,
.ipn-select:disabled,
select.ipn-select:disabled,
.ipn-textarea:disabled{
  background:#f7f9fc;
  color:#8a94a2;
  border-color:#e6e9ef;
  opacity:.7;
  cursor:not-allowed;
}

/* --- Checkbox / radio (?4.5) --- */
/* Wrapper del patr?n nuevo. input.ipn-check legacy (15px) queda aparte. */
div.ipn-check,
.ipn-form label.ipn-check{
  display:flex;
  align-items:flex-start;
  gap:10px;
  width:auto;
  height:auto;
  margin:0;
  cursor:pointer;
  font-size:13.5px;
  color:#1e2733;
  line-height:1.45;
}
div.ipn-check > input[type="checkbox"],
div.ipn-check > input[type="radio"],
.ipn-form label.ipn-check > input[type="checkbox"],
.ipn-form label.ipn-check > input[type="radio"]{
  width:18px;
  height:18px;
  min-width:18px;
  margin:1px 0 0;
  flex:none;
  accent-color:var(--ipn-form-primary, var(--ipn-brand, #2f62c4));
  cursor:pointer;
  border-radius:5px;
}
div.ipn-check > label{
  display:block;
  min-width:0;
  cursor:pointer;
  font-size:13.5px;
  font-weight:400;
  color:#1e2733;
  line-height:1.45;
}
.ipn-check__hint{
  display:block;
  margin-top:3px;
  font-size:11.5px;
  color:var(--ipn-form-hint, #9aa5b4);
  line-height:1.4;
  font-weight:400;
}
.ipn-radio-row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:14px 22px;
}
.ipn-radio-row .ipn-check,
.ipn-radio-row label.ipn-check{
  align-items:center;
}

/* --- Acciones --- */
/* AV: 2026-08-14: corto = en flujo bajo el card; sticky = solo formularios largos. */
.ipn-actions{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 0 30px;
  box-sizing:border-box;
  background:transparent;
  border:0;
  box-shadow:none;
}
.ipn-actions__spacer{ flex:1 1 auto; min-width:8px; }
.ipn-actions__note{
  font-size:12.5px;
  color:var(--ipn-form-hint, #9aa5b4);
  line-height:1.3;
  margin-right:8px;
}
.ipn-actions--sticky{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:200;
  height:70px;
  padding:0 24px;
  display:flex;
  align-items:center;
  background:#fff;
  border-top:1px solid #e6e9ef;
  box-shadow:0 -6px 20px rgba(20,32,56,.07);
  box-sizing:border-box;
}
.ipn-actions__inner{
  display:flex;
  align-items:center;
  gap:12px;
  width:100%;
  margin:0 auto;
  box-sizing:border-box;
}
.ipn-form--sm .ipn-actions--sticky .ipn-actions__inner{
  max-width:var(--ipn-form-page-sm);
  width:100%;
}
.ipn-form--lg .ipn-actions--sticky .ipn-actions__inner{
  max-width:var(--ipn-form-page-lg);
  width:100%;
}

.ipn-actions .ipn-btn{
  height:var(--ipn-form-control-h, 42px);
  min-height:var(--ipn-form-control-h, 42px);
  padding:0 22px;
  border-radius:var(--ipn-form-radius, 9px);
  font-size:13.5px;
  font-weight:600;
  box-sizing:border-box;
}
.ipn-actions .ipn-btn--primary{
  /* AV: 2026-08-19: color = misma regla .ipn-ap-wrap .ipn-btn--primary (acento, no fondo de men?). */
  box-shadow:var(--ipn-brand-shadow, 0 2px 8px rgba(47,98,196,.28));
}
.ipn-actions .ipn-btn--primary:hover{
  background:var(--ipn-brand-hover, var(--ipn-primary-hover));
  color:var(--ipn-brand-fg, #fff);
}
.ipn-actions .ipn-btn--secondary{
  background:#fff;
  color:#4a5566;
  border:1px solid var(--ipn-form-border, #d9dfe9);
}
.ipn-actions .ipn-btn--secondary:hover{
  background:#f7f9fc;
  color:#1e2733;
}
.ipn-actions .ipn-btn.is-loading{
  pointer-events:none;
  opacity:.85;
  cursor:default;
}

/* --- Notices del sistema de formularios --- */
.ipn-notice--error{
  background:#fbe8e8;
  border-color:#f0c8c8;
}
.ipn-notice--error .ipn-notice__icon{ color:var(--ipn-form-error, #cf3b3b); }
.ipn-form .ipn-notice{
  margin:0 0 16px;
}
.ipn-form .ipn-notice__body a{
  color:var(--ipn-brand-link, var(--ipn-form-focus, var(--ipn-brand, #2f62c4)));
  font-weight:600;
  text-decoration:underline;
  text-underline-offset:2px;
}

/* --- Responsive (?9) --- */
@media (max-width:1199px){
  .ipn-form__page--sm,
  .ipn-form--sm > .ipn-actions--sticky .ipn-actions__inner{
    width:100%;
    max-width:var(--ipn-form-page-sm);
  }
  .ipn-form__page--lg,
  .ipn-form--lg > .ipn-actions--sticky .ipn-actions__inner{
    width:100%;
    max-width:var(--ipn-form-page-lg);
  }
  .ipn-field--c2{ grid-column:span 3; }
  .ipn-field--c3{ grid-column:span 4; }
  .ipn-field--c4{ grid-column:span 6; }
  .ipn-field--c8{ grid-column:span 12; }
}
@media (max-width:1023px){
  .ipn-form__page--lg{
    grid-template-columns:1fr;
    gap:0;
  }
  .ipn-form__aside{ display:none; }
}
@media (max-width:899px){
  .ipn-field--c2,
  .ipn-field--c3,
  .ipn-field--c4,
  .ipn-field--c6,
  .ipn-field--c7, /* AV: 2026-09-01: #205 ? multi-select reportes tambi?n full-width en mobile. */
  .ipn-field--c8,
  .ipn-field--c9,
  .ipn-field--c12{ grid-column:1 / -1; }
  .ipn-form__page--sm,
  .ipn-form__page--lg{
    width:100%;
    max-width:100%;
  }
  .ipn-form--sm > .ipn-actions--sticky .ipn-actions__inner,
  .ipn-form--lg > .ipn-actions--sticky .ipn-actions__inner{
    width:100%;
    max-width:100%;
  }
}
@media (max-width:767px){
  .ipn-form:has(.ipn-actions--sticky) .ipn-form__scroll{ padding-bottom:130px; }
  .ipn-shell--nav .ipn-shell__body > .ipn-form,
  .ipn-shell--nav .ipn-shell__body > form.ipn-form{
    padding:16px 16px 0 !important;
  }
  .ipn-form .ipn-card{
    padding:18px 16px 20px;
  }
  .ipn-form .ipn-input,
  .ipn-form .ipn-select,
  .ipn-form select.ipn-select,
  .ipn-form .ipn-textarea,
  .ipn-grid .ipn-input,
  .ipn-grid .ipn-select,
  .ipn-grid select.ipn-select,
  .ipn-grid .ipn-textarea,
  .ipn-form .ipn-input-affix,
  .ipn-grid .ipn-input-affix,
  .ipn-actions .ipn-btn{
    height:auto;
    min-height:44px;
    font-size:16px; /* AV: 2026-08-14: evita zoom iOS al enfocar */
  }
  .ipn-form .ipn-textarea,
  .ipn-grid .ipn-textarea{ min-height:78px; }
  .ipn-actions{
    flex-direction:column-reverse;
    align-items:stretch;
    gap:10px;
    padding:16px 0 24px;
  }
  .ipn-actions__spacer{ display:none; }
  .ipn-actions__note{
    order:-1;
    margin:0 0 4px;
    text-align:center;
  }
  .ipn-actions .ipn-btn{
    width:100%;
    justify-content:center;
  }
  .ipn-actions--sticky{
    height:auto;
    min-height:70px;
    padding:12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
  }
  .ipn-actions--sticky .ipn-actions__inner{
    flex-direction:column-reverse;
    align-items:stretch;
    gap:10px;
  }
  .ipn-radio-row{ flex-direction:column; align-items:flex-start; }
}

@media (prefers-reduced-motion:reduce){
  .ipn-form .ipn-input,
  .ipn-form .ipn-select,
  .ipn-form .ipn-textarea,
  .ipn-form .ipn-input-affix{
    transition:none;
  }
}

/* AV: 2026-08-14: ocultar bloques condicionales del form sin style="" inline. */
.ipn-form .is-hidden{ display:none !important; }

/* AV: 2026-08-27: Empaque ? medidas 4 cols desktop / 2 tablet / 1 mobile (#82). */
.ipn-form.ipn-config-abm--empaque .ipn-config-abm__empaque-dims{
  grid-column:1 / -1;
  min-width:0;
}
.ipn-form.ipn-config-abm--empaque .ipn-config-abm__empaque-dims > .ipn-form-grid--2{
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:16px 20px;
}
.ipn-form.ipn-config-abm--empaque .ipn-config-abm__empaque-dims .ipn-field{
  min-width:0;
}
.ipn-form.ipn-config-abm--empaque .ipn-config-abm__empaque-dims .ipn-input{
  width:100%;
  max-width:100%;
}
/* AV: 2026-08-27: nombre al lateral del H1 en edici?n Empaque (#82). */
.ipn-form.ipn-config-abm--empaque .ipn-page-title{
  display:flex;
  flex-wrap:nowrap;
  align-items:baseline;
  gap:8px;
  min-width:0;
  max-width:100%;
}
.ipn-form.ipn-config-abm--empaque .ipn-page-head__text{ min-width:0; }
.ipn-form.ipn-config-abm--empaque .ipn-page-title__label{
  flex:0 0 auto;
  white-space:nowrap;
}
.ipn-form.ipn-config-abm--empaque .ipn-page-title__entity{
  flex:1 1 auto;
  min-width:0;
  font-size:16px;
  font-weight:600;
  color:var(--ipn-text-2, #55606f);
  line-height:1.3;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
@media (max-width:1000px){
  .ipn-form.ipn-config-abm--empaque .ipn-config-abm__empaque-dims > .ipn-form-grid--2{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}
@media (max-width:700px){
  .ipn-form.ipn-config-abm--empaque .ipn-config-abm__empaque-dims > .ipn-form-grid--2{
    grid-template-columns:minmax(0, 1fr);
  }
}

/* AV: 2026-08-20: Per?odos de gesti?n/impositivos (moduleID 156) ? listado / form / cierre / reapertura. */
.ipn-acct-period{ min-width:0; }
.ipn-acct-period .ipn-page-head{ margin-bottom:20px; }
.ipn-acct-period .ipn-card + .ipn-card,
.ipn-acct-period .ipn-card + .ipn-notice,
.ipn-acct-period .ipn-notice-stack + .ipn-card{ margin-top:16px; }
.ipn-acct-period .ipn-row-actions{ justify-content:center; }
/* AV: 2026-08-27: scroll-x grilla + bordes card (#74 / UI-LISTADOS). */
.ipn-acct-period .ipn-card--table,
.ipn-acct-period .ipn-table-wrap{ max-width:100%; min-width:0; }
.ipn-acct-period .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-acct-period .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
/* AV: 2026-09-08: per?odo compacto + meta apertura/cierre en 2 l?neas. */
.ipn-acct-period .ipn-table__period{ white-space:nowrap; }
.ipn-acct-period td .ipn-cell-strong{
  display:block;
  line-height:1.3;
  max-width:220px;
  overflow-wrap:anywhere;
}
.ipn-acct-period td .ipn-cell-sub{ white-space:nowrap; }
.ipn-acct-period-close .ipn-notice,
.ipn-acct-period-reopen .ipn-notice{ margin:0 0 16px; }
.ipn-acct-period-close .ipn-check-row,
.ipn-acct-period-reopen .ipn-check-row{ margin-top:4px; }
.ipn-acct-period-close .ipn-field,
.ipn-acct-period-reopen .ipn-field,
.ipn-acct-period-close .ipn-card__body,
.ipn-acct-period-reopen .ipn-card__body{ min-width:0; }
.ipn-acct-period-close .ipn-check-row,
.ipn-acct-period-reopen .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
}
.ipn-acct-period-close .ipn-check-row > span,
.ipn-acct-period-reopen .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ipn-acct-period-close .ipn-secure-actions,
.ipn-acct-period-reopen .ipn-secure-actions{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:16px;
}
.ipn-acct-period-close .ipn-secure-actions .ipn-btn--danger,
.ipn-acct-period-reopen .ipn-secure-actions .ipn-btn--primary{ margin-left:auto; }
.ipn-acct-period-form .ipn-field{ min-width:0; }
.ipn-acct-period-form .ipn-field--sm .ipn-datepicker{
  width:auto;
}
.ipn-acct-period-form .ipn-datepicker{
  display:inline-flex;
  align-items:stretch;
  max-width:168px;
  width:168px;
}
.ipn-acct-period-form .ipn-datepicker input[data-input]{
  flex:1 1 auto;
  min-width:0;
  width:auto;
  height:var(--ipn-control-h, 42px);
  padding:0 12px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-right:0;
  border-radius:var(--ipn-radius-input, 8px) 0 0 var(--ipn-radius-input, 8px);
  font:inherit;
  font-size:14px;
  color:var(--ipn-text);
  background:var(--ipn-surface);
  box-sizing:border-box;
}
.ipn-acct-period-form .ipn-datepicker input[data-input]:focus{
  outline:none;
  border-color:var(--ipn-brand, var(--ipn-primary));
  z-index:1;
}
.ipn-acct-period-form .ipn-datepicker__btn{
  flex:0 0 40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-radius:0 var(--ipn-radius-input, 8px) var(--ipn-radius-input, 8px) 0;
  background:var(--ipn-surface-2, #f5f7fa);
  color:var(--ipn-text-2);
  cursor:pointer;
  padding:0;
}
.ipn-acct-period-form .ipn-datepicker__btn:hover{
  background:var(--ipn-surface-3, #eef2f7);
  color:var(--ipn-brand, var(--ipn-primary));
}
.ipn-acct-period-form .ipn-datepicker__btn .material-symbols-rounded{ font-size:18px; }
/* AV: 2026-08-27: mobile ? datepickers full width + grilla sin sticky left (#74). */
@media (max-width:899px){
  .ipn-acct-period .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-acct-period .ipn-table--list .ipn-table__th-desc,
  .ipn-acct-period .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}
@media (max-width:700px){
  .ipn-acct-period-form .ipn-field--sm .ipn-datepicker,
  .ipn-acct-period-form .ipn-datepicker{
    max-width:none;
    width:100%;
  }
}

/* AV: 2026-08-20: Empresas / Razones sociales ? listado / detalle / form / borrado (scope .ipn-company*). */
.ipn-company-detail__preview{
  display:inline-block;
  max-width:100%;
  border:1px solid #e2e7ef;
  border-radius:8px;
  padding:8px;
  background:#fff;
}
.ipn-company-detail__preview img{
  display:block;
  max-width:100%;
  height:auto;
}
.ipn-company-detail__list{
  margin:0;
  padding-left:1.2em;
  line-height:1.55;
}
.ipn-company-detail__disc{
  white-space:normal;
  word-break:break-word;
}
.ipn-company-detail__ok{ color:#027a48; vertical-align:middle; font-size:18px; }
.ipn-company-detail__no{ color:#b42318; vertical-align:middle; font-size:18px; }
.ipn-company-detail .ipn-secure-actions{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:16px;
}
.ipn-company-detail .ipn-form-section{ margin-bottom:18px; }
.ipn-company-detail .ipn-form-section:last-child{ margin-bottom:0; }
/* AV: 2026-08-27: #72 ? detalle RS: scroll-x tablas embebidas; sidebar oculto en mobile (kebab page-head). */
.ipn-company-detail .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-company-detail .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
@media (max-width:899px){
  .ipn-company-detail .ipn-table--list thead th{
    position:static;
    top:auto;
  }
  .ipn-company-detail .ipn-detail-side{
    display:none;
  }
}

/* AV: 2026-08-24: Detalle RS secure ? tab IIBB compacto (sin columnas estiradas a todo el card). */
.ipn-company-rs-detail .ipn-rs-iibb{
  display:flex;
  flex-direction:column;
  gap:14px;
  max-width:720px;
}
.ipn-company-rs-detail .ipn-rs-iibb .ipn-notice{ margin:0; }
.ipn-company-rs-detail .ipn-rs-iibb__table-wrap{
  width:fit-content;
  max-width:100%;
  border:1px solid var(--ipn-secure-card-border, #e2e7ef);
  border-radius:10px;
  overflow:hidden;
  background:#fff;
}
.ipn-company-rs-detail .ipn-rs-iibb .ipn-table--fit{
  width:auto;
  min-width:0;
  margin:0;
}
.ipn-company-rs-detail .ipn-rs-iibb .ipn-table--fit thead th{
  white-space:nowrap;
}
.ipn-company-rs-detail .ipn-rs-iibb .ipn-table--fit th:first-child,
.ipn-company-rs-detail .ipn-rs-iibb .ipn-table--fit td:first-child{
  min-width:260px;
  max-width:420px;
}
.ipn-company-rs-detail .ipn-rs-iibb .ipn-table--fit th.is-center,
.ipn-company-rs-detail .ipn-rs-iibb .ipn-table--fit td.is-center{
  width:112px;
  min-width:96px;
}
.ipn-company-rs-detail .ipn-rs-iibb .ipn-table--fit th.is-num,
.ipn-company-rs-detail .ipn-rs-iibb .ipn-table--fit td.is-num{
  width:140px;
}
.ipn-company-rs-detail .ipn-rs-iibb__code{
  display:inline-block;
  margin-right:8px;
  font-family:var(--ipn-font-mono, ui-monospace, monospace);
  font-variant-numeric:tabular-nums;
  font-weight:600;
  color:var(--ipn-text-2, #5b6b82);
}
.ipn-company-rs-detail .ipn-rs-iibb__name{
  font-weight:600;
  color:var(--ipn-text, #1a2b44);
}
.ipn-company-rs-detail #tab2content .ipn-table td:first-child{
  width:300px;
  color:var(--ipn-text-2, #5b6b82);
}

.ipn-company-form .ipn-tabs{
  margin:0;
  border-radius:var(--ipn-radius-card, 12px) var(--ipn-radius-card, 12px) 0 0;
}
.ipn-company-form > .ipn-card{ padding:0; overflow:hidden; }
.ipn-company-form .ipn-card__body{ padding:18px 20px 8px; }
.ipn-company-form .ipn-form-section{ margin-bottom:18px; }
.ipn-company-form .ipn-form-section:last-of-type{ margin-bottom:4px; }
.ipn-company-form .ipn-form-grid--2{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px 16px;
}
.ipn-company-form .ipn-textarea{ min-height:88px; resize:vertical; }
.ipn-company-form .ipn-secure-actions{
  display:flex;
  align-items:center;
  gap:10px;
  margin:16px 0 8px;
}
.ipn-company-form .ipn-secure-actions .ipn-btn--primary{ margin-left:auto; }
.ipn-company-form__image{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin:12px 0;
}
.ipn-company-form__preview{
  display:inline-block;
  max-width:100%;
  border:1px solid #e2e7ef;
  border-radius:8px;
  padding:8px;
  background:#fff;
}
.ipn-company-form__preview img{
  display:block;
  max-width:100%;
  height:auto;
}
.ipn-company-form__image-actions{ display:flex; gap:8px; flex-wrap:wrap; }
.ipn-company-form__deleting{
  font-size:13px;
  color:var(--ipn-muted, #5b6b80);
}
@media (max-width:700px){
  .ipn-company-form .ipn-form-grid--2{ grid-template-columns:1fr; }
}

/* AV: 2026-08-20: Notificaciones (cola de emails) ? listado iPN2 (scope .ipn-notif-queue). */
.ipn-notif-queue__date{
  white-space:nowrap;
}
.ipn-notif-queue__time{
  display:inline-block;
  margin-left:4px;
  color:var(--ipn-muted, #5b6b80);
  font-weight:500;
}
.ipn-notif-queue .ipn-table--list td{
  word-break:break-word;
}

/* AV: 2026-08-20: Configuraci?n de notificaciones ? form / borrado (solo lo no cubierto por clases globales). */
.ipn-mail-settings{
  min-width:0;
}


.ipn-mail-settings-form__hint{
  margin:0 0 14px;
  font-size:13.5px;
  color:var(--ipn-muted, #5b6b80);
  line-height:1.45;
}
.ipn-mail-settings-form .ipn-form-section{ margin-bottom:18px; }
.ipn-mail-settings-form .ipn-form-section:last-of-type{ margin-bottom:4px; }
.ipn-mail-settings-form__legacy{
  display:none;
}

/* AV: 2026-08-20: Configuracion avanzada (businessRules) ? hub / reglas / auditoria (scope .ipn-biz-rules*). */
.ipn-biz-rules .ipn-notice-stack + .ipn-biz-rules__list{ margin-top:16px; }
.ipn-biz-rules__section{ margin:0 0 28px; }
.ipn-biz-rules__section-title{
  font-size:15px;
  font-weight:700;
  color:var(--ipn-text, #122740);
  margin:0 0 4px;
  padding-bottom:8px;
  border-bottom:1px solid var(--ipn-hairline, #e2e7ef);
  letter-spacing:-.01em;
}
.ipn-biz-rules__section-desc{
  margin:0 0 12px;
  font-size:13px;
  color:var(--ipn-text-3, #5b6b80);
  line-height:1.4;
}
.ipn-biz-rules .ipn-access-grid{ margin-top:4px; }
.ipn-biz-rules__list{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin:0 0 8px;
}
.ipn-biz-rules__rule{
  display:flex;
  gap:16px;
  align-items:flex-start;
  padding:16px 18px;
  background:var(--ipn-surface, #fff);
  border:1px solid var(--ipn-hairline, #e2e7ef);
  border-radius:var(--ipn-radius-card, 12px);
  box-shadow:var(--ipn-shadow-card, 0 1px 2px rgba(18,39,64,.04));
}
.ipn-biz-rules__rule-id{
  flex:0 0 auto;
  min-width:56px;
  padding-top:2px;
  font-size:12px;
  font-weight:700;
  color:var(--ipn-text-3, #5b6b80);
  font-variant-numeric:tabular-nums;
}
.ipn-biz-rules__rule-main{ flex:1 1 auto; min-width:0; }
.ipn-biz-rules__rule-head{
  display:flex;
  align-items:flex-start;
  gap:12px;
  margin:0 0 6px;
}
.ipn-biz-rules__rule-title{
  flex:1 1 auto;
  min-width:0;
  margin:0;
  font-size:15px;
  font-weight:650;
  color:var(--ipn-text, #122740);
  line-height:1.3;
}
.ipn-biz-rules__rule-head .ipn-row-actions{
  flex:0 0 auto;
  opacity:1;
}
.ipn-biz-rules__rule-desc{
  margin:0 0 12px;
  font-size:13px;
  color:var(--ipn-text-3, #5b6b80);
  line-height:1.45;
}
.ipn-biz-rules__rule-control{ max-width:100%; }
.ipn-biz-rules__rule-control select,
.ipn-biz-rules__rule-control .ipn-select{
  min-height:var(--ipn-control-h, 42px);
  max-width:min(100%, 420px);
  padding:8px 12px;
  border:1px solid var(--ipn-hairline, #e2e7ef);
  border-radius:8px;
  background:#fff;
  font:inherit;
  color:inherit;
  box-sizing:border-box;
}
.ipn-biz-rules__input-num{
  max-width:120px;
  width:100%;
  box-sizing:border-box;
}
.ipn-biz-rules-details .ipn-secure-actions{
  display:flex;
  align-items:center;
  gap:10px;
  margin:16px 0 8px;
}
.ipn-biz-rules-details .ipn-secure-actions .ipn-btn--primary{ margin-left:auto; }
.ipn-biz-rules-log .ipn-table th.is-center,
.ipn-biz-rules-log .ipn-table td.is-center{ text-align:center; }
@media (max-width:700px){
  .ipn-biz-rules__rule{
    flex-direction:column;
    gap:8px;
  }
  .ipn-biz-rules__rule-control select,
  .ipn-biz-rules__rule-control .ipn-select{
    max-width:100%;
    width:100%;
  }
  .ipn-biz-rules-details .ipn-secure-actions{
    flex-wrap:wrap;
  }
  .ipn-biz-rules-details .ipn-secure-actions .ipn-btn--primary{
    margin-left:0;
    width:100%;
  }
}

/* AV: 2026-08-20: Tareas programadas ? listado / detalle / borrado (scope .ipn-task-sched*). */
.ipn-task-sched form + .ipn-tabs{ margin-top:16px; }
/* AV: 2026-08-27: M?rgenes de bloques apilados ? sin style inline (#101). */
.ipn-task-sched .ipn-card + .ipn-card,
.ipn-task-sched .ipn-card + .ipn-notice,
.ipn-task-sched .ipn-card + .ipn-task-sched__legacy,
.ipn-task-sched .ipn-notice + .ipn-card,
.ipn-task-sched-detail .ipn-dl + .ipn-table-wrap{
  margin-top:16px;
}
.ipn-task-sched-filters{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:12px 16px;
}
.ipn-task-sched-filters .ipn-field--sm{ flex:0 1 168px; min-width:140px; }
.ipn-task-sched-filters .ipn-field--sm .ipn-datepicker,
.ipn-task-sched-filters .ipn-field--sm .ipn-input{
  max-width:168px;
  width:100%;
  box-sizing:border-box;
}
.ipn-task-sched-filters .ipn-datepicker{
  display:inline-flex;
  align-items:stretch;
  max-width:168px;
  width:168px;
}
.ipn-task-sched-filters .ipn-datepicker input[data-input]{
  flex:1 1 auto;
  min-width:0;
  width:auto;
  height:var(--ipn-control-h, 42px);
  padding:0 12px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-right:0;
  border-radius:var(--ipn-radius-input, 8px) 0 0 var(--ipn-radius-input, 8px);
  font:inherit;
  font-size:14px;
  color:var(--ipn-text);
  background:var(--ipn-surface);
  box-sizing:border-box;
}
.ipn-task-sched-filters .ipn-datepicker input[data-input]:focus{
  outline:none;
  border-color:var(--ipn-brand, var(--ipn-primary));
  z-index:1;
}
.ipn-task-sched-filters .ipn-datepicker__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-radius:0 var(--ipn-radius-input, 8px) var(--ipn-radius-input, 8px) 0;
  background:var(--ipn-surface-soft, #f5f7fb);
  color:var(--ipn-text-2, #5b6b80);
  cursor:pointer;
  padding:0;
}
.ipn-task-sched-filters .ipn-datepicker__btn:hover{
  background:var(--ipn-surface);
  color:var(--ipn-brand, var(--ipn-primary));
}
.ipn-task-sched-filters .ipn-datepicker__btn .material-symbols-rounded{ font-size:18px; }
.ipn-task-sched-filters .ipn-secure-filters__actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
  margin-left:0;
}
.ipn-task-sched-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
/* AV: 2026-08-30: #133 ? chrome de tabs es global (.ipn-tabs); no duplicar bajo m?dulo. */
.ipn-task-sched .ipn-pager{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  padding:12px 16px;
}
/* AV: 2026-08-31: #171 ? entidad (#jobID / nombre) en gris al lado del t?tulo (patr?n attr-category-detail). */
.ipn-task-sched-detail .ipn-page-title{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:8px;
  min-width:0;
}
.ipn-task-sched-detail .ipn-page-title__label{
  flex:0 0 auto;
  white-space:nowrap;
}
.ipn-task-sched-detail .ipn-page-title__entity{
  flex:1 1 auto;
  min-width:0;
  font-size:16px;
  font-weight:600;
  color:var(--ipn-text-2, #55606f);
  line-height:1.3;
  overflow-wrap:anywhere;
}
.ipn-task-sched-detail .ipn-secure-actions,
.ipn-task-sched-delete .ipn-secure-actions{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:16px;
}
.ipn-task-sched__status{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.ipn-task-sched__status .material-symbols-rounded{
  font-size:18px;
  color:var(--ipn-muted, #5b6b80);
  vertical-align:middle;
}
.ipn-task-sched__running{
  font-size:12px;
  color:var(--ipn-warning-ink, #946318);
}
.ipn-task-sched__legacy .grilla,
.ipn-task-sched__legacy table.grilla{
  width:100%;
  border-collapse:collapse;
  font-size:13px;
}
.ipn-task-sched__legacy .grilla th,
.ipn-task-sched__legacy .grilla td{
  padding:8px 10px;
  border-bottom:1px solid #e8edf4;
  text-align:left;
}
.ipn-task-sched__legacy .grilla th{
  background:#f5f7fb;
  font-weight:600;
  color:#3a4a5f;
}
.ipn-task-sched__legacy .cnt_secundario{
  background:#fff;
  border:1px solid #e2e7ef;
  border-radius:var(--ipn-radius-card, 12px);
  padding:16px 18px;
}
.ipn-task-sched__legacy .msjInfo{
  padding:12px 14px;
  border-radius:8px;
  background:#eef4ff;
  color:#1d4e86;
}
@media (max-width:700px){
  .ipn-task-sched-filters{ flex-direction:column; align-items:stretch; }
  .ipn-task-sched-filters .ipn-field--sm,
  .ipn-task-sched-filters .ipn-field--sm .ipn-datepicker,
  .ipn-task-sched-filters .ipn-field--sm .ipn-input,
  .ipn-task-sched-filters .ipn-datepicker{ max-width:100%; width:100%; }
  /* AV: 2026-08-27: Bot?n Buscar full-width en mobile (#68/#101). */
  .ipn-task-sched-filters .ipn-secure-filters__actions{
    width:100%;
    flex:1 1 auto;
    flex-direction:column;
    align-items:stretch;
    margin-left:0;
  }
  .ipn-task-sched-filters .ipn-secure-filters__actions .ipn-btn{
    flex:1 1 auto;
    width:100%;
    min-height:var(--ipn-touch-min,44px);
    justify-content:center;
    box-sizing:border-box;
  }
}

/* AV: 2026-08-20: Notificaciones programadas ? listado / detalle / historial / alta (scope .ipn-email-sched*). */
.ipn-email-sched form + .ipn-tabs,
.ipn-email-sched .ipn-tabs + .ipn-card{ margin-top:16px; }
.ipn-email-sched-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-email-sched-filters .ipn-field--sm{ flex:0 0 auto; }
.ipn-email-sched-filters .ipn-secure-filters__actions{
  margin-left:0;
  flex:0 0 auto;
  gap:8px;
}
.ipn-email-sched-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
.ipn-email-sched-detail .ipn-secure-actions,
.ipn-email-sched-history .ipn-secure-actions,
.ipn-email-sched-job .ipn-secure-actions{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:16px;
}
.ipn-email-sched__list{
  margin:0;
  padding-left:1.2em;
  line-height:1.55;
}
.ipn-email-sched__chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  list-style:none;
  margin:0;
  padding:0;
}
.ipn-email-sched__chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:0.25em 0.65em;
  border-radius:0.25em;
  font-size:12px;
  font-weight:600;
  line-height:1.3;
  background:#eef0f3;
  color:var(--ipn-text-2, #5b6b80);
  white-space:nowrap;
}
.ipn-email-sched__chip--primary,
.label-primary.ipn-email-sched__chip,
.ipn-email-sched .label-primary{
  background:var(--ipn-brand, #337ab7);
  color:#fff;
}
.ipn-email-sched__chip-x{
  appearance:none;
  border:0;
  background:transparent;
  color:inherit;
  cursor:pointer;
  font-size:14px;
  line-height:1;
  padding:0 2px;
  opacity:0.85;
}
.ipn-email-sched__chip-x:hover{ opacity:1; }
.ipn-email-sched .ipn-icon-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  margin-left:6px;
  padding:0;
  border:0;
  border-radius:8px;
  background:transparent;
  color:var(--ipn-brand, #2f62c4);
  cursor:pointer;
  vertical-align:middle;
}
.ipn-email-sched .ipn-icon-btn:hover{ background:rgba(47,98,196,.08); }
.ipn-email-sched .ipn-icon-btn .material-symbols-rounded{ font-size:20px; }
/* AV: 2026-08-27: add.asp ? grid iPN2, mobile, sucursales, chips (#69). */
.ipn-email-sched-form .ipn-form-grid{
  width:100%;
}
.ipn-email-sched-form .ipn-field{
  min-width:0;
}
.ipn-email-sched-form .ipn-email-sched-form__control-row{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.ipn-email-sched-form .ipn-email-sched-form__control-row .ipn-select{
  flex:1 1 240px;
  min-width:0;
  max-width:100%;
}
.ipn-email-sched-form .ipn-email-sched-form__days,
.ipn-email-sched-form .ipn-email-sched-form__radios{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-width:0;
}
.ipn-email-sched-form .ipn-email-sched-form__time{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.ipn-email-sched-form .ipn-check-row{
  display:flex;
  align-items:flex-start;
  gap:8px;
  white-space:normal;
  max-width:100%;
}
.ipn-email-sched-form .ipn-check-row > label{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ipn-email-sched-form .ipn-select,
.ipn-email-sched-form select.ipn-select{
  width:100%;
  max-width:100%;
  height:var(--ipn-control-h, 42px);
  min-height:var(--ipn-control-h, 42px);
  box-sizing:border-box;
}
.ipn-email-sched-form .ipn-select--sm{
  width:auto;
  min-width:64px;
  max-width:88px;
}
.ipn-email-sched-form .ipn-textarea,
.ipn-email-sched-form .ipn-input{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
.ipn-email-sched-form .ipn-textarea{
  min-height:100px;
}
.ipn-email-sched-form #addresseeTD .ipn-email-sched__chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  min-width:0;
}
.ipn-email-sched-form .ipn-form-section{
  margin-top:8px;
}
.ipn-email-sched-stores{
  margin-top:8px;
  min-width:0;
}
.ipn-email-sched-stores__table{
  width:100%;
  border-collapse:collapse;
}
.ipn-email-sched-stores__table td{
  padding:6px 8px 6px 0;
  vertical-align:top;
}
.ipn-email-sched-stores__store{
  padding-left:24px !important;
}
.ipn-email-sched-form .ipn-secure-actions{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:16px;
}
.ipn-email-sched-form .ipn-secure-actions .ipn-btn--primary{
  margin-left:auto;
}
.ipn-email-sched-job .ipn-check-row--inline{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin:0;
}
.ipn-email-sched-history .ipn-tabs{
  margin-bottom:0;
  border:1px solid var(--ipn-hairline, #e2e7ef);
  border-bottom:0;
  border-radius:var(--ipn-radius-card, 12px) var(--ipn-radius-card, 12px) 0 0;
  background:var(--ipn-surface, #fff);
}
.ipn-email-sched .ipn-badge .material-symbols-rounded{
  margin-right:4px;
}
@media (max-width:700px){
  .ipn-email-sched-filters{ flex-direction:column; align-items:stretch; }
  .ipn-email-sched-filters .ipn-field--sm,
  .ipn-email-sched-filters .ipn-field--sm .ipn-datepicker,
  .ipn-email-sched-filters .ipn-field--sm .ipn-input{ max-width:100%; width:100%; }
  .ipn-email-sched-form .ipn-form-grid--2{ grid-template-columns:1fr; }
  .ipn-email-sched-form .ipn-select,
  .ipn-email-sched-form .ipn-input,
  .ipn-email-sched-form .ipn-textarea{ max-width:100%; width:100%; }
  .ipn-email-sched-form .ipn-email-sched-form__control-row .ipn-select{
    flex:1 1 100%;
  }
  .ipn-email-sched-stores__table,
  .ipn-email-sched-stores__table tbody,
  .ipn-email-sched-stores__table tr,
  .ipn-email-sched-stores__table td{
    display:block;
    width:100%;
  }
  .ipn-email-sched-stores__store{
    padding-left:0 !important;
  }
}

/* AV: 2026-08-20: Comprobantes electronicos pendientes de autorizacion (moduleID 172) - scope .ipn-einvoice-pending. */
.ipn-einvoice-pending .ipn-page-head{ margin-bottom:20px; }
.ipn-einvoice-pending .ipn-card + .ipn-card,
.ipn-einvoice-pending .ipn-card + .ipn-notice,
.ipn-einvoice-pending .ipn-notice-stack + .ipn-card,
.ipn-einvoice-pending .ipn-info-box + .ipn-card,
.ipn-einvoice-pending .ipn-card + .ipn-info-box,
.ipn-einvoice-pending .ipn-notice-stack + .ipn-info-box{ margin-top:16px; }
.ipn-einvoice-pending__info{
  margin:0 0 16px;
  align-items:flex-start;
}
.ipn-einvoice-pending__info p{ margin:0 0 8px; }
.ipn-einvoice-pending__info ul{
  margin:0 0 8px;
  padding-left:1.25em;
}
.ipn-einvoice-pending__info li{ margin:4px 0; }
.ipn-einvoice-pending-filters{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:12px 16px;
}
.ipn-einvoice-pending-filters .ipn-field{ min-width:140px; flex:1 1 160px; }
.ipn-einvoice-pending-filters .ipn-field--sm{ flex:0 1 168px; min-width:140px; }
.ipn-einvoice-pending-filters .ipn-field .ipn-select,
.ipn-einvoice-pending-filters .ipn-field select{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
.ipn-einvoice-pending-filters .ipn-datepicker{
  display:inline-flex;
  align-items:stretch;
  max-width:168px;
  width:168px;
}
.ipn-einvoice-pending-filters .ipn-datepicker input[data-input]{
  flex:1 1 auto;
  min-width:0;
  width:auto;
  height:var(--ipn-control-h, 42px);
  padding:0 12px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-right:0;
  border-radius:var(--ipn-radius-input, 8px) 0 0 var(--ipn-radius-input, 8px);
  font:inherit;
  font-size:14px;
  color:var(--ipn-text);
  background:var(--ipn-surface);
  box-sizing:border-box;
}
.ipn-einvoice-pending-filters .ipn-datepicker input[data-input]:focus{
  outline:none;
  border-color:var(--ipn-brand, var(--ipn-primary));
  z-index:1;
}
.ipn-einvoice-pending-filters .ipn-datepicker__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-radius:0 var(--ipn-radius-input, 8px) var(--ipn-radius-input, 8px) 0;
  background:var(--ipn-surface-soft, #f5f7fb);
  color:var(--ipn-text-2, #5b6b80);
  cursor:pointer;
  padding:0;
}
.ipn-einvoice-pending-filters .ipn-datepicker__btn:hover{
  background:var(--ipn-surface);
  color:var(--ipn-brand, var(--ipn-primary));
}
.ipn-einvoice-pending-filters .ipn-datepicker__btn .material-symbols-rounded{ font-size:18px; }
.ipn-einvoice-pending-filters .ipn-secure-filters__actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
  margin-left:auto;
}
.ipn-einvoice-pending .ipn-row-actions{ justify-content:center; }
.ipn-einvoice-pending__time{
  color:#8493a6;
  font-size:11px;
  margin-top:2px;
}
.ipn-einvoice-pending__rg{
  font-size:11px;
  margin-top:4px;
  font-weight:600;
}
.ipn-einvoice-pending__rg--ok{ color:var(--ipn-success-chip-fg, #1a7a4f); }
.ipn-einvoice-pending__rg--warn{ color:var(--ipn-danger-chip-fg, #b0525a); }
.ipn-einvoice-pending__motivo{
  max-width:220px;
  min-width:120px;
  font-size:12.5px;
  line-height:1.4;
  overflow-wrap:break-word;
}
/* AV: 2026-08-28: #104 ? patr?n #89 scroll-x mobile en scope del m?dulo. */
.ipn-einvoice-pending .ipn-card--table,
.ipn-einvoice-pending .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow:visible;
}
.ipn-einvoice-pending .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-einvoice-pending .ipn-table--list{
  width:max-content;
  min-width:1100px;
  table-layout:auto;
}
.ipn-einvoice-pending .ipn-table th.is-right,
.ipn-einvoice-pending .ipn-table td.is-right{ text-align:right; }
.ipn-einvoice-export-popup__qty{ margin:0 0 12px; font-size:13px; }
/* AV: 2026-08-26: Ancho responsive (patr?n ipn-spm-export-popup); sin width inline en ASP. */
#iPNpopUpDiv.ipn-einvoice-export-popup{
  width:min(500px, calc(100vw - 32px)) !important;
  max-height:min(calc(100vh - 48px), calc(100dvh - 48px));
  overflow-y:auto;
  margin-left:0 !important;
}
.ipn-einvoice-export-popup__opts{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin:0 0 8px;
}
.ipn-einvoice-export-popup__warn{ margin:10px 0 0; }
.ipn-einvoice-export-popup #exportBtn.is-disabled{
  opacity:.55;
  pointer-events:none;
}
.ipn-einvoice-pending.ipn-form .ipn-secure-actions{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:16px;
}
.ipn-einvoice-pending.ipn-form .ipn-secure-actions .ipn-btn--primary{ margin-left:auto; }
@media (max-width:700px){
  .ipn-einvoice-pending-filters{ flex-direction:column; align-items:stretch; }
  .ipn-einvoice-pending-filters .ipn-field,
  .ipn-einvoice-pending-filters .ipn-field--sm{ min-width:0; flex:1 1 auto; width:100%; }
  .ipn-einvoice-pending-filters .ipn-datepicker{ max-width:none; width:100%; }
  .ipn-einvoice-pending-filters .ipn-secure-filters__actions{
    margin-left:0;
    width:100%;
  }
  .ipn-einvoice-pending-filters .ipn-secure-filters__actions .ipn-btn{ width:100%; justify-content:center; }
  .ipn-einvoice-pending__motivo{ max-width:none; }
  #iPNpopUpDiv.ipn-einvoice-export-popup{
    max-height:min(calc(100vh - 32px), calc(100dvh - 32px));
    padding:14px 16px !important;
  }
}
@media (max-width:899px){
  /* AV: 2026-08-28: #104 ? thead sin sticky que pelea con scroll-x (#89). */
  .ipn-einvoice-pending .ipn-table--list thead th{ position:static; top:auto; }
}

/* AV: 2026-08-20: Tipos de movimientos de valores (581) - scope .ipn-cash-concept*. */
.ipn-cash-concept-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-cash-concept-filters .ipn-field--grow{ flex:1 1 220px; min-width:200px; }
.ipn-cash-concept-filters .ipn-field .ipn-select,
.ipn-cash-concept-filters .ipn-field select.ipn-select{
  min-width:200px;
}
.ipn-cash-concept-filters .ipn-secure-filters__actions{
  margin-left:0;
  flex:0 0 auto;
  gap:8px;
}
.ipn-cash-concept-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
.ipn-cash-concept-stores__all{ margin-bottom:12px; }
.ipn-cash-concept-stores__list{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px 16px;
  margin-bottom:8px;
}
.ipn-cash-concept-stores .ipn-secure-actions{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:16px;
}
.ipn-cash-concept-stores .ipn-secure-actions .ipn-btn--primary{ margin-left:auto; }
@media (max-width:700px){
  .ipn-cash-concept-filters{ flex-direction:column; align-items:stretch; }
  .ipn-cash-concept-filters .ipn-field,
  .ipn-cash-concept-filters .ipn-field--grow{ min-width:0; flex:1 1 auto; width:100%; }
  .ipn-cash-concept-filters .ipn-secure-filters__actions{ margin-left:0; width:100%; }
  .ipn-cash-concept-filters .ipn-secure-filters__actions .ipn-btn{ width:100%; justify-content:center; }
  .ipn-cash-concept-stores__list{ grid-template-columns:1fr; }
}

/* AV: 2026-08-20: Sub-tipos de movimientos de valores (582) - scope .ipn-cash-subconcept*. */
.ipn-cash-subconcept-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-cash-subconcept-filters .ipn-field--grow{ flex:1 1 200px; min-width:180px; }
.ipn-cash-subconcept-filters .ipn-field .ipn-select,
.ipn-cash-subconcept-filters .ipn-field select.ipn-select{
  min-width:180px;
}
.ipn-cash-subconcept-filters .ipn-secure-filters__actions{
  margin-left:0;
  flex:0 0 auto;
  gap:8px;
}
.ipn-cash-subconcept-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
.ipn-cash-subconcept .ipn-pager{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  padding:12px 16px;
  border-top:1px solid #eef1f6;
}
@media (max-width:700px){
  .ipn-cash-subconcept-filters{ flex-direction:column; align-items:stretch; }
  .ipn-cash-subconcept-filters .ipn-field,
  .ipn-cash-subconcept-filters .ipn-field--grow{ min-width:0; flex:1 1 auto; width:100%; }
  .ipn-cash-subconcept-filters .ipn-secure-filters__actions{ margin-left:0; width:100%; }
  .ipn-cash-subconcept-filters .ipn-secure-filters__actions .ipn-btn{ width:100%; justify-content:center; }
}

/* AV: 2026-08-20: Sub-tipos de proveedores (369) - scope .ipn-sub-provider-type*. */
.ipn-sub-provider-type-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-sub-provider-type-filters .ipn-field--grow{ flex:1 1 240px; min-width:220px; }
.ipn-sub-provider-type-filters .ipn-field .ipn-select,
.ipn-sub-provider-type-filters .ipn-field select.ipn-select{
  min-width:180px;
}
.ipn-sub-provider-type-filters__deleted{
  flex:0 0 auto;
  margin:0;
  align-self:flex-end;
  min-height:42px;
  display:inline-flex;
  align-items:center;
  box-sizing:border-box;
}
/* AV: 2026-09-01: #124 ? Buscar a la derecha en desktop (#134); pager = shell global. */
.ipn-sub-provider-type-filters .ipn-secure-filters__actions{
  margin-left:auto;
  flex:0 0 auto;
  gap:8px;
}
.ipn-sub-provider-type-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
.ipn-sub-provider-type__deleted{
  color:#b42318;
  text-decoration:line-through;
}
.ipn-sub-provider-type .ipn-row-action.is-disabled{
  opacity:0.35;
  cursor:not-allowed;
  pointer-events:none;
  filter:grayscale(1);
}
.ipn-sub-provider-type-form__hint{
  margin:0 0 14px;
  font-size:13.5px;
  color:var(--ipn-muted, #5b6b80);
  line-height:1.45;
}
@media (max-width:700px){
  .ipn-sub-provider-type-filters{ flex-direction:column; align-items:stretch; }
  .ipn-sub-provider-type-filters__deleted{
    align-self:stretch;
    min-height:var(--ipn-touch-min, 44px);
  }
  .ipn-sub-provider-type-filters .ipn-field,
  .ipn-sub-provider-type-filters .ipn-field--grow{ min-width:0; flex:1 1 auto; width:100%; }
  .ipn-sub-provider-type-filters .ipn-secure-filters__actions{ margin-left:0; width:100%; }
  .ipn-sub-provider-type-filters .ipn-secure-filters__actions .ipn-btn{ width:100%; justify-content:center; }
}

/* AV: 2026-08-20: Tipos de gastos (119) - scope .ipn-expenses-concept*. */
.ipn-expenses-concept-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-expenses-concept-filters .ipn-field--grow{ flex:1 1 240px; min-width:220px; }
/* AV: 2026-08-29: #125 ? checkbox alineado a Buscar (misma baseline / altura control). */
.ipn-expenses-concept-filters__deleted{
  flex:0 0 auto;
  margin:0;
  align-self:flex-end;
  min-height:42px;
  display:inline-flex;
  align-items:center;
}
.ipn-expenses-concept-filters .ipn-secure-filters__actions{
  margin-left:0;
  flex:0 0 auto;
  gap:8px;
}
.ipn-expenses-concept-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
/* AV: 2026-08-27: pager usa CSS global .ipn-pager (sin duplicar en scope m?dulo). */
.ipn-expenses-concept__deleted{
  color:#b42318;
  text-decoration:line-through;
}
.ipn-expenses-concept__info{
  font-size:18px;
  vertical-align:middle;
  margin-left:4px;
  color:var(--ipn-brand, var(--ipn-primary, #2f62c4));
  cursor:help;
}
.ipn-expenses-concept .ipn-row-action.is-disabled{
  opacity:0.35;
  cursor:not-allowed;
  pointer-events:none;
  filter:grayscale(1);
}
.ipn-expenses-concept-form__hint{
  margin:0 0 14px;
  font-size:13.5px;
  color:var(--ipn-muted, #5b6b80);
  line-height:1.45;
}
/* AV: 2026-08-29: #125 ? Choices alineado a altura/borde de .ipn-input / .ipn-select. */
.ipn-expenses-concept-form .choices{ margin-bottom:0; width:100%; }
.ipn-expenses-concept-form .choices__inner{
  min-height:var(--ipn-control-h, 42px);
}
.ipn-expenses-concept-store__all{ margin-bottom:12px; }
.ipn-expenses-concept-store__list{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));
  gap:8px 16px;
}
.ipn-expenses-concept-store__matrix{ overflow-x:auto; }
.ipn-expenses-concept-store__sub{ padding-left:24px; }
.ipn-expenses-concept-store__store-head{
  justify-content:center;
  flex-direction:column;
  gap:4px;
  text-align:center;
}
.ipn-expenses-concept-store .ipn-secure-actions{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:16px;
}
.ipn-expenses-concept-store .ipn-secure-actions .ipn-btn--primary{ margin-left:auto; }
@media (max-width:700px){
  .ipn-expenses-concept-filters{ flex-direction:column; align-items:stretch; }
  .ipn-expenses-concept-filters .ipn-field,
  .ipn-expenses-concept-filters .ipn-field--grow{ min-width:0; flex:1 1 auto; width:100%; }
  .ipn-expenses-concept-filters .ipn-secure-filters__actions{ margin-left:0; width:100%; }
  .ipn-expenses-concept-filters .ipn-secure-filters__actions .ipn-btn{ width:100%; justify-content:center; }
  .ipn-expenses-concept-store__list{ grid-template-columns:1fr; }
}

/* AV: 2026-08-20: Sub-tipos de gastos (398) - scope .ipn-sub-expenses*. */
.ipn-sub-expenses-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-sub-expenses-filters .ipn-field--grow{ flex:1 1 180px; min-width:160px; }
.ipn-sub-expenses-filters .ipn-field .ipn-select,
.ipn-sub-expenses-filters .ipn-field select.ipn-select{
  min-width:160px;
}
/* AV: 2026-08-27: checkbox en la misma fila que inputs + Buscar (altura de control). */
.ipn-sub-expenses-filters__deleted{
  flex:0 0 auto;
  margin:0;
  align-self:flex-end;
  min-height:42px;
  display:inline-flex;
  align-items:center;
  white-space:nowrap;
}
.ipn-sub-expenses-filters .ipn-secure-filters__actions{
  margin-left:0;
  flex:0 0 auto;
  gap:8px;
}
.ipn-sub-expenses-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
.ipn-sub-expenses .strike,
.ipn-sub-expenses__deleted{
  color:#b42318;
  text-decoration:line-through;
}
.ipn-sub-expenses .ipn-row-action.is-disabled{
  opacity:0.35;
  cursor:not-allowed;
  pointer-events:none;
  filter:grayscale(1);
}
.ipn-sub-expenses-form__hint{
  margin:0 0 14px;
  font-size:13.5px;
  color:var(--ipn-muted, #5b6b80);
  line-height:1.45;
}
@media (max-width:700px){
  .ipn-sub-expenses-filters{ flex-direction:column; align-items:stretch; }
  .ipn-sub-expenses-filters .ipn-field,
  .ipn-sub-expenses-filters .ipn-field--grow{ min-width:0; flex:1 1 auto; width:100%; }
  .ipn-sub-expenses-filters__deleted{ white-space:normal; }
  .ipn-sub-expenses-filters .ipn-secure-filters__actions{ margin-left:0; width:100%; }
  .ipn-sub-expenses-filters .ipn-secure-filters__actions .ipn-btn{ width:100%; justify-content:center; }
}

/* AV: 2026-08-20: Conceptos bancarios (105) - scope .ipn-bank-concepts*. */
/* AV: 2026-08-27: #94 ? scroll-x mobile (max-content + sin sticky left/thead). */
.ipn-bank-concepts{
  min-width:0;
  max-width:100%;
}
.ipn-bank-concepts .ipn-card--table,
.ipn-bank-concepts .ipn-table-wrap{
  max-width:100%;
  min-width:0;
}
.ipn-bank-concepts .ipn-card--table:not(:has(> .ipn-pager)) > .ipn-table-wrap,
.ipn-bank-concepts .ipn-table-wrap{
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-bank-concepts .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-bank-concepts .ipn-table--list .ipn-table__th-desc,
.ipn-bank-concepts .ipn-table--list .ipn-table__desc{
  width:auto;
  max-width:280px;
  position:static;
  left:auto;
  z-index:auto;
  background:transparent;
}
@media (max-width:899px){
  .ipn-bank-concepts .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-bank-concepts .ipn-table--list .ipn-table__th-desc,
  .ipn-bank-concepts .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}
.ipn-bank-concepts-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-bank-concepts-filters .ipn-field .ipn-select,
.ipn-bank-concepts-filters .ipn-field select{
  min-width:160px;
}
/* AV: 2026-08-30: #134 ? Buscar a la derecha (margin-left:auto) aunque haya 1 select. */
.ipn-bank-concepts-filters .ipn-secure-filters__actions{
  margin-left:auto;
  flex:0 0 auto;
  gap:8px;
}
.ipn-bank-concepts-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
.ipn-bank-concepts-form__hint{
  margin:0 0 14px;
  font-size:13.5px;
  color:var(--ipn-muted, #5b6b80);
  line-height:1.45;
}
.ipn-bank-concepts-form .ipn-field--sm .ipn-select{
  max-width:200px;
}
@media (max-width:700px){
  .ipn-bank-concepts-filters{ flex-direction:column; align-items:stretch; }
  .ipn-bank-concepts-filters .ipn-field{ min-width:0; flex:1 1 auto; width:100%; }
  .ipn-bank-concepts-filters .ipn-secure-filters__actions{ margin-left:0; width:100%; }
  .ipn-bank-concepts-filters .ipn-secure-filters__actions .ipn-btn{ width:100%; justify-content:center; }
}

/* AV: 2026-08-21: Cuentas Mercado Pago ? listado / detalle / form / borrado (scope .ipn-mp-accounts*). */
.ipn-mp-accounts__row--deleted td,
.ipn-mp-accounts__row--deleted .ipn-table__desc-link{
  color:#b42318 !important;
  text-decoration:line-through !important;
}
.ipn-mp-accounts__badge-deleted{
  color:#b42318;
  font-size:0.85em;
  font-weight:600;
  margin-left:6px;
}
.ipn-mp-accounts__token{
  word-break:break-all;
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size:12.5px;
}
.ipn-mp-accounts-form__juris{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.ipn-mp-accounts-form .ipn-field .ipn-select,
.ipn-mp-accounts-form .ipn-field select.ipn-select{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}

/* AV: 2026-08-21: Logs Mercado Pago ? listado + detalle (scope .ipn-mp-logs*). */
/* AV: 2026-08-30: #153 ? filtros compactos + datepicker wrap (patr?n currency/login-audit). */
.ipn-mp-logs .ipn-mp-logs-filters.ipn-form-grid--3{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:12px 16px;
  grid-template-columns:none;
}
.ipn-mp-logs-filters > .ipn-field{
  flex:0 1 220px;
  min-width:160px;
  max-width:260px;
}
.ipn-mp-logs-filters > .ipn-field--sm{
  flex:0 0 auto;
  min-width:0;
  max-width:180px;
  width:auto;
}
.ipn-mp-logs-filters .ipn-input,
.ipn-mp-logs-filters .ipn-select,
.ipn-mp-logs-filters select.ipn-select{
  width:100%;
  max-width:100%;
  height:var(--ipn-control-h, 36px);
  min-height:var(--ipn-control-h, 36px);
  box-sizing:border-box;
}
.ipn-mp-logs-filters .ipn-datepicker{
  display:inline-flex;
  align-items:stretch;
  width:168px;
  max-width:168px;
  box-sizing:border-box;
}
.ipn-mp-logs-filters .ipn-datepicker.ipn-timepicker{
  width:128px;
  max-width:128px;
}
.ipn-mp-logs-filters .ipn-datepicker input[data-input]{
  flex:1 1 auto;
  min-width:0;
  width:auto;
  max-width:none;
  height:var(--ipn-control-h, 36px);
  min-height:var(--ipn-control-h, 36px);
  padding:0 12px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-right:0;
  border-radius:var(--ipn-radius-input, 8px) 0 0 var(--ipn-radius-input, 8px);
  font:inherit;
  font-size:13px;
  color:var(--ipn-text);
  background:var(--ipn-surface);
  box-sizing:border-box;
}
.ipn-mp-logs-filters .ipn-datepicker input[data-input]:focus{
  outline:none;
  border-color:var(--ipn-brand, var(--ipn-primary));
  box-shadow:0 0 0 3px rgba(63,96,145,.14);
  z-index:1;
}
.ipn-mp-logs-filters .ipn-datepicker__btn{
  flex:0 0 40px;
  width:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-radius:0 var(--ipn-radius-input, 8px) var(--ipn-radius-input, 8px) 0;
  background:var(--ipn-surface-soft, #f5f8fb);
  color:var(--ipn-text-muted, #8493a6);
  cursor:pointer;
  padding:0;
}
.ipn-mp-logs-filters .ipn-datepicker__btn:hover{
  color:var(--ipn-primary);
  background:var(--ipn-primary-soft, #eef4fb);
}
.ipn-mp-logs-filters .ipn-datepicker__btn .material-symbols-rounded{ font-size:18px; }
.ipn-mp-logs .ipn-secure-filters__actions{
  margin-top:12px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.ipn-mp-logs form + .ipn-card,
.ipn-mp-logs form + .ipn-notice{ margin-top:16px; }
.ipn-mp-logs-detail .ipn-mp-logs-tabs{ margin:18px 0 12px; }
.ipn-mp-logs__pre{
  margin:0;
  padding:12px 14px;
  border-left:4px solid var(--ipn-brand, #1d4e86);
  background:#f3f5f8;
  overflow:auto;
  min-height:30vh;
  max-height:40vh;
  border-radius:0 8px 8px 0;
  font-size:12.5px;
  line-height:1.45;
}
.ipn-mp-logs__pre code{ font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
@media (max-width:700px){
  .ipn-mp-logs-filters > .ipn-field,
  .ipn-mp-logs-filters > .ipn-field--sm{
    flex:1 1 100%;
    max-width:none;
    width:100%;
  }
  .ipn-mp-logs-filters .ipn-datepicker,
  .ipn-mp-logs-filters .ipn-datepicker.ipn-timepicker{
    width:100%;
    max-width:none;
  }
  .ipn-mp-logs .ipn-secure-filters__actions{
    width:100%;
    flex-direction:column;
    align-items:stretch;
  }
  .ipn-mp-logs .ipn-secure-filters__actions .ipn-btn{ width:100%; justify-content:center; }
}


/* AV: 2026-09-04: #368 - Logs Payway (listado + detalle; scope .ipn-payway-logs*). */
.ipn-payway-logs .ipn-payway-logs-filters.ipn-form-grid--3{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:12px 16px;
  grid-template-columns:none;
}
.ipn-payway-logs-filters > .ipn-field{
  flex:0 1 220px;
  min-width:160px;
  max-width:260px;
}
.ipn-payway-logs-filters > .ipn-field--sm{
  flex:0 0 auto;
  min-width:0;
  max-width:180px;
  width:auto;
}
.ipn-payway-logs-filters .ipn-input,
.ipn-payway-logs-filters .ipn-select,
.ipn-payway-logs-filters select.ipn-select{
  width:100%;
  max-width:100%;
  height:var(--ipn-control-h, 36px);
  min-height:var(--ipn-control-h, 36px);
  box-sizing:border-box;
}
.ipn-payway-logs-filters .ipn-datepicker{
  display:inline-flex;
  align-items:stretch;
  width:168px;
  max-width:168px;
  box-sizing:border-box;
}
.ipn-payway-logs-filters .ipn-datepicker.ipn-timepicker{
  width:128px;
  max-width:128px;
}
.ipn-payway-logs-filters .ipn-datepicker input[data-input]{
  flex:1 1 auto;
  min-width:0;
  width:auto;
  max-width:none;
  height:var(--ipn-control-h, 36px);
  min-height:var(--ipn-control-h, 36px);
  padding:0 12px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-right:0;
  border-radius:var(--ipn-radius-input, 8px) 0 0 var(--ipn-radius-input, 8px);
  font:inherit;
  font-size:13px;
  color:var(--ipn-text);
  background:var(--ipn-surface);
  box-sizing:border-box;
}
.ipn-payway-logs-filters .ipn-datepicker input[data-input]:focus{
  outline:none;
  border-color:var(--ipn-brand, var(--ipn-primary));
  box-shadow:0 0 0 3px rgba(63,96,145,.14);
  z-index:1;
}
.ipn-payway-logs-filters .ipn-datepicker__btn{
  flex:0 0 40px;
  width:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-radius:0 var(--ipn-radius-input, 8px) var(--ipn-radius-input, 8px) 0;
  background:var(--ipn-surface-soft, #f5f8fb);
  color:var(--ipn-text-muted, #8493a6);
  cursor:pointer;
  padding:0;
}
.ipn-payway-logs-filters .ipn-datepicker__btn:hover{
  color:var(--ipn-primary);
  background:var(--ipn-primary-soft, #eef4fb);
}
.ipn-payway-logs-filters .ipn-datepicker__btn .material-symbols-rounded{ font-size:18px; }
.ipn-payway-logs .ipn-secure-filters__actions{
  margin-top:12px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.ipn-payway-logs form > .ipn-tabs{ margin-bottom:0; }
.ipn-payway-logs form > .ipn-card{ margin-top:0; }
.ipn-payway-logs form + .ipn-card,
.ipn-payway-logs form + .ipn-notice{ margin-top:16px; }
.ipn-payway-logs-detail .ipn-payway-logs-tabs{ margin:18px 0 12px; }
.ipn-payway-logs__pre{
  margin:0;
  padding:12px 14px;
  border-left:4px solid var(--ipn-brand, #1d4e86);
  background:#f3f5f8;
  overflow:auto;
  min-height:30vh;
  max-height:40vh;
  border-radius:0 8px 8px 0;
  font-size:12.5px;
  line-height:1.45;
}
.ipn-payway-logs__pre code{ font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.ipn-payway-logs .logGroup{ cursor:pointer; }
@media (max-width:700px){
  .ipn-payway-logs-filters > .ipn-field,
  .ipn-payway-logs-filters > .ipn-field--sm{
    flex:1 1 100%;
    max-width:none;
    width:100%;
  }
  .ipn-payway-logs-filters .ipn-datepicker,
  .ipn-payway-logs-filters .ipn-datepicker.ipn-timepicker{
    width:100%;
    max-width:none;
  }
  .ipn-payway-logs .ipn-secure-filters__actions{
    width:100%;
    flex-direction:column;
    align-items:stretch;
  }
  .ipn-payway-logs .ipn-secure-filters__actions .ipn-btn{ width:100%; justify-content:center; }
}

/* AV: 2026-09-04: #402 ? Logs Clover (listado + detalle; scope .ipn-clover-logs*). */
.ipn-clover-logs .ipn-clover-logs-filters.ipn-form-grid--3{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:12px 16px;
}
.ipn-clover-logs-filters > .ipn-field{
  flex:0 1 220px;
  min-width:160px;
  max-width:260px;
}
.ipn-clover-logs-filters > .ipn-field--sm{
  flex:0 0 auto;
  min-width:0;
  max-width:180px;
}
.ipn-clover-logs-filters .ipn-input,
.ipn-clover-logs-filters .ipn-select,
.ipn-clover-logs-filters select.ipn-select{
  width:100%;
  max-width:100%;
  height:var(--ipn-control-h, 36px);
  box-sizing:border-box;
}
.ipn-clover-logs-filters .ipn-datepicker{
  display:inline-flex;
  align-items:stretch;
  width:168px;
  max-width:100%;
}
.ipn-clover-logs-filters .ipn-datepicker.ipn-timepicker{
  width:128px;
  max-width:128px;
}
.ipn-clover-logs-filters .ipn-datepicker input[data-input]{
  flex:1 1 auto;
  min-width:0;
  width:auto;
  height:var(--ipn-control-h, 36px);
  border:1px solid var(--ipn-border, #d0d7de);
  border-right:0;
  border-radius:8px 0 0 8px;
  padding:0 10px;
  background:var(--ipn-surface, #fff);
  font:inherit;
  box-sizing:border-box;
}
.ipn-clover-logs-filters .ipn-datepicker input[data-input]:focus{
  outline:none;
  border-color:var(--ipn-brand, var(--ipn-primary));
  box-shadow:0 0 0 3px rgba(63,96,145,.14);
}
.ipn-clover-logs-filters .ipn-datepicker__btn{
  flex:0 0 40px;
  width:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--ipn-border, #d0d7de);
  border-radius:0 8px 8px 0;
  background:var(--ipn-surface, #fff);
  color:var(--ipn-muted, #667085);
  cursor:pointer;
  padding:0;
}
.ipn-clover-logs-filters .ipn-datepicker__btn:hover{
  color:var(--ipn-primary);
  background:var(--ipn-primary-soft, #eef4fb);
}
.ipn-clover-logs-filters .ipn-datepicker__btn .material-symbols-rounded{ font-size:18px; }
.ipn-clover-logs .ipn-secure-filters__actions{
  margin-top:12px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.ipn-clover-logs form > .ipn-tabs{ margin-bottom:0; }
.ipn-clover-logs form > .ipn-card{ margin-top:0; }
.ipn-clover-logs form + .ipn-card,
.ipn-clover-logs form + .ipn-notice{ margin-top:16px; }
.ipn-clover-logs-detail .ipn-clover-logs-tabs{ margin:18px 0 12px; }
.ipn-clover-logs__pre{
  margin:0;
  padding:12px 14px;
  border-left:4px solid var(--ipn-brand, #1d4e86);
  background:var(--ipn-surface-2, #f4f6f8);
  overflow:auto;
  min-height:30vh;
  max-height:40vh;
  border-radius:0 8px 8px 0;
  font-size:12.5px;
  line-height:1.45;
}
.ipn-clover-logs__pre code{ font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.ipn-clover-logs .logGroup{ cursor:pointer; }
@media (max-width:700px){
  .ipn-clover-logs-filters > .ipn-field,
  .ipn-clover-logs-filters > .ipn-field--sm{
    flex:1 1 100%;
    max-width:none;
    width:100%;
  }
  .ipn-clover-logs-filters .ipn-datepicker,
  .ipn-clover-logs-filters .ipn-datepicker.ipn-timepicker{
    width:100%;
    max-width:none;
  }
  .ipn-clover-logs .ipn-secure-filters__actions{
    width:100%;
    flex-direction:column;
    align-items:stretch;
  }
  .ipn-clover-logs .ipn-secure-filters__actions .ipn-btn{ width:100%; justify-content:center; }
}
/* AV: 2026-08-21: Chequeras (103) ? scope .ipn-checkbook*. */
/* AV: 2026-08-27: #102 ? tabs flush (patr?n task-sched) + scroll-x grilla (#89). */
.ipn-checkbook{
  min-width:0;
  max-width:100%;
}
.ipn-checkbook form + .ipn-tabs{ margin-top:16px; }
/* AV: 2026-08-30: #133 ? chrome de tabs es global (.ipn-tabs); no duplicar bajo m?dulo. */
.ipn-checkbook .ipn-card--table,
.ipn-checkbook .ipn-table-wrap,
.ipn-checkbook-detail .ipn-card--table,
.ipn-checkbook-detail .ipn-table-wrap{
  max-width:100%;
  min-width:0;
}
.ipn-checkbook .ipn-card--table,
.ipn-checkbook-detail .ipn-card--table{
  overflow:visible;
}
.ipn-checkbook .ipn-table-wrap,
.ipn-checkbook-detail .ipn-table-wrap{
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-checkbook .ipn-table--list,
.ipn-checkbook-detail .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
@media (max-width:899px){
  .ipn-checkbook .ipn-table--list thead th,
  .ipn-checkbook-detail .ipn-table--list thead th{
    position:static;
    top:auto;
  }
}
.ipn-checkbook-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-checkbook-filters .ipn-field .ipn-select,
.ipn-checkbook-filters .ipn-field select.ipn-select{
  min-width:220px;
}
.ipn-checkbook-filters .ipn-secure-filters__actions{
  margin-left:0;
  flex:0 0 auto;
  gap:8px;
}
.ipn-checkbook-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
.ipn-checkbook__type-icon{
  font-size:20px;
  color:var(--ipn-muted, #5b6b80);
  vertical-align:middle;
}
.ipn-checkbook-detail__disabled{
  color:#b42318;
  font-size:0.85em;
  font-weight:600;
}
.ipn-checkbook-detail .ipn-detail-main > .ipn-card + .ipn-card{ margin-top:16px; }
/* AV: 2026-08-27: Detalle mobile ? wrap dl sin desborde (issue #70; patr?n pkg-groups). */
.ipn-checkbook-detail .ipn-detail-main,
.ipn-checkbook-detail .ipn-detail-layout,
.ipn-checkbook-detail .ipn-card,
.ipn-checkbook-detail .ipn-card__body,
.ipn-checkbook-detail .ipn-dl{
  min-width:0;
  max-width:100%;
}
.ipn-checkbook-detail .ipn-dl__value{
  flex:1 1 0;
  min-width:0;
  white-space:normal;
  overflow:visible;
  text-overflow:unset;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.ipn-checkbook-detail .ipn-dl__label{
  min-width:0;
}
.ipn-checkbook-detail .ipn-action-row:disabled{
  opacity:0.65;
  cursor:not-allowed;
  pointer-events:none;
}
/* AV: 2026-08-27: Edici?n ? h1 = entidad; subtitle = hint (#102 / #106). */
.ipn-checkbook-form .ipn-page-head__text{
  min-width:0;
}
.ipn-checkbook-form__combo-anchor{ display:inline-block; width:0; height:0; overflow:hidden; }
.ipn-checkbook-form .ipn-readonly{
  min-height:42px;
  display:flex;
  align-items:center;
  font-size:14px;
  color:var(--ipn-text, #122740);
}
.ipn-checkbook-form .ipn-audit{ margin-top:16px; }
@media (max-width:700px){
  .ipn-checkbook-filters{ flex-direction:column; align-items:stretch; }
  .ipn-checkbook-filters .ipn-field{ min-width:0; flex:1 1 auto; width:100%; }
  .ipn-checkbook-filters .ipn-field .ipn-select,
  .ipn-checkbook-filters .ipn-field select.ipn-select{ min-width:0; width:100%; }
  .ipn-checkbook-filters .ipn-secure-filters__actions{ margin-left:0; width:100%; }
  .ipn-checkbook-filters .ipn-secure-filters__actions .ipn-btn{ width:100%; justify-content:center; }
}

/* AV: 2026-08-21: Tipo cambiario (31) ? scope .ipn-currency*. */
/* AV: 2026-08-27: Scroll-x grilla sin pager (#73); border-radius en card, no en wrap. */
.ipn-currency{
  min-width:0;
  max-width:100%;
}
.ipn-currency .ipn-card--table{
  overflow:hidden;
}
.ipn-currency .ipn-card--table,
.ipn-currency .ipn-table-wrap{
  max-width:100%;
  min-width:0;
}
.ipn-currency .ipn-card--table:not(:has(> .ipn-pager)) > .ipn-table-wrap,
.ipn-currency .ipn-table-wrap{
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-currency .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
@media (max-width:899px){
  .ipn-currency .ipn-table--list thead th{
    position:static;
    top:auto;
  }
}
.ipn-currency-history form + .ipn-card{
  margin-top:16px;
}
.ipn-currency-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-currency-filters .ipn-field--sm .ipn-datepicker{ max-width:168px; }
/* AV: 2026-08-26: Flatpickr wrap ? input+bot?n calendario alineados (patr?n task-sched). */
.ipn-currency-filters .ipn-datepicker{
  display:inline-flex;
  align-items:stretch;
  max-width:168px;
  width:168px;
}
.ipn-currency-filters .ipn-datepicker input[data-input]{
  flex:1 1 auto;
  min-width:0;
  width:auto;
  height:var(--ipn-control-h, 42px);
  padding:0 12px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-right:0;
  border-radius:var(--ipn-radius-input, 8px) 0 0 var(--ipn-radius-input, 8px);
  font:inherit;
  font-size:14px;
  color:var(--ipn-text);
  background:var(--ipn-surface);
  box-sizing:border-box;
}
.ipn-currency-filters .ipn-datepicker input[data-input]:focus{
  outline:none;
  border-color:var(--ipn-brand, var(--ipn-primary));
  z-index:1;
}
.ipn-currency-filters .ipn-datepicker__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-radius:0 var(--ipn-radius-input, 8px) var(--ipn-radius-input, 8px) 0;
  background:var(--ipn-surface-soft, #f5f7fb);
  color:var(--ipn-text-2, #5b6b80);
  cursor:pointer;
  padding:0;
}
.ipn-currency-filters .ipn-datepicker__btn:hover{
  background:var(--ipn-surface);
  color:var(--ipn-brand, var(--ipn-primary));
}
.ipn-currency-filters .ipn-datepicker__btn .material-symbols-rounded{ font-size:18px; }
.ipn-currency-filters .ipn-secure-filters__actions{
  margin-left:0;
  flex:0 0 auto;
  gap:8px;
}
.ipn-currency-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
.ipn-currency-history .ipn-secure-actions,
.ipn-currency-status .ipn-secure-actions{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:16px;
}
.ipn-currency-status .ipn-notice{ margin:0 0 16px; }
.ipn-currency-status .ipn-check-row{ margin-top:4px; }
.ipn-currency-status .ipn-secure-actions .ipn-btn--danger{ margin-left:auto; }
.ipn-currency-form .ipn-field--sm .ipn-input{ max-width:140px; }
.ipn-currency-form .ipn-readonly{
  min-height:42px;
  display:flex;
  align-items:center;
  font-size:14px;
}
@media (max-width:700px){
  .ipn-currency-filters{ flex-direction:column; align-items:stretch; }
  .ipn-currency-filters .ipn-field--sm .ipn-datepicker{ max-width:none; width:100%; }
  .ipn-currency-filters .ipn-secure-filters__actions{ width:100%; }
  .ipn-currency-filters .ipn-secure-filters__actions .ipn-btn{ width:100%; justify-content:center; }
  /* AV: 2026-08-27: #51 ? inputs num?ricos full width en mobile. */
  .ipn-currency-form .ipn-field--sm .ipn-input{ max-width:none; width:100%; }
}

/* AV: 2026-08-21: Cotizaciones ARCA (614) ? scope .ipn-currency-arca*. */
/* AV: 2026-08-27: #75 ? hereda scroll-x/filtros de .ipn-currency + .ipn-currency-filters; sin CSS datepicker duplicado. */
.ipn-currency-arca form + .ipn-card{ margin-top:16px; }
body:has(.ipn-currency-arca) .flatpickr-calendar{
  z-index:4000 !important;
  font-family:var(--ipn-font);
}
body:has(.ipn-currency-arca) .flatpickr-day.selected,
body:has(.ipn-currency-arca) .flatpickr-day.startRange,
body:has(.ipn-currency-arca) .flatpickr-day.endRange{
  background:var(--ipn-primary) !important;
  border-color:var(--ipn-primary) !important;
}

/* AV: 2026-08-21: Metodos de cobro (36) - scope .ipn-payment-method*. */
.ipn-payment-method-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-payment-method-filters .ipn-field--grow{ flex:1 1 240px; min-width:220px; }
.ipn-payment-method-filters .ipn-field .ipn-select,
.ipn-payment-method-filters .ipn-field select{
  min-width:140px;
}
.ipn-payment-method-filters .ipn-secure-filters__actions{
  margin-left:0;
  flex:0 0 auto;
  gap:8px;
}
.ipn-payment-method-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
.ipn-payment-method .ipn-pager{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  padding:12px 16px;
}
.ipn-payment-method__yes{ color:#1f7a3f; font-size:20px; }
.ipn-payment-method__no{ color:#98a2b3; font-size:20px; }
.ipn-payment-method-edit__lead{
  margin:0 0 16px;
  font-size:13.5px;
  color:var(--ipn-muted, #5b6b80);
  line-height:1.45;
}
.ipn-payment-method .ipn-help-icon{
  font-size:18px;
  vertical-align:middle;
  color:var(--ipn-muted, #5b6b80);
  cursor:help;
  margin-left:4px;
}
.ipn-payment-method-grid .ipn-input,
.ipn-payment-method-grid .ipn-select,
.ipn-payment-method-grid select{
  min-width:0;
  max-width:100%;
}
.ipn-payment-method-grid .ipn-row-action.is-disabled,
.ipn-payment-method a.disabled,
.ipn-payment-method .ipn-row-action.is-disabled{
  cursor:not-allowed;
  opacity:.35;
  pointer-events:none;
}
.ipn-payment-method-edit .ipn-actions-dd__item.is-disabled{
  opacity:.55;
  cursor:default;
  pointer-events:none;
}
.ipn-payment-method-stores__company{
  margin:10px 0 6px;
  display:flex;
  align-items:center;
  gap:8px;
}
.ipn-payment-method-stores__type{
  margin:8px 0 4px 12px;
  font-size:13px;
  color:var(--ipn-muted, #5b6b80);
}
.ipn-payment-method-stores__row{
  display:flex;
  flex-wrap:wrap;
  gap:8px 16px;
  margin:0 0 8px 24px;
}
.ipn-payment-method-stores__item{
  min-width:200px;
  flex:0 1 280px;
}
.ipn-payment-method-delete{
  padding:20px 24px;
}
.ipn-payment-method-delete h2{
  margin:0 0 12px;
  font-size:18px;
}
.ipn-payment-method [disabled=""],
.ipn-payment-method [readonly="readonly"]{
  background-color:#eef1f5;
  color:#6b7785 !important;
}
.ipn-payment-method .cnt_secundario table td:not(.noborderRight){
  border-right:0.8px solid #d1d1d1;
}
.ipn-payment-method .cntBotones,
.ipn-payment-method .ipn-secure-actions{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:16px;
  flex-wrap:wrap;
}
.ipn-payment-method .cntBotones_r,
.ipn-payment-method .ipn-secure-actions .ipn-btn--primary,
.ipn-payment-method .ipn-secure-actions .ipn-btn--danger{
  margin-left:auto;
}
/* AV: 2026-08-26: Detalle edici?n ? barra de acciones separada del borde de la grilla. Issue #53. */
.ipn-payment-method-edit .ipn-card--table > .ipn-secure-actions{
  margin-top:0;
  padding:16px;
  border-top:1px solid var(--ipn-border, #e2e7ef);
}
.ipn-payment-method-edit .ipn-actions-dd__item .ipn-help-icon{
  margin-left:auto;
  flex-shrink:0;
}
/* AV: 2026-08-26: Recargos / auditor?a legacy dentro de .ipn-payment-method (issue #53). */
/* AV: 2026-09-10: #533 ? paneles recargos usan .ipn-card--recharges / .ipn-recharge-panel. */
.ipn-payment-method .encabezado{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:12px 16px;
  margin:0 0 16px;
  padding:16px 18px;
  background:var(--ipn-surface);
  border:1px solid var(--ipn-border, #e2e7ef);
  border-radius:var(--ipn-radius-card, 12px);
}
.ipn-payment-method .encabezado > img{ display:none; }
.ipn-payment-method .encabezado h2{
  margin:0;
  flex:1 1 auto;
  font-size:18px;
  font-weight:600;
  color:var(--ipn-text);
}
.ipn-payment-method .encabezado > font{
  width:100% !important;
  font-size:13px;
  color:var(--ipn-muted, #5b6b80);
  line-height:1.45;
}
.ipn-payment-method .accDisp{
  position:relative;
  margin-left:auto;
  flex:0 0 auto;
}
.ipn-payment-method .accDisp .btnAD{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:42px;
  padding:0 14px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-radius:var(--ipn-radius-input, 8px);
  background:var(--ipn-surface);
  font:inherit;
  font-size:13px;
  cursor:pointer;
}
.ipn-payment-method .accDisp ul#menuAD{
  position:absolute;
  top:calc(100% + 6px);
  right:0;
  z-index:40;
  min-width:260px;
  margin:0;
  padding:6px;
  list-style:none;
  background:var(--ipn-surface);
  border:1px solid var(--ipn-border, #e2e7ef);
  border-radius:10px;
  box-shadow:var(--ipn-shadow-elev, 0 8px 24px rgba(16,24,40,.12));
}
.ipn-payment-method .accDisp ul#menuAD li a{
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  border-radius:8px;
  color:var(--ipn-text);
  text-decoration:none;
  font-size:13px;
}
.ipn-payment-method .accDisp ul#menuAD li a:hover{
  background:var(--ipn-primary-soft, #eef3ff);
}
.ipn-payment-method .tabContainer,
.ipn-payment-method .tab_cnt_principal{
  display:flex;
  flex-wrap:wrap;
  gap:0;
  margin:0 0 16px;
  border-bottom:1px solid var(--ipn-border, #e2e7ef);
}
.ipn-payment-method .tabContainer a,
.ipn-payment-method .tab_cnt_principal a{
  display:inline-flex;
  align-items:center;
  padding:10px 16px;
  border:0;
  border-bottom:2px solid transparent;
  background:transparent;
  color:var(--ipn-muted, #5b6b80);
  font-size:13px;
  font-weight:500;
  text-decoration:none;
  cursor:pointer;
}
.ipn-payment-method .tabContainer a.active,
.ipn-payment-method .tab_cnt_principal a.active{
  color:var(--ipn-brand, var(--ipn-primary));
  border-bottom-color:var(--ipn-brand, var(--ipn-primary));
}
.ipn-payment-method .cnt_principal,
.ipn-payment-method .cnt_secundario,
.ipn-payment-method .ipn-card--recharges,
.ipn-payment-method .ipn-recharge-panel,
.ipn-payment-method fieldset.busqueda{
  background:var(--ipn-surface);
  border:1px solid var(--ipn-border, #e2e7ef);
  border-radius:var(--ipn-radius-card, 12px);
  padding:16px 18px;
  margin-bottom:16px;
}
.ipn-payment-method .cnt_secundario table,
.ipn-payment-method .ipn-recharge-panel table,
.ipn-payment-method fieldset.busqueda table{
  width:100%;
  border-collapse:collapse;
}
.ipn-payment-method .cnt_secundario table select,
.ipn-payment-method .cnt_secundario table input[type="text"],
.ipn-payment-method .ipn-recharge-panel table select,
.ipn-payment-method .ipn-recharge-panel table input[type="text"],
.ipn-payment-method fieldset.busqueda input[type="text"]{
  min-height:var(--ipn-control-h, 42px);
  padding:0 12px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-radius:var(--ipn-radius-input, 8px);
  font:inherit;
  font-size:14px;
  box-sizing:border-box;
}
.ipn-payment-method .cnt_secundario table select,
.ipn-payment-method .ipn-recharge-panel table select{
  appearance:none;
  padding-right:34px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%238a94a2' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 10px center;
}
.ipn-payment-method-grid select:not(.ipn-select){
  appearance:none;
  min-height:var(--ipn-control-h, 42px);
  padding:0 34px 0 12px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-radius:var(--ipn-radius-input, 8px);
  background-color:var(--ipn-surface);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%238a94a2' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 10px center;
  font:inherit;
  font-size:14px;
}
@media (max-width:700px){
  .ipn-payment-method-filters{ flex-direction:column; align-items:stretch; }
  .ipn-payment-method-filters .ipn-field,
  .ipn-payment-method-filters .ipn-field--grow{ min-width:0; flex:1 1 auto; width:100%; }
  .ipn-payment-method-filters .ipn-secure-filters__actions{ margin-left:0; width:100%; }
  .ipn-payment-method-filters .ipn-secure-filters__actions .ipn-btn{ width:100%; justify-content:center; }
  .ipn-payment-method-stores__row{ margin-left:0; }
}

/* AV: 2026-08-27: Issue #76 ? scroll-x grillas sin pager, auditor?a, recargos, datetime, acciones mobile. */
.ipn-payment-method{
  min-width:0;
  max-width:100%;
}
.ipn-payment-method .ipn-card--table,
.ipn-payment-method .ipn-table-wrap,
.ipn-payment-method .cnt_secundario,
.ipn-payment-method .ipn-recharge-panel,
.ipn-payment-method .ipn-card--recharges{
  max-width:100%;
  min-width:0;
}
/* AV: 2026-09-10: #549 ? scroll-x matriz recargos (patr?n #89; card no clippea). */
.ipn-payment-method .ipn-card--recharges{
  overflow:visible;
}
.ipn-payment-method .ipn-card--table:not(:has(> .ipn-pager)) > .ipn-table-wrap,
.ipn-payment-method .ipn-table-wrap,
.ipn-payment-method .ipn-card--recharges .ipn-table-wrap,
.ipn-payment-method .ipn-recharge-panel > .ipn-table-wrap{
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  max-width:100%;
}
.ipn-payment-method .ipn-table--list,
.ipn-payment-method #tableRecharges,
.ipn-payment-method .cnt_secundario > .ipn-table-wrap > table,
.ipn-payment-method .ipn-recharge-panel > .ipn-table-wrap > table,
.ipn-payment-method .cnt_secundario > table,
.ipn-payment-method .ipn-recharge-panel > table{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-payment-method .cnt_auditoria{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:12px 20px;
  margin:18px 0 0;
  padding:14px 16px;
  height:auto !important;
  background:var(--ipn-surface-soft, #f7f9fc);
  border:1px solid var(--ipn-border, #e2e7ef);
  border-radius:var(--ipn-radius-card, 12px);
}
.ipn-payment-method .cnt_auditoria_izq{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:10px 16px;
  height:auto !important;
}
.ipn-payment-method .cnt_auditoria_izq img{
  width:18px;
  height:18px;
  margin-top:2px;
  opacity:.75;
  flex:0 0 auto;
}
.ipn-payment-method .cnt_auditoria_izq span{
  line-height:1.45;
  font-size:13px;
  color:var(--ipn-text);
}
.ipn-payment-method .cnt_auditoria_izq font{
  font-weight:600;
  color:#5b6b80;
}
.ipn-payment-method .cnt_auditoria .img_separador,
.ipn-payment-method .cnt_auditoria .img_separator{ display:none !important; }
/* AV: 2026-08-31: #172 ? separadores #103 (padding-top 20 / bottom 8). */
.ipn-payment-method #tableRecharges tr.ipn-payment-method-recharge-sep > td{
  padding-top:20px;
  padding-bottom:8px;
  border-top:1px solid var(--ipn-border, #e2e7ef);
}
/* AV: 2026-09-02: #242 ? desktop: aire entre fila Hasta (fecha/hora) y matriz de cuotas. */
.ipn-payment-method #tableRecharges tr:has(#datePickerTo) > td,
.ipn-payment-method .cnt_secundario > table:has(#datePickerTo) tr:has(#datePickerTo) > td,
.ipn-payment-method .ipn-recharge-panel > table:has(#datePickerTo) tr:has(#datePickerTo) > td,
.ipn-payment-method .ipn-recharge-panel .ipn-table-wrap > table:has(#datePickerTo) tr:has(#datePickerTo) > td{
  padding-bottom:20px;
}
.ipn-payment-method .cnt_secundario > table:has(#datePickerTo),
.ipn-payment-method .ipn-recharge-panel > table:has(#datePickerTo){
  margin-bottom:16px;
}
.ipn-payment-method-datetime{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:16px;
}
/* AV: 2026-08-31: #172 ? hora + "hs" en la misma l?nea (nowrap). */
.ipn-payment-method-datetime #TimeFromPicker,
.ipn-payment-method-datetime #TimeToPicker{
  display:inline-flex;
  align-items:center;
  flex-wrap:nowrap;
  gap:6px;
  white-space:nowrap;
  flex:0 0 auto;
}
.ipn-payment-method-datetime .ipn-datepicker,
.ipn-payment-method-datetime .input-group.date{
  display:inline-flex;
  align-items:stretch;
  max-width:180px;
  width:100%;
}
@media (min-width:701px){
  /* AV: 2026-08-31: #197 ? desktop: Desde/Hasta con d?a + hora en fila. */
  .ipn-payment-method-datetime{
    flex-wrap:nowrap;
    gap:12px 16px;
  }
  .ipn-payment-method-datetime .ipn-datepicker,
  .ipn-payment-method-datetime .input-group.date{
    flex:0 1 180px;
    width:auto;
  }
}
.ipn-payment-method .ipn-datepicker,
.ipn-payment-method-datetime .ipn-datepicker{
  display:inline-flex;
  align-items:stretch;
  max-width:100%;
}
/* AV: 2026-08-29: selectores m?s espec?ficos que cnt_secundario table input (#121). */
.ipn-payment-method .cnt_secundario .ipn-datepicker input[data-input],
.ipn-payment-method .ipn-recharge-panel .ipn-datepicker input[data-input],
.ipn-payment-method .ipn-datepicker input[data-input],
.ipn-payment-method-datetime .ipn-datepicker input[data-input]{
  flex:1 1 auto;
  min-width:0;
  width:auto;
  max-width:100%;
  height:var(--ipn-control-h, 42px);
  padding:0 12px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-right:0;
  border-radius:var(--ipn-radius-input, 8px) 0 0 var(--ipn-radius-input, 8px);
  font:inherit;
  font-size:14px;
  color:var(--ipn-text);
  background:var(--ipn-surface);
  box-sizing:border-box;
  box-shadow:none;
}
.ipn-payment-method .cnt_secundario .ipn-datepicker input[data-input]:focus,
.ipn-payment-method .ipn-recharge-panel .ipn-datepicker input[data-input]:focus,
.ipn-payment-method .ipn-datepicker input[data-input]:focus,
.ipn-payment-method-datetime .ipn-datepicker input[data-input]:focus{
  outline:none;
  border-color:var(--ipn-brand, var(--ipn-primary));
  box-shadow:none;
  z-index:1;
}
.ipn-payment-method .ipn-datepicker__btn,
.ipn-payment-method-datetime .ipn-datepicker__btn{
  flex:0 0 42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-left:0;
  border-radius:0 var(--ipn-radius-input, 8px) var(--ipn-radius-input, 8px) 0;
  background:var(--ipn-surface-soft, #f5f7fb);
  color:var(--ipn-text-2, #5b6b80);
  cursor:pointer;
  padding:0;
  box-sizing:border-box;
}
.ipn-payment-method .ipn-datepicker__btn:hover,
.ipn-payment-method-datetime .ipn-datepicker__btn:hover{
  background:var(--ipn-surface);
  color:var(--ipn-brand, var(--ipn-primary));
}
.ipn-payment-method .ipn-datepicker__btn .material-symbols-rounded,
.ipn-payment-method-datetime .ipn-datepicker__btn .material-symbols-rounded{
  font-size:18px;
}
.ipn-payment-method-datetime .timeInput,
.ipn-payment-method-datetime input.timeInput{
  width:64px;
  min-height:var(--ipn-control-h, 42px);
  box-sizing:border-box;
}
/* AV: 2026-08-29: Flatpickr no desborda viewport en mobile (#121). */
body:has(.ipn-payment-method) .flatpickr-calendar{
  z-index:4000 !important;
  max-width:calc(100vw - 24px);
}
.ipn-payment-method .ipn-page-head{
  min-width:0;
}
.ipn-payment-method .ipn-page-head__actions{
  min-width:0;
  max-width:100%;
}
.ipn-payment-method .ipn-actions-dd{
  max-width:100%;
}
.ipn-payment-method .ipn-actions-dd__menu{
  max-width:min(100vw - 32px, 360px);
}
.ipn-payment-method .ipn-actions-dd__item{
  white-space:normal;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ipn-payment-method-promo .ipn-form-grid{ margin-top:4px; }
.ipn-payment-method-promo .ipn-promo-days{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
/* AV: 2026-09-10: #533 ? bloque promociones bancarias en liquidaci?n. */
.ipn-payment-method-settlement-promos{
  margin-top:16px;
}
.ipn-payment-method-settlement-promos__title{
  font-size:1.1rem;
}
@media (max-width:899px){
  .ipn-payment-method .ipn-table--list thead th{
    position:static;
    top:auto;
  }
  .ipn-payment-method .ipn-page-head__actions{
    width:100%;
  }
  .ipn-payment-method .ipn-page-head__actions .ipn-btn,
  .ipn-payment-method .ipn-page-head__actions .ipn-actions-dd,
  .ipn-payment-method .ipn-page-head__actions .ipn-actions-dd__toggle{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
  }
  .ipn-payment-method .ipn-actions-dd__menu{
    left:0;
    right:0;
    min-width:0;
    width:100%;
  }
}
@media (max-width:700px){
  /* AV: 2026-08-31: #172 ? inset ~12px del divisor (decisi?n #103). */
  .ipn-payment-method #tableRecharges tr.ipn-payment-method-recharge-sep > td{
    padding-left:12px;
    padding-right:12px;
    padding-bottom:12px;
    border-top-color:transparent;
    box-shadow:inset 12px 0 0 var(--ipn-surface, #fff),
               inset -12px 0 0 var(--ipn-surface, #fff),
               inset 0 1px 0 var(--ipn-border, #e2e7ef);
  }
  /* AV: 2026-09-03: #289 ? mobile: aire lateral/inferior en matriz de recargos (#273 no alcanzaba). */
  /* AV: 2026-09-10: #533 ? mismos aires en .ipn-card--recharges / .ipn-recharge-panel. */
  .ipn-payment-method .cnt_principal,
  .ipn-payment-method .ipn-card--recharges{
    padding:12px 12px 20px;
    margin-bottom:20px;
  }
  .ipn-payment-method .cnt_secundario,
  .ipn-payment-method .ipn-recharge-panel{
    padding:16px 16px 32px;
    margin-bottom:16px;
  }
  .ipn-payment-method .cnt_secundario > .ipn-table-wrap,
  .ipn-payment-method .ipn-recharge-panel > .ipn-table-wrap{
    margin-bottom:12px;
    padding:0 8px 16px;
    box-sizing:border-box;
  }
  .ipn-payment-method #tableRecharges{
    margin-bottom:16px;
  }
  .ipn-payment-method #tableRecharges td{
    padding-top:6px;
    padding-bottom:6px;
  }
  .ipn-payment-method #tableRecharges tr:last-child > td{
    padding-bottom:12px;
  }
  .ipn-payment-method #tableRecharges td:first-child{
    padding-left:8px;
  }
  .ipn-payment-method #tableRecharges td:last-child{
    padding-right:8px;
  }
  .ipn-payment-method .cntBotones,
  .ipn-payment-method .ipn-secure-actions{
    margin-top:8px;
    padding-bottom:8px;
  }
  /* AV: 2026-08-31: #172 ? d?a + hora en fila; "hs" no salta solo. */
  /* AV: 2026-09-10: #549 ? auditor?a: fechas pueden wrap en 375. */
  .ipn-payment-method-datetime{
    flex-direction:row;
    flex-wrap:wrap;
    align-items:center;
    gap:16px;
    max-width:100%;
  }
  .ipn-payment-method-datetime .ipn-datepicker,
  .ipn-payment-method-datetime .input-group.date{
    flex:1 1 140px;
    min-width:0;
    max-width:100%;
    width:auto;
  }
  .ipn-payment-method-datetime .timeInput,
  .ipn-payment-method-datetime input.timeInput{
    width:64px;
    max-width:64px;
    flex:0 0 64px;
  }
  /* AV: 2026-08-31: #197 ? "hs" al lateral del input hora (no salto de l?nea). */
  .ipn-payment-method-datetime #TimeFromPicker,
  .ipn-payment-method-datetime #TimeToPicker{
    display:inline-flex;
    align-items:center;
    gap:4px;
    flex:0 0 auto;
    white-space:nowrap;
  }
  .ipn-payment-method .cnt_secundario table input[type="text"],
  .ipn-payment-method .cnt_secundario table select{
    max-width:100%;
  }
  body:has(.ipn-payment-method) .flatpickr-calendar{
    left:12px !important;
    right:12px;
    width:auto !important;
    max-width:calc(100vw - 24px);
  }
}

/* AV: 2026-08-21: Listas de precios (.ipn-price-lists*) + Promociones (.ipn-promotions*). */
.ipn-price-lists .ipn-notice + .ipn-card{ margin-top:16px; }
.ipn-price-lists .ipn-row-actions{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
}
.ipn-price-lists-panel.is-hidden{ display:none !important; }
.ipn-price-lists-stores__group{ margin-bottom:16px; }
.ipn-price-lists-stores__group .ipn-form-section__title{
  margin:0 0 8px;
  font-size:14px;
}
.ipn-price-lists-stores__item{
  display:inline-block;
  min-width:220px;
  margin:0 12px 8px 0;
  font-size:13.5px;
}
.ipn-price-lists-stores-form__list{
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  margin:12px 0 4px;
}
.ipn-price-lists-stores-form__list .ipn-check-row{ min-width:220px; flex:0 1 280px; }
.ipn-price-lists-form .ipn-field--sm .ipn-input,
.ipn-price-lists-form .ipn-field--sm .ipn-select{ max-width:200px; }
/* AV: 2026-09-04: Help tippy junto al label en alta admin priceLists (#382). */
.ipn-price-lists-form .ipn-label{
  display:inline-flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
}
.ipn-price-lists-form .ipn-help-icon{
  font-size:18px;
  color:var(--ipn-text-2, #5b6b80);
  cursor:help;
  user-select:none;
}
.ipn-price-lists-form .ipn-secure-actions{ margin-top:16px; }
/* AV: 2026-09-07: Labels largos de sucursales wrappean en mobile (#327). */
.ipn-price-lists-form .ipn-field{ min-width:0; }
.ipn-admin-price-lists.ipn-price-lists-form .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
}
.ipn-admin-price-lists.ipn-price-lists-form .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}

.ipn-promotions .ipn-notice + .ipn-card{
  margin-top:16px;
}
.ipn-promotions-filters__table td,
.ipn-promotions-stores__table td{
  padding:6px 8px;
  vertical-align:middle;
}
/* AV: 2026-09-11: #567 ? desktop: filtros en filas flex ordenadas (evita table desordenada). */
@media (min-width:701px){
  .ipn-promotions-filters__table{
    width:100%;
    border-collapse:separate;
    border-spacing:0 6px;
  }
  .ipn-promotions-filters__table > tbody,
  .ipn-promotions-filters__table{
    display:block;
  }
  .ipn-promotions-filters__table tr{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px 12px;
    width:100%;
  }
  .ipn-promotions-filters__table td{
    display:inline-flex;
    align-items:center;
    gap:6px 8px;
    width:auto !important;
    max-width:100%;
    padding:4px 0;
    white-space:nowrap;
    vertical-align:middle;
    box-sizing:border-box;
  }
  .ipn-promotions-filters__table td:has(> img[alt="|"]),
  .ipn-promotions-filters__table img[alt="|"]{
    display:none !important;
  }
  .ipn-promotions-filters__table .ipn-input,
  .ipn-promotions-filters__table .ipn-select{
    width:180px;
    max-width:100%;
    min-width:120px;
    box-sizing:border-box;
  }
  .ipn-promotions-filters__table .ipn-promotions-dates{
    display:inline-flex;
    flex-wrap:nowrap;
  }
  .ipn-promotions-filters__check-actions{
    margin-left:4px;
  }
}

/* AV: 2026-09-10: #552 ? gap notice?filtros; Buscar junto al checkbox; popup en chrome global; mobile. */
/* AV: 2026-09-11: #563 ? Buscar con margin-left; mobile dividers/stores/subtabs/d?as/detalle. */
.ipn-promotions .ipn-notice-stack{
  margin-bottom:16px;
}
.ipn-promotions-filters__check-actions{
  display:inline-flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px 16px;
  white-space:nowrap;
  vertical-align:middle;
}
.ipn-promotions-filters__actions{
  width:1%;
  text-align:left;
  white-space:nowrap;
  vertical-align:middle;
}
.ipn-promotions-filters .ipn-promotions-filters__actions .ipn-btn{
  margin-left:0;
}
/* AV: 2026-09-11: #567 ? Buscar con margen izquierdo respecto al checkbox. */
.ipn-promotions-filters__check-actions .ipn-btn{
  margin-left:16px;
}
.ipn-promo-export-popup__title{
  font-size:15px;
  font-weight:600;
  margin:0 0 12px;
}
.ipn-promo-export-popup__formats{
  margin:8px 0 4px 20px;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.ipn-promotions-dates{
  display:inline-flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
/* AV: 2026-08-27: Chrome datepicker promociones (mismo patr?n importation; issue #103). */
.ipn-promotions-dates .ipn-datepicker{
  display:inline-flex;
  align-items:stretch;
  width:140px;
}
.ipn-promotions-dates .ipn-datepicker input[data-input]{
  flex:1 1 auto;
  min-width:0;
  width:auto;
  height:var(--ipn-control-h, 42px);
  padding:0 12px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-right:0;
  border-radius:var(--ipn-radius-input, 8px) 0 0 var(--ipn-radius-input, 8px);
  font:inherit;
  font-size:14px;
  color:var(--ipn-text);
  background:var(--ipn-surface);
  box-sizing:border-box;
}
.ipn-promotions-dates .ipn-datepicker input[data-input]:focus{
  outline:none;
  border-color:var(--ipn-brand, var(--ipn-primary));
  z-index:1;
}
.ipn-promotions-dates .ipn-datepicker__btn{
  flex:0 0 42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-radius:0 var(--ipn-radius-input, 8px) var(--ipn-radius-input, 8px) 0;
  background:var(--ipn-surface-soft, #f5f7fb);
  color:var(--ipn-text-2, #5b6b80);
  cursor:pointer;
  padding:0;
}
.ipn-promotions-dates .ipn-datepicker__btn:hover{
  background:var(--ipn-surface);
  color:var(--ipn-brand, var(--ipn-primary));
}
.ipn-promotions-dates .ipn-datepicker__btn .material-symbols-rounded{ font-size:18px; }
.ipn-promotions-dates .ipn-input{ width:100%; }
.ipn-promotions__flag--ok{ color:#039855; font-size:20px; }
.ipn-promotions__flag--no{ color:#98a2b3; font-size:20px; }
.ipn-promotions-dnd-actions{ margin-top:16px; }
.ipn-promotions-changelog .ipn-pager{ margin-top:12px; }
/* AV: 2026-09-14: #572 - dias: wrap sin overflow-x; * fuera del chip. */
.ipn-promotions-form .weekDays-selector{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
  -webkit-user-select:none;
  user-select:none;
}
.ipn-promotions-form .weekDays-selector input{ display:none !important; }
.ipn-promotions-form .weekDays-selector input[type=checkbox] + label{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:4px;
  background:#dddddd;
  height:40px;
  flex:1 1 88px;
  min-width:0;
  max-width:100%;
  padding:0 10px;
  margin:0;
  line-height:1.2;
  text-align:center;
  cursor:pointer;
  box-sizing:border-box;
}
.ipn-promotions-form .weekDays-selector input[type=checkbox]:checked + label{
  background:var(--ipn-promo-day-bg, var(--ipn-brand, #1e60a2));
  color:var(--ipn-promo-day-fg, #fff);
}
.ipn-promotions-form .weekDays-selector input[type=checkbox]:checked + .checkAll{
  background:var(--ipn-promo-day-all, #06325d);
  color:var(--ipn-promo-day-fg, #fff);
}
.ipn-promotions-form .weekDays-selector .ipn-req,
.ipn-promotions-form .weekDays-selector #spn_dayID{
  flex:0 0 auto;
  align-self:center;
  margin:0;
}
/* AV: 2026-09-10: #552+#534 ? form/detalle promociones (cards, panels, help, filtros). */
.ipn-promotions-form .ipn-secure-actions{ margin-top:16px; }
.ipn-promotions-form .ipn-help-icon{
  display:inline-block;
  font-size:18px;
  color:var(--ipn-text-2, #5b6b80);
  cursor:help;
  user-select:none;
  vertical-align:middle;
  flex:0 0 auto;
  line-height:1;
}
/* AV: 2026-09-14: #572 - overflow visible para dias/wrap; scroll solo en tablas densas. */
.ipn-promotions-form .cnt_secundario,
.ipn-promotions-form .ipn-promotions-panel{
  overflow-x:visible;
  max-width:100%;
  min-width:0;
}
.ipn-promotions-form .cnt_secundario td:has(> .weekDays-selector){
  overflow:visible;
  max-width:100%;
  min-width:0;
}
.ipn-promotions-form .cnt_secundario table,
.ipn-promotions-detail .ipn-promotions-detail-table{
  width:100%;
  border-collapse:collapse;
  font-family:var(--ipn-font);
  font-size:14px;
}
.ipn-promotions-form .cnt_secundario td,
.ipn-promotions-detail .ipn-promotions-detail-table,
.ipn-promotions-detail .ipn-promotions-detail-table tr,
.ipn-promotions-detail .ipn-promotions-detail-table td,
.ipn-promotions-detail .ipn-promotions-detail-table th{
  padding:8px 10px;
  vertical-align:top;
  border:0 !important;
  box-shadow:none;
}
.ipn-promotions-form .cnt_secundario h2,
.ipn-promotions-form .ipn-promotions-panel h2,
.ipn-promotions-detail .ipn-promotions-detail-table h2{
  margin:0 0 4px;
  padding:0;
  border:0;
  font-size:16px;
  font-weight:600;
}
.ipn-promotions-form .ipn-promotions-form__hint{
  padding-top:0 !important;
  padding-bottom:4px !important;
  color:var(--ipn-text-2, #5b6b80);
  font-size:13px;
}
.ipn-promotions-form .ipn-req,
.ipn-promotions-form span.ipn-req{
  color:var(--ipn-danger, #d92d20);
  font-weight:600;
  display:inline-block;
  vertical-align:middle;
  flex:0 0 auto;
  white-space:nowrap;
}
.ipn-promotions-form .ipn-input,
.ipn-promotions-form .ipn-select,
.ipn-promotions-form .ipn-textarea{
  max-width:100%;
  font-family:var(--ipn-font);
}
/* AV: 2026-09-11: #563 ? * / tippy al lado del input (no wrap por width:100%). */
.ipn-promotions-form .cnt_secundario td:has(> .ipn-input),
.ipn-promotions-form .cnt_secundario td:has(> .ipn-select),
.ipn-promotions-form .cnt_secundario td:has(> .ipn-promotions-dates),
.ipn-promotions-form .cnt_secundario td:has(> .ipn-help-icon),
.ipn-promotions-form .ipn-promotions-filter-box td:has(> .ipn-input),
.ipn-promotions-form .ipn-promotions-filter-box td:has(> .ipn-select){
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px 8px;
}
.ipn-promotions-form .cnt_secundario td > .ipn-input,
.ipn-promotions-form .cnt_secundario td > .ipn-select,
.ipn-promotions-form .ipn-promotions-filter-box td > .ipn-input,
.ipn-promotions-form .ipn-promotions-filter-box td > .ipn-select{
  flex:1 1 auto;
  width:auto;
  min-width:0;
  max-width:calc(100% - 52px);
}
.ipn-promotions-form .cnt_secundario td > .ipn-promotions-dates{
  flex:1 1 auto;
  min-width:0;
}
.ipn-promotions-form .ipn-promotions-filter-box input[type=checkbox]{
  display:inline-block;
  vertical-align:middle;
  margin:0 6px 0 0;
  flex:0 0 auto;
}
.ipn-promotions-form .ipn-promotions-filter-box label{
  display:inline !important;
  vertical-align:middle;
  margin:0 !important;
  white-space:normal;
}
.ipn-promotions-form #storesContent,
.ipn-promotions-form #storesContent td,
.ipn-promotions-form #storesContent tr{
  border:0 !important;
  box-shadow:none;
}
.ipn-promotions-form #storesContent td.NoBorderBottom,
.ipn-promotions-form #storesContent tr:last-child td{
  border-bottom:0 !important;
  box-shadow:none;
}
.ipn-promotions-form .cnt_secundario td > span:first-child,
.ipn-promotions-detail .ipn-promotions-detail-table td > span:first-child{
  color:var(--ipn-text-2, #5b6b80);
  font-weight:600;
}
.ipn-promotions-filter-box{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  background:var(--ipn-surface, #fff) !important;
  border:1px solid var(--ipn-hairline, #e2e7ef) !important;
  border-radius:var(--ipn-radius-card, 12px);
  padding:8px 12px !important;
  font-family:var(--ipn-font);
}
.ipn-promotions-filter-box td{
  border:0 !important;
  padding:6px 8px;
  vertical-align:middle;
  font-family:var(--ipn-font);
}
/* AV: 2026-09-14: #572 - subtabs: overflow visible + anular legacy .tab_grilla * (borde inferior). */
.ipn-promotions-form .tab_grilla,
.ipn-promotions-detail .tab_grilla{
  max-width:100%;
  overflow:visible;
}
.ipn-promotions-form .tab_grilla *,
.ipn-promotions-detail .tab_grilla *{
  float:none !important;
}
.ipn-promotions-form .tab_grilla ul,
.ipn-promotions-detail .tab_grilla ul,
.ipn-promotions-subtabs{
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box;
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:0;
  float:none !important;
  background-image:none !important;
  background:transparent !important;
  margin:0 0 12px;
  list-style:none;
  padding:0;
  border-bottom:1px solid var(--ipn-hairline, #e2e7ef);
}
.ipn-promotions-form .tab_grilla ul li,
.ipn-promotions-detail .tab_grilla ul li,
.ipn-promotions-subtabs > li{
  float:none !important;
  display:inline-flex !important;
  align-items:center;
  margin:0 2px -1px 0;
  padding:8px 14px;
  border:1px solid var(--ipn-hairline, #e2e7ef);
  border-bottom-color:transparent;
  border-radius:8px 8px 0 0;
  background:var(--ipn-surface-soft, #f5f7fb);
  box-sizing:border-box;
  position:relative;
  z-index:0;
}
.ipn-promotions-form .tab_grilla ul li a,
.ipn-promotions-detail .tab_grilla ul li a,
.ipn-promotions-subtabs > li a{
  float:none !important;
  display:inline-block !important;
  color:var(--ipn-text, #122740);
  text-decoration:none;
  font-size:13px;
  line-height:1.3;
  white-space:nowrap;
  cursor:pointer;
  margin:0;
  padding:0;
}
.ipn-promotions-form .tab_grilla ul li.activo,
.ipn-promotions-detail .tab_grilla ul li.activo,
.ipn-promotions-subtabs > li.activo{
  background:var(--ipn-surface, #fff);
  border-color:var(--ipn-hairline, #e2e7ef);
  border-bottom-color:var(--ipn-surface, #fff);
  background-image:none !important;
  z-index:1;
}
.ipn-promotions-form .tab_grilla ul li.activo a,
.ipn-promotions-detail .tab_grilla ul li.activo a,
.ipn-promotions-subtabs > li.activo a{
  font-weight:600;
  color:var(--ipn-brand, #1e60a2);
}
.ipn-promotions-form .tab_grilla + .ipn-promotions-panel,
.ipn-promotions-form .tab_grilla + table,
.ipn-promotions-form .ipn-promotions-filter-box{
  margin-top:12px;
}
.ipn-promotions-panel.is-hidden{ display:none !important; }
.ipn-promotions-detail .ipn-tabs{ margin-bottom:0; }
.ipn-promotions-detail .ipn-detail-main > .ipn-card{ border-top-left-radius:0; border-top-right-radius:0; }
.ipn-promotions-detail .ipn-audit{ margin-top:16px; }
.ipn-promotions-detail .ipn-card__body{
  overflow-x:auto;
  max-width:100%;
  min-width:0;
}
@media (max-width:700px){
  .ipn-price-lists-stores-form__list .ipn-check-row,
  .ipn-price-lists-stores__item{ min-width:0; flex:1 1 100%; width:100%; }
  /* AV: 2026-09-07: moneda/markup 100% en mobile (#429). */
  .ipn-price-lists-form .ipn-field--sm,
  .ipn-price-lists-form .ipn-field--sm .ipn-input,
  .ipn-price-lists-form .ipn-field--sm .ipn-select{
    max-width:100%;
    width:100%;
  }
  .ipn-promotions-filters__table{
    display:block;
    width:100%;
  }
  .ipn-promotions-filters__table tr{
    display:flex;
    flex-wrap:wrap;
    gap:8px 12px;
    align-items:flex-start;
  }
  .ipn-promotions-filters__table td{
    display:block;
    min-width:0;
    flex:1 1 100%;
    width:100% !important;
    max-width:100%;
    box-sizing:border-box;
    white-space:normal !important;
  }
  /* AV: 2026-09-11: #563 ? ocultar barras divisoras en mobile. */
  .ipn-promotions-filters__table td:has(> img[alt="|"]),
  .ipn-promotions-filters__table img[alt="|"]{
    display:none !important;
  }
  .ipn-promotions-filters__check-actions{
    width:100%;
    flex:1 1 100%;
    flex-direction:column;
    align-items:stretch;
    gap:16px;
    white-space:normal;
  }
  .ipn-promotions-filters__check-actions .ipn-check-row{
    width:100%;
    white-space:normal;
    margin:0;
  }
  /* AV: 2026-09-11: #567 ? mobile: Buscar separado del checkbox. */
  .ipn-promotions-filters__check-actions .ipn-btn,
  .ipn-promotions-filters__actions .ipn-btn{
    width:100%;
    justify-content:center;
    margin-left:0 !important;
    margin-top:4px;
  }
  .ipn-promotions-filters__actions{
    width:100%;
    text-align:left;
  }
  .ipn-promotions-dates{ width:100%; }
  .ipn-promotions-dates .ipn-datepicker{ width:100%; }
  /* AV: 2026-09-14: #572 - listado sucursales mobile: 1 por fila, sin height fijo que encima. */
  .ipn-promotions-stores__table,
  .ipn-promotions-stores__table tbody{
    display:block;
    width:100%;
  }
  .ipn-promotions-stores__table tr{
    display:flex;
    flex-direction:column;
    flex-wrap:nowrap;
    align-items:stretch;
    gap:10px;
    width:100%;
    height:auto !important;
    min-height:0;
    margin:0 0 12px;
  }
  .ipn-promotions-stores__table td,
  .ipn-promotions-stores__table td[width]{
    display:flex !important;
    flex:0 0 auto !important;
    flex-direction:row;
    align-items:flex-start;
    gap:10px;
    width:100% !important;
    max-width:100% !important;
    min-width:0;
    box-sizing:border-box;
    padding:4px 0;
    white-space:normal !important;
  }
  .ipn-promotions-stores__table input[type=checkbox]{
    display:inline-block;
    flex:0 0 auto;
    width:auto;
    height:auto;
    margin:3px 0 0;
    vertical-align:top;
  }
  .ipn-promotions-stores__table label{
    display:block;
    flex:1 1 auto;
    min-width:0;
    max-width:100%;
    vertical-align:middle;
    white-space:normal !important;
    overflow-wrap:anywhere;
    line-height:1.35;
  }
  .ipn-promotions-form .cnt_secundario > table > tbody > tr > td,
  .ipn-promotions-form .cnt_secundario > table > tr > td{
    display:block;
    width:100% !important;
    box-sizing:border-box;
  }
  .ipn-promotions-form .cnt_secundario > table > tbody > tr,
  .ipn-promotions-form .cnt_secundario > table > tr{
    display:block;
    margin-bottom:10px;
  }
  .ipn-promotions-form .cnt_secundario > table > tbody > tr > td > span:first-child,
  .ipn-promotions-form .cnt_secundario > table > tbody > tr > td > label{
    display:block;
    margin-bottom:4px;
  }
  .ipn-promotions-form .cnt_secundario td:has(> .ipn-input),
  .ipn-promotions-form .cnt_secundario td:has(> .ipn-select),
  .ipn-promotions-form .cnt_secundario td:has(> .ipn-promotions-dates),
  .ipn-promotions-form .cnt_secundario td:has(> .ipn-help-icon){
    display:flex;
  }
  .ipn-promotions-form .cnt_secundario td > .ipn-input,
  .ipn-promotions-form .cnt_secundario td > .ipn-select{
    max-width:calc(100% - 52px);
  }
  /* AV: 2026-09-14: #572 - dias 2 cols wrap; * fuera del chip Domingo. */
  .ipn-promotions-form .weekDays-selector{
    gap:10px;
    align-items:center;
    width:100%;
    max-width:100%;
    overflow:visible;
  }
  .ipn-promotions-form .weekDays-selector input[type=checkbox] + label{
    flex:1 1 calc(50% - 10px);
    min-width:calc(50% - 10px);
    max-width:calc(50% - 10px);
  }
  .ipn-promotions-form .weekDays-selector .ipn-req,
  .ipn-promotions-form .weekDays-selector #spn_dayID{
    flex:0 0 auto;
    width:auto;
    margin:0;
    align-self:center;
  }
  .ipn-promotions-form .tab_grilla ul,
  .ipn-promotions-detail .tab_grilla ul,
  .ipn-promotions-subtabs{
    flex-direction:column;
    align-items:stretch;
    gap:6px;
    border-bottom:0;
    margin-bottom:12px;
  }
  .ipn-promotions-form .tab_grilla ul li,
  .ipn-promotions-detail .tab_grilla ul li,
  .ipn-promotions-subtabs > li{
    width:100%;
    margin:0;
    border-radius:8px;
    border:1px solid var(--ipn-hairline, #e2e7ef);
    border-bottom-color:var(--ipn-hairline, #e2e7ef);
    justify-content:flex-start;
  }
  .ipn-promotions-form .tab_grilla ul li.activo,
  .ipn-promotions-detail .tab_grilla ul li.activo,
  .ipn-promotions-subtabs > li.activo{
    border-bottom-color:var(--ipn-hairline, #e2e7ef);
  }
  .ipn-promotions-form .tab_grilla ul li a,
  .ipn-promotions-detail .tab_grilla ul li a,
  .ipn-promotions-subtabs > li a{
    white-space:normal;
  }
  /* AV: 2026-09-11: #567 ? sucursales/listas form: un checkbox por fila. */
  .ipn-promotions-form .ipn-promotions-filter-box,
  .ipn-promotions-form .ipn-promotions-filter-box tbody,
  .ipn-promotions-form #storesContent,
  .ipn-promotions-form #storesContent tbody{
    display:block;
    width:100%;
  }
  .ipn-promotions-form .ipn-promotions-filter-box tr,
  .ipn-promotions-form #storesContent tr{
    display:flex;
    flex-direction:column;
    width:100%;
    gap:8px;
    margin:0 0 8px;
  }
  .ipn-promotions-form .ipn-promotions-filter-box td,
  .ipn-promotions-form #storesContent td{
    display:flex !important;
    flex-direction:row;
    align-items:flex-start;
    gap:8px;
    width:100% !important;
    max-width:100%;
    box-sizing:border-box;
  }
  .ipn-promotions-form .ipn-promotions-filter-box input[type=checkbox],
  .ipn-promotions-form #storesContent input[type=checkbox]{
    display:inline-block !important;
    flex:0 0 auto;
    margin:2px 0 0 !important;
  }
  .ipn-promotions-form .ipn-promotions-filter-box label,
  .ipn-promotions-form #storesContent label{
    display:inline !important;
    flex:1 1 auto;
    min-width:0;
    margin:0 !important;
    white-space:normal;
    overflow-wrap:anywhere;
  }
  /* AV: 2026-09-11: #563 ? detalle: label/valor apilados en mobile. */
  .ipn-promotions-detail .ipn-promotions-detail-table,
  .ipn-promotions-detail .ipn-promotions-detail-table tbody,
  .ipn-promotions-detail .ipn-promotions-detail-table tr{
    display:block;
    width:100%;
  }
  .ipn-promotions-detail .ipn-promotions-detail-table td{
    display:block;
    width:100% !important;
    max-width:100%;
    box-sizing:border-box;
    overflow-wrap:anywhere;
    word-break:break-word;
    padding:4px 0;
  }
  .ipn-promotions-detail .ipn-promotions-detail-table td > span:first-child{
    display:block;
    margin-bottom:2px;
  }
  .ipn-promotions-detail .ipn-card__body{
    overflow-x:auto;
    max-width:100%;
  }
  .ipn-promotions-form .ipn-secure-actions{
    flex-direction:column;
  }
  .ipn-promotions-form .ipn-secure-actions .ipn-btn{ width:100%; }
  .ipn-promotions-form #storesContent td[width]{
    width:100% !important;
    flex:0 0 auto;
  }
}

/* AV: 2026-08-21: Par?metros de configuraci?n iB2B (scope .ipn-ib2b-settings). */
.ipn-ib2b-settings .ipn-tabs,
.ipn-ib2b-settings .tab_cnt_principal.ipn-tabs{
  margin:0 0 16px;
}
.ipn-ib2b-settings__list{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin:0 0 8px;
}
.ipn-ib2b-settings__rule{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:16px 18px;
  background:var(--ipn-surface, #fff);
  border:1px solid var(--ipn-hairline, #e2e7ef);
  border-radius:var(--ipn-radius-card, 12px);
  box-shadow:var(--ipn-shadow-card, 0 1px 2px rgba(18,39,64,.04));
  border-left:3px solid var(--ipn-brand, #1e60a2);
}
.ipn-ib2b-settings__rule--default{
  background:#fff8f8;
  border-left-color:var(--ipn-danger, #d92d20);
}
.ipn-ib2b-settings__rule-head{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:8px 12px;
}
.ipn-ib2b-settings__badge{
  margin-left:auto;
  font-size:11px;
  font-weight:700;
  color:var(--ipn-danger, #d92d20);
  text-decoration:underline;
  white-space:nowrap;
}
.ipn-ib2b-settings__rule-title{
  flex:1 1 auto;
  min-width:0;
  margin:0;
  font-size:15px;
  font-weight:650;
  color:var(--ipn-text, #122740);
  line-height:1.3;
}
.ipn-ib2b-settings__rule-desc{
  margin:0;
  font-size:13px;
  color:var(--ipn-text-3, #5b6b80);
  line-height:1.45;
}
.ipn-ib2b-settings__rule-control{
  margin-top:4px;
  max-width:100%;
}
.ipn-ib2b-settings__rule-control .ipn-input,
.ipn-ib2b-settings__rule-control .ipn-select,
.ipn-ib2b-settings__select--wide{
  max-width:min(100%, 480px);
  width:100%;
  box-sizing:border-box;
}
.ipn-ib2b-settings__rule-control--image{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
}
.ipn-ib2b-settings__img-preview img{
  max-width:min(100%, 280px);
  max-height:80px;
  object-fit:contain;
  border:1px solid var(--ipn-hairline, #e2e7ef);
  border-radius:8px;
  background:#fff;
}
.ipn-ib2b-settings .ipn-secure-actions{
  display:flex;
  align-items:center;
  gap:10px;
  margin:16px 0 8px;
  position:sticky;
  bottom:0;
  z-index:5;
  padding:12px 0;
  background:linear-gradient(180deg, transparent, #f4f6f9 28%);
}
.ipn-ib2b-settings .ipn-secure-actions .ipn-btn--primary{ margin-left:auto; }
.ipn-ib2b-settings-form .ipn-secure-actions .ipn-btn--primary{ margin-left:auto; }
.ipn-ib2b-settings-log .ipn-table th.is-center,
.ipn-ib2b-settings-log .ipn-table td.is-center{ text-align:center; }
.ipn-ib2b-settings .color-box{
  min-width:120px;
  cursor:pointer;
}
@media (max-width:700px){
  .ipn-ib2b-settings__badge{ margin-left:0; width:100%; }
  .ipn-ib2b-settings__rule-control .ipn-input,
  .ipn-ib2b-settings__rule-control .ipn-select,
  .ipn-ib2b-settings__select--wide{
    max-width:100%;
  }
  .ipn-ib2b-settings .ipn-secure-actions{
    flex-wrap:wrap;
  }
  .ipn-ib2b-settings .ipn-secure-actions .ipn-btn--primary{
    margin-left:0;
    width:100%;
  }
}


/* =====================================================================
   AV: 2026-08-22: Reportes iPN2 ? filtro gen?rico + resultado + impresi?n.
   Scope: .ipn-rpt / .ipn-rpt-filter / .ipn-rpt-result
   Reutiliza: .ipn-section, .ipn-grid, .ipn-field--c*, .ipn-card, .ipn-btn,
   .ipn-chip, .ipn-page-head, .ipn-breadcrumb, .ipn-input, .ipn-empty-state.
   ===================================================================== */

.ipn-rpt,
.ipn-rpt-filter{
  --ipn-rpt-container: var(--ipn-container, 1140px);
  --ipn-rpt-ink: #16294d;
  --ipn-rpt-muted: #8a94a2;
  --ipn-rpt-line: #edf0f5;
  --ipn-rpt-border: #e6e9ef;
  --ipn-rpt-group-line: #eef1f6;
  --ipn-rpt-group-line-head: #dfe4ec;
  width: 100%;
  max-width: var(--ipn-rpt-container);
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}
/* AV: 2026-08-23: Resultado usa 1380; filtro/formulario siguen --ipn-rpt-container. */
.ipn-rpt-result{
  --ipn-rpt-result-max: 1380px;
  --ipn-rpt-ink: #16294d;
  --ipn-rpt-muted: #8a94a2;
  --ipn-rpt-line: #edf0f5;
  --ipn-rpt-border: #e6e9ef;
  --ipn-rpt-group-line: #eef1f6;
  --ipn-rpt-group-line-head: #dfe4ec;
  width: 100%;
  max-width: var(--ipn-rpt-result-max);
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

.ipn-rpt .ipn-page-head,
.ipn-rpt-filter .ipn-page-head,
.ipn-rpt-result .ipn-page-head{
  margin-bottom: 20px;
}
/* AV: 2026-08-29: #127 ? no fusionar page-head__actions con filter__actions (selector colgante). */
/* AV: 2026-08-30: #129 ? mismo fix; Buscar preferible DENTRO del card (Decisi?n A). */

/* --- Filtro: acciones (dentro del card; NO sticky) --- */
/* AV: 2026-08-22: Restablecer izquierda ? Generar derecha. */
/* AV: 2026-08-29: #127 ? primary solo (:only-child) sin margin-left:auto (Buscar a la izquierda). */
.ipn-rpt-filter__actions{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 16px 0 8px;
}
.ipn-rpt-filter .ipn-card .ipn-rpt-filter__actions{
  margin: 16px 0 0;
}
.ipn-rpt-filter__actions .ipn-btn--primary:not(:only-child){
  margin-left: auto;
}
.ipn-rpt-filter__actions .ipn-btn.is-loading,
.ipn-rpt-filter__actions .ipn-btn:disabled{
  opacity: .72;
  pointer-events: none;
  cursor: not-allowed;
}

/* AV: 2026-09-01: #205 ? gap entre secciones como formularios (.ipn-form card body). */
.ipn-rpt-filter .ipn-card > .ipn-card__body{
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.ipn-rpt-filter .ipn-section + .ipn-section{
  margin-top: 0;
}
.ipn-rpt-filter .ipn-section{
  gap: 12px;
}
.ipn-rpt-filter .ipn-section__head{
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 16px;
  padding-bottom: 9px;
  border-bottom: 1px solid var(--ipn-rpt-line);
  margin-bottom: 0;
}
.ipn-rpt-filter .ipn-section__head .ipn-section__title{
  flex: 1 1 auto;
  margin: 0;
  padding: 0;
  border: 0;
}
.ipn-rpt-filter .ipn-section__links{
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 12.5px;
  font-weight: 600;
}
.ipn-rpt-filter .ipn-section__links a{
  color: var(--ipn-brand, #2f62c4);
  text-decoration: none;
}
.ipn-rpt-filter .ipn-section__links a:hover{
  text-decoration: underline;
}
.ipn-rpt-filter .ipn-section__help{
  margin: 0;
  font-size: 12.5px;
  color: var(--ipn-text-3, #6b7685);
  line-height: 1.4;
}

/* AV: 2026-08-30: #141 ? datepicker reportes = patr?n Configuraci?n (btn data-toggle). */
.ipn-rpt-filter .ipn-datepicker{
  display: flex;
  align-items: stretch;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.ipn-rpt-filter .ipn-datepicker input[data-input]{
  flex: 1 1 auto;
  min-width: 0;
  width: auto;
  /* AV: 2026-09-01: #213/#216 ? misma altura que .ipn-grid .ipn-input (form-control-h). */
  height: var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  min-height: var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  padding: 0 12px;
  border: 1px solid var(--ipn-border-input, #c7d3e3);
  border-right: 0;
  border-radius: var(--ipn-radius-input, 8px) 0 0 var(--ipn-radius-input, 8px);
  font: inherit;
  font-size: 14px;
  color: var(--ipn-text);
  background: var(--ipn-surface);
  box-sizing: border-box;
}
.ipn-rpt-filter .ipn-datepicker input[data-input]:focus{
  outline: none;
  border-color: var(--ipn-brand, var(--ipn-primary));
  z-index: 1;
}
/* AV: 2026-08-31: #186 ? icono calendario centrado (line-height + altura del control). */
/* AV: 2026-09-01: #213/#216 ? alto alineado a inputs del grid de filtros. */
.ipn-rpt-filter .ipn-datepicker__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  flex: 0 0 42px;
  height: var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  min-height: var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  border: 1px solid var(--ipn-border-input, #c7d3e3);
  border-radius: 0 var(--ipn-radius-input, 8px) var(--ipn-radius-input, 8px) 0;
  background: var(--ipn-surface-soft, #f5f7fb);
  color: var(--ipn-text-2, #5b6b80);
  cursor: pointer;
  padding: 0;
  line-height: 1;
  box-sizing: border-box;
}
.ipn-rpt-filter .ipn-datepicker__btn:hover{
  background: #eef2f7;
  color: var(--ipn-text);
}
.ipn-rpt-filter .ipn-datepicker__btn .material-symbols-rounded{
  font-size: 18px;
  line-height: 1;
  display: block;
}

/* --- Chips de atajo de per?odo --- */
.ipn-rpt-range-chips{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  /* AV: 2026-09-01: #205 ? alinea chips con inputs (label 12.5px + margin 6px + line 1.3 ? 22px). */
  padding-top: 22px;
  box-sizing: border-box;
}
@media (max-width:899px){
  .ipn-rpt-range-chips{
    padding-top: 0;
  }
}
.ipn-rpt-range-chip{
  display: inline-flex;
  align-items: center;
  height: 32px;
  padding: 0 12px;
  border: 1px solid var(--ipn-rpt-border);
  border-radius: 999px;
  background: #fff;
  color: #3d4a5c;
  font-size: 12.5px;
  font-weight: 500;
  cursor: pointer;
  user-select: none;
  transition: background .12s ease, border-color .12s ease, color .12s ease;
}
.ipn-rpt-range-chip:hover{
  border-color: color-mix(in srgb, var(--ipn-brand, #2f62c4) 40%, var(--ipn-rpt-border));
}
.ipn-rpt-range-chip.is-active{
  background: var(--ipn-brand-soft, #eaf1fb);
  border-color: var(--ipn-brand, #2f62c4);
  color: var(--ipn-brand, #2f62c4);
  font-weight: 600;
}
.ipn-rpt-range-hint{
  margin: 6px 0 0;
  font-size: 12px;
  color: var(--ipn-rpt-muted);
  line-height: 1.35;
}
.ipn-rpt-range-hint.is-warning{
  color: var(--ipn-danger, #c62828);
  font-weight: 500;
}
.ipn-rpt-filter .ipn-field .ipn-input.is-mono,
.ipn-rpt-filter .ipn-input.is-mono{
  font-family: var(--ipn-font-mono, "IBM Plex Mono", ui-monospace, monospace);
  font-variant-numeric: tabular-nums;
  letter-spacing: .02em;
}

/* AV: 2026-09-03: #284 ? Flatpickr popup en reportes (.ipn-rpt-filter). */
body:has(.ipn-rpt-filter) .flatpickr-calendar{
  z-index: 4000 !important;
  font-family: var(--ipn-font);
}
body:has(.ipn-rpt-filter) .flatpickr-day.selected,
body:has(.ipn-rpt-filter) .flatpickr-day.startRange,
body:has(.ipn-rpt-filter) .flatpickr-day.endRange{
  background: var(--ipn-primary) !important;
  border-color: var(--ipn-primary) !important;
}

/* --- Multi-select largo (sucursales) --- */
.ipn-rpt-ms{
  position: relative;
  width: 100%;
}
.ipn-rpt-ms__trigger{
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  height: 42px;
  padding: 0 12px;
  border: 1px solid var(--ipn-form-border, #d9dfe9);
  border-radius: var(--ipn-form-radius, 9px);
  background: #fff;
  color: #1e2733;
  font: inherit;
  font-size: 13.5px;
  text-align: left;
  cursor: pointer;
  box-sizing: border-box;
  transition: border-color .12s ease, box-shadow .12s ease;
}
.ipn-rpt-ms__trigger:hover{
  border-color: #c5cedc;
}
.ipn-rpt-ms.is-open .ipn-rpt-ms__trigger,
.ipn-rpt-ms__trigger:focus-visible{
  outline: none;
  border-color: var(--ipn-brand, #2f62c4);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--ipn-brand, #2f62c4) 22%, transparent);
}
.ipn-rpt-ms__trigger-icon{
  flex: 0 0 auto;
  font-size: 20px !important;
  color: var(--ipn-brand, #2f62c4);
  opacity: .9;
}
.ipn-rpt-ms__summary{
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ipn-rpt-ms__summary.is-placeholder{
  color: #9aa5b4;
  font-weight: 400;
}
.ipn-rpt-ms__chevron{
  flex: 0 0 auto;
  font-size: 20px !important;
  color: #8a94a2;
  transition: transform .15s ease;
}
.ipn-rpt-ms.is-open .ipn-rpt-ms__chevron{
  transform: rotate(180deg);
}

.ipn-rpt-ms__panel{
  position: absolute;
  z-index: 40;
  top: calc(100% + 6px);
  left: 0;
  min-width: 100%;
  width: max(100%, 420px);
  max-width: min(720px, 92vw);
  max-height: 430px;
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--ipn-rpt-border);
  border-radius: 12px;
  box-shadow: 0 12px 32px rgba(22, 41, 77, .14);
  overflow: hidden;
}
.ipn-rpt-ms__panel[hidden]{
  display: none !important;
}
.ipn-rpt-ms__panel-head{
  flex: 0 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 12px 12px 10px;
  border-bottom: 1px solid var(--ipn-rpt-line);
  background: #fff;
}
.ipn-rpt-ms__search{
  flex: 1 1 200px;
  min-width: 0;
}
.ipn-rpt-ms__search .ipn-input-affix{
  height: 36px;
  min-height: 36px;
}
.ipn-rpt-ms__head-links{
  display: inline-flex;
  gap: 12px;
  font-size: 12.5px;
  font-weight: 600;
}
.ipn-rpt-ms__head-links button{
  border: 0;
  background: none;
  padding: 0;
  color: var(--ipn-brand, #2f62c4);
  cursor: pointer;
  font: inherit;
  font-size: inherit;
  font-weight: inherit;
}
.ipn-rpt-ms__head-links button:hover{
  text-decoration: underline;
}

.ipn-rpt-ms__body{
  flex: 1 1 auto;
  overflow: auto;
  padding: 6px 8px 10px;
  -webkit-overflow-scrolling: touch;
}
.ipn-rpt-ms__all-row,
.ipn-rpt-ms__group-head{
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-height: 36px;
  padding: 4px 8px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  box-sizing: border-box;
}
.ipn-rpt-ms__all-row:hover,
.ipn-rpt-ms__group-head:hover{
  background: #f5f7fa;
}
.ipn-rpt-ms__group-head{
  font-size: 12.5px;
  font-weight: 600;
  color: #1e2733;
}
.ipn-rpt-ms__group-chevron{
  flex: 0 0 auto;
  font-size: 18px !important;
  color: #8a94a2;
  transition: transform .15s ease;
}
.ipn-rpt-ms__group.is-open > .ipn-rpt-ms__group-head .ipn-rpt-ms__group-chevron{
  transform: rotate(90deg);
}
.ipn-rpt-ms__group-count{
  margin-left: auto;
  font-size: 11.5px;
  font-weight: 500;
  color: var(--ipn-rpt-muted);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* Checkbox tri-estado: indeterminate = raya (propiedad DOM, no solo clase) */
.ipn-rpt-ms__check{
  flex: 0 0 auto;
  width: 15px;
  height: 15px;
  margin: 0;
  accent-color: var(--ipn-brand, #2f62c4);
  cursor: pointer;
}
.ipn-rpt-ms__check:indeterminate{
  accent-color: var(--ipn-brand, #2f62c4);
}

.ipn-rpt-ms__items{
  display: none;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2px 8px;
  padding: 2px 8px 8px 28px;
}
.ipn-rpt-ms__group.is-open > .ipn-rpt-ms__items{
  display: grid;
}
.ipn-rpt-ms__item{
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 30px;
  min-width: 0;
  padding: 2px 4px;
  border-radius: 6px;
}
.ipn-rpt-ms__item:hover{
  background: #f5f7fa;
}
.ipn-rpt-ms__item-label{
  flex: 1 1 auto;
  min-width: 0;
  font-size: 12.5px;
  font-weight: 400;
  color: #2a3544;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: pointer;
}
.ipn-rpt-ms__group.is-hidden,
.ipn-rpt-ms__item.is-hidden{
  display: none !important;
}
.ipn-rpt-ms__panel-foot{
  flex: 0 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-top: 1px solid var(--ipn-rpt-line);
  background: #fafbfc;
}
.ipn-rpt-ms__panel-count{
  flex: 1 1 auto;
  font-size: 12.5px;
  color: #4a5566;
  font-variant-numeric: tabular-nums;
}
.ipn-rpt-ms__panel-actions{
  display: inline-flex;
  gap: 8px;
}

/* Sheet fullscreen <1024px */
@media (max-width: 1023px){
  .ipn-rpt-ms.is-open .ipn-rpt-ms__panel{
    position: fixed;
    inset: 0;
    top: 0;
    left: 0;
    width: 100%;
    max-width: none;
    max-height: none;
    height: 100%;
    border-radius: 0;
    z-index: 80;
  }
  .ipn-rpt-ms__items{
    grid-template-columns: 1fr;
    padding-left: 20px;
  }
  .ipn-rpt-range-chips{
    padding-top: 0;
  }
}

/* --- Columnas del reporte (grid 4, tiles 34px) --- */
/* AV: 2026-08-29: #127 ? :not(tr) para no romper thead que reusa ipn-rpt-cols. */
.ipn-rpt-cols:not(tr){
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}
.ipn-rpt-col{
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  height: 34px;
  padding: 0 10px;
  border: 1px solid var(--ipn-rpt-border);
  border-radius: 8px;
  background: #fff;
  box-sizing: border-box;
  cursor: pointer;
  user-select: none;
  transition: border-color .12s ease, background .12s ease;
}
.ipn-rpt-col:hover{
  border-color: #d0d6e0;
}
.ipn-rpt-col:has(input:checked),
.ipn-rpt-col.is-checked{
  border-color: var(--ipn-brand, #2f62c4);
  background: var(--ipn-brand-soft, #eaf1fb);
}
.ipn-rpt-col input{
  flex: 0 0 auto;
  width: 15px;
  height: 15px;
  margin: 0;
  accent-color: var(--ipn-brand, #2f62c4);
  cursor: pointer;
}
.ipn-rpt-col__label{
  flex: 1 1 auto;
  min-width: 0;
  font-size: 12.5px;
  font-weight: 500;
  color: #2a3544;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: pointer;
}
.ipn-rpt-cols__group-title{
  grid-column: 1 / -1;
  margin: 8px 0 0;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ipn-rpt-muted);
}
.ipn-rpt-cols__msg{
  margin: 10px 0 0;
  font-size: 12.5px;
  color: var(--ipn-form-error, #cf3b3b);
}
.ipn-rpt-cols__msg[hidden]{
  display: none !important;
}

@media (max-width: 900px){
  .ipn-rpt-cols:not(tr){ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px){
  .ipn-rpt-cols:not(tr){ grid-template-columns: 1fr; }
}

/* --- Salida: dos tarjetas de radio --- */
.ipn-rpt-out{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.ipn-rpt-out__card{
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 14px 16px 14px 42px;
  border: 1.5px solid var(--ipn-rpt-border);
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
  transition: border-color .12s ease, background .12s ease;
  box-sizing: border-box;
}
.ipn-rpt-out__card:hover{
  border-color: #d0d6e0;
}
.ipn-rpt-out__card:has(input:checked),
.ipn-rpt-out__card.is-active{
  border-color: var(--ipn-brand, #2f62c4);
  background: var(--ipn-brand-soft, #eaf1fb);
}
.ipn-rpt-out__card input{
  position: absolute;
  left: 14px;
  top: 16px;
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: var(--ipn-brand, #2f62c4);
}
.ipn-rpt-out__title{
  font-size: 14px;
  font-weight: 600;
  color: #1e2733;
  line-height: 1.3;
}
.ipn-rpt-out__desc{
  font-size: 12.5px;
  color: #5a6f88;
  line-height: 1.4;
}
@media (max-width: 640px){
  .ipn-rpt-out{ grid-template-columns: 1fr; }
}

/* --- Aviso columnas impresi?n --- */
.ipn-rpt-print-warn{
  margin: 8px 0 0;
  font-size: 12px;
  color: #8a5a00;
  background: #fff8e8;
  border: 1px solid #f0e0b8;
  border-radius: 8px;
  padding: 8px 12px;
}
.ipn-rpt-print-warn[hidden]{
  display: none !important;
}

/* AV: 2026-08-23: Radios en fila (Agrupar por) reutilizando el tile de columnas. */
.ipn-rpt-radios{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.ipn-rpt-radios .ipn-rpt-col{
  flex: 0 1 auto;
  min-width: 130px;
}

/* AV: 2026-08-23: Autocomplete de art?culos (sin jQuery UI).
   AV: 2026-09-02: #254 ? alinear chrome al Devbridge de proveedores (#236/#249). */
.ipn-rpt-ac{
  position: relative;
}
.ipn-rpt-ac__list{
  position: absolute;
  z-index: 12050;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  max-height: 260px;
  overflow: auto;
  margin: 0;
  padding: 0;
  list-style: none;
  background: #fff !important;
  background-color: var(--ipn-surface, #fff) !important;
  border: 1px solid var(--ipn-border, #e2e8f0);
  border-radius: var(--ipn-radius-input, 8px);
  box-shadow: var(--ipn-shadow-elev);
  font-size: 13px;
  color: var(--ipn-text, #1e293b);
  opacity: 1 !important;
}
.ipn-rpt-ac__list[hidden]{
  display: none !important;
}
.ipn-rpt-ac__item{
  padding: 8px 12px;
  border-radius: 0;
  font-size: 13px;
  line-height: 1.35;
  color: var(--ipn-text, #1e293b) !important;
  background: #fff !important;
  cursor: pointer;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ipn-rpt-ac__item:hover,
.ipn-rpt-ac__item.is-active{
  background: var(--ipn-brand-soft, #eaf1fb) !important;
  color: var(--ipn-text, #1e293b) !important;
}

/* AV: 2026-08-23: Slot del combo de categor?as que llega por AJAX. */
.ipn-rpt-cmb-slot__empty{
  display: inline-block;
  padding-top: 8px;
  font-size: 12.5px;
  color: var(--ipn-rpt-muted);
}

/* AV: 2026-08-23: B?squeda por atributos ? neutralizo el markup legacy del include. */
.ipn-rpt-attrsearch #attrItemSearchBr{
  display: none;
}
.ipn-rpt-attrsearch fieldset{
  margin: 0;
  padding: 12px 14px;
  border: 1px solid var(--ipn-rpt-border);
  border-radius: 10px;
  background: #fafbfc;
}
.ipn-rpt-attrsearch legend{
  padding: 0 6px;
  font-size: 12px;
  font-weight: 600;
  color: #4a5566;
}
.ipn-rpt-attrsearch legend b{
  font-weight: 600;
}
.ipn-rpt-attrsearch table{
  width: 100%;
  border-collapse: collapse;
}
.ipn-rpt-attrsearch td{
  padding: 4px 6px;
  font-size: 12.5px;
  color: #2a3544;
  vertical-align: middle;
}
.ipn-rpt-attrsearch img[src*="divider.gif"]{
  display: none;
}
.ipn-rpt-attrsearch select{
  max-width: 100%;
  height: 34px;
  padding: 0 8px;
  border: 1px solid var(--ipn-rpt-border);
  border-radius: 8px;
  background: #fff;
  font: inherit;
  font-size: 12.5px;
  color: #2a3544;
}
.ipn-rpt-attrsearch input[type="radio"]{
  margin: 0 4px 0 0;
  flex: 0 0 auto;
  float: none !important;
  accent-color: var(--ipn-brand, #2f62c4);
  vertical-align: middle;
}
/* AV: 2026-08-30: #141 ? radios legacy del include sin solaparse. */
.ipn-rpt-attrsearch label,
.ipn-rpt-attrsearch label.lblForRadio{
  display: inline;
  float: none !important;
  margin: 0 14px 6px 0;
  font-size: 12.5px;
  line-height: 1.35;
  white-space: normal;
  vertical-align: middle;
}
.ipn-rpt-attrsearch .fl{
  float: none !important;
}
.ipn-rpt-attrsearch #attrItemFilterContent span{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0 6px 6px 0;
  padding: 4px 8px;
  border-radius: 999px;
  background: var(--ipn-brand-soft, #eaf1fb);
  color: var(--ipn-brand, #2f62c4);
  font-size: 12px;
}
.ipn-rpt-attrsearch #attrItemFilterContent font{
  font-size: 12px;
}
.ipn-rpt-attrsearch #attrItemFilterContent b{
  cursor: pointer;
  font-weight: 700;
}

/* AV: 2026-09-01: #165 ? Markup nativo iPN2 (attrSearch_ipn2 / attrItemSearch_ipn2). */
.ipn-rpt-attrsearch .ipn-attrsearch{
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ipn-rpt-attrsearch .ipn-attrsearch__grid{
  gap: 12px 16px;
}
.ipn-rpt-attrsearch .ipn-attrsearch__slot{
  min-height: 42px;
  display: flex;
  align-items: center;
  font-size: 12.5px;
  color: var(--ipn-rpt-muted, #5a6f88);
}
.ipn-rpt-attrsearch .ipn-attrsearch__slot select,
.ipn-rpt-attrsearch .ipn-attrsearch__slot input[type="text"]{
  width: 100%;
}
.ipn-rpt-attrsearch .ipn-attrsearch__actions{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin-top: 4px;
}
.ipn-rpt-attrsearch .ipn-attrsearch .ipn-radio-row{
  flex-wrap: wrap;
  gap: 10px 18px;
}
.ipn-rpt-attrsearch .ipn-attrsearch .ipn-check-row{
  white-space: normal;
  max-width: 100%;
}
.ipn-rpt-attrsearch .ipn-attrsearch__add .material-symbols-rounded{
  font-size: 18px;
}
.ipn-rpt-attrsearch .ipn-attrsearch__selected{
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ipn-rpt-attrsearch .ipn-attrsearch__chips span[name="attrToFilter"]{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0 6px 6px 0;
  padding: 4px 8px;
  border-radius: 999px;
  background: var(--ipn-brand-soft, #eaf1fb);
  color: var(--ipn-brand, #2f62c4);
  font-size: 12px;
}
.ipn-rpt-attrsearch .ipn-attrsearch__chips font{
  font-size: 12px;
}
.ipn-rpt-attrsearch .ipn-attrsearch__chips b{
  cursor: pointer;
  font-weight: 700;
}
/* AV: 2026-09-07: #462 ? tip Material (no img qtip legacy). */
.ipn-rpt-attrsearch .ipn-attrsearch__tip,
.ipn-rpt-attrsearch .ipn-help.ipn-attrsearch__tip{
  display: inline-flex;
  align-items: center;
  vertical-align: middle;
  margin-left: 6px;
  font-size: 18px;
  line-height: 1;
  color: var(--ipn-muted, #667085);
  cursor: help;
}
@media (max-width: 899px){
  .ipn-rpt-attrsearch .ipn-attrsearch__grid .ipn-field--c4{
    grid-column: 1 / -1;
  }
  .ipn-rpt-attrsearch .ipn-attrsearch__actions .ipn-btn{
    width: 100%;
  }
}

/* AV: 2026-08-30: #152 ? attr search no desborda en mobile (scroll-x; anchos legacy del include). */
.ipn-ipl,
.ipn-ipl .ipn-card,
.ipn-ipl .ipn-card__body,
.ipn-ipl .ipn-section{
  min-width: 0;
  max-width: 100%;
}
.ipn-ipl .ipn-rpt-attrsearch{
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  max-width: 100%;
}
@media (max-width: 700px){
  .ipn-ipl .ipn-rpt-attrsearch table,
  .ipn-rpt-attrsearch table{
    width: max-content;
    min-width: 100%;
  }
  .ipn-ipl .ipn-rpt-attrsearch td,
  .ipn-rpt-attrsearch td{
    white-space: nowrap;
  }
}

/* AV: 2026-08-30: Ajustes del reporte de deuda para el include legacy y tablas anchas. */
/* AV: 2026-08-30: #132 ? deuda vencida/futura (.ipn-aging); sin clases nuevas. */
.ipn-aging .ipn-rpt-attrsearch #attributeSearchBr,
.ipn-aging .ipn-rpt-attrsearch #SearchBtn{
  display: none;
}
.ipn-aging .ipn-card--table{
  overflow: visible;
}
/* AV: 2026-08-31: #180 ? sin min-width:980 (rompe mobile); scroll-x en .ipn-rpt-table-scroll (#89). */
.ipn-aging .ipn-rpt-table{
  width: max-content;
  min-width: 100%;
}
.ipn-aging .ipn-rpt-table--banded{
  width: max-content;
  min-width: 100%;
}
/* AV: 2026-08-31: #180 ? gap filtros ? chip fecha / resultados. */
.ipn-aging .ipn-card + .ipn-rpt-result,
.ipn-aging .ipn-card + .ipn-notice{
  margin-top: 16px;
}
/* AV: 2026-08-31: #180 ? popup deuda: altura acotada (no full viewport). */
body:has(.ipn-aging) #iPNpopUpDiv.iPNpopUpDiv:has(> iframe){
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  margin: 0 !important;
  margin-left: 0 !important;
}
body:has(.ipn-aging) #iPNpopUpDiv.iPNpopUpDiv:has(> iframe) > iframe{
  /* AV: 2026-09-02: #250 ? altura m?s justa (menos vac?o inferior en popup). */
  height: min(420px, calc(100dvh - 160px)) !important;
  max-height: min(420px, calc(100dvh - 160px));
}
body:has(.ipn-aging) #popUpDivBorder{
  display: none !important;
}
.ipn-aging .ipn-icon-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--ipn-brand, #2f62c4);
  cursor: pointer;
  vertical-align: middle;
}
.ipn-aging .ipn-icon-btn:hover{
  background: rgba(47, 98, 196, 0.08);
}
.ipn-aging .ipn-icon-btn .material-symbols-rounded{
  font-size: 20px;
}
.ipn-aging .ipn-rpt-cmb-slot select,
.ipn-aging .ipn-select{
  width: 100%;
}
/* AV: 2026-09-02: #250 ? importes Inter (no mono); popup iframe: X + menos padding inferior. */
.ipn-aging .ipn-rpt-table td.is-num,
.ipn-aging .ipn-rpt-table th.is-num,
.ipn-aging .ipn-rpt-table tfoot td.is-num,
.ipn-aging .ipn-rpt-table tfoot th.is-num{
  font-family: var(--ipn-font, "Inter", "IBM Plex Sans", sans-serif);
}
.ipn-aging.ipn-aging--popup{
  margin: 0;
  padding: 12px 16px 8px;
  background: var(--ipn-surface, #fff);
}
.ipn-aging.ipn-aging--popup .ipn-rpt-result{
  margin: 0;
  padding-bottom: 0;
}
.ipn-aging.ipn-aging--popup .ipn-page-head{
  margin-bottom: 12px;
}
.ipn-aging.ipn-aging--popup .ipn-card--table{
  margin-bottom: 0;
}
.ipn-aging.ipn-aging--popup .ipn-icon-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin: 0;
  padding: 0;
  border: 1px solid var(--ipn-border, #e2e8f0);
  border-radius: 8px;
  background: var(--ipn-surface, #fff);
  color: var(--ipn-text-2, #5a6f88);
  cursor: pointer;
}
.ipn-aging.ipn-aging--popup .ipn-icon-btn:hover{
  background: var(--ipn-surface-soft, #f7f9fc);
  color: var(--ipn-text, #1e293b);
}
.ipn-aging.ipn-aging--popup .ipn-icon-btn .material-symbols-rounded{
  font-size: 22px;
}

/* =====================================================================
   Resultado ? planilla
   ===================================================================== */

.ipn-rpt-result .ipn-page-subtitle{
  font-size: 13.5px;
  color: #5a6f88;
  line-height: 1.4;
}

.ipn-rpt-meta{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  margin: 0 0 14px;
}
.ipn-rpt-meta .ipn-chip{
  background: var(--ipn-brand-soft, #eaf1fb);
  color: var(--ipn-brand, #2f62c4);
}
.ipn-rpt-meta__count{
  margin-left: auto;
  font-size: 12.5px;
  font-weight: 500;
  color: #5a6f88;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* Card de tabla: SIN overflow:hidden (sticky thead/col) */
.ipn-rpt-result .ipn-card--table{
  overflow: visible;
  background: #fff;
  border: 1px solid var(--ipn-rpt-border);
  border-radius: 12px;
  box-shadow: var(--ipn-shadow-card, 0 1px 2px rgba(18, 39, 64, .04));
}
.ipn-rpt-table-scroll{
  overflow: auto;
  max-width: 100%;
  border-radius: 12px;
  -webkit-overflow-scrolling: touch;
}

/* AV: 2026-08-23: Strip de totales (no se imprime). */
.ipn-rpt-strip{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 0 0 14px;
}
.ipn-rpt-strip__card{
  background: #fff;
  border: 1px solid var(--ipn-rpt-border);
  border-radius: 12px;
  padding: 14px 16px 16px;
  box-shadow: var(--ipn-shadow-card, 0 1px 2px rgba(18, 39, 64, .04));
  min-width: 0;
}
.ipn-rpt-strip__label{
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: .1em;
  color: #8a94a2;
  line-height: 1.3;
  margin-bottom: 6px;
}
.ipn-rpt-strip__value{
  font-family: var(--ipn-font-mono, "IBM Plex Mono", ui-monospace, monospace);
  font-size: 24px;
  font-weight: 600;
  color: #16294d;
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
  letter-spacing: .01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
@media (max-width: 900px){
  .ipn-rpt-strip{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px){
  .ipn-rpt-strip{ grid-template-columns: 1fr; }
}

/* AV: 2026-08-23: table-layout:auto ? fixed + banda colspan aplastaba la fila de titulos.
   Tabla en sans; mono solo en td.is-num (no en th). */
/* AV: 2026-08-31: #173 ? thead/grilla reportes con --ipn-font (Inter), no IBM Plex hardcode. */
.ipn-rpt-table{
  display: table;
  width: 100%;
  min-width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 13px;
  font-family: var(--ipn-font, "Inter", "IBM Plex Sans", sans-serif);
  color: #1e2733;
  table-layout: auto;
}
.ipn-rpt-table thead{ display: table-header-group; }
.ipn-rpt-table tbody{ display: table-row-group; }
.ipn-rpt-table tfoot{ display: table-footer-group; }
.ipn-rpt-table tr{ display: table-row; }
.ipn-rpt-table th,
.ipn-rpt-table td{
  display: table-cell;
}

/* AV: 2026-08-23: Anchos por tipo de dato (?3.2 review). */
.ipn-rpt-table th.ipn-rpt-col--money,
.ipn-rpt-table td.ipn-rpt-col--money,
.ipn-rpt-table col.ipn-rpt-col--money{ width: 124px; min-width: 100px; }
.ipn-rpt-table th.ipn-rpt-col--perc,
.ipn-rpt-table td.ipn-rpt-col--perc,
.ipn-rpt-table col.ipn-rpt-col--perc{ width: 82px; min-width: 72px; }
.ipn-rpt-table th.ipn-rpt-col--qty,
.ipn-rpt-table td.ipn-rpt-col--qty,
.ipn-rpt-table col.ipn-rpt-col--qty{ width: 110px; min-width: 90px; }
.ipn-rpt-table th.ipn-rpt-col--avg,
.ipn-rpt-table td.ipn-rpt-col--avg,
.ipn-rpt-table col.ipn-rpt-col--avg{ width: 110px; min-width: 90px; }
.ipn-rpt-table col.ipn-rpt-col--store{ width: 210px; min-width: 180px; }

.ipn-rpt-table thead th{
  position: sticky;
  z-index: 3;
  padding: 8px 10px;
  background: #f4f6f9;
  border-bottom: 1px solid #d9dfe9;
  box-sizing: border-box;
  vertical-align: bottom;
}
/* AV: 2026-08-30: #140 ? chrome de cols tambi?n en tbody (reportes agrupados). */
.ipn-rpt-table thead tr.ipn-rpt-cols th,
.ipn-rpt-table thead tr.ipn-rpt-cols th.ipn-rpt-th,
.ipn-rpt-table tbody tr.ipn-rpt-cols th,
.ipn-rpt-table tbody tr.ipn-rpt-cols th.ipn-rpt-th{
  height: 52px;
  padding: 8px 10px;
  background: #f4f6f9;
  border-bottom: 1px solid #d9dfe9;
  box-sizing: border-box;
  vertical-align: bottom;
  font-family: var(--ipn-font, "Inter", "IBM Plex Sans", sans-serif);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .05em;
  line-height: 1.25;
  color: #6b7685;
  text-align: right;
  white-space: normal;
  overflow-wrap: normal;
  word-break: normal;
  font-variant-numeric: normal;
}
.ipn-rpt-table thead tr.ipn-rpt-cols th,
.ipn-rpt-table thead tr.ipn-rpt-cols th.ipn-rpt-th{
  top: 0;
}
.ipn-rpt-table thead tr.ipn-rpt-cols th.ipn-rpt-table__sticky{
  text-align: left;
}
.ipn-rpt-table--banded thead tr.ipn-rpt-cols th{
  top: 30px;
}
.ipn-rpt-table thead tr.ipn-rpt-band th{
  top: 0;
  height: 30px;
  padding: 0 10px;
  background: #f2f5f9;
  border-bottom: 1px solid #e4e8ef;
  font-family: var(--ipn-font, "IBM Plex Sans", "Inter", sans-serif);
  font-size: 9.5px;
  font-weight: 600;
  letter-spacing: .11em;
  color: #8a94a2;
  text-align: left;
  white-space: nowrap;
  vertical-align: middle;
}
.ipn-rpt-table thead tr.ipn-rpt-band th:first-child{
  border-top-left-radius: 12px;
}
.ipn-rpt-table thead tr.ipn-rpt-band th:last-child{
  border-top-right-radius: 12px;
}
.ipn-rpt-table:not(.ipn-rpt-table--banded) thead tr.ipn-rpt-cols th:first-child{
  border-top-left-radius: 12px;
}
.ipn-rpt-table:not(.ipn-rpt-table--banded) thead tr.ipn-rpt-cols th:last-child{
  border-top-right-radius: 12px;
}
.ipn-rpt-table tbody td{
  height: 44px;
  padding: 0 10px;
  border-bottom: 1px solid #edf0f5;
  background: #fff;
  vertical-align: middle;
  box-sizing: border-box;
}
.ipn-rpt-table tbody tr:last-child td{
  border-bottom: 1px solid #edf0f5;
}
.ipn-rpt-table tfoot th,
.ipn-rpt-table tfoot td{
  height: 48px;
  padding: 0 10px;
  background: #fff;
  border-top: 2px solid var(--ipn-rpt-ink);
  font-weight: 500;
  vertical-align: middle;
  box-sizing: border-box;
}
.ipn-rpt-table tfoot th:first-child{
  border-bottom-left-radius: 12px;
}
.ipn-rpt-table tfoot td:last-child,
.ipn-rpt-table tfoot th:last-child{
  border-bottom-right-radius: 12px;
}

.ipn-rpt-table thead th.ipn-rpt-col--group-end,
.ipn-rpt-table tbody td.ipn-rpt-col--group-end,
.ipn-rpt-table tfoot td.ipn-rpt-col--group-end{
  border-right: 1px solid var(--ipn-rpt-group-line);
}
.ipn-rpt-table thead th.ipn-rpt-col--group-end{
  border-right-color: var(--ipn-rpt-group-line-head);
}
.ipn-rpt-table thead tr.ipn-rpt-band th.ipn-rpt-band__cell{
  border-right: 1px solid var(--ipn-rpt-group-line-head);
}
.ipn-rpt-table thead tr.ipn-rpt-band th.ipn-rpt-band__cell:last-child{
  border-right: 0;
}

.ipn-rpt-table thead th.ipn-rpt-table__sticky,
.ipn-rpt-table tbody td.ipn-rpt-table__sticky,
.ipn-rpt-table tfoot th.ipn-rpt-table__sticky{
  position: sticky;
  left: 0;
  z-index: 2;
  background: #fff;
  border-right: 1px solid #d9dfe9;
  box-shadow: 4px 0 8px -6px rgba(22, 41, 77, .18);
  white-space: nowrap;
  font-weight: 600;
  text-align: left;
  width: 210px;
  min-width: 180px;
  max-width: 210px;
}
.ipn-rpt-table thead th.ipn-rpt-table__sticky{
  z-index: 4;
  background: #f4f6f9;
  font-family: var(--ipn-font, "Inter", "IBM Plex Sans", sans-serif);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .05em;
  color: #6b7685;
}
.ipn-rpt-table thead tr.ipn-rpt-band th.ipn-rpt-table__sticky{
  background: #f2f5f9;
  z-index: 5;
  letter-spacing: .11em;
  color: #8a94a2;
}
.ipn-rpt-table tfoot th.ipn-rpt-table__sticky{
  background: #fff;
  font-family: var(--ipn-font, "IBM Plex Sans", "Inter", sans-serif);
  font-size: 13px;
  letter-spacing: 0;
  color: #1e2733;
}

.ipn-rpt-table td.is-num,
.ipn-rpt-table tfoot td.is-num{
  text-align: right;
  font-family: var(--ipn-font-mono, "IBM Plex Mono", ui-monospace, monospace);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  letter-spacing: .01em;
}
/* AV: 2026-08-23: th nunca hereda mono; alineacion derecha sin is-num. */
.ipn-rpt-table thead th.ipn-rpt-th{
  text-align: right;
  font-family: var(--ipn-font, "Inter", "IBM Plex Sans", sans-serif);
  font-variant-numeric: normal;
  letter-spacing: .05em;
}
.ipn-rpt-table th.is-center,
.ipn-rpt-table td.is-center{
  text-align: center;
}
/* AV: 2026-08-31: #181 ? thead/tbody cols: is-center e is-num vencen text-align:right por defecto. */
.ipn-rpt-table thead tr.ipn-rpt-cols th.is-center,
.ipn-rpt-table thead tr.ipn-rpt-cols th.ipn-rpt-th.is-center,
.ipn-rpt-table tbody tr.ipn-rpt-cols th.is-center,
.ipn-rpt-table tbody tr.ipn-rpt-cols th.ipn-rpt-th.is-center{
  text-align: center;
}
.ipn-rpt-table thead tr.ipn-rpt-cols th.is-num,
.ipn-rpt-table thead tr.ipn-rpt-cols th.ipn-rpt-th.is-num,
.ipn-rpt-table tbody tr.ipn-rpt-cols th.is-num,
.ipn-rpt-table tbody tr.ipn-rpt-cols th.ipn-rpt-th.is-num{
  text-align: right;
}
.ipn-rpt-table .ipn-rpt-na{
  color: #8a94a2;
  font-weight: 400;
}

/* AV: 2026-08-23: Columnas de texto/codigo (localidad, CP, promocion) en resultados. */
.ipn-rpt-table th.ipn-rpt-col--text,
.ipn-rpt-table td.ipn-rpt-col--text,
.ipn-rpt-table col.ipn-rpt-col--text{ width: 200px; min-width: 150px; }
.ipn-rpt-table th.ipn-rpt-col--code,
.ipn-rpt-table td.ipn-rpt-col--code,
.ipn-rpt-table col.ipn-rpt-col--code{ width: 100px; min-width: 84px; }
.ipn-rpt-table tbody td.ipn-rpt-col--text,
.ipn-rpt-table tbody td.ipn-rpt-col--code{
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ipn-rpt-table thead tr.ipn-rpt-cols th.ipn-rpt-th--text,
.ipn-rpt-table tbody tr.ipn-rpt-cols th.ipn-rpt-th--text{
  text-align: left;
}
/* AV: 2026-08-30: #140 ? mobile: th de cols no menor que td. */
@media (max-width: 700px){
  .ipn-rpt-table thead tr.ipn-rpt-cols th,
  .ipn-rpt-table thead tr.ipn-rpt-cols th.ipn-rpt-th,
  .ipn-rpt-table tbody tr.ipn-rpt-cols th,
  .ipn-rpt-table tbody tr.ipn-rpt-cols th.ipn-rpt-th{
    font-size: 13px;
    letter-spacing: .03em;
  }
}
.ipn-rpt-table td.is-code{
  font-family: var(--ipn-font-mono, "IBM Plex Mono", ui-monospace, monospace);
  font-variant-numeric: tabular-nums;
  text-align: center;
}

/* AV: 2026-08-23: Matriz (periodo/fecha x columnas dinamicas): 1ra col fija mas angosta. */
.ipn-rpt-table--matrix thead th.ipn-rpt-table__sticky,
.ipn-rpt-table--matrix tbody td.ipn-rpt-table__sticky,
.ipn-rpt-table--matrix tfoot th.ipn-rpt-table__sticky{
  width: 150px;
  min-width: 130px;
  max-width: 150px;
}
.ipn-rpt-table--matrix col.ipn-rpt-col--period{ width: 150px; min-width: 130px; }
/* AV: 2026-09-01: #233 ? 2? columna fija (sucursal) junto a fechas en matrices anchas.
   AV: 2026-09-02: #260 ? left desde var (ancho real col1 v?a JS). */
.ipn-rpt-table--matrix thead th.ipn-rpt-table__sticky--2,
.ipn-rpt-table--matrix tbody td.ipn-rpt-table__sticky--2,
.ipn-rpt-table--matrix tfoot td.ipn-rpt-table__sticky--2{
  position: sticky;
  left: var(--ipn-rpt-sticky2-left, 150px);
  z-index: 3;
  background: #fff;
  border-right: 1px solid #d9dfe9;
  box-shadow: 4px 0 8px -6px rgba(22, 41, 77, .12);
  white-space: nowrap;
  text-align: left;
  width: 210px;
  min-width: 180px;
  max-width: 210px;
}
.ipn-rpt-table--matrix thead th.ipn-rpt-table__sticky--2{
  z-index: 5;
  background: #f4f6f9;
  font-family: var(--ipn-font, "Inter", "IBM Plex Sans", sans-serif);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .05em;
  color: #6b7685;
}
.ipn-rpt-table--matrix thead tr.ipn-rpt-band th.ipn-rpt-table__sticky--2{
  background: #f2f5f9;
  z-index: 6;
  letter-spacing: .11em;
  color: #8a94a2;
}
.ipn-rpt-table--matrix tbody td.ipn-rpt-table__sticky--2{
  font-weight: 400;
  color: var(--ipn-text, #1e2733);
}
.ipn-rpt-table--matrix tfoot td.ipn-rpt-table__sticky--2{
  background: #fff;
}
.ipn-rpt-table--matrix .ipn-rpt-period__dow{
  display: block;
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: .04em;
  color: #8a94a2;
}
/* AV: 2026-09-03: #282 ? matriz dual sticky (Fechas+Sucursal): sin columnas fijas en mobile. */
@media (max-width: 700px){
  .ipn-rpt-table--matrix:has(.ipn-rpt-table__sticky--2) thead th.ipn-rpt-table__sticky,
  .ipn-rpt-table--matrix:has(.ipn-rpt-table__sticky--2) tbody td.ipn-rpt-table__sticky,
  .ipn-rpt-table--matrix:has(.ipn-rpt-table__sticky--2) tfoot th.ipn-rpt-table__sticky,
  .ipn-rpt-table--matrix:has(.ipn-rpt-table__sticky--2) thead th.ipn-rpt-table__sticky--2,
  .ipn-rpt-table--matrix:has(.ipn-rpt-table__sticky--2) tbody td.ipn-rpt-table__sticky--2,
  .ipn-rpt-table--matrix:has(.ipn-rpt-table__sticky--2) tfoot td.ipn-rpt-table__sticky--2{
    position: static;
    left: auto;
    z-index: auto;
    box-shadow: none;
  }
}

.ipn-rpt-result .ipn-empty-state{
  padding: 40px 24px;
}

/* Form oculto para volver al filtro con POST (sin Session) */
.ipn-rpt-result__backform{
  display: none !important;
}

/* =====================================================================
   Impresi?n A4 horizontal ? misma pantalla, otra hoja de estilos
   ===================================================================== */
@media print{
  @page{
    size: A4 landscape;
    margin: 12mm 10mm 14mm;
  }

  html, body{
    background: #fff !important;
    color: #000 !important;
  }

  /* Ocultar chrome interactivo */
  .ipn-topbar,
  .ipn-nav,
  .ipn-drawer,
  .ipn-drawer-scrim,
  .ipn-mega-host,
  .ipn-breadcrumb,
  .ipn-page-head__actions,
  .ipn-rpt-filter__actions,
  .ipn-rpt-meta,
  .ipn-pager,
  .ipn-rpt-print-warn,
  .ipn-rpt-strip,
  .ipn-notice-stack,
  .ipn-rpt-ms__panel,
  button.ipn-btn,
  a.ipn-btn{
    display: none !important;
  }

  .ipn-shell,
  .ipn-shell__body,
  .ipn-rpt,
  .ipn-rpt-result{
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
  }

  .ipn-rpt-result .ipn-card--table,
  .ipn-rpt-table-scroll{
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    max-height: none !important;
  }

  /* Sticky off en papel */
  .ipn-rpt-table thead th,
  .ipn-rpt-table thead th.ipn-rpt-table__sticky,
  .ipn-rpt-table tbody td.ipn-rpt-table__sticky,
  .ipn-rpt-table tfoot th.ipn-rpt-table__sticky{
    position: static !important;
    box-shadow: none !important;
    border-right: 0 !important;
  }

  /* Membrete print-only (markup en salesByStore) */
  .ipn-rpt-print-letterhead{
    display: flex !important;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    margin: 0 0 8px;
    padding-bottom: 8px;
    border-bottom: 1.5px solid #000;
  }
  .ipn-rpt-print-letterhead__title{
    font-size: 15px;
    font-weight: 700;
    color: #000;
    line-height: 1.25;
  }
  .ipn-rpt-print-letterhead__period{
    font-size: 11px;
    font-weight: 400;
    color: #000;
    margin-top: 2px;
  }
  .ipn-rpt-print-letterhead__meta{
    text-align: right;
    font-size: 9px;
    color: #000;
    line-height: 1.45;
  }
  .ipn-rpt-print-filters{
    display: block !important;
    font-size: 9px;
    color: #333;
    margin: 0 0 10px;
    line-height: 1.35;
  }

  .ipn-page-head,
  .ipn-page-title,
  .ipn-page-subtitle{
    display: none !important;
  }

  .ipn-rpt-table{
    font-size: 8.5px !important;
    color: #000 !important;
    background: transparent !important;
  }
  .ipn-rpt-table thead{
    display: table-header-group;
  }
  .ipn-rpt-table tfoot{
    display: table-footer-group;
  }
  .ipn-rpt-table tr{
    break-inside: avoid;
    page-break-inside: avoid;
  }
  .ipn-rpt-table thead th,
  .ipn-rpt-table tbody td,
  .ipn-rpt-table tfoot th,
  .ipn-rpt-table tfoot td{
    background: transparent !important;
    color: #000 !important;
    height: auto !important;
    padding: 4px 6px !important;
    border-color: #ccc !important;
  }
  .ipn-rpt-table thead th{
    border-top: 1px solid #000 !important;
    border-bottom: 1px solid #000 !important;
    font-weight: 700;
  }
  .ipn-rpt-table tbody td{
    border-bottom: .5px solid #ccc !important;
  }
  .ipn-rpt-table tfoot th,
  .ipn-rpt-table tfoot td{
    border-top: 1.5px solid #000 !important;
    border-bottom: 0 !important;
    font-weight: 600;
  }
  .ipn-rpt-table .ipn-rpt-na{
    color: #333 !important;
  }

  /* Pie de p?gina (fallback si el motor no soporta running()) */
  .ipn-rpt-print-footer{
    display: flex !important;
    justify-content: space-between;
    align-items: center;
    margin-top: 10px;
    padding-top: 6px;
    border-top: .5px solid #000;
    font-size: 8px;
    color: #000;
  }

  *{
    print-color-adjust: economy;
    -webkit-print-color-adjust: economy;
  }
}

/* Membrete/pie: ocultos en pantalla */
.ipn-rpt-print-letterhead,
.ipn-rpt-print-filters,
.ipn-rpt-print-footer{
  display: none;
}

@media (max-width: 700px){
  .ipn-rpt-meta__count{
    margin-left: 0;
    width: 100%;
  }
  .ipn-rpt-filter__actions{
    flex-direction: column;
    align-items: stretch;
  }
  .ipn-rpt-filter__actions .ipn-btn{
    width: 100%;
    justify-content: center;
  }
}

/* =====================================================================
   AV: 2026-08-23: Operaciones de caja (modulos 462 / 463) - scope .ipn-spm.
   Reutiliza el filtro de reportes (.ipn-rpt-filter) + popup #iPNpopUpDiv.
   ===================================================================== */
.ipn-spm .ipn-section > .ipn-check-row{
  margin: 0 0 10px;
}
/* Razon social como separador del grid de sucursales (no un caption en mayusculas). */
.ipn-spm .ipn-rpt-cols__group-title{
  margin-top: 10px;
  text-transform: none;
  letter-spacing: 0;
}
.ipn-spm .ipn-rpt-cols__group-title:first-child{
  margin-top: 0;
}
.ipn-spm .ipn-rpt-cols__group-title .ipn-check-row{
  font-size: 13px;
  font-weight: 700;
  color: var(--ipn-rpt-ink, #16294d);
}

/* Mismo chrome que el popup de export de comprobantes: iPNpopup() centra con
   margin-left negativo; el transform lo deja exacto y el marco legacy no se usa. */
#iPNpopUpDiv.ipn-spm-export-popup,
#iPNpopUpDiv.ipn-ear-export-popup,
#iPNpopUpDiv.ipn-ccs-export-popup,
#iPNpopUpDiv.ipn-ara-export-popup,
#iPNpopUpDiv.ipn-promo-export-popup,
#iPNpopUpDiv.ipn-is-export-popup{ /* AV: 2026-09-14: #583 - export liquidaciones de haberes */
  position: fixed !important;
  top: 105px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  margin-left: 0 !important;
  width: min(500px, calc(100vw - 32px)) !important;
  padding: 18px 20px !important;
  border-radius: 12px;
  background: var(--ipn-surface, #fff) !important;
  box-shadow: var(--ipn-shadow-elev);
  font-family: var(--ipn-font);
  color: var(--ipn-text);
  box-sizing: border-box;
}
.ipn-spm-export-popup__qty{
  margin: 0 0 12px;
  font-size: 13px;
}
.ipn-spm-export-popup__opts{
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0 0 8px;
}
.ipn-spm-export-popup__warn{
  margin: 10px 0 0;
}

/* AV: 2026-09-01: #231 ? popup ReportHelper (filterGenericPopUp.asp) en filter.asp iPN2. */
#filterGenericPopUp.ipn-rpt-helper-popup{
  position: fixed !important;
  top: 105px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  margin-left: 0 !important;
  width: min(440px, calc(100vw - 32px)) !important;
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none;
  border-radius: 0;
}
#filterGenericPopUp.ipn-rpt-helper-popup iframe{
  display: block;
  width: 100% !important;
  max-width: 100%;
  border: 0;
  border-radius: 12px;
  background: var(--ipn-surface, #fff);
  box-shadow: var(--ipn-shadow-elev);
}
body.ipn2:has(.ipn-rpt-filter) #popUpDivBorder{
  display: none !important;
}
.ipn-rpt-helper-popup-frame{
  margin: 0;
  padding: 18px 20px;
  background: var(--ipn-surface, #fff);
  color: var(--ipn-text);
  font-family: var(--ipn-font);
  box-sizing: border-box;
}
.ipn-rpt-helper-popup__inner .ipn-export-title{
  font-size: 15px;
  font-weight: 700;
  margin: 0 0 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--ipn-border);
}
.ipn-rpt-helper-popup__qty,
.ipn-rpt-helper-popup__lead{
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 1.4;
}
.ipn-rpt-helper-popup__opts{
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0 0 4px;
}
.ipn-rpt-helper-popup__warn{
  margin: 0 0 8px;
}
.ipn-rpt-helper-popup__inner .ipn-export-actions{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 16px;
  flex-wrap: wrap;
}
.ipn-rpt-helper-popup__inner .ipn-export-actions .ipn-btn--primary{
  margin-left: auto;
}

/* =====================================================================
   AV: 2026-08-23: Analisis de reposicion (reportID 20) ? panel remito.
   ===================================================================== */
.ipn-rpt-filter .ipn-rpt-repo-stores{
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--ipn-border, #e2e8f0);
}
.ipn-rpt-filter .ipn-rpt-repo-stores > .ipn-section__head{
  margin-bottom: 10px;
}
.ipn-rpt-filter .ipn-rpt-repo-stores > .ipn-check-row{
  margin: 0 0 10px;
}
.ipn-rpt-filter .ipn-rpt-cols__group-title{
  margin-top: 10px;
  text-transform: none;
  letter-spacing: 0;
  grid-column: 1 / -1;
}
.ipn-rpt-filter .ipn-rpt-cols__group-title:first-child{
  margin-top: 0;
}
.ipn-rpt-filter .ipn-rpt-cols__group-title .ipn-check-row{
  font-size: 13px;
  font-weight: 700;
  color: var(--ipn-rpt-ink, #16294d);
}
.ipn-rpt-filter .ipn-rpt-col.is-disabled{
  opacity: 0.45;
  pointer-events: none;
}

/* =====================================================================
   AV: 2026-08-23: Actividad supervisores (modulo 497) - scope .ipn-sma.
   ===================================================================== */
.ipn-sma .ipn-rpt-cols__group-title{
  margin-top: 10px;
  text-transform: none;
  letter-spacing: 0;
  grid-column: 1 / -1;
}
.ipn-sma .ipn-rpt-cols__group-title:first-child{
  margin-top: 0;
}
.ipn-sma .ipn-sma-users{
  margin-top: 4px;
}
.ipn-sma .ipn-sma-results{
  margin-top: 24px;
}
/* AV: 2026-09-02: #253 ? cursor/orden en thead (mismo patr?n .ipn-pl / .ipn-plbp). */
/* AV: 2026-09-03: #278 ? tr.ipn-rpt-cols para ganar a thead tr.ipn-rpt-cols th.ipn-rpt-th. */
.ipn-sma .ipn-rpt-table thead tr.ipn-rpt-cols th[data-sort]{
  cursor: pointer;
  user-select: none;
}
.ipn-sma .ipn-rpt-table thead tr.ipn-rpt-cols th.sorting-asc,
.ipn-sma .ipn-rpt-table thead tr.ipn-rpt-cols th.sorting-desc{
  color: var(--ipn-brand, #e87722);
}
/* AV: 2026-09-02: #253 ? sticky Fecha en scroll-x mobile. */
.ipn-sma .ipn-rpt-table th.ipn-rpt-table__sticky,
.ipn-sma .ipn-rpt-table td.ipn-rpt-table__sticky{
  position: sticky;
  left: 0;
  z-index: 2;
  background: var(--ipn-surface, #fff);
}
.ipn-sma .ipn-rpt-table thead th.ipn-rpt-table__sticky{
  z-index: 3;
  background: var(--ipn-surface-soft, #f7f9fc);
}

/* =====================================================================
   AV: 2026-08-23: Liquidacion de tarjetas (modulo 473) - scope .ipn-ccr.
   ===================================================================== */
.ipn-ccr .ipn-select{
  width: 100%;
}

/* =====================================================================
   AV: 2026-08-23: Transacciones diarias (modulo 63) - scope .ipn-tbd.
   AV: 2026-08-30: #147 ? tipograf?a sistema en grilla; mono solo importes; th mobile = td.
   AV: 2026-08-31: #188 ? radius inferior en panel/totales; font !important vs legacy.
   ===================================================================== */
.ipn-tbd .ipn-tbd-results{
  margin-top: 24px;
}
.ipn-tbd .ipn-tabs.tab_cnt_principal{
  margin: 0 0 0;
  border-radius: 12px 12px 0 0;
}
.ipn-tbd .ipn-tbd-panel{
  margin-bottom: 8px;
}
.ipn-tbd .ipn-tbd-panel > .ipn-card--table{
  margin-top: 0;
  /* AV: 2026-09-03: #275 ? sin radius superior bajo tabs (vuelve #216; supersede #248). */
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  border-bottom-left-radius: var(--ipn-radius-card, 12px);
  border-bottom-right-radius: var(--ipn-radius-card, 12px);
  overflow: hidden;
}
/* AV: 2026-09-03: #275 ? thead gris plano: el tope redondeado lo dan los tabs. */
.ipn-tbd .ipn-rpt-table:not(.ipn-rpt-table--banded) thead tr.ipn-rpt-cols th:first-child,
.ipn-tbd .ipn-rpt-table:not(.ipn-rpt-table--banded) thead tr.ipn-rpt-cols th:last-child{
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
/* AV: 2026-09-03: #295 - scroll sin radius bajo tabs (global .ipn-rpt-table-scroll lo traia). */
.ipn-tbd .ipn-rpt-table-scroll{
  border-radius: 0;
}
.ipn-tbd .ipn-tbd-deleted td,
.ipn-tbd .ipn-tbd-deleted a{
  color: #c0392b;
  text-decoration: line-through;
}
.ipn-tbd .ipn-tbd-totals{
  display: flex;
  justify-content: flex-end;
  margin: 14px 0 0;
}
.ipn-tbd .ipn-tbd-totals__table{
  width: auto;
  min-width: 320px;
  max-width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid var(--ipn-hairline, #e2e7ef);
  border-radius: var(--ipn-radius-card, 12px);
  overflow: hidden;
}
.ipn-tbd .ipn-tbd-totals__table thead th:first-child{
  border-top-left-radius: var(--ipn-radius-card, 12px);
}
.ipn-tbd .ipn-tbd-totals__table thead th:last-child{
  border-top-right-radius: var(--ipn-radius-card, 12px);
}
.ipn-tbd .ipn-tbd-totals__table tbody tr:last-child td:first-child{
  border-bottom-left-radius: var(--ipn-radius-card, 12px);
}
.ipn-tbd .ipn-tbd-totals__table tbody tr:last-child td:last-child{
  border-bottom-right-radius: var(--ipn-radius-card, 12px);
}
.ipn-tbd .ipn-tbd-totals__grand td{
  font-weight: 700;
  background: var(--ipn-surface-soft-2, #f5f7fa);
}
.ipn-tbd .ipn-rpt-table,
.ipn-tbd .ipn-rpt-table thead tr.ipn-rpt-cols th,
.ipn-tbd .ipn-rpt-table thead tr.ipn-rpt-cols th.ipn-rpt-th,
.ipn-tbd .ipn-rpt-table tbody td{
  font-family: var(--ipn-font, "Inter", "IBM Plex Sans", sans-serif) !important;
}
.ipn-tbd .ipn-rpt-table td.is-num{
  /* AV: 2026-09-01: #216 ? importe con tipograf?a del cuerpo (patr?n #209/#211/#213). */
  font-family: var(--ipn-font, "Inter", "IBM Plex Sans", sans-serif) !important;
}
@media (max-width: 700px){
  .ipn-tbd .ipn-rpt-table thead tr.ipn-rpt-cols th,
  .ipn-tbd .ipn-rpt-table thead tr.ipn-rpt-cols th.ipn-rpt-th{
    font-size: 13px;
    letter-spacing: .02em;
  }
}

/* =====================================================================
   AV: 2026-08-23: Presupuestos por cliente (modulo 63) - scope .ipn-rbc.
   ===================================================================== */
.ipn-rbc .ipn-rbc-results{
  margin-top: 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.ipn-rbc .ipn-rbc-tree-toggle{
  vertical-align: middle;
  margin-right: 4px;
  cursor: pointer;
}
.ipn-rbc .ipn-rbc-subtotal td,
.ipn-rbc .ipn-rbc-grand__row td{
  font-weight: 700;
  background: var(--ipn-surface-soft-2, #f5f7fa);
}
.ipn-rbc .ipn-select{
  width: 100%;
}
/* AV: 2026-08-30: #149 ? font sistema en grilla; mono solo importes; mobile th=td.
   AV: 2026-08-31: #190 ? !important para ganar a legacy tablaReportes. */
.ipn-rbc .ipn-rpt-table,
.ipn-rbc .ipn-rpt-table thead tr.ipn-rpt-cols th,
.ipn-rbc .ipn-rpt-table thead tr.ipn-rpt-cols th.ipn-rpt-th,
.ipn-rbc .ipn-rpt-table tbody td{
  font-family: var(--ipn-font, "Inter", "IBM Plex Sans", sans-serif) !important;
}
.ipn-rbc .ipn-rpt-table td.is-num{
  font-family: var(--ipn-font-mono, ui-monospace, monospace) !important;
}
@media (max-width: 700px){
  .ipn-rbc .ipn-rpt-table thead tr.ipn-rpt-cols th,
  .ipn-rbc .ipn-rpt-table thead tr.ipn-rpt-cols th.ipn-rpt-th{
    font-size: 13px;
    letter-spacing: .02em;
  }
}

/* =====================================================================
   AV: 2026-08-23: Articulos presupuestados (modulo 63) - scope .ipn-rbd.
   ===================================================================== */
.ipn-rbd .ipn-rbd-results{
  margin-top: 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.ipn-rbd .ipn-rbd-subtotal td,
.ipn-rbd .ipn-rbd-grand__row td{
  font-weight: 700;
  background: var(--ipn-surface-soft-2, #f5f7fa);
}
.ipn-rbd .ipn-select{
  width: 100%;
}
/* AV: 2026-08-30: #150 ? font sistema en grilla; mono solo importes; mobile th=td.
   AV: 2026-08-31: #191 ? !important para ganar a legacy tablaReportes. */
.ipn-rbd .ipn-rpt-table,
.ipn-rbd .ipn-rpt-table thead tr.ipn-rpt-cols th,
.ipn-rbd .ipn-rpt-table thead tr.ipn-rpt-cols th.ipn-rpt-th,
.ipn-rbd .ipn-rpt-table tbody td{
  font-family: var(--ipn-font, "Inter", "IBM Plex Sans", sans-serif) !important;
}
.ipn-rbd .ipn-rpt-table td.is-num{
  font-family: var(--ipn-font-mono, ui-monospace, monospace) !important;
}
@media (max-width: 700px){
  .ipn-rbd .ipn-rpt-table thead tr.ipn-rpt-cols th,
  .ipn-rbd .ipn-rpt-table thead tr.ipn-rpt-cols th.ipn-rpt-th{
    font-size: 13px;
    letter-spacing: .02em;
  }
}

/* =====================================================================
   AV: 2026-08-23: Reportes ? scopes m?nimos CCSettlement / employeeAcctResc /
   employeeStockWidthdrawal / acctRescAdjustsReport.
   ===================================================================== */
.ipn-ccs .ipn-rpt-cols,
.ipn-ear .ipn-rpt-cols,
.ipn-esw .ipn-rpt-cols,
.ipn-ara .ipn-rpt-cols{
  margin-top: 8px;
}
.ipn-ccs-export-popup__qty,
.ipn-ear-export-popup__qty,
.ipn-ara-export-popup__qty{
  margin: 0 0 12px;
  font-size: 13px;
}
.ipn-ccs-export-popup__hint,
.ipn-ear-export-popup__hint{
  margin: 0 0 10px;
  font-size: 13px;
}
.ipn-ccs-export-popup__opts,
.ipn-ear-export-popup__opts,
.ipn-ara-export-popup__opts{
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0 0 8px;
}
.ipn-ccs-results,
.ipn-ear-results,
.ipn-esw-results,
.ipn-ara-results{
  margin-top: 24px;
}
/* AV: 2026-09-04: #334 ? flexselect Tipo/Jerarquia/Grupo: chrome iPN2 (no Menu/Highlight legacy). */
.ipn-ear .ipn-field input[id$="_flexselect"]{
  width: 100% !important;
  min-height: var(--ipn-form-control-h, 42px);
  height: var(--ipn-form-control-h, 42px);
  padding: 0 12px;
  line-height: var(--ipn-form-control-h, 42px);
  box-sizing: border-box;
  font-family: var(--ipn-font, "Inter", sans-serif);
  font-size: 13.5px;
  color: var(--ipn-text, #1e293b);
}
.ipn-ear .flexselect_dropdown,
.ipn-ear .flexselect_search{
  z-index: 12050;
  max-width: none !important;
  font-family: var(--ipn-font, "Inter", sans-serif);
  font-size: 13.5px;
  color: var(--ipn-text, #1e293b);
  background: var(--ipn-surface, #fff);
  border: 1px solid var(--ipn-border, #e2e8f0);
  border-radius: var(--ipn-radius-input, 8px);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
}
.ipn-ear .flexselect_dropdown li{
  font: inherit;
  font-size: 13.5px;
  padding: 8px 12px;
  color: var(--ipn-text, #1e293b);
}
.ipn-ear .flexselect_dropdown li.disabled{
  color: var(--ipn-muted, #5b6b82);
}
.ipn-ear .flexselect_selected{
  background: var(--ipn-brand-soft, #e8eef8);
  color: var(--ipn-text, #1e293b);
}
/* AV: 2026-08-24: Debe/Haber sin style.css legacy. */
/* AV: 2026-09-03: #299 ? gap tipo de pago de haberes (sin margin-top inline). */
.ipn-ear #assetsConceptsFieldset .ipn-section__head{
  margin-top: 16px;
}
.ipn-ear .colorRojo{ color: var(--ipn-danger, #c0392b); }
.ipn-ear .colorVerde{ color: var(--ipn-success, #1f8a4c); }
.ipn-ear .ipn-cr-radios{
  display: flex;
  flex-wrap: wrap;
  gap: 12px 18px;
  align-items: center;
  min-height: 42px;
}
.ipn-ear #exportBtn.is-disabled{
  opacity: 0.55;
  pointer-events: none;
}
.ipn-esw .ipn-rpt-cols.is-disabled,
.ipn-esw .ipn-rpt-col.is-disabled{
  opacity: 0.45;
  pointer-events: none;
}
.ipn-esw #searchFilters table{
  width: 100%;
  border-collapse: collapse;
}
/* AV: 2026-08-31: #184 ? separaci?n calendarios ? filtros sucursal/empleado. */
.ipn-esw #searchFilters{
  margin-top: 16px;
}
.ipn-esw #ipnSec_storesFilters .ipn-section__head,
.ipn-esw #ipnSec_salesManFilters .ipn-section__head{
  margin-top: 4px;
}
.ipn-ara .ipn-pager{
  margin-top: 12px;
}
/* AV: 2026-08-31: #204 ? acctRescDeleteLog (hermana transactionsByDay). */
.ipn-ardl .ipn-ardl-results{
  margin-top: 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.ipn-ardl .ipn-rpt-filter__actions{
  margin-left: 0;
}
@media (max-width:700px){
  .ipn-ardl .ipn-rpt-filter__actions .ipn-btn{
    width: 100%;
    justify-content: center;
  }
}
/* AV: 2026-08-30: #148 ? XCM legacy dentro de section iPN2; popup export centrado. */
.ipn-ara #ipnAraSecXCM fieldset.busqueda{
  border: 0;
  box-shadow: none;
  padding: 0;
  margin: 0;
  background: transparent;
}
.ipn-ara #ipnAraSecXCM fieldset.busqueda legend,
.ipn-ara #ipnAraSecXCM fieldset.busqueda > br,
.ipn-ara #ipnAraSecXCM #btn_XCM,
.ipn-ara #ipnAraSecXCM td[style*="vertical-align:bottom"]{
  display: none;
}
.ipn-ara #ipnAraSecXCM fieldset.busqueda table{
  width: 100%;
  border-collapse: collapse;
}
.ipn-ara #ipnAraSecXCM fieldset.busqueda td{
  padding: 4px 12px 4px 0;
  vertical-align: top;
  font-size: 13px;
  font-family: var(--ipn-font, "Inter", sans-serif);
}
.ipn-ara #ipnAraSecXCM fieldset.busqueda label{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
}
/* AV: 2026-08-31: #194 ? menos gap t?tulo Razones sociales ? checks XCM. */
.ipn-ara #ipnAraSecXCM .ipn-section__head{
  margin-bottom: 8px;
}
.ipn-ara #ipnAraSecXCM > br,
.ipn-ara #ipnAraSecXCM fieldset.busqueda > br{
  display: none;
}
.ipn-ara #ipnAraSecXCM fieldset.busqueda td{
  padding: 2px 12px 2px 0;
}
.ipn-ara #ipnAraSecXCM fieldset.busqueda table table td{
  padding-left: 12px;
}
/* AV: 2026-08-31: #179 ? centrado viewport (#60); iPNpopup() inline top/margin no gana a !important. */
#iPNpopUpDiv.ipn-ara-export-popup{
  position: fixed !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  margin: 0 !important;
  margin-left: 0 !important;
  width: min(500px, calc(100vw - 32px)) !important;
  max-height: min(calc(100vh - 48px), calc(100dvh - 48px));
  overflow-y: auto;
  padding: 18px 20px !important;
  border-radius: 12px;
  background: var(--ipn-surface, #fff) !important;
  box-shadow: var(--ipn-shadow-elev);
  font-family: var(--ipn-font);
  color: var(--ipn-text);
  box-sizing: border-box;
  z-index: 1201 !important;
}
body:has(.ipn-ara) #popUpDivBorder{
  display: none !important;
}
/* AV: 2026-08-24: Stock comprometido ? tabla de filtros y botones disabled.
   AV: 2026-09-02: #256 ? flexselect/datepicker/acciones/mobile. */
.ipn-scm .ipn-scm-filters-table{
  width: 100%;
  margin-top: 12px;
  border-collapse: collapse;
}
.ipn-scm .ipn-scm-filters-table td{
  padding: 6px 8px 6px 0;
  vertical-align: middle;
}
.ipn-scm .ipn-scm-filters-table td > div{
  max-width: 100%;
  box-sizing: border-box;
}
.ipn-scm .ipn-scm-view1{
  margin-top: 12px;
}
.ipn-scm .ipn-scm-view2-dates{
  margin: 0;
  width: 100%;
  min-width: 0;
}
.ipn-scm .ipn-scm-date-hint{
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 8px 0 0;
  font-size: 12.5px;
  color: var(--ipn-muted, #5b6b82);
}
.ipn-scm .ipn-scm-date-hint .material-symbols-rounded{
  font-size: 18px;
}
.ipn-scm .ipn-datepicker{
  display: flex;
  align-items: stretch;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  border: 1px solid var(--ipn-border, #e2e8f0);
  border-radius: var(--ipn-radius-input, 8px);
  background: var(--ipn-surface, #fff);
  overflow: hidden;
  box-sizing: border-box;
}
.ipn-scm .ipn-datepicker input[data-input]{
  flex: 1 1 auto;
  min-width: 0;
  width: auto;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.ipn-scm .ipn-datepicker__btn{
  flex: 0 0 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0;
  border: 0;
  border-left: 1px solid var(--ipn-border, #e2e8f0);
  background: var(--ipn-surface-soft, #f7f9fc);
  color: var(--ipn-text-2, #5a6f88);
  cursor: pointer;
}
.ipn-scm .ipn-datepicker__btn .material-symbols-rounded{
  font-size: 18px;
}
.ipn-scm .ipn-rpt-filter__actions{
  margin-top: 16px;
}
.ipn-scm #btn_Search.is-disabled{
  opacity: 0.55;
  pointer-events: none;
}
@media (max-width: 700px){
  .ipn-scm .ipn-scm-view2-dates .ipn-field{
    grid-column: 1 / -1;
  }
  .ipn-scm .ipn-scm-view2-dates{
    width: 100%;
    min-width: 0;
  }
  .ipn-scm .ipn-datepicker{
    width: 100%;
    max-width: 100%;
  }
  .ipn-scm .ipn-scm-filters-table,
  .ipn-scm .ipn-scm-filters-table tbody,
  .ipn-scm .ipn-scm-filters-table tr,
  .ipn-scm .ipn-scm-filters-table td{
    display: block;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  /* AV: 2026-09-03: #279 ? anular float/width inline de checks sucursal. */
  .ipn-scm .ipn-scm-filters-table td > div{
    width: auto !important;
    max-width: 100%;
    float: none !important;
    box-sizing: border-box;
  }
}
.ipn-ear .ipn-rpt-cmb-slot select,
.ipn-ear .ipn-select{
  width: 100%;
}

/* =====================================================================
   AV: 2026-08-23: Historial cambio costos (474) .ipn-icc / precios (425) .ipn-ipl.
   Reutiliza .ipn-rpt-filter / .ipn-rpt-attrsearch / .ipn-rpt-cmb-slot.
   ===================================================================== */
.ipn-icc .ipn-select,
.ipn-ipl .ipn-select{
  width: 100%;
}
.ipn-icc .ipn-rpt-cmb-slot,
.ipn-ipl .ipn-rpt-cmb-slot{
  min-height: 42px;
}
.ipn-icc .ipn-rpt-cmb-slot select,
.ipn-ipl .ipn-rpt-cmb-slot select{
  width: 100%;
}
/* AV: 2026-09-01: #232/#236 - Devbridge autocomplete (container .ac_results en body).
   AV: 2026-09-02: #249 - reforzar fondo/opacidad (sugerencias transparentes en proveedores).
   AV: 2026-09-07: #418 - financial/configuration (editCustomAttributeService / edit).
   AV: 2026-09-07: #429 - admin/priceLists/itemDetails (.ipn-admin-price-lists-items).
   AV: 2026-09-07: #433 - API Logs (.ipn-api-logs).
   AV: 2026-09-09: #504 - B2C Categories publish/depublish + suggestedProducts.
   AV: 2026-09-09: #511 - configuration/offers listado (proveedor).
   AV: 2026-09-09: #516 - comas faltantes en :has(.ipn-offers) invalidaban TODO el bloque
        (regresi?n post-#511: AC Categories/suggested/offers sin resultados visibles). */
/* AV: 2026-09-09: #516/#518 - chrome base bajo body.ipn2 (appendTo:body); no solo hijo directo. */
body.ipn2 .ac_results,
body.ipn2 .autocomplete-suggestions{
  border: 1px solid var(--ipn-border, #e2e8f0) !important;
  border-radius: var(--ipn-radius-input, 8px);
  background: #fff !important;
  background-color: var(--ipn-surface, #fff) !important;
  box-shadow: var(--ipn-shadow-elev);
  overflow: auto !important;
  z-index: 13000 !important;
  font-size: 13px;
  color: var(--ipn-text, #1e293b) !important;
  opacity: 1 !important;
  visibility: visible !important;
}
body.ipn2 .ac_results .autocomplete-suggestion,
body.ipn2 .ac_results > div,
body.ipn2 .autocomplete-suggestions .autocomplete-suggestion,
body.ipn2 .autocomplete-suggestions > div{
  padding: 8px 12px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: pointer;
  line-height: 1.35;
  background: #fff !important;
  color: var(--ipn-text, #1e293b) !important;
}
body.ipn2 .ac_results .autocomplete-selected,
body.ipn2 .ac_results .ac_over,
body.ipn2 .autocomplete-suggestions .autocomplete-suggestion.autocomplete-selected,
body.ipn2 .autocomplete-suggestions > div.autocomplete-selected{
  background: var(--ipn-brand-soft, #eaf1fb) !important;
  color: var(--ipn-text, #1e293b) !important;
}
body.ipn2 .ac_results strong,
body.ipn2 .autocomplete-suggestions strong{
  font-weight: 600;
  color: var(--ipn-brand, #2f62c4);
}
body.ipn2 .ac_results .autocomplete-no-suggestion,
body.ipn2 .autocomplete-suggestions .autocomplete-no-suggestion{
  padding: 8px 12px;
  color: var(--ipn-text-2, #5b6573) !important;
  background: #fff !important;
  cursor: default;
}
body.ipn2:has(.ipn-rpt-filter) .ac_results,
body.ipn2:has(.ipn-rpt-filter) .autocomplete-suggestions,
body.ipn2:has(.ipn-icc) .ac_results,
body.ipn2:has(.ipn-icc) .autocomplete-suggestions,
body.ipn2:has(.ipn-bns) .ac_results,
body.ipn2:has(.ipn-bns) .autocomplete-suggestions,
body.ipn2:has(.ipn-cfc-cvu) .ac_results,
body.ipn2:has(.ipn-cfc-cvu) .autocomplete-suggestions,
body.ipn2:has(.ipn-importation-form) .ac_results,
body.ipn2:has(.ipn-importation-form) .autocomplete-suggestions,
body.ipn2:has(.ipn-b2c-shipping-rules-zip) .ac_results,
body.ipn2:has(.ipn-b2c-shipping-rules-zip) .autocomplete-suggestions,
body.ipn2:has(.ipn-b2c-shipping-rules-form) .ac_results,
body.ipn2:has(.ipn-b2c-shipping-rules-form) .autocomplete-suggestions,
body.ipn2:has(.ipn-fin-config) .ac_results,
body.ipn2:has(.ipn-fin-config) .autocomplete-suggestions,
body.ipn2:has(.ipn-admin-price-lists-items) .ac_results,
body.ipn2:has(.ipn-admin-price-lists-items) .autocomplete-suggestions,
body.ipn2:has(.ipn-api-logs) .ac_results,
body.ipn2:has(.ipn-api-logs) .autocomplete-suggestions,
body.ipn2:has(.ipn-b2c-cat-publish) .ac_results,
body.ipn2:has(.ipn-b2c-cat-publish) .autocomplete-suggestions,
body.ipn2:has(.ipn-b2c-cat-depublish) .ac_results,
body.ipn2:has(.ipn-b2c-cat-depublish) .autocomplete-suggestions,
body.ipn2:has(.ipn-b2c-suggested) .ac_results,
body.ipn2:has(.ipn-b2c-suggested) .autocomplete-suggestions,
body.ipn2:has(.ipn-offers) .ac_results,
body.ipn2:has(.ipn-offers) .autocomplete-suggestions,
body.ipn2:has(.ipn-loyalty-cards) .ac_results,
body.ipn2:has(.ipn-loyalty-cards) .autocomplete-suggestions{
  border: 1px solid var(--ipn-border, #e2e8f0);
  border-radius: var(--ipn-radius-input, 8px);
  background: #fff !important;
  background-color: var(--ipn-surface, #fff) !important;
  box-shadow: var(--ipn-shadow-elev);
  overflow: auto;
  z-index: 12050;
  font-size: 13px;
  color: var(--ipn-text, #1e293b) !important;
  opacity: 1 !important;
}
body.ipn2:has(.ipn-rpt-filter) .ac_results ul,
body.ipn2:has(.ipn-icc) .ac_results ul,
body.ipn2:has(.ipn-bns) .ac_results ul,
body.ipn2:has(.ipn-cfc-cvu) .ac_results ul,
body.ipn2:has(.ipn-importation-form) .ac_results ul,
body.ipn2:has(.ipn-b2c-shipping-rules-zip) .ac_results ul,
body.ipn2:has(.ipn-b2c-shipping-rules-form) .ac_results ul,
body.ipn2:has(.ipn-fin-config) .ac_results ul,
body.ipn2:has(.ipn-admin-price-lists-items) .ac_results ul,
body.ipn2:has(.ipn-api-logs) .ac_results ul,
body.ipn2:has(.ipn-b2c-cat-publish) .ac_results ul,
body.ipn2:has(.ipn-b2c-cat-depublish) .ac_results ul,
body.ipn2:has(.ipn-b2c-suggested) .ac_results ul,
body.ipn2:has(.ipn-offers) .ac_results ul{
  margin: 0;
  padding: 0;
  list-style: none;
  background: #fff;
}
body.ipn2:has(.ipn-rpt-filter) .ac_results li,
body.ipn2:has(.ipn-icc) .ac_results li,
body.ipn2:has(.ipn-bns) .ac_results li,
body.ipn2:has(.ipn-cfc-cvu) .ac_results li,
body.ipn2:has(.ipn-importation-form) .ac_results li,
body.ipn2:has(.ipn-b2c-shipping-rules-zip) .ac_results li,
body.ipn2:has(.ipn-fin-config) .ac_results li,
body.ipn2:has(.ipn-admin-price-lists-items) .ac_results li,
body.ipn2:has(.ipn-api-logs) .ac_results li,
body.ipn2:has(.ipn-b2c-cat-publish) .ac_results li,
body.ipn2:has(.ipn-b2c-cat-depublish) .ac_results li,
body.ipn2:has(.ipn-b2c-suggested) .ac_results li,
body.ipn2:has(.ipn-offers) .ac_results li,
body.ipn2:has(.ipn-rpt-filter) .ac_results .autocomplete-suggestion,
body.ipn2:has(.ipn-rpt-filter) .autocomplete-suggestions .autocomplete-suggestion,
body.ipn2:has(.ipn-icc) .ac_results .autocomplete-suggestion,
body.ipn2:has(.ipn-icc) .autocomplete-suggestions .autocomplete-suggestion,
body.ipn2:has(.ipn-icc) .autocomplete-suggestions > div,
body.ipn2:has(.ipn-bns) .ac_results .autocomplete-suggestion,
body.ipn2:has(.ipn-bns) .autocomplete-suggestions .autocomplete-suggestion,
body.ipn2:has(.ipn-cfc-cvu) .ac_results .autocomplete-suggestion,
body.ipn2:has(.ipn-cfc-cvu) .autocomplete-suggestions .autocomplete-suggestion,
body.ipn2:has(.ipn-importation-form) .ac_results .autocomplete-suggestion,
body.ipn2:has(.ipn-importation-form) .autocomplete-suggestions .autocomplete-suggestion,
body.ipn2:has(.ipn-b2c-shipping-rules-zip) .ac_results .autocomplete-suggestion,
body.ipn2:has(.ipn-b2c-shipping-rules-zip) .autocomplete-suggestions .autocomplete-suggestion,
body.ipn2:has(.ipn-b2c-shipping-rules-form) .ac_results .autocomplete-suggestion,
body.ipn2:has(.ipn-b2c-shipping-rules-form) .autocomplete-suggestions .autocomplete-suggestion,
body.ipn2:has(.ipn-fin-config) .ac_results .autocomplete-suggestion,
body.ipn2:has(.ipn-fin-config) .autocomplete-suggestions .autocomplete-suggestion,
body.ipn2:has(.ipn-fin-config) .autocomplete-suggestions > div,
body.ipn2:has(.ipn-admin-price-lists-items) .ac_results .autocomplete-suggestion,
body.ipn2:has(.ipn-admin-price-lists-items) .autocomplete-suggestions .autocomplete-suggestion,
body.ipn2:has(.ipn-admin-price-lists-items) .autocomplete-suggestions > div,
body.ipn2:has(.ipn-api-logs) .ac_results .autocomplete-suggestion,
body.ipn2:has(.ipn-api-logs) .autocomplete-suggestions .autocomplete-suggestion,
body.ipn2:has(.ipn-api-logs) .autocomplete-suggestions > div,
body.ipn2:has(.ipn-b2c-cat-publish) .ac_results .autocomplete-suggestion,
body.ipn2:has(.ipn-b2c-cat-publish) .autocomplete-suggestions .autocomplete-suggestion,
body.ipn2:has(.ipn-b2c-cat-publish) .autocomplete-suggestions > div,
body.ipn2:has(.ipn-b2c-cat-depublish) .ac_results .autocomplete-suggestion,
body.ipn2:has(.ipn-b2c-cat-depublish) .autocomplete-suggestions .autocomplete-suggestion,
body.ipn2:has(.ipn-b2c-cat-depublish) .autocomplete-suggestions > div,
body.ipn2:has(.ipn-b2c-suggested) .ac_results .autocomplete-suggestion,
body.ipn2:has(.ipn-b2c-suggested) .autocomplete-suggestions .autocomplete-suggestion,
body.ipn2:has(.ipn-b2c-suggested) .autocomplete-suggestions > div,
body.ipn2:has(.ipn-offers) .ac_results .autocomplete-suggestion,
body.ipn2:has(.ipn-offers) .autocomplete-suggestions .autocomplete-suggestion,
body.ipn2:has(.ipn-offers) .autocomplete-suggestions > div{
  padding: 8px 12px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: pointer;
  line-height: 1.35;
  background: #fff !important;
  color: var(--ipn-text, #1e293b) !important;
}
body.ipn2:has(.ipn-rpt-filter) .ac_results .ac_over,
body.ipn2:has(.ipn-icc) .ac_results .ac_over,
body.ipn2:has(.ipn-bns) .ac_results .ac_over,
body.ipn2:has(.ipn-cfc-cvu) .ac_results .ac_over,
body.ipn2:has(.ipn-importation-form) .ac_results .ac_over,
body.ipn2:has(.ipn-b2c-shipping-rules-zip) .ac_results .ac_over,
body.ipn2:has(.ipn-b2c-shipping-rules-form) .ac_results .ac_over,
body.ipn2:has(.ipn-fin-config) .ac_results .ac_over,
body.ipn2:has(.ipn-admin-price-lists-items) .ac_results .ac_over,
body.ipn2:has(.ipn-api-logs) .ac_results .ac_over,
body.ipn2:has(.ipn-b2c-cat-publish) .ac_results .ac_over,
body.ipn2:has(.ipn-b2c-cat-depublish) .ac_results .ac_over,
body.ipn2:has(.ipn-b2c-suggested) .ac_results .ac_over,
body.ipn2:has(.ipn-offers) .ac_results .ac_over,
body.ipn2:has(.ipn-rpt-filter) .ac_results .autocomplete-selected,
body.ipn2:has(.ipn-rpt-filter) .autocomplete-suggestions .autocomplete-suggestion.autocomplete-selected,
body.ipn2:has(.ipn-icc) .ac_results .autocomplete-selected,
body.ipn2:has(.ipn-icc) .autocomplete-suggestions .autocomplete-suggestion.autocomplete-selected,
body.ipn2:has(.ipn-icc) .autocomplete-suggestions > div.autocomplete-selected,
body.ipn2:has(.ipn-bns) .ac_results .autocomplete-selected,
body.ipn2:has(.ipn-bns) .autocomplete-suggestions .autocomplete-suggestion.autocomplete-selected,
body.ipn2:has(.ipn-cfc-cvu) .ac_results .autocomplete-selected,
body.ipn2:has(.ipn-cfc-cvu) .autocomplete-suggestions .autocomplete-suggestion.autocomplete-selected,
body.ipn2:has(.ipn-importation-form) .ac_results .autocomplete-selected,
body.ipn2:has(.ipn-importation-form) .autocomplete-suggestions .autocomplete-suggestion.autocomplete-selected,
body.ipn2:has(.ipn-b2c-shipping-rules-zip) .ac_results .autocomplete-selected,
body.ipn2:has(.ipn-b2c-shipping-rules-zip) .autocomplete-suggestions .autocomplete-suggestion.autocomplete-selected,
body.ipn2:has(.ipn-b2c-shipping-rules-form) .ac_results .autocomplete-selected,
body.ipn2:has(.ipn-b2c-shipping-rules-form) .autocomplete-suggestions .autocomplete-suggestion.autocomplete-selected,
body.ipn2:has(.ipn-fin-config) .ac_results .autocomplete-selected,
body.ipn2:has(.ipn-fin-config) .autocomplete-suggestions .autocomplete-suggestion.autocomplete-selected,
body.ipn2:has(.ipn-fin-config) .autocomplete-suggestions > div.autocomplete-selected,
body.ipn2:has(.ipn-admin-price-lists-items) .ac_results .autocomplete-selected,
body.ipn2:has(.ipn-admin-price-lists-items) .autocomplete-suggestions .autocomplete-suggestion.autocomplete-selected,
body.ipn2:has(.ipn-admin-price-lists-items) .autocomplete-suggestions > div.autocomplete-selected,
body.ipn2:has(.ipn-api-logs) .ac_results .autocomplete-selected,
body.ipn2:has(.ipn-api-logs) .autocomplete-suggestions .autocomplete-suggestion.autocomplete-selected,
body.ipn2:has(.ipn-api-logs) .autocomplete-suggestions > div.autocomplete-selected,
body.ipn2:has(.ipn-b2c-cat-publish) .ac_results .autocomplete-selected,
body.ipn2:has(.ipn-b2c-cat-publish) .autocomplete-suggestions .autocomplete-suggestion.autocomplete-selected,
body.ipn2:has(.ipn-b2c-cat-publish) .autocomplete-suggestions > div.autocomplete-selected,
body.ipn2:has(.ipn-b2c-cat-depublish) .ac_results .autocomplete-selected,
body.ipn2:has(.ipn-b2c-cat-depublish) .autocomplete-suggestions .autocomplete-suggestion.autocomplete-selected,
body.ipn2:has(.ipn-b2c-cat-depublish) .autocomplete-suggestions > div.autocomplete-selected,
body.ipn2:has(.ipn-b2c-suggested) .ac_results .autocomplete-selected,
body.ipn2:has(.ipn-b2c-suggested) .autocomplete-suggestions .autocomplete-suggestion.autocomplete-selected,
body.ipn2:has(.ipn-b2c-suggested) .autocomplete-suggestions > div.autocomplete-selected,
body.ipn2:has(.ipn-offers) .ac_results .autocomplete-selected,
body.ipn2:has(.ipn-offers) .autocomplete-suggestions .autocomplete-suggestion.autocomplete-selected,
body.ipn2:has(.ipn-offers) .autocomplete-suggestions > div.autocomplete-selected{
  background: var(--ipn-brand-soft, #eaf1fb) !important;
  color: var(--ipn-text, #1e293b) !important;
}
body.ipn2:has(.ipn-rpt-filter) .ac_results strong,
body.ipn2:has(.ipn-rpt-filter) .autocomplete-suggestions strong,
body.ipn2:has(.ipn-icc) .ac_results strong,
body.ipn2:has(.ipn-icc) .autocomplete-suggestions strong,
body.ipn2:has(.ipn-bns) .ac_results strong,
body.ipn2:has(.ipn-bns) .autocomplete-suggestions strong,
body.ipn2:has(.ipn-cfc-cvu) .ac_results strong,
body.ipn2:has(.ipn-cfc-cvu) .autocomplete-suggestions strong,
body.ipn2:has(.ipn-importation-form) .ac_results strong,
body.ipn2:has(.ipn-importation-form) .autocomplete-suggestions strong,
body.ipn2:has(.ipn-b2c-shipping-rules-zip) .ac_results strong,
body.ipn2:has(.ipn-b2c-shipping-rules-zip) .autocomplete-suggestions strong,
body.ipn2:has(.ipn-b2c-shipping-rules-form) .ac_results strong,
body.ipn2:has(.ipn-b2c-shipping-rules-form) .autocomplete-suggestions strong,
body.ipn2:has(.ipn-fin-config) .ac_results strong,
body.ipn2:has(.ipn-fin-config) .autocomplete-suggestions strong,
body.ipn2:has(.ipn-admin-price-lists-items) .ac_results strong,
body.ipn2:has(.ipn-admin-price-lists-items) .autocomplete-suggestions strong,
body.ipn2:has(.ipn-api-logs) .ac_results strong,
body.ipn2:has(.ipn-api-logs) .autocomplete-suggestions strong,
body.ipn2:has(.ipn-b2c-cat-publish) .ac_results strong,
body.ipn2:has(.ipn-b2c-cat-publish) .autocomplete-suggestions strong,
body.ipn2:has(.ipn-b2c-cat-depublish) .ac_results strong,
body.ipn2:has(.ipn-b2c-cat-depublish) .autocomplete-suggestions strong,
body.ipn2:has(.ipn-b2c-suggested) .ac_results strong,
body.ipn2:has(.ipn-b2c-suggested) .autocomplete-suggestions strong,
body.ipn2:has(.ipn-offers) .ac_results strong,
body.ipn2:has(.ipn-offers) .autocomplete-suggestions strong{
  font-weight: 600;
  color: var(--ipn-brand, #2f62c4);
}
body.ipn2:has(.ipn-bns) .ac_results .autocomplete-suggestion,
body.ipn2:has(.ipn-bns) .autocomplete-suggestions .autocomplete-suggestion{
  /* AV: 2026-09-02: #252 ? sugerencias multi-l?nea de cliente. */
  white-space: normal;
  overflow: visible;
  text-overflow: unset;
}
.ipn-ipl #historyModeHelp{
  margin: 0 0 10px;
}

/* =====================================================================
   AV: 2026-08-23: Rotacion mercaderia (.ipn-rot) / stock valorizado (.ipn-vis).
   ===================================================================== */
.ipn-rot .ipn-select,
.ipn-vis .ipn-select{
  width: 100%;
}
.ipn-rot .ipn-rpt-cmb-slot,
.ipn-vis .ipn-rpt-cmb-slot{
  min-height: 42px;
}
.ipn-rot .ipn-rpt-cmb-slot select,
.ipn-vis .ipn-rpt-cmb-slot select{
  width: 100%;
}
.ipn-vis .ipn-rpt-cols{
  margin-top: 8px;
}
.ipn-vis .ipn-rpt-cols__group-title{
  margin-top: 10px;
  text-transform: none;
  letter-spacing: 0;
  grid-column: 1 / -1;
}
.ipn-vis .ipn-rpt-cols__group-title:first-child{
  margin-top: 0;
}
.ipn-vis .ipn-rpt-cols__group-title .ipn-check-row{
  font-size: 13px;
  font-weight: 700;
  color: var(--ipn-rpt-ink, #16294d);
}

/* =====================================================================
   AV: 2026-08-23: Cheques por fecha (.ipn-crd) / estado cheques (.ipn-cr) /
   facturado pendiente remision (.ipn-bns). Reusa .ipn-rpt-*.
   ===================================================================== */
.ipn-crd .ipn-page-head__actions,
.ipn-cr .ipn-page-head__actions,
.ipn-crd .ipn-crd-results,
.ipn-cr .ipn-cr-results,
.ipn-bns .ipn-bns-results{
  margin-top: 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.ipn-crd .ipn-select,
.ipn-cr .ipn-select,
.ipn-bns .ipn-select{
  width: 100%;
}
.ipn-crd .ipn-crd-total td,
.ipn-cr .ipn-cr-month-total td,
.ipn-cr .ipn-cr-grand-total td,
.ipn-bns .ipn-bns-totals td{
  font-weight: 700;
  background: var(--ipn-surface-soft-2, #f5f7fa);
}
/* AV: 2026-09-01: #209 ? importe alineado a la tipograf?a del reporte. */
.ipn-crd .ipn-rpt-table td.is-num,
.ipn-crd .ipn-rpt-table th.is-num{
  font-family: var(--ipn-font, "Inter", sans-serif);
}
.ipn-cr .ipn-cr-radios{
  display: flex;
  flex-wrap: wrap;
  gap: 12px 18px;
  align-items: center;
  min-height: 42px;
  width: 100%;
}
.ipn-cr .ipn-cr-radios .ipn-check-row{
  min-width: 0;
}
.ipn-cr .ipn-rpt-cols{
  margin-top: 8px;
}
/* AV: 2026-08-30: #137 - font sistema en grilla del modulo.
   AV: 2026-08-31: #203 ? todos los thead th + importes (no solo fila ipn-rpt-cols).
   AV: 2026-09-02: #246 ? Importe tambi?n Inter (no mono; patr?n #213/#245). */
.ipn-cr .ipn-rpt-table,
.ipn-cr .ipn-rpt-table thead th,
.ipn-cr .ipn-rpt-table tbody td{
  font-family: var(--ipn-font, "Inter", sans-serif);
}
.ipn-cr .ipn-rpt-table td.is-num,
.ipn-cr .ipn-rpt-table th.is-num{
  font-family: var(--ipn-font, "Inter", sans-serif);
}
@media (max-width: 700px){
  /* AV: 2026-08-30: #137 - radios 100%; th = td 13px (1A/3A). */
  .ipn-cr .ipn-cr-radios{
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }
  .ipn-cr .ipn-cr-radios .ipn-check-row{
    width: 100%;
  }
  /* AV: 2026-08-31: #182 ? m?s aire entre radios "generar en base a" y "Tipo de cheque". */
  .ipn-cr .ipn-section + .ipn-section{
    margin-top: 20px;
  }
  .ipn-cr .ipn-rpt-table thead tr.ipn-rpt-cols th,
  .ipn-cr .ipn-rpt-table thead tr.ipn-rpt-cols th.ipn-rpt-th{
    font-size: 13px;
    letter-spacing: .02em;
  }
}
#iPNpopUpDiv.ipn-crd-export-popup{
  position: fixed !important;
  top: 105px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  margin-left: 0 !important;
  width: min(500px, calc(100vw - 32px)) !important;
  padding: 18px 20px !important;
  border-radius: 12px;
  background: var(--ipn-surface, #fff) !important;
  box-shadow: var(--ipn-shadow-elev);
  font-family: var(--ipn-font);
  color: var(--ipn-text);
  box-sizing: border-box;
}
.ipn-crd-export-popup__qty{
  margin: 0 0 12px;
  font-size: 13px;
}
.ipn-crd-export-popup__opts{
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0 0 8px;
}
.ipn-crd-export-popup__warn{
  margin: 10px 0 0;
}
/* AV: 2026-09-03: #287 ? Flatpickr popup con fuente shell (sin Kendo); patr?n ops-report. */
body:has(.ipn-bns) .flatpickr-calendar{
  z-index: 4000 !important;
  font-family: var(--ipn-font);
}
body:has(.ipn-bns) .flatpickr-day.selected,
body:has(.ipn-bns) .flatpickr-day.startRange,
body:has(.ipn-bns) .flatpickr-day.endRange{
  background: var(--ipn-primary) !important;
  border-color: var(--ipn-primary) !important;
}
.ipn-bns .ipn-tabs{
  margin: 0 0 14px;
}
.ipn-bns .ipn-rpt-cols{
  margin-top: 8px;
}
.ipn-bns .ipn-rpt-cols__group-title{
  margin-top: 10px;
  text-transform: none;
  letter-spacing: 0;
  grid-column: 1 / -1;
}
.ipn-bns .ipn-rpt-cols__group-title:first-child{
  margin-top: 0;
}
.ipn-bns .ipn-bns-expand{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin-right: 4px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--ipn-text-muted, #64748b);
  cursor: pointer;
  vertical-align: middle;
}
.ipn-bns .ipn-bns-expand:hover{
  background: var(--ipn-surface-soft, #f1f5f9);
  color: var(--ipn-rpt-ink, #16294d);
}
.ipn-bns .ipn-bns-expand .material-symbols-rounded{
  font-size: 20px;
}
.ipn-bns .ipn-bns-detail td{
  border-top: 1px solid var(--ipn-border, #e2e8f0);
  background: var(--ipn-surface-soft, #f8fafc);
}

/* =====================================================================
   AV: 2026-08-23: Control reports ? .ipn-po / .ipn-psr / .ipn-isr / .ipn-imv / .ipn-scm.
   Tree toggle, store-type indent, flexselect z-index, results, export popup reuse.
   ===================================================================== */
.ipn-po .ipn-po-results,
.ipn-psr .ipn-psr-results,
.ipn-isr .ipn-isr-results,
.ipn-imv .ipn-imv-results,
.ipn-scm .ipn-scm-results{
  margin-top: 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.ipn-po .ipn-select,
.ipn-psr .ipn-select,
.ipn-isr .ipn-select,
.ipn-imv .ipn-select,
.ipn-scm .ipn-select{
  width: 100%;
}
.ipn-po .ipn-rpt-cols__group-title.ipn-po-store-type,
.ipn-psr .ipn-rpt-cols__group-title.ipn-psr-store-type,
.ipn-imv .ipn-rpt-cols__group-title.ipn-imv-store-type,
.ipn-scm .ipn-rpt-cols__group-title.ipn-scm-store-type{
  padding-left: 18px;
}
.ipn-po .ipn-po-tree-toggle,
.ipn-psr .ipn-psr-tree-toggle{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin-right: 6px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--ipn-text-muted, #64748b);
  cursor: pointer;
  vertical-align: middle;
}
.ipn-po .ipn-po-tree-toggle:hover,
.ipn-psr .ipn-psr-tree-toggle:hover{
  background: var(--ipn-surface-soft, #f1f5f9);
  color: var(--ipn-rpt-ink, #16294d);
}
.ipn-po .ipn-po-tree-toggle.is-open .material-symbols-rounded,
.ipn-psr .ipn-psr-tree-toggle.is-open .material-symbols-rounded{
  transform: rotate(90deg);
}
.ipn-po .ipn-po-tree-toggle .material-symbols-rounded,
.ipn-psr .ipn-psr-tree-toggle .material-symbols-rounded{
  font-size: 20px;
  transition: transform .15s ease;
}
/* AV: 2026-09-02: #264 ? datepicker wrap + nums Inter (no mono). */
.ipn-po .ipn-datepicker{
  display: flex;
  align-items: stretch;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  border: 1px solid var(--ipn-border, #e2e8f0);
  border-radius: var(--ipn-radius-input, 8px);
  background: var(--ipn-surface, #fff);
  overflow: hidden;
  box-sizing: border-box;
}
.ipn-po .ipn-datepicker input[data-input]{
  flex: 1 1 auto;
  min-width: 0;
  width: auto;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  font-family: var(--ipn-font, "Inter", "IBM Plex Sans", sans-serif);
}
.ipn-po .ipn-datepicker__btn{
  flex: 0 0 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0;
  border: 0;
  border-left: 1px solid var(--ipn-border, #e2e8f0);
  background: var(--ipn-surface-soft, #f7f9fc);
  color: var(--ipn-text-2, #5a6f88);
  cursor: pointer;
}
.ipn-po .ipn-datepicker__btn .material-symbols-rounded{
  font-size: 18px;
}
.ipn-po .ipn-rpt-filter__actions{
  margin-top: 16px;
}
.ipn-po .ipn-rpt-table td.is-num,
.ipn-po .ipn-rpt-table th.is-num,
.ipn-po .ipn-rpt-table tfoot td.is-num,
.ipn-po .ipn-rpt-table tfoot th.is-num{
  font-family: var(--ipn-font, "Inter", "IBM Plex Sans", sans-serif);
}
.ipn-po .ipn-po-subtotal td,
.ipn-psr .ipn-psr-subtotal td{
  border-top: 3px double var(--ipn-rpt-ink, #16294d);
  border-bottom: 1px solid var(--ipn-rpt-ink, #16294d);
}
.ipn-po .ipn-po-total td,
.ipn-psr .ipn-psr-total td{
  border-top: 3px double var(--ipn-rpt-ink, #16294d);
  border-bottom: 1px solid var(--ipn-rpt-ink, #16294d);
  font-weight: 700;
}
.ipn-psr .ipn-psr-export-sub{
  margin: 4px 0 10px 28px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
/* AV: 2026-09-02: #263 ? datepicker wrap + Importe Inter (no mono). */
.ipn-psr .ipn-datepicker{
  display: flex;
  align-items: stretch;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  border: 1px solid var(--ipn-border, #e2e8f0);
  border-radius: var(--ipn-radius-input, 8px);
  background: var(--ipn-surface, #fff);
  overflow: hidden;
  box-sizing: border-box;
}
.ipn-psr .ipn-datepicker input[data-input]{
  flex: 1 1 auto;
  min-width: 0;
  width: auto;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  font-family: var(--ipn-font, "Inter", "IBM Plex Sans", sans-serif);
}
.ipn-psr .ipn-datepicker__btn{
  flex: 0 0 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0;
  border: 0;
  border-left: 1px solid var(--ipn-border, #e2e8f0);
  background: var(--ipn-surface-soft, #f7f9fc);
  color: var(--ipn-text-2, #5a6f88);
  cursor: pointer;
}
.ipn-psr .ipn-datepicker__btn .material-symbols-rounded{
  font-size: 18px;
}
.ipn-psr .ipn-rpt-filter__actions{
  margin-top: 16px;
}
.ipn-psr .ipn-rpt-table td.is-num,
.ipn-psr .ipn-rpt-table th.is-num,
.ipn-psr .ipn-rpt-table tfoot td.is-num,
.ipn-psr .ipn-rpt-table tfoot th.is-num{
  font-family: var(--ipn-font, "Inter", "IBM Plex Sans", sans-serif);
}
/* AV: 2026-09-03: #298/#283 - grilla mobile scroll-x (#89); thead sin salto en # Remito. */
.ipn-psr .ipn-card--table{
  overflow: visible;
}
.ipn-psr .ipn-rpt-table-scroll{
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.ipn-psr .ipn-rpt-table{
  width: max-content;
  min-width: 100%;
  table-layout: auto;
}
.ipn-psr .ipn-rpt-table thead th{
  white-space: nowrap;
}
/* AV: 2026-09-03: #280 ? celdas middle; selects/flexselect mismo alto y texto centrado. */
.ipn-isr .ipn-isr-filters td,
.ipn-isr .ipn-isr-stores td{
  padding: 4px 8px;
  vertical-align: middle;
}
/* AV: 2026-09-02: #259 ? filtros/stores mobile stack; grilla scroll-x sin table-layout fixed. */
.ipn-isr .ipn-isr-filters,
.ipn-isr .ipn-isr-stores{
  width: 100%;
  max-width: 100%;
}
.ipn-isr .ipn-isr-filters .ipn-select,
.ipn-isr .ipn-isr-filters select.ipn-select{
  width: 100%;
  max-width: 100%;
  min-width: 0;
  height: var(--ipn-form-control-h, 42px);
  min-height: var(--ipn-form-control-h, 42px);
  line-height: normal;
  box-sizing: border-box;
}
.ipn-isr .ipn-isr-filters .ipn-check-row{
  min-height: var(--ipn-form-control-h, 42px);
  white-space: normal;
}
.ipn-isr .ipn-card--table{
  overflow: visible;
}
.ipn-isr .ipn-rpt-table-scroll{
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.ipn-isr .ipn-rpt-table{
  width: max-content;
  min-width: 100%;
  table-layout: auto;
}
.ipn-isr .ipn-rpt-table th,
.ipn-isr .ipn-rpt-table td{
  white-space: nowrap;
}
.ipn-isr .ipn-rpt-table td:nth-child(2){
  white-space: normal;
  min-width: 220px;
  max-width: 360px;
}
@media (max-width: 700px){
  .ipn-isr .ipn-isr-filters,
  .ipn-isr .ipn-isr-filters tbody,
  .ipn-isr .ipn-isr-filters tr,
  .ipn-isr .ipn-isr-filters td,
  .ipn-isr .ipn-isr-stores,
  .ipn-isr .ipn-isr-stores tbody,
  .ipn-isr .ipn-isr-stores tr,
  .ipn-isr .ipn-isr-stores td{
    display: block;
    width: 100%;
    box-sizing: border-box;
  }
  .ipn-isr .ipn-isr-filters td img[alt="|"],
  .ipn-isr .ipn-isr-stores td img[alt="|"]{
    display: none;
  }
  .ipn-isr .ipn-isr-filters td,
  .ipn-isr .ipn-isr-stores td{
    padding: 6px 0;
  }
}
.ipn-isr .flexselect_dropdown,
.ipn-scm .flexselect_dropdown{
  z-index: 12050;
}
.ipn-isr input.flexselect_input,
.ipn-scm input.flexselect_input{
  /* AV: 2026-09-02: #256 ? flexselect = chrome ipn-input. */
  /* AV: 2026-09-03: #280 ? line-height + token de alto para centrar texto. */
  width: 100% !important;
  min-height: var(--ipn-form-control-h, 42px);
  height: var(--ipn-form-control-h, 42px);
  padding: 0 12px;
  line-height: var(--ipn-form-control-h, 42px);
  border: 1px solid var(--ipn-border, #e2e8f0);
  border-radius: var(--ipn-radius-input, 8px);
  background: var(--ipn-surface, #fff);
  box-sizing: border-box;
  font-family: var(--ipn-font, "Inter", sans-serif);
  font-size: 13.5px;
  color: var(--ipn-text, #1e293b);
}
.ipn-scm .ipn-field .flexselect_dropdown{
  width: 100% !important;
}
.ipn-scm .ipn-rpt-table{
  width: max-content;
  min-width: 100%;
  font-family: var(--ipn-font, "Inter", sans-serif);
}
.ipn-scm .ipn-rpt-table th,
.ipn-scm .ipn-rpt-table td{
  font-family: var(--ipn-font, "Inter", sans-serif);
}
@media (max-width: 700px){
  .ipn-scm .ipn-rpt-table th,
  .ipn-scm .ipn-rpt-table td{
    white-space: nowrap;
  }
}
/* AV: 2026-09-03: #281 ? datepicker usa chrome global .ipn-rpt-filter; grilla scroll-x (patr?n #89). */
body:has(.ipn-imv) .flatpickr-calendar{
  font-family: var(--ipn-font);
}
.ipn-imv .ipn-card--table{
  overflow: visible;
}
.ipn-imv .ipn-rpt-table-scroll{
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.ipn-imv .ipn-rpt-table{
  width: max-content;
  min-width: 100%;
}
.ipn-imv .ipn-rpt-table thead th{
  white-space: nowrap;
}
.ipn-imv .ipn-imv-filters{
  width: 100%;
  margin-top: 12px;
  border-collapse: collapse;
}
.ipn-imv .ipn-imv-filters td{
  padding: 6px 8px 6px 0;
  vertical-align: top;
}
.ipn-imv .ipn-help-tip{
  display: inline-flex;
  align-items: center;
  margin-left: 4px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ipn-text-muted, #64748b);
  cursor: help;
  vertical-align: middle;
}
.ipn-imv .ipn-help-tip .material-symbols-rounded{
  font-size: 18px;
}
.ipn-imv .ipn-rpt-filter__actions{
  margin-top: 16px;
}
@media (max-width: 700px){
  .ipn-imv .ipn-imv-filters,
  .ipn-imv .ipn-imv-filters tbody,
  .ipn-imv .ipn-imv-filters tr,
  .ipn-imv .ipn-imv-filters td{
    display: block;
    width: 100%;
    box-sizing: border-box;
  }
  .ipn-imv .ipn-field{
    grid-column: 1 / -1;
  }
}
.ipn-scm .ipn-pager{
  margin-top: 12px;
}
/* AV: 2026-09-03: #290 ? help tippy en filtros/grilla del detalle stockCommited. */
.ipn-scm .ipn-scm-help{
  font-size: 18px;
  vertical-align: middle;
  cursor: help;
  color: var(--ipn-muted, #6b7280);
}
.ipn-scm .ipn-scm-help--sm{
  font-size: 16px;
}

/* =====================================================================
   AV: 2026-08-24: Reportes overnight ? .ipn-dps / .ipn-acr / .ipn-cco / .ipn-bf.
   ===================================================================== */
.ipn-dps .ipn-page-head__actions,
.ipn-acr .ipn-page-head__actions,
.ipn-cco .ipn-page-head__actions,
.ipn-dps .ipn-tabs{
  margin: 0 0 14px;
}
.ipn-dps .ipn-dps-funds{
  margin-bottom: 12px;
}
.ipn-dps .ipn-dps-funds table{
  width: 100%;
}
.ipn-dps .ipn-dps-funds td{
  padding: 4px 6px;
  vertical-align: top;
}
.ipn-dps .ipn-dps-show-empty{
  min-height: 42px;
  align-items: center;
}
.ipn-dps .ipn-dps-results{
  margin-top: 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.ipn-dps .ipn-dps-fund-title{
  margin: 12px 0 8px;
  font-size: 15px;
  font-weight: 700;
  color: var(--ipn-rpt-ink, #16294d);
}
.ipn-dps .ipn-dps-total td,
.ipn-acr .ipn-acr-total td,
.ipn-cco .ipn-cco-subtotal td,
.ipn-cco .ipn-cco-total th{
  font-weight: 700;
  background: var(--ipn-surface-soft-2, #f5f7fa);
}
.ipn-dps .ipn-rpt-table,
.ipn-acr .ipn-rpt-table,
.ipn-cco .ipn-rpt-table,
.ipn-bf .ipn-rpt-table{
  width: 100%;
}
.ipn-dps .ipn-select,
.ipn-acr .ipn-select,
.ipn-cco .ipn-select,
.ipn-bf .ipn-select{
  width: 100%;
}
.ipn-acr .ipn-acr-results,
.ipn-cco .ipn-cco-results,
.ipn-bf .ipn-bf-results{
  margin-top: 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
/* AV: 2026-09-01: #213 ? importe alineado a la tipograf?a del reporte (patr?n #209/#211). */
.ipn-acr .ipn-rpt-table td.is-num,
.ipn-acr .ipn-rpt-table th.is-num{
  font-family: var(--ipn-font, "Inter", sans-serif);
}
/* AV: 2026-08-31: #202 ? thead/grilla con --ipn-font (Inter).
   AV: 2026-09-02: #245 ? Total/importes tambi?n Inter (no mono; patr?n #213/#243). */
.ipn-bf .ipn-rpt-table,
.ipn-bf .ipn-rpt-table thead th,
.ipn-bf .ipn-rpt-table tbody td{
  font-family: var(--ipn-font, "Inter", sans-serif);
}
.ipn-bf .ipn-rpt-table td.is-num,
.ipn-bf .ipn-rpt-table th.is-num{
  font-family: var(--ipn-font, "Inter", sans-serif);
}
.ipn-cco .ipn-cco-radios{
  display: flex;
  flex-wrap: wrap;
  gap: 12px 18px;
  align-items: center;
  min-height: 42px;
}
/* AV: 2026-09-01: #211 ? importe alineado a la tipograf?a del reporte (patr?n #209). */
.ipn-cco .ipn-rpt-table td.is-num,
.ipn-cco .ipn-rpt-table th.is-num{
  font-family: var(--ipn-font, "Inter", sans-serif);
}
.ipn-cco .ipn-cco-group th{
  text-align: left;
  padding: 16px 10px 8px;
  background: transparent;
  border-bottom: 1px solid var(--ipn-border, #e2e8f0);
}
/* AV: 2026-08-30: #140 ? mobile: gap grupo ? headers ? valores. */
@media (max-width: 700px){
  .ipn-cco .ipn-cco-group th{
    padding: 20px 10px 12px;
  }
  .ipn-cco .ipn-rpt-table tbody tr.ipn-rpt-cols th{
    padding-bottom: 10px;
  }
}
.ipn-bf .ipn-bf-status{
  margin-top: 8px;
}
.ipn-bf .ipn-bf-status-head{
  margin-top: 12px;
}
.ipn-bf .ipn-bf-tree-toggle{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--ipn-text-muted, #64748b);
  cursor: pointer;
  vertical-align: middle;
}
.ipn-bf .ipn-bf-tree-toggle:hover{
  background: var(--ipn-surface-soft, #f1f5f9);
  color: var(--ipn-rpt-ink, #16294d);
}
.ipn-bf .ipn-bf-tree-toggle.is-open .material-symbols-rounded{
  transform: rotate(90deg);
}
.ipn-bf .ipn-bf-tree-toggle .material-symbols-rounded{
  font-size: 20px;
  transition: transform .15s ease;
}
.ipn-bf .ipn-bf-row-child td{
  background: var(--ipn-surface-soft, #f8fafc);
}
.ipn-bf .ipn-bf-detail-head td{
  font-weight: 600;
  border-top: 1px solid var(--ipn-border, #e2e8f0);
}
.ipn-bf .ipn-bf-detail-cell{
  padding-left: 24px;
}
.ipn-bf .ipn-bf-cust-icon{
  font-size: 16px;
  vertical-align: middle;
  margin-right: 4px;
  color: var(--ipn-text-muted, #64748b);
}
.ipn-amt--debit{
  color: var(--ipn-danger, #b42318);
}
.ipn-amt--credit{
  color: var(--ipn-success, #027a48);
}

/* =====================================================================
   AV: 2026-08-24: Movimiento diario de fondos ? scope .ipn-dpsm (moduleID 311).
   AV: 2026-08-30: #145 ? Buscar en card; th 13px; funds padding; scroll-x tablas.
   AV: 2026-08-31: #187 ? tabs sin wrap en desktop; checks apilados en mobile.
   AV: 2026-09-01: #214 ? funds flex wrap en desktop para todas las pesta?as.
   ===================================================================== */
.ipn-dpsm .ipn-tabs{
  margin: 0 0 14px;
  gap: 0;
  padding: 0 6px;
  flex-wrap: nowrap;
}
.ipn-dpsm .ipn-tabs__item{
  padding: 12px 10px;
  white-space: nowrap;
  flex: 0 0 auto;
}
.ipn-dpsm .ipn-select{
  width: 100%;
}
.ipn-dpsm .ipn-dpsm-show-empty{
  min-height: 42px;
  align-items: center;
}
.ipn-dpsm .ipn-dpsm-funds{
  overflow-x: auto;
}
.ipn-dpsm .ipn-dpsm-funds .ipn-card__body{
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ipn-dpsm .ipn-dpsm-funds .ipn-check-row{
  margin: 0;
  align-items: flex-start;
  white-space: normal;
}
.ipn-dpsm .ipn-dpsm-funds table{
  width: 100%;
  border-collapse: collapse;
}
.ipn-dpsm .ipn-dpsm-funds td{
  padding: 6px 8px;
  vertical-align: top;
}
.ipn-dpsm .ipn-dpsm-funds td > div{
  float: none !important;
  width: auto !important;
  max-width: 100%;
}
.ipn-dpsm .ipn-dpsm-funds label{
  white-space: normal;
}
/* AV: 2026-09-01: #214 ? desktop: mismo layout limpio en todas las pesta?as de fondos
   (antes solo se ve?a bien en electr?n/documento por menos ?tems). */
.ipn-dpsm .ipn-dpsm-funds table,
.ipn-dpsm .ipn-dpsm-funds tbody,
.ipn-dpsm .ipn-dpsm-funds tr,
.ipn-dpsm .ipn-dpsm-funds td{
  display: block;
  width: 100%;
}
.ipn-dpsm .ipn-dpsm-funds tr{
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
  align-items: flex-start;
  margin: 0 0 8px;
}
.ipn-dpsm .ipn-dpsm-funds td[tab]{
  flex: 1 1 100%;
  width: 100%;
  padding: 4px 0;
}
.ipn-dpsm .ipn-dpsm-funds td:not([tab]){
  flex: 1 1 200px;
  max-width: 320px;
  width: auto;
  padding: 4px 0;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.ipn-dpsm .ipn-dpsm-results{
  margin-top: 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ipn-dpsm .ipn-dpsm-fund-title{
  margin: 12px 0 6px;
  font-size: 15px;
  font-weight: 700;
  color: var(--ipn-rpt-ink, #16294d);
}
.ipn-dpsm .ipn-rpt-table{
  width: max-content;
  min-width: 100%;
}
.ipn-dpsm .ipn-rpt-table th{
  font-family: "IBM Plex Sans", var(--ipn-font, "Inter", sans-serif);
  font-size: 13px;
  font-weight: 600;
}
.ipn-dpsm .ipn-dpsm-total td{
  font-weight: 700;
  background: var(--ipn-surface-soft-2, #f5f7fa);
}
.ipn-dpsm #btnDateLimitInfo{
  vertical-align: middle;
  margin-left: 4px;
}
@media (max-width: 700px){
  .ipn-dpsm .ipn-tabs{
    flex-wrap: wrap;
    padding: 0 4px;
  }
  .ipn-dpsm .ipn-tabs__item{
    white-space: normal;
    max-width: none;
    flex: 1 1 auto;
    padding: 10px 8px;
  }
  .ipn-dpsm .ipn-dpsm-funds td{
    padding: 4px 0;
  }
  .ipn-dpsm .ipn-dpsm-funds td:not([tab]){
    flex: 1 1 100%;
    max-width: none;
  }
  .ipn-dpsm .ipn-dpsm-funds .ipn-check-row,
  .ipn-dpsm .ipn-grid .ipn-check-row{
    display: flex;
    width: 100%;
    margin: 4px 0;
  }
  .ipn-dpsm .ipn-rpt-table th{
    font-size: 13px;
  }
}

/* =====================================================================
   AV: 2026-08-24: Reportes financieros ? scopes .ipn-pim / .ipn-ipa / .ipn-fcb / .ipn-fcp.
   AV: 2026-08-30: #131 ? tabs filtros con radio+gap; checkboxes en fila; thead --ipn-font.
   AV: 2026-08-31: #178 ? checkboxes de imputaci?n en una sola fila (nowrap + gap).
   ===================================================================== */
.ipn-pim .ipn-tabs{
  margin: 0 0 16px;
  padding: 0 8px;
  border: 1px solid var(--ipn-hairline, #e2e7ef);
  border-radius: var(--ipn-radius-card, 12px);
  background: var(--ipn-surface, #fff);
  box-shadow: none;
}
.ipn-pim .ipn-tabs + .ipn-card{
  margin-top: 0;
}
/* AV: 2026-08-31: #201 ? flex-direction:row; .ipn-field es column y apilaba los checks. */
.ipn-pim .ipn-field--c12{
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 10px 28px;
}
.ipn-pim .ipn-field--c12 .ipn-check-row{
  margin: 0;
  flex: 0 1 auto;
  white-space: nowrap;
}
/* AV: 2026-09-02: #244 ? mobile: checks uno debajo del otro (no romper ancho). */
@media (max-width: 700px){
  .ipn-pim .ipn-field--c12{
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 12px;
  }
  .ipn-pim .ipn-field--c12 .ipn-check-row{
    white-space: normal;
    max-width: 100%;
  }
}
.ipn-pim .ipn-rpt-table thead tr.ipn-rpt-cols th,
.ipn-pim .ipn-rpt-table thead tr.ipn-rpt-cols th.ipn-rpt-th{
  font-family: var(--ipn-font, "Inter", "IBM Plex Sans", sans-serif);
}
.ipn-pim .ipn-pim-results,
.ipn-ipa .ipn-ipa-results,
.ipn-fcb .ipn-fcb-results,
.ipn-fcp .ipn-fcp-results{
  margin-top: 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ipn-pim .ipn-select,
.ipn-ipa .ipn-select,
.ipn-fcb .ipn-select,
.ipn-fcp .ipn-select{
  width: 100%;
}
/* AV: 2026-09-02: #240 ? tabs filtros FCP (mismo chrome que PIM). */
/* AV: 2026-09-02: #240 ? tabs dentro del card de filtros (chrome global .ipn-tabs). */
.ipn-fcp .ipn-card__body > .ipn-tabs{
  margin: 0 0 16px;
}
/* AV: 2026-09-02: #240 ? checklist de sucursales en grilla. */
.ipn-fcp-stores{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 6px 10px;
  align-items: start;
}
.ipn-fcp-stores > .ipn-check-row:first-child,
.ipn-fcp-stores__group,
.ipn-fcp-stores__type{
  grid-column: 1 / -1;
}
.ipn-fcp-stores__group{
  margin-top: 8px;
}
.ipn-fcp-stores__type{
  margin-top: 4px;
  padding-left: 12px;
}
.ipn-fcp-stores__item{
  padding-left: 24px;
}
.ipn-fcp .ipn-fcp-time{
  display: block;
  margin-top: 2px;
  font-size: 11px;
  color: var(--ipn-muted, #5b6b82);
}
.ipn-fcp .ipn-rpt-table tbody tr.is-cancelled td,
.ipn-fcp .ipn-rpt-table tbody tr.is-cancelled td a{
  color: var(--ipn-danger, #b42318);
  text-decoration: line-through;
}
.ipn-fcp .ipn-rpt-table tbody tr.is-cancelled td a{
  text-decoration: line-through;
}
/* AV: 2026-09-01: #239 ? checkbox ?saldo cero? alineado con el datepicker (misma baseline). */
.ipn-fcb .ipn-field--align-end,
.ipn-fcp .ipn-field--align-end{
  justify-content: flex-end;
}
.ipn-fcb .ipn-field--align-end > .ipn-check-row,
.ipn-fcp .ipn-field--align-end > .ipn-check-row{
  min-height: var(--ipn-control-h, 42px);
  align-items: center;
  white-space: normal;
}
/* AV: 2026-09-02: #258 ? thead legible; texto largo sin acoplar; sin centrado forzado. */
.ipn-fcb .ipn-rpt-table thead tr.ipn-rpt-cols th,
.ipn-fcb .ipn-rpt-table thead tr.ipn-rpt-cols th.ipn-rpt-th{
  font-size: 13px;
  letter-spacing: .02em;
  text-align: left;
  white-space: nowrap;
}
.ipn-fcb .ipn-rpt-table thead tr.ipn-rpt-cols th.is-num{
  text-align: right;
}
/* AV: 2026-09-03: #274 ? celdas centradas en vertical (post-#258 thead/wrap). */
.ipn-fcb .ipn-rpt-table tbody td{
  vertical-align: middle;
  word-break: break-word;
  overflow-wrap: anywhere;
  white-space: normal;
}
.ipn-fcb .ipn-rpt-table tbody td.is-num{
  white-space: nowrap;
  text-align: right;
}
.ipn-fcb .ipn-table-wrap{
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
/* AV: 2026-09-01: #239 ? grilla con chrome cols; mono solo en importes. */
/* AV: 2026-09-02: #240 ? mismo chrome tipogr?fico en FCP. */
.ipn-fcb .ipn-rpt-table,
.ipn-fcb .ipn-rpt-table thead tr.ipn-rpt-cols th,
.ipn-fcb .ipn-rpt-table thead tr.ipn-rpt-cols th.ipn-rpt-th,
.ipn-fcb .ipn-rpt-table tbody td,
.ipn-fcp .ipn-rpt-table,
.ipn-fcp .ipn-rpt-table thead tr.ipn-rpt-cols th,
.ipn-fcp .ipn-rpt-table thead tr.ipn-rpt-cols th.ipn-rpt-th,
.ipn-fcp .ipn-rpt-table tbody td{
  font-family: var(--ipn-font, "Inter", "IBM Plex Sans", sans-serif);
}
.ipn-fcb .ipn-rpt-table td.is-num,
.ipn-fcb .ipn-rpt-table th.is-num,
.ipn-fcp .ipn-rpt-table td.is-num,
.ipn-fcp .ipn-rpt-table th.is-num{
  font-family: var(--ipn-font-mono, "IBM Plex Mono", ui-monospace, monospace);
}
@media (max-width: 700px){
  .ipn-fcb .ipn-field--align-end > .ipn-check-row,
  .ipn-fcp .ipn-field--align-end > .ipn-check-row{
    min-height: 0;
  }
  .ipn-fcp-stores__item{
    padding-left: 12px;
  }
}
.ipn-ipa .ipn-rpt-cmb-slot,
.ipn-ipa .ipn-ipa-subtype,
.ipn-ipa .ipn-ipa-category{
  min-height: 42px;
  display: block;
}
.ipn-ipa .ipn-rpt-cmb-slot select,
.ipn-ipa .ipn-ipa-subtype select,
.ipn-ipa .ipn-ipa-category select{
  width: 100%;
}
.ipn-pim .ipn-pim-ops{
  margin-top: 0;
}
.ipn-pim .ipn-rpt-table tbody tr.is-deleted td,
.ipn-pim .ipn-rpt-table tbody td[style*="line-through"]{
  color: var(--ipn-danger, #b42318);
}

/* =====================================================================
   AV: 2026-08-24: Rotacion productos (.ipn-srot) - filtros + grillas rotate.
   ===================================================================== */
.ipn-srot .ipn-select{
  width: 100%;
}
.ipn-srot .ipn-rpt-cmb-slot{
  min-height: 42px;
}
.ipn-srot .ipn-rpt-cmb-slot select{
  width: 100%;
}
.ipn-srot .ipn-tabs.tab_cnt_principal{
  margin: 0 0 14px;
}
.ipn-srot-store-radios,
.ipn-srot-views{
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  align-items: center;
  margin-bottom: 12px;
}
.ipn-srot-stores{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 6px 10px;
}
.ipn-srot-stores .ipn-rpt-cols__group-title,
.ipn-srot-store-type{
  grid-column: 1 / -1;
  margin-top: 8px;
  font-size: 13px;
  font-weight: 700;
  color: var(--ipn-rpt-ink, #16294d);
}
.ipn-srot-stores .ipn-rpt-cols__group-title:first-child{
  margin-top: 0;
}
.ipn-srot-help{
  font-size: 18px;
  vertical-align: middle;
  color: var(--ipn-muted, #5b6b82);
  cursor: help;
}
.ipn-srot-results{
  margin-top: 24px;
  overflow-x: auto;
}
.ipn-srot .ipn-srot-table{
  width: 100%;
  border-collapse: collapse;
}
.ipn-srot .ipn-srot-table th.rotate{
  height: 130px;
  border-top: 1px solid var(--ipn-border, #d8d8d8);
  border-bottom: 1px solid var(--ipn-border, #d8d8d8);
  white-space: nowrap;
  width: 20px !important;
  text-indent: 1em;
}
.ipn-srot .ipn-srot-table th.rotate > div{
  transform: translate(0px, 50px) rotate(270deg);
  width: 35px;
}
.ipn-srot .ipn-srot-table th.rotate > div > span{
  border-bottom: 1px solid #ccc;
  padding: 5px 10px;
}
.ipn-srot .colStores{
  min-width: 100px !important;
  width: 100px !important;
}
.ipn-srot .colStoresSales,
.ipn-srot .colStoresStock{
  min-width: 50px !important;
  width: 50px !important;
}
.ipn-srot .colProduct{
  min-width: 400px !important;
  width: 400px !important;
}

/* =====================================================================
   AV: 2026-08-24: Landing categorias Reportes - scope .ipn-rpt-land.
   ===================================================================== */
.ipn-rpt-land__grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 14px;
  margin-top: 8px;
}
.ipn-rpt-land__card{
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 16px 18px;
  border: 1px solid var(--ipn-border, #d9dee7);
  border-radius: 10px;
  background: var(--ipn-surface, #fff);
  text-decoration: none;
  color: inherit;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.ipn-rpt-land__card:hover{
  border-color: var(--ipn-brand, #e87722);
  box-shadow: 0 2px 10px rgba(22, 41, 77, 0.08);
}
.ipn-rpt-land__card-title{
  font-size: 15px;
  font-weight: 700;
  color: var(--ipn-rpt-ink, #16294d);
}
.ipn-rpt-land__card-desc{
  font-size: 13px;
  line-height: 1.4;
  color: var(--ipn-muted, #5b6b82);
}

/* =====================================================================
   AV: 2026-08-24: Art?culos comprados por proveedor (.ipn-ppi).
   Reutiliza .ipn-rpt-filter / popup export / grilla agrupada por proveedor.
   ===================================================================== */
.ipn-ppi .ipn-select{
  width: 100%;
}
.ipn-ppi .ipn-rpt-cmb-slot{
  min-height: 42px;
}
.ipn-ppi .ipn-rpt-cmb-slot select{
  width: 100%;
}
.ipn-ppi .ipn-ppi-results{
  margin-top: 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
/* AV: 2026-08-31: #199 ? thead proveedor con --ipn-font (Inter), no IBM Plex primero. */
.ipn-ppi .ipn-ppi-provider-head th{
  background: var(--ipn-surface-soft-2, #f5f7fa);
  font-family: var(--ipn-font, "Inter", "IBM Plex Sans", sans-serif);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: normal;
  text-transform: none;
  color: var(--ipn-text, #16294d);
}
.ipn-ppi .ipn-ppi-subtotal td,
.ipn-ppi .ipn-ppi-grand-total td{
  font-weight: 700;
  background: var(--ipn-surface-soft-2, #f5f7fa);
}
/* AV: 2026-09-02: #243 ? importes con tipograf?a del reporte (no mono; patr?n #209/#211/#213). */
.ipn-ppi .ipn-rpt-table td.is-num,
.ipn-ppi .ipn-rpt-table th.is-num{
  font-family: var(--ipn-font, "Inter", sans-serif);
}
#iPNpopUpDiv.ipn-ppi-export-popup{
  position: fixed !important;
  top: 105px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  margin-left: 0 !important;
  width: min(500px, calc(100vw - 32px)) !important;
  padding: 18px 20px !important;
  border-radius: 12px;
  background: var(--ipn-surface, #fff) !important;
  box-shadow: var(--ipn-shadow-elev);
  font-family: var(--ipn-font);
  color: var(--ipn-text);
  box-sizing: border-box;
}
.ipn-ppi-export-popup__qty{
  margin: 0 0 12px;
  font-size: 13px;
}
.ipn-ppi-export-popup__opts{
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0 0 8px;
}
.ipn-ppi-export-popup__warn{
  margin: 10px 0 0;
}

/* =====================================================================
   AV: 2026-08-24: Listado compras/gastos ? scopes .ipn-pl / .ipn-plbp.
   ===================================================================== */
.ipn-pl .ipn-page-head__actions,
.ipn-pl .ipn-select,
.ipn-plbp .ipn-select,
.ipn-pl .ipn-pl-ajax select,
.ipn-plbp .ipn-plbp-ajax select{
  width: 100%;
}
.ipn-pl .ipn-pl-ajax,
.ipn-plbp .ipn-plbp-ajax{
  min-height: 42px;
}
.ipn-pl .ipn-pl-ajax i,
.ipn-plbp .ipn-plbp-ajax i{
  font-size: 13px;
  color: var(--ipn-muted, #5b6b82);
}
.ipn-pl .ipn-pl-results,
.ipn-plbp .ipn-plbp-results{
  margin-top: 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.ipn-pl .ipn-rpt-table,
.ipn-plbp .ipn-rpt-table{
  width: 100%;
}
.ipn-pl .ipn-pl-total td,
.ipn-plbp .ipn-plbp-total td{
  font-weight: 700;
  background: var(--ipn-surface-soft-2, #f5f7fa);
}
/* AV: 2026-09-03: #293 ? tr.ipn-rpt-cols para ganar a thead tr.ipn-rpt-cols th.ipn-rpt-th (mismo patr?n #278). */
.ipn-pl .ipn-rpt-table thead tr.ipn-rpt-cols th[data-sort],
.ipn-plbp .ipn-rpt-table thead tr.ipn-rpt-cols th[data-sort]{
  cursor: pointer;
  user-select: none;
}
.ipn-pl .ipn-rpt-table thead tr.ipn-rpt-cols th.sorting-asc,
.ipn-pl .ipn-rpt-table thead tr.ipn-rpt-cols th.sorting-desc,
.ipn-plbp .ipn-rpt-table thead tr.ipn-rpt-cols th.sorting-asc,
.ipn-plbp .ipn-rpt-table thead tr.ipn-rpt-cols th.sorting-desc{
  color: var(--ipn-brand, #e87722);
}
.ipn-pl .colorVerde,
.ipn-plbp .colorVerde{
  color: var(--ipn-success, #1f8a4c);
}

/* =====================================================================
   AV: 2026-08-24: Compras por tipo/subtipo (.ipn-plbt) y por mes/proveedor (.ipn-pcm).
   ===================================================================== */
.ipn-plbt .ipn-page-head__actions,
.ipn-plbt .ipn-select,
.ipn-pcm .ipn-select{
  width: 100%;
}
.ipn-plbt .ipn-rpt-cmb-slot,
.ipn-pcm .ipn-rpt-cmb-slot,
.ipn-plbt .ipn-plbt-subtype,
.ipn-pcm .ipn-pcm-subtype{
  min-height: 42px;
  display: block;
}
.ipn-plbt .ipn-plbt-subtype select,
.ipn-pcm .ipn-pcm-subtype select{
  width: 100%;
}
.ipn-plbt-help{
  font-size: 18px;
  vertical-align: middle;
  color: var(--ipn-muted, #5b6b82);
  cursor: help;
  margin-left: 4px;
}
.ipn-plbt-results,
.ipn-pcm-results{
  margin-top: 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.ipn-plbt .ipn-rpt-table,
.ipn-pcm .ipn-rpt-table{
  width: 100%;
}
.ipn-plbt .ipn-plbt-group td{
  font-weight: 700;
  background: var(--ipn-surface-soft, #f1f5f9);
  color: var(--ipn-rpt-ink, #16294d);
  padding-top: 12px;
}
.ipn-plbt .ipn-plbt-subtotal td,
.ipn-plbt .ipn-plbt-total td,
.ipn-pcm .ipn-pcm-subtotal td,
.ipn-pcm .ipn-pcm-total td{
  font-weight: 700;
  background: var(--ipn-surface-soft-2, #f5f7fa);
}
.ipn-plbt .ipn-plbt-grand{
  color: var(--ipn-success, #027a48);
}
.ipn-plbt .ipn-plbt-comments td{
  font-size: 12px;
  color: var(--ipn-muted, #5b6b82);
  background: var(--ipn-surface-soft, #f8fafc);
  border-top: 0;
}
.ipn-plbt .ipn-plbt-spacer td{
  border: 0;
  height: 8px;
  background: transparent;
}
.ipn-pcm .ipn-pcm-detail-cell{
  padding-left: 30px;
}
.ipn-pcm .ipn-pcm-meta{
  padding-left: 17px;
  color: #9b9b9b;
  font-size: 12px;
}
.ipn-pcm .ipn-pcm-tree-toggle{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin: 0 4px 0 0;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--ipn-text-muted, #64748b);
  cursor: pointer;
  vertical-align: middle;
}
.ipn-pcm .ipn-pcm-tree-toggle:hover{
  background: var(--ipn-surface-soft, #f1f5f9);
  color: var(--ipn-rpt-ink, #16294d);
}
.ipn-pcm .ipn-pcm-tree-toggle .material-symbols-rounded{
  font-size: 20px;
}
.ipn-pcm .ipn-pcm-ops td{
  background: var(--ipn-surface-soft, #f8fafc);
}
.ipn-pcm .ipn-pcm-provider{
  cursor: pointer;
}

/* =====================================================================
   AV: 2026-09-03: MLA Procesos de sincronizaci?n (.ipn-mla-ts / -detail).
   Solo dominio: filtros, scroll-x grilla, popup Prism Body/Response.
   ===================================================================== */
/* AV: 2026-09-09: #514 - flush tabs->card/form (chrome #133); gap solo filtros->grilla. */
.ipn-mla-ts .ipn-tabs + .ipn-card,
.ipn-mla-ts .ipn-tabs + .ipn-card--table,
.ipn-mla-ts .ipn-tabs + form > .ipn-card{
  margin-top:0;
  border-top-left-radius:0;
  border-top-right-radius:0;
}
.ipn-mla-ts .ipn-tabs + form{ margin-top:0; }
.ipn-mla-ts form + .ipn-card,
.ipn-mla-ts .ipn-notice-stack + .ipn-tabs{ margin-top:16px; }
.ipn-mla-ts-filters{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:12px 16px;
}
.ipn-mla-ts-filters .ipn-field--sm{ flex:0 1 168px; min-width:140px; }
.ipn-mla-ts-filters .ipn-field--sm .ipn-datepicker,
.ipn-mla-ts-filters .ipn-field--sm .ipn-input{
  max-width:168px;
  width:100%;
  box-sizing:border-box;
}
.ipn-mla-ts-filters .ipn-datepicker{
  display:inline-flex;
  align-items:stretch;
  max-width:168px;
  width:168px;
}
.ipn-mla-ts-filters .ipn-datepicker input[data-input]{
  flex:1 1 auto;
  min-width:0;
  width:auto;
  height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  min-height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  padding:0 12px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-right:0;
  border-radius:var(--ipn-radius-input, 8px) 0 0 var(--ipn-radius-input, 8px);
  font:inherit;
  font-size:14px;
  color:var(--ipn-text);
  background:var(--ipn-surface);
  box-sizing:border-box;
}
.ipn-mla-ts-filters .ipn-datepicker input[data-input]:focus{
  outline:none;
  border-color:var(--ipn-brand, var(--ipn-primary));
  z-index:1;
}
.ipn-mla-ts-filters .ipn-datepicker__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  flex:0 0 42px;
  height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  min-height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-radius:0 var(--ipn-radius-input, 8px) var(--ipn-radius-input, 8px) 0;
  background:var(--ipn-surface-soft, #f5f7fb);
  color:var(--ipn-text-2, #5b6b80);
  cursor:pointer;
  padding:0;
}
.ipn-mla-ts-filters .ipn-datepicker__btn:hover{
  background:var(--ipn-surface);
  color:var(--ipn-brand, var(--ipn-primary));
}
.ipn-mla-ts-filters .ipn-datepicker__btn .material-symbols-rounded{ font-size:18px; }
.ipn-mla-ts-filters .ipn-secure-filters__actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
  margin-left:auto;
}
.ipn-mla-ts-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
.ipn-mla-ts .ipn-card--table{ overflow:visible; }
.ipn-mla-ts .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-mla-ts .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-mla-ts-detail .ipn-page-title{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:8px;
  min-width:0;
}
.ipn-mla-ts-detail .ipn-page-title__label{
  flex:0 0 auto;
  white-space:nowrap;
}
.ipn-mla-ts-detail .ipn-page-title__entity{
  flex:1 1 auto;
  min-width:0;
  font-size:16px;
  font-weight:600;
  color:var(--ipn-text-2, #55606f);
  line-height:1.3;
  overflow-wrap:anywhere;
}
.ipn-mla-ts-detail .ipn-dl + .ipn-table-wrap,
.ipn-mla-ts-detail .ipn-form-section__title + .ipn-table-wrap{ margin-top:16px; }
.ipn-mla-ts__status{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.ipn-mla-ts__status .material-symbols-rounded{
  font-size:18px;
  color:var(--ipn-muted, #5b6b80);
  vertical-align:middle;
}
/* Popup detalle log MLA (Prism Body/Response) */
body.ipn2:has(.ipn-mla-ts-detail) #iPNpopUpDiv.iPNpopUpDiv,
#iPNpopUpDiv.ipn-mla-ts-popup{
  height:auto;
  max-height:85vh;
  width:min(70vw, 920px);
  max-width:calc(100vw - 24px);
  overflow:auto;
  padding:20px 22px;
  box-sizing:border-box;
}
.ipn-mla-ts-popup .ipn-mla-ts-popup__title{
  margin:0 0 14px;
  font-size:18px;
  font-weight:700;
}
.ipn-mla-ts-popup .ipn-dl{ margin-bottom:12px; }
.ipn-mla-ts-popup__tabs{
  display:flex;
  gap:0;
  list-style:none;
  margin:0 0 0;
  padding:0;
  width:100%;
  max-width:320px;
}
.ipn-mla-ts-popup__tabs li{ flex:1 1 0; min-width:0; }
.ipn-mla-ts-popup__tabs a{
  display:block;
  text-align:center;
  text-decoration:none;
  color:var(--ipn-text);
  padding:8px 0;
  background:var(--ipn-surface-soft, #eee);
  border-radius:8px 8px 0 0;
}
.ipn-mla-ts-popup__tabs a:hover{ background:var(--ipn-surface-soft-2, #ccc); }
.ipn-mla-ts-popup__tabs .ipn-mla-ts-popup__indicator{
  display:block;
  width:50%;
  height:4px;
  margin:-4px auto 0;
  background:var(--ipn-brand, #365ABA);
  visibility:hidden;
  border-radius:2px;
}
.ipn-mla-ts-popup__tabs li.is-active .ipn-mla-ts-popup__indicator,
.ipn-mla-ts-popup__tabs .ipn-mla-ts-popup__indicator.is-visible{
  visibility:visible;
}
.ipn-mla-ts-popup .ipn-mla-ts-popup__pre{
  margin:0;
  padding:12px 14px;
  border-left:4px solid var(--ipn-brand, #365ABA);
  background:var(--ipn-surface-soft, #eee);
  overflow:auto;
  min-height:40vh;
  max-height:48vh;
  font-size:13px;
}
.ipn-mla-ts-popup .ipn-mla-ts-popup__actions{
  margin-top:16px;
  display:flex;
  justify-content:flex-start;
}
body:has(.ipn-mla-ts) .flatpickr-calendar{
  font-family:var(--ipn-font);
}
@media (max-width:700px){
  .ipn-mla-ts-filters{ flex-direction:column; align-items:stretch; }
  .ipn-mla-ts-filters .ipn-field--sm,
  .ipn-mla-ts-filters .ipn-field--sm .ipn-datepicker,
  .ipn-mla-ts-filters .ipn-field--sm .ipn-input,
  .ipn-mla-ts-filters .ipn-datepicker{ max-width:100%; width:100%; }
  .ipn-mla-ts-filters .ipn-secure-filters__actions{
    width:100%;
    flex:1 1 auto;
    flex-direction:column;
    align-items:stretch;
    margin-left:0;
  }
  .ipn-mla-ts-filters .ipn-secure-filters__actions .ipn-btn{
    flex:1 1 auto;
    width:100%;
    min-height:var(--ipn-touch-min,44px);
    justify-content:center;
    box-sizing:border-box;
  }
}
@media (max-width:899px){
  .ipn-mla-ts .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-mla-ts .ipn-table--list .ipn-table__th-desc,
  .ipn-mla-ts .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}

/* AV: 2026-09-03: MLA applications ? scope .ipn-mla-app (listado/detalle/forms) */
/* AV: 2026-09-07: #414 ? acciones en fila (nowrap); settings/auditor?a viven en el detalle. */
.ipn-mla-app{
  min-width:0;
}
.ipn-mla-app .ipn-card--table,
.ipn-mla-app .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow:visible;
}
.ipn-mla-app .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-mla-app .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-mla-app .ipn-table--list th.is-center,
.ipn-mla-app .ipn-table--list td.is-center{
  white-space:nowrap;
  width:1%;
  overflow:visible;
}
.ipn-mla-app .ipn-row-actions{
  flex-wrap:nowrap;
  justify-content:center;
  gap:2px;
}
.ipn-mla-app__setting-undefined td{
  background:#fff7f7;
}
.ipn-mla-app__time{
  display:flex;
  gap:8px;
  align-items:center;
  max-width:220px;
}
.ipn-mla-app__time .ipn-select{
  flex:1 1 0;
  min-width:0;
}
.ipn-mla-app__store-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:10px 16px;
}
.ipn-mla-app-form .ipn-field{ min-width:0; }
.ipn-mla-app-form .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
}
.ipn-mla-app-form .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ipn-mla-app-form__after-dl{ margin-top:16px; }
/* AV: 2026-09-09: #513 - dl de settingAdd: wrap en mobile (espejo TDN #505). */
.ipn-mla-app-form .ipn-dl{
  min-width:0;
  max-width:100%;
}
.ipn-mla-app-form .ipn-dl__row{
  min-width:0;
}
.ipn-mla-app-form .ipn-dl__value{
  min-width:0;
  overflow-wrap:anywhere;
  word-break:break-word;
}
/* AV: 2026-09-07: #460 - labels con help inline (mismo alto que Proceso). */
.ipn-mla-app-form .ipn-label{
  display:inline-flex;
  align-items:center;
  flex-wrap:wrap;
  gap:2px 4px;
  line-height:1.35;
}
.ipn-mla-app-form .ipn-icon-btn,
.ipn-mla-app .ipn-icon-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px;
  height:18px;
  margin:0 0 0 2px;
  padding:0;
  border:0;
  border-radius:6px;
  background:transparent;
  color:var(--ipn-text-muted, #64748b);
  cursor:pointer;
  vertical-align:middle;
  flex:0 0 auto;
}
.ipn-mla-app-form .ipn-icon-btn:hover,
.ipn-mla-app .ipn-icon-btn:hover{
  background:rgba(47,98,196,.08);
  color:var(--ipn-brand, #2f62c4);
}
.ipn-mla-app-form .ipn-icon-btn .material-symbols-rounded,
.ipn-mla-app .ipn-icon-btn .material-symbols-rounded{
  font-size:16px;
  line-height:1;
}
/* AV: 2026-09-07: #460 - Flatpickr chrome iPN2 en addSync (espejo TDN). */
.ipn-mla-app-form .ipn-datepicker{
  display:inline-flex;
  align-items:stretch;
  max-width:220px;
  width:100%;
  box-sizing:border-box;
}
.ipn-mla-app-form .ipn-datepicker input[data-input]{
  flex:1 1 auto;
  min-width:0;
  width:auto;
  height:var(--ipn-control-h, 42px);
  padding:0 12px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-right:0;
  border-radius:var(--ipn-radius-input, 8px) 0 0 var(--ipn-radius-input, 8px);
  font:inherit;
  font-size:13px;
  color:var(--ipn-text);
  background:var(--ipn-surface);
  box-sizing:border-box;
}
.ipn-mla-app-form .ipn-datepicker input[data-input]:focus{
  outline:none;
  border-color:var(--ipn-brand, var(--ipn-primary));
  z-index:1;
}
.ipn-mla-app-form .ipn-datepicker__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  flex:0 0 42px;
  height:var(--ipn-control-h, 42px);
  min-height:var(--ipn-control-h, 42px);
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-radius:0 var(--ipn-radius-input, 8px) var(--ipn-radius-input, 8px) 0;
  background:var(--ipn-surface-soft, #f5f7fb);
  color:var(--ipn-text-2, #5b6b80);
  cursor:pointer;
  padding:0;
  line-height:1;
  box-sizing:border-box;
}
.ipn-mla-app-form .ipn-datepicker__btn:hover{
  background:var(--ipn-surface);
  color:var(--ipn-brand, var(--ipn-primary));
}
.ipn-mla-app-form .ipn-datepicker__btn .material-symbols-rounded{
  font-size:18px;
  line-height:1;
  display:block;
}
body:has(.ipn-mla-app) .flatpickr-calendar{
  font-family:var(--ipn-font);
  z-index:4000 !important;
}
@media (max-width:899px){
  .ipn-mla-app .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-mla-app .ipn-table--list .ipn-table__th-desc,
  .ipn-mla-app .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}
@media (max-width:700px){
  .ipn-mla-app__store-grid{ grid-template-columns:minmax(0,1fr); }
  .ipn-mla-app .ipn-table--list th,
  .ipn-mla-app .ipn-table--list td{ padding:8px 10px; }
  .ipn-mla-app-form .ipn-datepicker{ max-width:none; width:100%; }
  /* AV: 2026-09-09: #513 - Descripcion no desborda: label/value en columna. */
  .ipn-mla-app-form .ipn-dl__row{
    flex-direction:column;
    align-items:stretch;
    gap:4px;
  }
  .ipn-mla-app-form .ipn-dl__label,
  .ipn-mla-app-form .ipn-dl__value{
    flex:0 0 auto;
    width:100%;
    max-width:100%;
  }
}

/* AV: 2026-09-10: #535 ? MLA templates scope .ipn-mla-tpl (listado/detalle/forms) */
.ipn-mla-tpl{
  min-width:0;
}
.ipn-mla-tpl .ipn-card--table,
.ipn-mla-tpl .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow:visible;
}
.ipn-mla-tpl .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-mla-tpl .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-mla-tpl__desc{
  overflow:auto;
  max-height:200px;
  overflow-wrap:anywhere;
}
.ipn-mla-tpl-form .ipn-field{ min-width:0; }
.ipn-mla-tpl-form .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
}
.ipn-mla-tpl-form .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ipn-mla-tpl__categories{
  display:flex;
  flex-direction:column;
  gap:12px;
  min-width:0;
}
.ipn-mla-tpl__categories > span{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  min-width:0;
}
.ipn-mla-tpl__categories .ipn-select{
  flex:1 1 220px;
  min-width:0;
  max-width:100%;
}
.ipn-mla-tpl__shipping{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-width:0;
}
.ipn-mla-tpl__shipping-methods{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding-left:24px;
  min-width:0;
}
.ipn-mla-tpl__summernote,
.ipn-mla-tpl-form .note-editor{
  max-width:100%;
}
.ipn-mla-tpl-form .ipn-icon-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  border:1px solid var(--ipn-border, #d0d5dd);
  border-radius:8px;
  background:var(--ipn-surface, #fff);
  color:var(--ipn-text-muted, #667085);
  cursor:pointer;
  flex:0 0 auto;
}
.ipn-mla-tpl-form .ipn-icon-btn:hover{
  background:var(--ipn-surface-soft, #f2f4f7);
  color:var(--ipn-text, #101828);
}
.ipn-mla-tpl-form .ipn-icon-btn .material-symbols-rounded{
  font-size:18px;
}
@media (max-width:899px){
  .ipn-mla-tpl .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-mla-tpl .ipn-table--list .ipn-table__th-desc,
  .ipn-mla-tpl .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
  .ipn-mla-tpl .ipn-table--list th,
  .ipn-mla-tpl .ipn-table--list td{ padding:8px 10px; }
}

/* AV: 2026-09-04: TDN applications ? scope .ipn-tdn-app (listado/forms; espejo MLA) */
.ipn-tdn-app{
  min-width:0;
}
.ipn-tdn-app .ipn-card--table,
.ipn-tdn-app .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow:visible;
}
.ipn-tdn-app .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-tdn-app .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-tdn-app .ipn-row-actions{
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:2px;
}
.ipn-tdn-app__setting-undefined td{
  background:#fff7f7;
}
.ipn-tdn-app__time{
  display:flex;
  gap:8px;
  align-items:center;
  max-width:220px;
}
.ipn-tdn-app__time .ipn-select{
  flex:1 1 0;
  min-width:0;
}
.ipn-tdn-app__store-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:10px 16px;
}
.ipn-tdn-app-form .ipn-field{ min-width:0; }
.ipn-tdn-app-form .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
}
.ipn-tdn-app-form .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ipn-tdn-app-form__after-dl{ margin-top:16px; }
/* AV: 2026-09-07: #460 - labels con help inline (mismo alto que Proceso). */
.ipn-tdn-app-form .ipn-label{
  display:inline-flex;
  align-items:center;
  flex-wrap:wrap;
  gap:2px 4px;
  line-height:1.35;
}
.ipn-tdn-app-form .ipn-icon-btn,
.ipn-tdn-app .ipn-icon-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px;
  height:18px;
  margin:0 0 0 2px;
  padding:0;
  border:0;
  border-radius:6px;
  background:transparent;
  color:var(--ipn-text-muted, #64748b);
  cursor:pointer;
  vertical-align:middle;
  flex:0 0 auto;
}
.ipn-tdn-app-form .ipn-icon-btn:hover,
.ipn-tdn-app .ipn-icon-btn:hover{
  background:rgba(47,98,196,.08);
  color:var(--ipn-brand, #2f62c4);
}
.ipn-tdn-app-form .ipn-icon-btn .material-symbols-rounded,
.ipn-tdn-app .ipn-icon-btn .material-symbols-rounded{
  font-size:16px;
  line-height:1;
}
/* AV: 2026-09-07: #460 - Flatpickr chrome iPN2 en addSync (fecha de ejecucion). */
/* AV: 2026-09-09: #505 - datepicker al 100% del field (misma columna que selects). */
.ipn-tdn-app-form .ipn-datepicker{
  display:flex;
  align-items:stretch;
  max-width:none;
  width:100%;
  box-sizing:border-box;
}
/* AV: 2026-09-09: #505 - dl de settingAdd: wrap en mobile (no es detail-layout). */
.ipn-tdn-app-form .ipn-dl{
  min-width:0;
  max-width:100%;
}
.ipn-tdn-app-form .ipn-dl__row{
  min-width:0;
}
.ipn-tdn-app-form .ipn-dl__value{
  min-width:0;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.ipn-tdn-app-form .ipn-datepicker input[data-input]{
  flex:1 1 auto;
  min-width:0;
  width:auto;
  height:var(--ipn-control-h, 42px);
  padding:0 12px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-right:0;
  border-radius:var(--ipn-radius-input, 8px) 0 0 var(--ipn-radius-input, 8px);
  font:inherit;
  font-size:13px;
  color:var(--ipn-text);
  background:var(--ipn-surface);
  box-sizing:border-box;
}
.ipn-tdn-app-form .ipn-datepicker input[data-input]:focus{
  outline:none;
  border-color:var(--ipn-brand, var(--ipn-primary));
  z-index:1;
}
.ipn-tdn-app-form .ipn-datepicker__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  flex:0 0 42px;
  height:var(--ipn-control-h, 42px);
  min-height:var(--ipn-control-h, 42px);
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-radius:0 var(--ipn-radius-input, 8px) var(--ipn-radius-input, 8px) 0;
  background:var(--ipn-surface-soft, #f5f7fb);
  color:var(--ipn-text-2, #5b6b80);
  cursor:pointer;
  padding:0;
  line-height:1;
  box-sizing:border-box;
}
.ipn-tdn-app-form .ipn-datepicker__btn:hover{
  background:var(--ipn-surface);
  color:var(--ipn-brand, var(--ipn-primary));
}
.ipn-tdn-app-form .ipn-datepicker__btn .material-symbols-rounded{
  font-size:18px;
  line-height:1;
  display:block;
}
body:has(.ipn-tdn-app) .flatpickr-calendar{
  font-family:var(--ipn-font);
  z-index:4000 !important;
}
@media (max-width:899px){
  .ipn-tdn-app .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-tdn-app .ipn-table--list .ipn-table__th-desc,
  .ipn-tdn-app .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}
@media (max-width:700px){
  .ipn-tdn-app__store-grid{ grid-template-columns:minmax(0,1fr); }
  .ipn-tdn-app .ipn-table--list th,
  .ipn-tdn-app .ipn-table--list td{ padding:8px 10px; }
  .ipn-tdn-app-form .ipn-datepicker{ max-width:none; width:100%; }
  /* AV: 2026-09-09: #505 - Descripcion no desborda: label/value en columna. */
  .ipn-tdn-app-form .ipn-dl__row{
    flex-direction:column;
    align-items:stretch;
    gap:4px;
  }
  .ipn-tdn-app-form .ipn-dl__label,
  .ipn-tdn-app-form .ipn-dl__value{
    flex:0 0 auto;
    width:100%;
    max-width:100%;
  }
  .ipn-tdn-app__time{ max-width:none; width:100%; }
}

/* AV: 2026-09-10: #536 VTEX account ? scope .ipn-vtex-account (listado/forms; espejo TDN/MLA). */
.ipn-vtex-account{
  min-width:0;
}
.ipn-vtex-account .ipn-card--table,
.ipn-vtex-account .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow:visible;
}
.ipn-vtex-account .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-vtex-account .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-vtex-account .ipn-table--list th.is-center,
.ipn-vtex-account .ipn-table--list td.is-center{
  white-space:nowrap;
  width:1%;
  overflow:visible;
}
.ipn-vtex-account .ipn-row-actions{
  flex-wrap:nowrap;
  justify-content:center;
  gap:2px;
}
.ipn-vtex-account__setting-undefined td{
  background:#fff7f7;
}
.ipn-vtex-account__time{
  display:flex;
  gap:8px;
  align-items:center;
  max-width:220px;
}
.ipn-vtex-account__time .ipn-select{
  flex:1 1 0;
  min-width:0;
}
.ipn-vtex-account__store-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:10px 16px;
}
.ipn-vtex-account-form .ipn-field{ min-width:0; }
.ipn-vtex-account-form .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
}
.ipn-vtex-account-form .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ipn-vtex-account-form__after-dl{ margin-top:16px; }
.ipn-vtex-account-form .ipn-dl{
  min-width:0;
  max-width:100%;
}
.ipn-vtex-account-form .ipn-dl__row{
  min-width:0;
}
.ipn-vtex-account-form .ipn-dl__value{
  min-width:0;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.ipn-vtex-account-form .ipn-datepicker{
  display:inline-flex;
  align-items:stretch;
  max-width:220px;
  width:100%;
  box-sizing:border-box;
}
.ipn-vtex-account-form .ipn-datepicker input[data-input]{
  flex:1 1 auto;
  min-width:0;
  width:auto;
  height:var(--ipn-control-h, 42px);
  padding:0 12px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-right:0;
  border-radius:var(--ipn-radius-input, 8px) 0 0 var(--ipn-radius-input, 8px);
  font:inherit;
  font-size:13px;
  color:var(--ipn-text);
  background:var(--ipn-surface);
  box-sizing:border-box;
}
.ipn-vtex-account-form .ipn-datepicker input[data-input]:focus{
  outline:none;
  border-color:var(--ipn-brand, var(--ipn-primary));
  z-index:1;
}
.ipn-vtex-account-form .ipn-datepicker__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  flex:0 0 42px;
  height:var(--ipn-control-h, 42px);
  min-height:var(--ipn-control-h, 42px);
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-radius:0 var(--ipn-radius-input, 8px) var(--ipn-radius-input, 8px) 0;
  background:var(--ipn-surface-soft, #f5f7fb);
  color:var(--ipn-text-2, #5b6b80);
  cursor:pointer;
  padding:0;
  line-height:1;
  box-sizing:border-box;
}
.ipn-vtex-account-form .ipn-datepicker__btn:hover{
  background:var(--ipn-surface);
  color:var(--ipn-brand, var(--ipn-primary));
}
.ipn-vtex-account-form .ipn-datepicker__btn .material-symbols-rounded{
  font-size:18px;
  line-height:1;
  display:block;
}
body:has(.ipn-vtex-account) .flatpickr-calendar{
  font-family:var(--ipn-font);
  z-index:4000 !important;
}
@media (max-width:899px){
  .ipn-vtex-account .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-vtex-account .ipn-table--list .ipn-table__th-desc,
  .ipn-vtex-account .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}
@media (max-width:700px){
  .ipn-vtex-account__store-grid{ grid-template-columns:minmax(0,1fr); }
  .ipn-vtex-account .ipn-table--list th,
  .ipn-vtex-account .ipn-table--list td{ padding:8px 10px; }
  .ipn-vtex-account-form .ipn-datepicker{ max-width:none; width:100%; }
  .ipn-vtex-account-form .ipn-dl__row{
    flex-direction:column;
    align-items:stretch;
    gap:4px;
  }
  .ipn-vtex-account-form .ipn-dl__label,
  .ipn-vtex-account-form .ipn-dl__value{
    flex:0 0 auto;
    width:100%;
    max-width:100%;
  }
  .ipn-vtex-account__time{ max-width:none; width:100%; }
}

/* AV: 2026-09-03: Planes de financiacion - listado iPN2 (scope .ipn-plans). */
.ipn-plans{
  min-width:0;
  max-width:100%;
}
.ipn-plans .ipn-card--table,
.ipn-plans .ipn-table-wrap{
  max-width:100%;
  min-width:0;
}
.ipn-plans .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-plans .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-plans-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-plans-filters .ipn-field--grow{ flex:1 1 200px; min-width:180px; }
.ipn-plans-filters .ipn-field .ipn-select,
.ipn-plans-filters .ipn-field select.ipn-select{
  min-width:140px;
}
.ipn-plans-filters__deleted{
  flex:0 0 auto;
  margin:0;
  align-self:flex-end;
  min-height:42px;
  display:inline-flex;
  align-items:center;
}
.ipn-plans-filters .ipn-secure-filters__actions{
  margin-left:auto;
  flex:0 0 auto;
  gap:8px;
}
.ipn-plans-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
.ipn-plans__deleted{
  color:#b42318;
  text-decoration:line-through;
}
@media (max-width:899px){
  .ipn-plans .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-plans .ipn-table--list .ipn-table__th-desc,
  .ipn-plans .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}
@media (max-width:700px){
  .ipn-plans-filters{ flex-direction:column; align-items:stretch; }
  .ipn-plans-filters .ipn-field,
  .ipn-plans-filters .ipn-field--grow{ min-width:0; flex:1 1 auto; width:100%; }
  .ipn-plans-filters__deleted{
    width:100%;
    min-height:var(--ipn-touch-min,44px);
    white-space:normal;
    align-self:stretch;
  }
  .ipn-plans-filters__deleted > span{
    min-width:0;
    flex:1 1 auto;
    overflow-wrap:anywhere;
    line-height:1.35;
  }
  .ipn-plans-filters .ipn-secure-filters__actions{
    margin-left:0;
    width:100%;
    flex-direction:column;
  }
  .ipn-plans-filters .ipn-secure-filters__actions .ipn-btn{
    width:100%;
    justify-content:center;
  }
  .ipn-plans .ipn-table--list th,
  .ipn-plans .ipn-table--list td{ padding:8px 10px; }
}

/* AV: 2026-09-07: #336 ? detalle/form planes (filter tabs, weekDays, tip help). */
.ipn-plans-detail .ipn-detail-main,
.ipn-plans-form{
  min-width:0;
  max-width:100%;
}
/* AV: 2026-09-08: #473 - tabla Informacion shrink-wrap (sin max-width de card/pagina). */
.ipn-plans-form .ipn-plans-form-table{
  width:auto;
  max-width:100%;
  border-collapse:collapse;
}
.ipn-plans-form .ipn-plans-form-table table{
  width:100%;
  border-collapse:collapse;
}
.ipn-plans-form .ipn-plans-form-table > tbody > tr > td,
.ipn-plans-form .ipn-plans-form-table table td{
  padding:8px 0;
  vertical-align:middle;
  border:0;
}
/* AV: 2026-09-07: #443 ? label col + controles con tope (patron offers; sin max-width de pagina). */
.ipn-plans-form .ipn-plans-form-table table > tbody > tr > td:first-child:not([colspan]){
  width:240px;
  padding-right:12px;
  color:var(--ipn-text-2, #5b6b80);
  font-size:13px;
  vertical-align:top;
}
/* AV: 2026-09-08: #473 - unificar texto + select a min(420px); sm/fecha aparte. */
.ipn-plans-form .ipn-plans-form-table .ipn-input:not(.ipn-input--sm):not(.datePickerContent),
.ipn-plans-form .ipn-plans-form-table .ipn-select{
  width:min(420px, calc(100% - 28px));
  min-width:0;
  max-width:calc(100% - 28px);
  box-sizing:border-box;
  display:inline-block;
  vertical-align:middle;
}
.ipn-plans-form .ipn-plans-form-table .ipn-input.ipn-input--sm,
.ipn-plans-form .ipn-input.ipn-input--sm,
.ipn-plans-form .ipn-plans-form-table .ipn-input.input70,
.ipn-plans-form .ipn-input.input70{
  width:90px;
  min-width:0;
  max-width:120px;
}
.ipn-plans-form .ipn-plans-form-table .ipn-req,
.ipn-plans-form .ipn-plans-form-table .ipn-help,
.ipn-plans-form .ipn-tabs__item .ipn-help{
  display:inline-flex;
  align-items:center;
  vertical-align:middle;
  white-space:nowrap;
  flex:0 0 auto;
}
.ipn-plans-form .ipn-tabs__item{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.ipn-plans-form .ipn-plans-dates,
.ipn-plans-form .ipn-plans-vigencia{
  display:inline-flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
}
.ipn-plans-form .ipn-datepicker{
  display:inline-flex;
  align-items:stretch;
  width:150px;
  max-width:100%;
}
.ipn-plans-form .ipn-datepicker .ipn-input,
.ipn-plans-form .ipn-datepicker [data-input]{
  flex:1 1 auto;
  min-width:0;
  width:auto;
  height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  padding:0 12px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-right:0;
  border-radius:var(--ipn-radius-input, 8px) 0 0 var(--ipn-radius-input, 8px);
  font:inherit;
  font-size:14px;
  color:var(--ipn-text);
  background:var(--ipn-surface);
  box-sizing:border-box;
  box-shadow:none;
}
.ipn-plans-form .ipn-datepicker .ipn-input:focus,
.ipn-plans-form .ipn-datepicker [data-input]:focus{
  outline:none;
  border-color:var(--ipn-brand, var(--ipn-primary));
  box-shadow:none;
  z-index:1;
}
.ipn-plans-form .ipn-datepicker__btn{
  flex:0 0 42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-radius:0 var(--ipn-radius-input, 8px) var(--ipn-radius-input, 8px) 0;
  background:var(--ipn-surface-soft, #f5f7fb);
  color:var(--ipn-text-2, #5b6b80);
  cursor:pointer;
  padding:0;
  box-sizing:border-box;
}
.ipn-plans-form .ipn-datepicker__btn:hover{
  background:var(--ipn-surface);
  color:var(--ipn-brand, var(--ipn-primary));
}
.ipn-plans-form .ipn-datepicker__btn .material-symbols-rounded{ font-size:18px; }
.ipn-plans-form .ipn-plans-filter-panel,
.ipn-plans-form table[id^="tb_"].ipn-plans-filter-panel{
  width:100%;
  margin-top:12px;
  border:1px solid var(--ipn-border, #d0d5dd);
  border-radius:12px;
  background:#fff;
  padding:12px 14px;
  border-collapse:separate;
}
.ipn-plans-form .ipn-plans-filter-panel td{
  border:0;
  padding:6px 0;
  vertical-align:middle;
}
/* AV: 2026-09-07: #443 ? filas Marca/Articulos flex (sin float/br); iconos inline. */
.ipn-plans-form .ipn-plans-filter-row{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:nowrap;
  margin:0 0 10px;
  max-width:min(480px, 100%);
}
.ipn-plans-form .ipn-plans-filter-row .ipn-select,
.ipn-plans-form .ipn-plans-filter-row select.ipn-select,
.ipn-plans-form .ipn-plans-filter-row .flexselect_input,
.ipn-plans-form .ipn-plans-filter-row input.ipn-input{
  flex:1 1 auto;
  min-width:0;
  width:auto;
  max-width:none;
}
.ipn-plans-form .ipn-plans-filter-row .ipn-icon-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:32px;
  height:32px;
  margin:0;
  padding:0;
  border:0;
  border-radius:8px;
  background:transparent;
  color:var(--ipn-brand, #1e60a2);
  cursor:pointer;
  vertical-align:middle;
  line-height:1;
}
.ipn-plans-form .ipn-plans-filter-row .ipn-icon-btn:hover{
  background:rgba(47,98,196,.08);
}
.ipn-plans-form .ipn-plans-filter-row .ipn-icon-btn--danger{
  color:#b42318;
}
.ipn-plans-form .ipn-plans-filter-row .ipn-icon-btn--danger:hover{
  background:#fdeaea;
}
.ipn-plans-form .ipn-plans-filter-row .ipn-icon-btn .material-symbols-rounded{
  font-size:20px;
}
.ipn-plans-form .ipn-plans-filter-row br{ display:none; }
/* AV: 2026-09-07: #462 ? gap lead?tabs; attrsearch form-sized (no report 12.5px). */
.ipn-plans-form .ipn-plans-filter-lead{
  padding:0 0 18px;
  color:var(--ipn-text-2, #5b6b80);
  font-size:14px;
  line-height:1.45;
  vertical-align:top;
}
.ipn-plans-form .ipn-plans-filter-tabs{
  margin-top:2px;
}
.ipn-plans-form .ipn-plans-filter-panel .ipn-rpt-attrsearch{
  margin-top:4px;
  font-family:var(--ipn-font);
  font-size:14px;
  color:var(--ipn-text);
}
.ipn-plans-form .ipn-rpt-attrsearch .ipn-field__label{
  font-size:13px;
  color:var(--ipn-text-2, #5b6b80);
}
.ipn-plans-form .ipn-rpt-attrsearch .ipn-select,
.ipn-plans-form .ipn-rpt-attrsearch select,
.ipn-plans-form .ipn-rpt-attrsearch .ipn-attrsearch__slot select,
.ipn-plans-form .ipn-rpt-attrsearch .ipn-attrsearch__slot input[type="text"]{
  width:100%;
  max-width:100%;
  height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  padding:0 12px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-radius:var(--ipn-radius-input, 8px);
  background:var(--ipn-surface, #fff);
  font:inherit;
  font-size:14px;
  color:var(--ipn-text);
  box-sizing:border-box;
}
.ipn-plans-form .ipn-rpt-attrsearch .ipn-attrsearch__slot{
  min-height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  align-items:center;
  color:var(--ipn-text-2, #5b6b80);
  font-size:14px;
}
.ipn-plans-form .ipn-rpt-attrsearch .ipn-attrsearch__slot i{
  font-style:normal;
  color:var(--ipn-text-3, #6b7685);
}
.ipn-plans-form .ipn-plans-price-row{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 8px;
  max-width:min(320px, 100%);
}
.ipn-plans-form .ipn-plans-price-row > span{
  flex:0 0 52px;
  color:var(--ipn-text-2, #5b6b80);
  font-size:13px;
}
.ipn-plans-form .ipn-plans-price-row .ipn-input{
  flex:1 1 auto;
  min-width:0;
}
.ipn-plans-form .ipn-plans-stores{
  width:100%;
  border-collapse:collapse;
}
.ipn-plans-form .ipn-plans-stores td{
  padding:6px 10px 6px 0;
  vertical-align:middle;
  border:0;
}
.ipn-plans-detail .ipn-plans-panel__hint .ipn-icon-btn,
.ipn-plans-detail #financialPlanItemsQtip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  margin-left:6px;
  padding:0;
  border:0;
  border-radius:6px;
  background:transparent;
  color:var(--ipn-muted, #667085);
  cursor:help;
  vertical-align:middle;
}
.ipn-plans-detail .ipn-plans-panel__hint .ipn-icon-btn:hover,
.ipn-plans-detail #financialPlanItemsQtip:hover{
  background:rgba(47,98,196,.08);
  color:var(--ipn-brand, #1e60a2);
}
.ipn-plans-detail .ipn-plans-panel__hint .ipn-icon-btn .material-symbols-rounded,
.ipn-plans-detail #financialPlanItemsQtip .material-symbols-rounded{
  font-size:18px;
}
.ipn-plans-detail #attrItemSearchTD,
.ipn-plans-form #tb_3{
  font-family:var(--ipn-font);
  font-size:14px;
  color:var(--ipn-text);
}
.ipn-plans-detail #attrItemSearchTD table,
.ipn-plans-form #tb_3 table{
  width:100%;
  border-collapse:collapse;
}
.ipn-plans-detail #attrItemSearchTD td,
.ipn-plans-form #tb_3 td{
  padding:6px 0;
  vertical-align:middle;
  border:0;
}
.ipn-plans .ipn-help,
.ipn-plans .ipn-tip-help{
  vertical-align:middle;
  cursor:help;
  color:var(--ipn-muted, #667085);
  font-size:18px;
}
.ipn-plans-form .weekDays-selector{
  -webkit-user-select:none;
  user-select:none;
}
.ipn-plans-form .weekDays-selector input{ display:none !important; }
.ipn-plans-form .weekDays-selector input[type=checkbox] + label{
  display:inline-block;
  border-radius:4px;
  background:#dddddd;
  height:40px;
  width:100px;
  margin-right:3px;
  margin-bottom:6px;
  line-height:40px;
  text-align:center;
  cursor:pointer;
}
.ipn-plans-form .weekDays-selector input[type=checkbox]:checked + label{
  background:var(--ipn-plans-day-bg, var(--ipn-brand, #1e60a2));
  color:var(--ipn-plans-day-fg, #fff);
}
.ipn-plans-form .weekDays-selector input[type=checkbox]:checked + .checkAll{
  background:var(--ipn-plans-day-all, #06325d);
  color:var(--ipn-plans-day-fg, #fff);
}
.ipn-plans-filter-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:0 0 12px;
  padding:0;
  list-style:none;
  background:none;
  width:auto !important;
}
.ipn-plans-filter-tabs ul{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:0;
  padding:0;
  list-style:none;
  background:none !important;
  width:auto !important;
}
.ipn-plans-filter-tabs__item,
.ipn-plans-filter-tabs li,
.ipn-plans-filter-tabs li a{
  appearance:none;
  -webkit-appearance:none;
  border:1px solid var(--ipn-border, #d0d5dd);
  background:#fff;
  color:var(--ipn-text, #101828);
  border-radius:8px;
  padding:8px 12px;
  font:inherit;
  font-size:13px;
  line-height:1.3;
  cursor:pointer;
  text-decoration:none;
  display:inline-block;
}
.ipn-plans-filter-tabs li{
  padding:0;
  border:0;
  background:transparent;
}
.ipn-plans-filter-tabs li a{
  border:1px solid var(--ipn-border, #d0d5dd);
}
.ipn-plans-filter-tabs__item.is-active,
.ipn-plans-filter-tabs li.activo a,
.ipn-plans-filter-tabs li.is-active a{
  border-color:var(--ipn-brand, #1e60a2);
  background:color-mix(in srgb, var(--ipn-brand, #1e60a2) 12%, #fff);
  color:var(--ipn-brand, #1e60a2);
  font-weight:600;
}
.ipn-plans-filter-panel,
.ipn-plans-form table[id^="tb_"]{
  border:1px solid var(--ipn-border, #d0d5dd);
  border-radius:12px;
  background:#fff;
  padding:12px 14px;
}
.ipn-plans .ipn-tip-help{
  vertical-align:middle;
  cursor:help;
  color:var(--ipn-muted, #667085);
  font-size:18px;
}
/* AV: 2026-09-07: #325 detalle planes ? paneles, listas y due dates (dominio). */
.ipn-plans-detail .is-hidden,
.ipn-plans-detail .ipn-plans-panel.is-hidden,
.ipn-plans-detail .ipn-plans-filter-panel.is-hidden{
  display:none !important;
}
.ipn-plans-detail .ipn-plans-panel__lead{
  margin:0 0 14px;
  color:var(--ipn-text-muted, #667085);
  font-size:14px;
  line-height:1.45;
}
.ipn-plans-detail .ipn-plans-panel__hint{
  margin:0 0 10px;
  color:var(--ipn-text-muted, #667085);
  font-size:13px;
  line-height:1.4;
}
.ipn-plans-detail .ipn-plans-list{
  margin:0;
  padding-left:1.15rem;
}
.ipn-plans-detail .ipn-plans-list--nested{
  margin:6px 0 0;
  padding-left:1.1rem;
}
.ipn-plans-detail .ipn-plans-list--cols{
  columns:3;
  -webkit-columns:3;
  -moz-columns:3;
  column-gap:18px;
  padding-left:1.15rem;
}
.ipn-plans-detail .ipn-plans-list li{
  margin:0 0 4px;
  overflow-wrap:anywhere;
}
.ipn-plans-detail .ipn-plans-duedate{
  display:flex;
  flex-direction:column;
  gap:2px;
  margin:0 0 10px;
}
.ipn-plans-detail .ipn-plans-duedate__name{
  font-weight:600;
}
.ipn-plans-detail .ipn-plans-duedate__desc{
  color:var(--ipn-text-muted, #667085);
  font-size:13px;
  overflow-wrap:anywhere;
}
.ipn-plans-form .ipn-check-row{
  align-items:flex-start;
  white-space:normal;
}
.ipn-plans-form .ipn-check-row > span{
  min-width:0;
  overflow-wrap:anywhere;
}
@media (max-width:700px){
  /* AV: 2026-09-07: #428/#443 ? labels arriba / inputs abajo; *+help inline (sin salto). */
  .ipn-plans-form .ipn-plans-form-table,
  .ipn-plans-form .ipn-plans-form-table > tbody,
  .ipn-plans-form .ipn-plans-form-table > tbody > tr,
  .ipn-plans-form .ipn-plans-form-table > tbody > tr > td,
  .ipn-plans-form .ipn-plans-form-table table,
  .ipn-plans-form .ipn-plans-form-table table > tbody,
  .ipn-plans-form .ipn-plans-form-table table > tbody > tr{
    display:block;
    width:100%;
    max-width:100%;
  }
  .ipn-plans-form .ipn-plans-form-table table > tbody > tr > td:first-child{
    width:auto;
    padding-right:0;
    padding-bottom:2px;
    display:block;
  }
  .ipn-plans-form .ipn-plans-form-table table > tbody > tr > td:last-child,
  .ipn-plans-form .ipn-plans-form-table table > tbody > tr > td:only-child{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:6px;
    width:100%;
    max-width:100%;
    padding:4px 0 10px;
  }
  .ipn-plans-form .ipn-plans-form-table > tbody > tr > td{
    padding:4px 0;
  }
  .ipn-plans-form .ipn-plans-form-table .ipn-input,
  .ipn-plans-form .ipn-plans-form-table .ipn-select,
  .ipn-plans-form .ipn-plans-form-table input.ipn-input:not(.ipn-input--sm):not(.datePickerContent),
  .ipn-plans-form .ipn-plans-form-table .ipn-input.ipn-input--sm{
    flex:1 1 auto;
    width:auto;
    max-width:calc(100% - 28px);
    min-width:0;
    display:inline-block;
  }
  .ipn-plans-form .ipn-plans-form-table .ipn-req,
  .ipn-plans-form .ipn-plans-form-table .ipn-help{
    margin-top:0;
    flex:0 0 auto;
  }
  .ipn-plans-form .ipn-plans-vigencia,
  .ipn-plans-form .weekDays-selector{
    flex:1 1 100%;
    width:100%;
  }
  .ipn-plans-form .weekDays-selector input[type=checkbox] + label{
    width:calc(50% - 6px);
    margin-right:3px;
  }
  .ipn-plans-form .ipn-plans-dates,
  .ipn-plans-form .ipn-plans-vigencia,
  .ipn-plans-form .ipn-datepicker{
    width:100%;
    max-width:none;
  }
  .ipn-plans-form .ipn-datepicker .ipn-input,
  .ipn-plans-form .ipn-datepicker [data-input]{
    width:100%;
  }
  .ipn-plans-form .ipn-plans-stores,
  .ipn-plans-form .ipn-plans-stores > tbody,
  .ipn-plans-form .ipn-plans-stores > tbody > tr,
  .ipn-plans-form .ipn-plans-stores > tbody > tr > td{
    display:block;
    width:100%;
  }
  .ipn-plans-form .ipn-plans-stores > tbody > tr > td{
    padding:6px 0;
  }
  .ipn-plans-form .ipn-plans-filter-row{
    max-width:100%;
    width:100%;
  }
  .ipn-plans-form .ipn-plans-price-row{
    max-width:100%;
    width:100%;
  }
  .ipn-plans-form .ipn-rpt-attrsearch table,
  .ipn-plans-form .ipn-rpt-attrsearch table > tbody,
  .ipn-plans-form .ipn-rpt-attrsearch table > tbody > tr,
  .ipn-plans-form .ipn-rpt-attrsearch td{
    display:block;
    width:100%;
    max-width:100%;
  }
  .ipn-plans-form .ipn-rpt-attrsearch td{
    padding:4px 0;
  }
  .ipn-plans-detail .ipn-plans-list--cols{
    columns:1;
    -webkit-columns:1;
    -moz-columns:1;
  }
  .ipn-plans-filter-tabs__item,
  .ipn-plans-filter-tabs li a{
    flex:1 1 auto;
  }
}

/* AV: 2026-09-04: Listas de precios admin (#312) ? scope .ipn-admin-price-lists. */
.ipn-admin-price-lists{
  min-width:0;
  max-width:100%;
}
.ipn-admin-price-lists .ipn-card--table,
.ipn-admin-price-lists .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow:visible;
}
.ipn-admin-price-lists .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-admin-price-lists .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-admin-price-lists tr.is-disabled .ipn-table__desc-link{
  color:var(--ipn-muted, #5b6b80);
}
@media (max-width:899px){
  .ipn-admin-price-lists .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-admin-price-lists .ipn-table--list .ipn-table__th-desc,
  .ipn-admin-price-lists .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}
@media (max-width:700px){
  .ipn-admin-price-lists .ipn-table--list th,
  .ipn-admin-price-lists .ipn-table--list td{ padding:8px 10px; }
}
/* AV: 2026-09-04: #381 detalle admin priceLists ? badge estado en page-title. */
.ipn-admin-price-lists-detail .ipn-page-title .ipn-badge{
  margin-left:8px;
  vertical-align:middle;
  font-size:12px;
  font-weight:600;
}

/* AV: 2026-09-07: #422 art?culos de lista ? filtros + desc en grilla. */
.ipn-admin-price-lists-items-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-admin-price-lists-items-filters .ipn-field--grow{
  flex:1 1 240px;
  min-width:220px;
}
.ipn-admin-price-lists-items-filters .ipn-secure-filters__actions{
  margin-left:auto;
  flex:0 0 auto;
  gap:8px;
}
.ipn-admin-price-lists-items-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
.ipn-admin-price-lists-items__item-desc{
  color:var(--ipn-muted, #5b6b80);
  font-weight:400;
}
@media (max-width:700px){
  .ipn-admin-price-lists-items-filters{
    flex-direction:column;
    align-items:stretch;
    gap:12px;
  }
  .ipn-admin-price-lists-items-filters .ipn-field,
  .ipn-admin-price-lists-items-filters .ipn-field--grow{
    width:100%;
    min-width:0;
    flex:1 1 auto;
  }
  .ipn-admin-price-lists-items-filters .ipn-secure-filters__actions{
    margin-left:0;
    width:100%;
    display:flex;
    flex-direction:column;
    gap:8px;
  }
  .ipn-admin-price-lists-items-filters .ipn-secure-filters__actions .ipn-btn{
    width:100%;
  }
}

/* AV: 2026-09-04: #311 ? Horarios de cierre de caja (scope .ipn-checkout-times). */
.ipn-checkout-times{ min-width:0; }
.ipn-checkout-times .ipn-card--table,
.ipn-checkout-times .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow:visible;
}
.ipn-checkout-times .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-checkout-times .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-checkout-times__select{
  width:auto;
  min-width:5.5rem;
  max-width:7rem;
}
.ipn-checkout-times__sort{
  display:inline-flex;
  align-items:center;
  gap:4px;
  color:inherit;
  text-decoration:none;
  font:inherit;
}
.ipn-checkout-times__sort .material-symbols-rounded{
  font-size:18px;
  opacity:0.7;
}
.ipn-checkout-times__sort.is-active .material-symbols-rounded{
  opacity:1;
  color:var(--ipn-brand, var(--ipn-primary));
}
.ipn-checkout-times__actions{
  border-top:1px solid var(--ipn-border, #e6ebf2);
  padding-top:16px;
}
.ipn-checkout-times .ipn-secure-actions{
  margin-top:0;
}
.ipn-checkout-times .ipn-secure-actions .ipn-btn--primary{ margin-left:auto; }
@media (max-width:899px){
  .ipn-checkout-times .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-checkout-times .ipn-table--list .ipn-table__th-desc,
  .ipn-checkout-times .ipn-table--list .ipn-table__desc{
    position:static;
    left:auto;
    z-index:auto;
    background:transparent;
  }
}
@media (max-width:700px){
  .ipn-checkout-times .ipn-table--list th,
  .ipn-checkout-times .ipn-table--list td{ padding:8px 10px; }
  .ipn-checkout-times .ipn-secure-actions{
    flex-direction:column;
    align-items:stretch;
  }
  .ipn-checkout-times .ipn-secure-actions .ipn-btn{
    width:100%;
    justify-content:center;
    margin-left:0;
  }
  .ipn-checkout-times .ipn-secure-actions .ipn-btn--primary{ margin-left:0; }
}

/* AV: 2026-09-04: #317 Sellado provincial de rentas ? scope .ipn-stamp-tax* (listado + form). */
.ipn-stamp-tax{
  min-width:0;
  max-width:100%;
}
.ipn-stamp-tax .ipn-page-head{
  margin-bottom:20px;
}
.ipn-stamp-tax .ipn-card--table{
  overflow:visible;
}
.ipn-stamp-tax .ipn-card--table,
.ipn-stamp-tax .ipn-table-wrap{
  max-width:100%;
  min-width:0;
}
.ipn-stamp-tax .ipn-table-wrap{
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-stamp-tax .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-stamp-tax-form .ipn-field--sm .ipn-input,
.ipn-stamp-tax-form .ipn-field--sm .ipn-input-affix{
  max-width:160px;
}
.ipn-stamp-tax-form .ipn-secure-actions{
  margin-top:16px;
}
@media (max-width:899px){
  .ipn-stamp-tax .ipn-table--list thead th{
    position:static;
    top:auto;
  }
}
@media (max-width:700px){
  .ipn-stamp-tax .ipn-table--list th,
  .ipn-stamp-tax .ipn-table--list td{
    padding:8px 10px;
  }
  .ipn-stamp-tax-form .ipn-field--sm .ipn-input,
  .ipn-stamp-tax-form .ipn-field--sm .ipn-input-affix{
    max-width:100%;
  }
}

/* AV: 2026-09-04: #313 Centros operativos - scope .ipn-profit-centre. */
.ipn-profit-centre,
.ipn-profit-centre-form{
  min-width:0;
  max-width:100%;
}
.ipn-profit-centre .ipn-card--table,
.ipn-profit-centre .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow:visible;
}
.ipn-profit-centre .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-profit-centre .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
/* AV: 2026-09-07: arbol en 1 linea ? desc-link global es display:block y reventaba filas. */
.ipn-profit-centre .ipn-table__desc{
  max-width:none;
  white-space:nowrap;
}
.ipn-profit-centre .ipn-table__desc-link{
  display:inline;
  overflow:visible;
  text-overflow:clip;
  vertical-align:middle;
}
.ipn-profit-centre__tree-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  margin:0 4px 0 0;
  padding:0;
  border:0;
  border-radius:6px;
  background:transparent;
  color:var(--ipn-muted, #5b6b80);
  cursor:pointer;
  vertical-align:middle;
}
.ipn-profit-centre__tree-btn:hover{
  background:var(--ipn-surface-2, #f3f6fb);
  color:var(--ipn-brand, var(--ipn-primary));
}
.ipn-profit-centre__tree-btn .material-symbols-rounded{
  font-size:20px;
}
.ipn-profit-centre__id{
  color:var(--ipn-muted, #5b6b80);
  font-variant-numeric:tabular-nums;
  vertical-align:middle;
}
.ipn-profit-centre__id-sep{
  margin:0 4px;
  color:var(--ipn-muted, #5b6b80);
  vertical-align:middle;
}
.ipn-profit-centre-form .ipn-secure-actions{
  margin-top:16px;
}
/* AV: 2026-09-07: #441 ? Choices en Centro padre (reemplaza flexselect). */
.ipn-profit-centre-form .choices{
  margin-bottom:0;
  width:100%;
}
.ipn-profit-centre-form .choices__inner{
  min-height:var(--ipn-control-h, 42px);
}
.ipn-profit-centre-delete .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
  margin-top:12px;
}
.ipn-profit-centre-delete .ipn-field,
.ipn-profit-centre-form .ipn-field{
  min-width:0;
}
@media (max-width:899px){
  .ipn-profit-centre .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-profit-centre .ipn-table--list .ipn-table__th-desc,
  .ipn-profit-centre .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}
@media (max-width:700px){
  .ipn-profit-centre .ipn-table--list th,
  .ipn-profit-centre .ipn-table--list td{ padding:8px 10px; }
}

/* AV: 2026-09-07: #331 reporte valores/imputaciones - scope .ipn-pcv (modulo 410). */
.ipn-pcv{
  min-width:0;
  max-width:100%;
}
.ipn-pcv .ipn-card--table{
  overflow:visible;
  max-width:100%;
  min-width:0;
}
.ipn-pcv .ipn-rpt-table-scroll{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  max-width:100%;
}
.ipn-pcv .ipn-rpt-table{
  width:max-content;
  min-width:100%;
  table-layout:auto;
  font-family:var(--ipn-font);
}
.ipn-pcv .ipn-rpt-table th,
.ipn-pcv .ipn-rpt-table td{
  font-family:var(--ipn-font);
}
.ipn-pcv .ipn-rpt-table td.is-num{
  font-variant-numeric:tabular-nums;
  text-align:right;
  white-space:nowrap;
}
/* AV: 2026-09-07: mismo fix arbol+desc-link que .ipn-profit-centre (#313 listado). */
.ipn-pcv .ipn-table__desc{
  max-width:none;
  white-space:nowrap;
}
.ipn-pcv .ipn-table__desc-link{
  display:inline;
  overflow:visible;
  text-overflow:clip;
  vertical-align:middle;
}
.ipn-pcv .colorRojo{ color:var(--ipn-danger, #c0392b); }
.ipn-pcv .colorVerde{ color:var(--ipn-success, #1f8a4c); }
.ipn-pcv-results{
  margin-top:16px;
}
.ipn-pcv-total td{
  font-weight:600;
  border-top:1px solid var(--ipn-border, #e2e8f0);
  padding-top:10px;
}
@media (max-width:700px){
  .ipn-pcv .ipn-rpt-table th,
  .ipn-pcv .ipn-rpt-table td{
    padding:8px 10px;
    font-size:13px;
  }
}

/* AV: 2026-09-07: #332 Detalle de imputaciones - scope .ipn-pci (modulo 410). */
.ipn-pci{
  min-width:0;
  max-width:100%;
}
.ipn-pci .ipn-card--table{
  overflow:visible;
  max-width:100%;
  min-width:0;
}
.ipn-pci .ipn-rpt-table-scroll{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  max-width:100%;
}
.ipn-pci .ipn-rpt-table{
  width:max-content;
  min-width:100%;
  table-layout:auto;
  font-family:var(--ipn-font);
}
.ipn-pci .ipn-rpt-table th,
.ipn-pci .ipn-rpt-table td{
  font-family:var(--ipn-font);
}
.ipn-pci .ipn-rpt-table td.is-num{
  font-variant-numeric:tabular-nums;
}
.ipn-pci .colorRojo{ color:var(--ipn-danger, #c0392b); }
.ipn-pci .colorVerde{ color:var(--ipn-success, #1f8a4c); }
.ipn-pci .ipn-rpt-table thead tr.ipn-rpt-cols th.sorting-asc,
.ipn-pci .ipn-rpt-table thead tr.ipn-rpt-cols th.sorting-desc{
  color:var(--ipn-brand, var(--ipn-primary));
}
.ipn-pci__chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  min-height:var(--ipn-form-control-h, 40px);
}
.ipn-pci__chips-hint{
  color:var(--ipn-text-2);
  font-size:13px;
}
.ipn-pci__chips .ipn-chip{
  max-width:100%;
}
.ipn-pci__add-wrap .ipn-btn{
  width:100%;
  justify-content:center;
}
/* AV: 2026-09-07: #447 ? Choices en filtro de centros (reemplaza flexselect). */
.ipn-pci #profitCentreTd .choices{
  margin-bottom:0;
  width:100%;
  max-width:100%;
}
.ipn-pci #profitCentreTd .choices__inner{
  min-height:var(--ipn-form-control-h, 40px);
}
.ipn-pci #profitCentreTd .choices__list--dropdown,
.ipn-pci #profitCentreTd .choices__list[aria-expanded="true"]{
  z-index:40;
}
.ipn-pci-total td{
  font-weight:600;
  border-top:1px solid var(--ipn-border, #e2e8f0);
  padding-top:10px;
}
.ipn-pci-results{
  margin-top:16px;
}
@media (max-width:700px){
  .ipn-pci .ipn-rpt-table th,
  .ipn-pci .ipn-rpt-table td{
    padding:8px 10px;
    font-size:13px;
  }
  .ipn-pci__add-wrap .ipn-btn{
    width:100%;
  }
}

/* ==========================================================================
   AV: 2026-09-04: #315 ? Compras protegidas (.ipn-pp). Solo dominio.
   ========================================================================== */
.ipn-pp .ipn-table--list tr.is-deleted td,
.ipn-pp .ipn-table--list tr.is-deleted .ipn-table__desc-link{
  color: var(--ipn-danger, #c62828);
  text-decoration: line-through;
}
.ipn-pp .ipn-pp-filters .ipn-secure-filters__actions{
  margin-left: auto;
}
.ipn-pp-form .ipn-pp-price-range{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.ipn-pp-form .ipn-pp-price-range .ipn-input{
  width: 90px;
  max-width: 100%;
}
.ipn-pp-form .ipn-pp-cat-tree{
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ipn-pp-form .ipn-pp-cat-item{
  padding-left: 28px;
}
.ipn-pp-form .ipn-pp-cat-family .ipn-check-row,
.ipn-pp-form .ipn-pp-cat-item .ipn-check-row{
  white-space: normal;
  align-items: flex-start;
}
.ipn-pp-detail .ipn-pp-cats{
  margin: 0;
  padding-left: 1.1em;
}
.ipn-pp-detail .ipn-pp-cats ul{
  margin: 4px 0 8px;
  padding-left: 1.1em;
}
/* AV: 2026-09-04: #371 - aire entre aviso y checkbox de confirmacion en disable. */
.ipn-pp-disable .ipn-card__body > .ipn-notice + .ipn-check-row{
  margin-top: 16px;
}
.ipn-pp-disable .ipn-check-row{
  white-space: normal;
  align-items: flex-start;
}
.ipn-pp-disable .ipn-check-row > span{
  white-space: normal;
}
@media (max-width:700px){
  .ipn-pp .ipn-pp-filters .ipn-secure-filters__actions{
    margin-left: 0;
  }
  .ipn-pp .ipn-card--table,
  .ipn-pp .ipn-table-wrap{
    max-width: 100%;
    min-width: 0;
  }
  .ipn-pp .ipn-table-wrap{
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .ipn-pp .ipn-table--list{
    width: max-content;
    min-width: 100%;
    table-layout: auto;
  }
  .ipn-pp .ipn-table--list thead th{ position: static; top: auto; }
  .ipn-pp .ipn-table--list .ipn-table__th-desc,
  .ipn-pp .ipn-table--list .ipn-table__desc{
    position: static; left: auto; z-index: auto; background: transparent;
  }
  .ipn-pp .ipn-table--list th,
  .ipn-pp .ipn-table--list td{ padding: 8px 10px; }
}

/* AV: 2026-09-04: #314 ? Garant?as extendidas (scope .ipn-ew*). */
.ipn-ew{ min-width:0; }
.ipn-ew .ipn-card--table,
.ipn-ew .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow:visible;
}
.ipn-ew .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-ew .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-ew-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-ew-filters .ipn-secure-filters__actions{
  margin-left:auto;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
}
.ipn-ew .ipn-table--list tr.is-disabled td,
.ipn-ew .ipn-table--list tr.is-disabled .ipn-table__desc-link{
  color:var(--ipn-danger, #b21911);
  text-decoration:line-through;
}
.ipn-ew-cats{
  margin:0;
  padding-left:1.1em;
}
.ipn-ew-cats__family{
  margin:0 0 6px;
  font-weight:600;
}
.ipn-ew-cats__family ul{
  margin:4px 0 0;
  padding-left:1.1em;
  font-weight:400;
}
.ipn-ew-form .ipn-field{ min-width:0; }
.ipn-ew-form .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
}
.ipn-ew-form .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ipn-ew-form .choices{ margin-bottom:0; width:100%; }
.ipn-ew-form .choices__inner{
  min-height:var(--ipn-form-control-h, 40px);
}
.ipn-ew-family-list{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-top:12px;
}
.ipn-ew-family-block{
  border:1px solid var(--ipn-border, #e6ebf2);
  border-radius:10px;
  padding:10px 12px;
}
.ipn-ew-family-block__head{ margin-bottom:6px; }
.ipn-ew-family-block__cat{ padding-left:22px; }
.ipn-ew-form .ipn-secure-actions .ipn-btn--primary{ margin-left:auto; }
@media (max-width:899px){
  .ipn-ew .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-ew .ipn-table--list .ipn-table__th-desc,
  .ipn-ew .ipn-table--list .ipn-table__desc{
    position:static;
    left:auto;
    z-index:auto;
    background:transparent;
  }
}
@media (max-width:700px){
  .ipn-ew-filters{
    flex-direction:column;
    align-items:stretch;
  }
  .ipn-ew-filters .ipn-secure-filters__actions{
    margin-left:0;
    width:100%;
  }
  .ipn-ew-filters .ipn-secure-filters__actions .ipn-btn{
    width:100%;
    justify-content:center;
  }
  .ipn-ew .ipn-table--list th,
  .ipn-ew .ipn-table--list td{ padding:8px 10px; }
  .ipn-ew-form .ipn-secure-actions{
    flex-direction:column;
    align-items:stretch;
  }
  .ipn-ew-form .ipn-secure-actions .ipn-btn{
    width:100%;
    justify-content:center;
    margin-left:0;
  }
  .ipn-ew-form .ipn-secure-actions .ipn-btn--primary{ margin-left:0; }
  #tableRecharges tr:not(.NoBorderBottom) td{
        padding: 0 10px 10px 10px !important;
  }
}
#tableRecharges tr:not(.NoBorderBottom) td{
         padding-bottom: 10px;
}

/* AV: 2026-09-04: #320 - Ejercicios fiscales (scope .ipn-fiscal-period*). */
.ipn-fiscal-period{ min-width:0; }
.ipn-fiscal-period .ipn-page-head{ margin-bottom:20px; }
.ipn-fiscal-period .ipn-card + .ipn-card,
.ipn-fiscal-period .ipn-card + .ipn-notice,
.ipn-fiscal-period .ipn-notice-stack + .ipn-card{ margin-top:16px; }
.ipn-fiscal-period .ipn-row-actions{ justify-content:center; }
.ipn-fiscal-period .ipn-card--table,
.ipn-fiscal-period .ipn-table-wrap{ max-width:100%; min-width:0; overflow:visible; }
.ipn-fiscal-period .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-fiscal-period .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-fiscal-period-close .ipn-notice{ margin:0 0 16px; }
.ipn-fiscal-period-close .ipn-check-row{ margin-top:4px; }
.ipn-fiscal-period-close .ipn-field,
.ipn-fiscal-period-close .ipn-card__body{ min-width:0; }
.ipn-fiscal-period-close .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
}
.ipn-fiscal-period-close .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ipn-fiscal-period-close .ipn-secure-actions{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:16px;
}
.ipn-fiscal-period-close .ipn-secure-actions .ipn-btn--danger{ margin-left:auto; }
/* AV: 2026-09-04: #374 - densificar alta/edicion (gap card + fechas juntas). */
.ipn-fiscal-period-form .ipn-page-head{ margin-bottom:12px; }
.ipn-fiscal-period-form.ipn-form .ipn-card > .ipn-card__body{
  padding:18px 20px;
  gap:14px;
}
.ipn-fiscal-period-form .ipn-form-grid--2{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:12px 20px;
}
.ipn-fiscal-period-form .ipn-form-grid--2 > .ipn-field--full{
  flex:1 1 100%;
  width:100%;
  max-width:100%;
}
.ipn-fiscal-period-form .ipn-form-grid--2 > .ipn-field--sm{
  flex:0 0 auto;
}
.ipn-fiscal-period-form .ipn-field{ min-width:0; }
.ipn-fiscal-period-form .ipn-field--sm .ipn-datepicker{ width:auto; }
.ipn-fiscal-period-form .ipn-datepicker{
  display:inline-flex;
  align-items:stretch;
  max-width:168px;
  width:168px;
}
.ipn-fiscal-period-form .ipn-datepicker input[data-input]{
  flex:1 1 auto;
  min-width:0;
  width:auto;
  height:var(--ipn-control-h, 42px);
  padding:0 12px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-right:0;
  border-radius:var(--ipn-radius-input, 8px) 0 0 var(--ipn-radius-input, 8px);
  font:inherit;
  font-size:14px;
  color:var(--ipn-text);
  background:var(--ipn-surface);
  box-sizing:border-box;
}
.ipn-fiscal-period-form .ipn-datepicker input[data-input]:focus{
  outline:none;
  border-color:var(--ipn-brand, var(--ipn-primary));
  z-index:1;
}
.ipn-fiscal-period-form .ipn-datepicker__btn{
  flex:0 0 40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-radius:0 var(--ipn-radius-input, 8px) var(--ipn-radius-input, 8px) 0;
  background:var(--ipn-surface-2, #f5f7fa);
  color:var(--ipn-text-2);
  cursor:pointer;
  padding:0;
}
.ipn-fiscal-period-form .ipn-datepicker__btn:hover{
  background:var(--ipn-surface-3, #eef2f7);
  color:var(--ipn-brand, var(--ipn-primary));
}
.ipn-fiscal-period-form .ipn-datepicker__btn .material-symbols-rounded{ font-size:18px; }
@media (max-width:899px){
  .ipn-fiscal-period .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-fiscal-period .ipn-table--list .ipn-table__th-desc,
  .ipn-fiscal-period .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}
@media (max-width:700px){
  .ipn-fiscal-period-form .ipn-form-grid--2 > .ipn-field--sm{
    flex:1 1 100%;
    width:100%;
  }
  .ipn-fiscal-period-form .ipn-field--sm .ipn-datepicker,
  .ipn-fiscal-period-form .ipn-datepicker{
    max-width:none;
    width:100%;
  }
  .ipn-fiscal-period .ipn-table--list th,
  .ipn-fiscal-period .ipn-table--list td{ padding:8px 10px; }
  .ipn-fiscal-period-form .ipn-secure-actions,
  .ipn-fiscal-period-close .ipn-secure-actions{
    flex-direction:column;
    align-items:stretch;
  }
  .ipn-fiscal-period-form .ipn-secure-actions .ipn-btn,
  .ipn-fiscal-period-close .ipn-secure-actions .ipn-btn{
    width:100%;
    justify-content:center;
    margin-left:0;
  }
}

/* AV: 2026-09-04: #318 - Centros de costo (scope .ipn-cc). */
.ipn-cc{ min-width:0; max-width:100%; }
.ipn-cc .ipn-card--table,
.ipn-cc .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow:visible;
}
.ipn-cc .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-cc .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-cc-form .ipn-field{ min-width:0; }
/* AV: 2026-09-04: #372 - achicar gap subtitulo->input (sin doble margin+gap). */
.ipn-cc-form .ipn-page-head{ margin-bottom:12px; }
.ipn-cc-form .ipn-card{
  padding:16px 20px 18px;
  gap:16px;
}
.ipn-cc-form .ipn-card > .ipn-card__body{ gap:16px; }
.ipn-cc-form .ipn-secure-actions{ margin-top:0; }
.ipn-cc-delete .ipn-notice{ margin:0 0 16px; }
.ipn-cc-delete .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
  margin-top:4px;
}
.ipn-cc-delete .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ipn-cc-delete .ipn-secure-actions{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:16px;
}
.ipn-cc-delete .ipn-secure-actions .ipn-btn--danger{ margin-left:auto; }
@media (max-width:899px){
  .ipn-cc .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-cc .ipn-table--list .ipn-table__th-desc,
  .ipn-cc .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}
@media (max-width:700px){
  .ipn-cc .ipn-table--list th,
  .ipn-cc .ipn-table--list td{ padding:8px 10px; }
}

/* AV: 2026-09-04: #321 ? Plan de cuentas (scope .ipn-coa*). */
.ipn-coa{ min-width:0; }
.ipn-coa-filters{
  display:flex;
  flex-wrap:wrap;
  gap:12px 16px;
  align-items:flex-end;
}
.ipn-coa-filters .ipn-secure-filters__actions{
  margin-left:auto;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.ipn-coa .ipn-card--table,
.ipn-coa .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow:visible;
}
.ipn-coa .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-coa .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-coa-tree-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  margin-right:4px;
  padding:0;
  border:0;
  border-radius:6px;
  background:transparent;
  color:var(--ipn-text-2, #4a5a6e);
  cursor:pointer;
  vertical-align:middle;
}
.ipn-coa-tree-toggle:hover{ background:var(--ipn-surface-soft, #eef2f7); }
.ipn-coa-tree-toggle[hidden],
.ipn-coa-tree-toggle:disabled{
  visibility:hidden;
  pointer-events:none;
}
.ipn-coa-tree-toggle .material-symbols-rounded{ font-size:20px; }
.ipn-coa-code{ font-variant-numeric:tabular-nums; }
.ipn-coa-sep{ margin:0 4px; color:var(--ipn-text-3, #8493a6); }
.ipn-coa-form__hint{
  margin:0 0 14px;
  font-size:13.5px;
  color:var(--ipn-muted, #5b6b80);
}
/* AV: 2026-09-04: #375 - Choices (cuenta padre) alineado a .ipn-select / .ipn-input. */
.ipn-coa-form .choices{
  margin-bottom:0;
  width:100%;
  font-size:13px;
}
.ipn-coa-form .choices__inner{
  min-height:var(--ipn-control-h, 40px);
  height:var(--ipn-control-h, 40px);
  padding:0 12px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-radius:var(--ipn-radius-input, 8px);
  background:var(--ipn-surface, #fff);
  font:inherit;
  font-size:13px;
  color:var(--ipn-text, #1e293b);
  display:flex;
  align-items:center;
  box-shadow:none;
}
.ipn-coa-form .choices__inner:focus,
.ipn-coa-form .choices.is-focused .choices__inner,
.ipn-coa-form .choices.is-open .choices__inner{
  border-color:var(--ipn-brand, var(--ipn-primary, #2f62c4));
  box-shadow:var(--ipn-brand-ring, 0 0 0 3px rgba(47,98,196,.15));
}
.ipn-coa-form .choices__list--single{
  padding:0 24px 0 0;
}
.ipn-coa-form .choices__list--single .choices__item{
  padding:0;
  line-height:1.35;
}
.ipn-coa-form .choices[data-type*="select-one"]::after{
  right:12px;
  margin-top:-3px;
  border-color:var(--ipn-text-3, #8a94a2) transparent transparent;
  border-width:5px 5px 0;
}
.ipn-coa-form .choices__list--dropdown,
.ipn-coa-form .choices__list[aria-expanded="true"]{
  border:1px solid var(--ipn-border, #e2e7ef);
  border-radius:10px;
  box-shadow:0 8px 24px rgba(16,24,40,.12);
  z-index:40;
}
.ipn-coa-form .choices__input{
  background:transparent;
  margin:0;
  padding:0;
  font-size:13px;
}
.ipn-coa-form .ipn-field{ min-width:0; }
.ipn-coa-form .ipn-field .ipn-select{
  width:100%;
}
.ipn-coa-form .ipn-check-row,
.ipn-coa-delete .ipn-check-row,
.ipn-coa-default-plan .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
  margin-top:12px;
}
.ipn-coa-form .ipn-check-row > span,
.ipn-coa-delete .ipn-check-row > span,
.ipn-coa-default-plan .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ipn-coa-form .ipn-secure-actions .ipn-btn--primary,
.ipn-coa-delete .ipn-secure-actions .ipn-btn--danger,
.ipn-coa-default-plan .ipn-secure-actions .ipn-btn--primary{
  margin-left:auto;
}
.ipn-coa-cost-row{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
@media (max-width:899px){
  .ipn-coa .ipn-table--list thead th{ position:static; top:auto; }
}
@media (max-width:700px){
  .ipn-coa-filters{
    flex-direction:column;
    align-items:stretch;
  }
  .ipn-coa-filters .ipn-secure-filters__actions{
    margin-left:0;
    width:100%;
  }
  .ipn-coa-filters .ipn-secure-filters__actions .ipn-btn{
    width:100%;
    justify-content:center;
  }
  .ipn-coa .ipn-table--list th,
  .ipn-coa .ipn-table--list td{ padding:8px 10px; }
  .ipn-coa-form .ipn-secure-actions,
  .ipn-coa-delete .ipn-secure-actions,
  .ipn-coa-default-plan .ipn-secure-actions{
    flex-direction:column;
    align-items:stretch;
  }
  .ipn-coa-form .ipn-secure-actions .ipn-btn,
  .ipn-coa-delete .ipn-secure-actions .ipn-btn,
  .ipn-coa-default-plan .ipn-secure-actions .ipn-btn{
    width:100%;
    justify-content:center;
    margin-left:0;
  }
}

/* AV: 2026-09-04: #310 financial/configuration iPN2. */
/* AV: 2026-09-04: #380 ? tabs hub sin sep. interna; datepicker audit alineado a task-sched. */
.ipn-fin-config .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-fin-config .ipn-table--list{
  width:max-content;
  min-width:100%;
}
.ipn-fin-config-hub .ipn-card--table{
  overflow:visible;
}
.ipn-fin-config-form .ipn-form-section{ margin-bottom:22px; }
.ipn-fin-config-form .ipn-form-section:last-of-type{ margin-bottom:8px; }
.ipn-fin-config-hub .ipn-form-section{ margin-bottom:22px; }
.ipn-fin-config-hub .ipn-form-section:last-of-type{ margin-bottom:8px; }
.ipn-fin-config-conditions{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.ipn-fin-config-condition__extra{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  margin-top:8px;
  margin-left:28px;
}
.ipn-fin-config-condition__extra .ipn-input,
.ipn-fin-config-condition__extra .ipn-select{
  max-width:280px;
}
.ipn-fin-config-reqs{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:6px;
}
.ipn-fin-config-rates{ width:100%; min-width:520px; }
.ipn-fin-config-rates td{
  vertical-align:middle;
  padding:10px 12px;
}
.ipn-fin-config-rate-add__grid{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:flex-end;
}
.ipn-fin-config-rate-add__grid .ipn-field{ min-width:140px; flex:1 1 140px; }
.ipn-fin-config-rate-add__action{ flex:0 0 auto; }
.ipn-fin-config__badge-off{
  display:inline-block;
  margin-left:8px;
  color:#b42318;
  font-size:0.75em;
  font-weight:700;
  letter-spacing:0.02em;
  vertical-align:middle;
}
.ipn-fin-config .is-hidden{ display:none !important; }

/* Auditor?a ? Flatpickr chrome (mismo patr?n .ipn-task-sched-filters). */
.ipn-fin-config-audit .ipn-secure-filters .ipn-field--sm{
  flex:0 1 168px;
  min-width:140px;
}
.ipn-fin-config-audit .ipn-secure-filters .ipn-field--sm .ipn-datepicker{
  max-width:168px;
  width:100%;
  box-sizing:border-box;
}
.ipn-fin-config-audit .ipn-datepicker{
  display:inline-flex;
  align-items:stretch;
  max-width:168px;
  width:168px;
}
.ipn-fin-config-audit .ipn-datepicker input[data-input]{
  flex:1 1 auto;
  min-width:0;
  width:auto;
  height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  min-height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  padding:0 12px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-right:0;
  border-radius:var(--ipn-radius-input, 8px) 0 0 var(--ipn-radius-input, 8px);
  font:inherit;
  font-size:14px;
  color:var(--ipn-text);
  background:var(--ipn-surface);
  box-sizing:border-box;
}
.ipn-fin-config-audit .ipn-datepicker input[data-input]:focus{
  outline:none;
  border-color:var(--ipn-brand, var(--ipn-primary));
  z-index:1;
}
.ipn-fin-config-audit .ipn-datepicker__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 42px;
  width:42px;
  height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  min-height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-radius:0 var(--ipn-radius-input, 8px) var(--ipn-radius-input, 8px) 0;
  background:var(--ipn-surface-soft, #f5f7fb);
  color:var(--ipn-text-2, #5b6b80);
  cursor:pointer;
  padding:0;
  line-height:1;
  box-sizing:border-box;
}
.ipn-fin-config-audit .ipn-datepicker__btn:hover{
  background:#eef2f7;
  color:var(--ipn-text);
}
.ipn-fin-config-audit .ipn-datepicker__btn .material-symbols-rounded{
  font-size:18px;
  line-height:1;
  display:block;
}

@media (max-width:700px){
  .ipn-fin-config-condition__extra{ margin-left:0; }
  .ipn-fin-config-rate-add__grid .ipn-field{ min-width:0; flex:1 1 100%; }
  .ipn-fin-config-rate-add__action{ width:100%; }
  .ipn-fin-config-rate-add__action .ipn-btn{ width:100%; justify-content:center; }
  /* AV: 2026-09-04: #380 ? datepickers a 100% sin romper input+btn (salto de ?cono). */
  .ipn-fin-config-audit .ipn-secure-filters .ipn-field--sm,
  .ipn-fin-config-audit .ipn-secure-filters .ipn-field--sm .ipn-datepicker,
  .ipn-fin-config-audit .ipn-datepicker{
    max-width:100%;
    width:100%;
  }
}
/* AV: 2026-09-04: #338 automaticProcesses - listado / detalle / form (scope .ipn-auto-proc*). */
.ipn-auto-proc .ipn-card--table,
.ipn-auto-proc .ipn-table-wrap{
  overflow:visible;
}
.ipn-auto-proc .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-auto-proc .ipn-table--list{
  width:max-content;
  min-width:100%;
}
.ipn-auto-proc .ipn-table--list .ipn-table__th-desc,
.ipn-auto-proc .ipn-table--list .ipn-table__desc{
  min-width:160px;
}
.ipn-auto-proc-form .ipn-field{ min-width:0; }
.ipn-auto-proc-form .ipn-auto-proc-form__due{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}
.ipn-auto-proc-form .ipn-auto-proc-form__due .ipn-select{ flex:1 1 200px; min-width:0; }
.ipn-auto-proc-form .ipn-auto-proc-form__due .ipn-input{
  flex:0 0 72px;
  width:72px;
  max-width:72px;
}
/* AV: 2026-09-07: #440 ? chrome Flatpickr integrado (input+btn) en alta/edicion. */
.ipn-auto-proc-form .ipn-datepicker{
  display:inline-flex;
  align-items:stretch;
  width:168px;
  max-width:100%;
  vertical-align:middle;
}
.ipn-auto-proc-form .ipn-datepicker input[data-input],
.ipn-auto-proc-form .ipn-datepicker .ipn-input{
  flex:1 1 auto;
  min-width:0;
  width:auto;
  height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  min-height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  padding:0 12px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-right:0;
  border-radius:var(--ipn-radius-input, 8px) 0 0 var(--ipn-radius-input, 8px);
  font:inherit;
  font-size:14px;
  color:var(--ipn-text);
  background:var(--ipn-surface);
  box-sizing:border-box;
  box-shadow:none;
}
.ipn-auto-proc-form .ipn-datepicker input[data-input]:focus,
.ipn-auto-proc-form .ipn-datepicker .ipn-input:focus{
  outline:none;
  border-color:var(--ipn-brand, var(--ipn-primary));
  box-shadow:none;
  z-index:1;
}
.ipn-auto-proc-form .ipn-datepicker__btn{
  flex:0 0 42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  min-height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-radius:0 var(--ipn-radius-input, 8px) var(--ipn-radius-input, 8px) 0;
  background:var(--ipn-surface-soft, #f5f7fb);
  color:var(--ipn-text-2, #5b6b80);
  cursor:pointer;
  padding:0;
  line-height:1;
  box-sizing:border-box;
}
.ipn-auto-proc-form .ipn-datepicker__btn:hover{
  background:var(--ipn-surface);
  color:var(--ipn-brand, var(--ipn-primary));
}
.ipn-auto-proc-form .ipn-datepicker__btn .material-symbols-rounded{
  font-size:18px;
  line-height:1;
  display:block;
}
body:has(.ipn-auto-proc-form) .flatpickr-calendar{
  font-family:var(--ipn-font);
}
.ipn-auto-proc-form .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
}
.ipn-auto-proc-form .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ipn-auto-proc-form .ipn-secure-actions{
  margin-top:20px;
}
@media (max-width:700px){
  .ipn-auto-proc .ipn-table--list thead th,
  .ipn-auto-proc .ipn-table--list tbody td{
    padding:8px 10px;
  }
  .ipn-auto-proc-form .ipn-auto-proc-form__due .ipn-select,
  .ipn-auto-proc-form .ipn-auto-proc-form__due .ipn-input{
    flex:1 1 100%;
    max-width:none;
    width:100%;
  }
  .ipn-auto-proc-form .ipn-datepicker{
    width:100%;
    max-width:none;
  }
  .ipn-auto-proc-form .ipn-secure-actions{
    flex-direction:column;
    align-items:stretch;
  }
  .ipn-auto-proc-form .ipn-secure-actions .ipn-btn{
    width:100%;
    justify-content:center;
    margin-left:0;
  }
}

/* AV: 2026-09-04: #377 - filtros Gestion de clientes (scope .ipn-auto-proc-filters). */
.ipn-auto-proc .ipn-auto-proc-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-auto-proc .ipn-auto-proc-filters .ipn-secure-filters__actions{
  margin-left:auto;
}

/* AV: 2026-09-04: #376 preBillingHistory ? filas eliminadas + emails / confirm forms. */
.ipn-auto-proc-prebill .ipn-auto-proc-prebill__row--deleted td{
  color:var(--ipn-danger, #b42318);
  text-decoration:line-through;
}
.ipn-auto-proc-prebill .ipn-auto-proc-prebill__row--deleted .ipn-table__desc-link{
  color:inherit;
}
.ipn-auto-proc-prebill .ipn-auto-proc-prebill__cust-alias{
  margin-left:4px;
  color:var(--ipn-muted, #667085);
}
.ipn-auto-proc-prebill .ipn-auto-proc-prebill__email{
  margin-top:4px;
  font-size:12px;
  color:var(--ipn-muted, #667085);
  overflow-wrap:anywhere;
}
.ipn-auto-proc-prebill-delete .ipn-check-row,
.ipn-auto-proc-prebill-authorize .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
  margin-top:16px;
}
.ipn-auto-proc-prebill-delete .ipn-check-row > span,
.ipn-auto-proc-prebill-authorize .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ipn-auto-proc-prebill-delete .ipn-secure-actions,
.ipn-auto-proc-prebill-authorize .ipn-secure-actions{
  margin-top:20px;
}
@media (max-width:700px){
  .ipn-auto-proc-prebill-delete .ipn-secure-actions,
  .ipn-auto-proc-prebill-authorize .ipn-secure-actions{
    flex-direction:column;
    align-items:stretch;
  }
  .ipn-auto-proc-prebill-delete .ipn-secure-actions .ipn-btn,
  .ipn-auto-proc-prebill-authorize .ipn-secure-actions .ipn-btn{
    width:100%;
    justify-content:center;
    margin-left:0;
  }
}

/* AV: 2026-09-04: #344 ? Agentes de servicio t?cnico (.ipn-sa). Solo dominio. */
.ipn-sa{ min-width:0; }
.ipn-sa .ipn-sa-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-sa .ipn-sa-filters .ipn-secure-filters__actions{
  margin-left:auto;
}
.ipn-sa .ipn-card--table,
.ipn-sa .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow:visible;
}
.ipn-sa .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-sa .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-sa-detail .ipn-sa-tm{
  margin:0;
  padding-left:1.1em;
}
.ipn-sa-form .ipn-field{ min-width:0; }
.ipn-sa-form .ipn-sa-web{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
.ipn-sa-form .ipn-sa-web__prefix{
  flex:0 0 auto;
  color:var(--ipn-text-muted);
  font-size:13px;
}
.ipn-sa-form .ipn-sa-web .ipn-input{
  flex:1 1 auto;
  min-width:0;
}
.ipn-sa-form .ipn-sa-tm-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:10px 16px;
}
.ipn-sa-form .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
}
.ipn-sa-form .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ipn-sa-form .ipn-secure-actions{
  margin-top:20px;
}
@media (max-width:700px){
  .ipn-sa .ipn-sa-filters .ipn-secure-filters__actions{
    margin-left:0;
  }
  .ipn-sa .ipn-table--list thead th,
  .ipn-sa .ipn-table--list tbody td{
    padding:8px 10px;
  }
  .ipn-sa .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-sa-form .ipn-sa-tm-grid{
    grid-template-columns:1fr;
  }
  .ipn-sa-form .ipn-secure-actions{
    flex-direction:column;
    align-items:stretch;
  }
  .ipn-sa-form .ipn-secure-actions .ipn-btn{
    width:100%;
    justify-content:center;
    margin-left:0;
  }
}

/* AV: 2026-09-04: #352 - B2C disabledCAStores; filtros + scroll-x mobile (patron #89). */
.ipn-b2c-ca-stores{
  min-width:0;
  max-width:100%;
}
.ipn-b2c-ca-stores-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-b2c-ca-stores-filters .ipn-field{ flex:0 1 160px; min-width:140px; }
.ipn-b2c-ca-stores-filters .ipn-field--grow{ flex:1 1 220px; min-width:180px; }
.ipn-b2c-ca-stores-filters .ipn-secure-filters__actions{
  margin-left:auto;
  flex:0 0 auto;
  gap:8px;
}
.ipn-b2c-ca-stores-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
.ipn-b2c-ca-stores .ipn-card--table{
  overflow:visible;
  max-width:100%;
  min-width:0;
}
.ipn-b2c-ca-stores .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-b2c-ca-stores .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-b2c-ca-stores-disable .ipn-field,
.ipn-b2c-ca-stores-enable .ipn-field{ min-width:0; }
/* AV: 2026-09-09: #498 ? aire entre cartel de advertencia y checkbox (patron #371). */
.ipn-b2c-ca-stores-disable .ipn-card__body > .ipn-notice + .ipn-check-row,
.ipn-b2c-ca-stores-enable .ipn-card__body > .ipn-notice + .ipn-check-row{
  margin-top:16px;
}
.ipn-b2c-ca-stores-disable .ipn-check-row,
.ipn-b2c-ca-stores-enable .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
  box-sizing:border-box;
}
.ipn-b2c-ca-stores-disable .ipn-check-row > span,
.ipn-b2c-ca-stores-enable .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
@media (max-width:700px){
  .ipn-b2c-ca-stores-filters{
    flex-direction:column;
    align-items:stretch;
    gap:12px;
  }
  .ipn-b2c-ca-stores-filters .ipn-field,
  .ipn-b2c-ca-stores-filters .ipn-field--grow{
    width:100%;
    min-width:0;
    flex:1 1 auto;
  }
  .ipn-b2c-ca-stores-filters .ipn-secure-filters__actions{
    margin-left:0;
    width:100%;
    display:flex;
    gap:8px;
  }
  .ipn-b2c-ca-stores-filters .ipn-secure-filters__actions .ipn-btn{
    flex:1 1 auto;
    width:100%;
  }
}
@media (max-width:899px){
  .ipn-b2c-ca-stores .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-b2c-ca-stores .ipn-table--list .ipn-table__th-desc,
  .ipn-b2c-ca-stores .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}
/* AV: 2026-09-04: #351 - iCP tipos de procesos productivos; scroll-x mobile (patron #89). */
.ipn-icp-pt{
  min-width:0;
  max-width:100%;
}
.ipn-icp-pt .ipn-card--table{
  overflow:visible;
  max-width:100%;
  min-width:0;
}
.ipn-icp-pt .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-icp-pt .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-icp-pt-form .ipn-field{ min-width:0; }
.ipn-icp-pt-form .ipn-form-hint{
  margin:0 0 16px;
  color:var(--ipn-text-muted);
  font-size:14px;
  line-height:1.45;
}
.ipn-icp-pt-delete .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
  margin-top:16px;
}
.ipn-icp-pt-delete .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
@media (max-width:700px){
  .ipn-icp-pt .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-icp-pt .ipn-table--list .ipn-table__th-desc,
  .ipn-icp-pt .ipn-table--list .ipn-table__desc{
    position:static;
    left:auto;
  }
  .ipn-icp-pt .ipn-table--list thead th,
  .ipn-icp-pt .ipn-table--list tbody td{
    padding:8px 10px;
  }
  .ipn-icp-pt-form .ipn-secure-actions,
  .ipn-icp-pt-delete .ipn-secure-actions{
    flex-direction:column;
    align-items:stretch;
  }
  .ipn-icp-pt-form .ipn-secure-actions .ipn-btn,
  .ipn-icp-pt-delete .ipn-secure-actions .ipn-btn{
    width:100%;
    justify-content:center;
    margin-left:0;
  }
}

/* AV: 2026-09-04: #354 TDN Procesos de sincronizacion (.ipn-tdn-ts / -detail). */
/* AV: 2026-09-09: #509 ? flush tabs?card/form (chrome #133); gap solo filtros?grilla. */
.ipn-tdn-ts .ipn-tabs + .ipn-card,
.ipn-tdn-ts .ipn-tabs + .ipn-card--table,
.ipn-tdn-ts .ipn-tabs + form > .ipn-card{
  margin-top:0;
  border-top-left-radius:0;
  border-top-right-radius:0;
}
.ipn-tdn-ts .ipn-tabs + form{ margin-top:0; }
.ipn-tdn-ts form + .ipn-card,
.ipn-tdn-ts .ipn-notice-stack + .ipn-tabs{ margin-top:16px; }
.ipn-tdn-ts-filters{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:12px 16px;
}
.ipn-tdn-ts-filters .ipn-field{ flex:1 1 200px; min-width:160px; }
/* AV: 2026-09-09: #509 ? field--sm >= datepicker 168px (antes 140px comprim?a el ?cono). */
.ipn-tdn-ts-filters .ipn-field--sm{ flex:0 1 168px; min-width:140px; }
.ipn-tdn-ts-filters .ipn-field--sm .ipn-datepicker,
.ipn-tdn-ts-filters .ipn-field--sm .ipn-input{
  max-width:168px;
  width:100%;
  box-sizing:border-box;
}
.ipn-tdn-ts-filters .ipn-datepicker{
  display:inline-flex;
  align-items:stretch;
  max-width:168px;
  width:168px;
}
.ipn-tdn-ts-filters .ipn-datepicker input[data-input]{
  flex:1 1 auto;
  min-width:0;
  width:auto;
  height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  min-height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  padding:0 12px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-right:0;
  border-radius:var(--ipn-radius-input, 8px) 0 0 var(--ipn-radius-input, 8px);
  font:inherit;
  font-size:14px;
  color:var(--ipn-text);
  background:var(--ipn-surface);
  box-sizing:border-box;
}
.ipn-tdn-ts-filters .ipn-datepicker input[data-input]:focus{
  outline:none;
  border-color:var(--ipn-brand, var(--ipn-primary));
  z-index:1;
}
.ipn-tdn-ts-filters .ipn-datepicker__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  flex:0 0 42px;
  height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  min-height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-radius:0 var(--ipn-radius-input, 8px) var(--ipn-radius-input, 8px) 0;
  background:var(--ipn-surface-soft, #f5f7fb);
  color:var(--ipn-text-2, #5b6b80);
  cursor:pointer;
  padding:0;
}
.ipn-tdn-ts-filters .ipn-datepicker__btn:hover{
  background:var(--ipn-surface);
  color:var(--ipn-brand, var(--ipn-primary));
}
.ipn-tdn-ts-filters .ipn-datepicker__btn .material-symbols-rounded{ font-size:18px; }
.ipn-tdn-ts-filters .ipn-secure-filters__actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
  margin-left:auto;
}
.ipn-tdn-ts-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
.ipn-tdn-ts .ipn-card--table{ overflow:visible; }
.ipn-tdn-ts .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-tdn-ts .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-tdn-ts-detail .ipn-page-title{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:8px;
  min-width:0;
}
.ipn-tdn-ts-detail .ipn-page-title__label{
  flex:0 0 auto;
  white-space:nowrap;
}
.ipn-tdn-ts-detail .ipn-page-title__entity{
  flex:1 1 auto;
  min-width:0;
  font-size:16px;
  font-weight:600;
  color:var(--ipn-text-2, #55606f);
  line-height:1.3;
  overflow-wrap:anywhere;
}
.ipn-tdn-ts-detail .ipn-dl + .ipn-table-wrap,
.ipn-tdn-ts-detail .ipn-form-section__title + .ipn-table-wrap{ margin-top:16px; }
.ipn-tdn-ts__status{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.ipn-tdn-ts__status .material-symbols-rounded{
  font-size:18px;
  color:var(--ipn-muted, #5b6b80);
  vertical-align:middle;
}
body.ipn2:has(.ipn-tdn-ts-detail) #iPNpopUpDiv.iPNpopUpDiv,
#iPNpopUpDiv.ipn-tdn-ts-popup{
  height:auto;
  max-height:85vh;
  width:min(70vw, 920px);
  max-width:calc(100vw - 24px);
  overflow:auto;
  padding:20px 22px;
  box-sizing:border-box;
}
.ipn-tdn-ts-popup .ipn-tdn-ts-popup__title{
  margin:0 0 14px;
  font-size:18px;
  font-weight:700;
}
.ipn-tdn-ts-popup .ipn-dl{ margin-bottom:12px; }
.ipn-tdn-ts-popup__tabs{
  display:flex;
  gap:0;
  list-style:none;
  margin:0 0 0;
  padding:0;
  width:100%;
  max-width:320px;
}
.ipn-tdn-ts-popup__tabs li{ flex:1 1 0; min-width:0; }
.ipn-tdn-ts-popup__tabs a{
  display:block;
  text-align:center;
  text-decoration:none;
  color:var(--ipn-text);
  padding:8px 0;
  background:var(--ipn-surface-soft, #eee);
  border-radius:8px 8px 0 0;
}
.ipn-tdn-ts-popup__tabs a:hover{ background:var(--ipn-surface-soft-2, #ccc); }
.ipn-tdn-ts-popup__tabs .ipn-tdn-ts-popup__indicator{
  display:block;
  width:50%;
  height:4px;
  margin:-4px auto 0;
  background:var(--ipn-brand, #365ABA);
  visibility:hidden;
  border-radius:2px;
}
.ipn-tdn-ts-popup__tabs li.is-active .ipn-tdn-ts-popup__indicator,
.ipn-tdn-ts-popup__tabs .ipn-tdn-ts-popup__indicator.is-visible{
  visibility:visible;
}
.ipn-tdn-ts-popup .ipn-tdn-ts-popup__pre{
  margin:0;
  padding:12px 14px;
  border-left:4px solid var(--ipn-brand, #365ABA);
  background:var(--ipn-surface-soft, #eee);
  overflow:auto;
  min-height:40vh;
  max-height:48vh;
  font-size:13px;
}
.ipn-tdn-ts-popup .ipn-tdn-ts-popup__actions{
  margin-top:16px;
  display:flex;
  justify-content:flex-start;
}
body:has(.ipn-tdn-ts) .flatpickr-calendar{
  font-family:var(--ipn-font);
}
@media (max-width:700px){
  .ipn-tdn-ts-filters{ flex-direction:column; align-items:stretch; }
  .ipn-tdn-ts-filters .ipn-field,
  .ipn-tdn-ts-filters .ipn-field--sm,
  .ipn-tdn-ts-filters .ipn-field--sm .ipn-datepicker,
  .ipn-tdn-ts-filters .ipn-field--sm .ipn-input,
  .ipn-tdn-ts-filters .ipn-datepicker{ max-width:100%; width:100%; }
  .ipn-tdn-ts-filters .ipn-secure-filters__actions{
    width:100%;
    flex:1 1 auto;
    flex-direction:column;
    align-items:stretch;
    margin-left:0;
  }
  .ipn-tdn-ts-filters .ipn-secure-filters__actions .ipn-btn{
    flex:1 1 auto;
    width:100%;
    min-height:var(--ipn-touch-min,44px);
    justify-content:center;
    box-sizing:border-box;
  }
}
@media (max-width:899px){
  .ipn-tdn-ts .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-tdn-ts .ipn-table--list .ipn-table__th-desc,
  .ipn-tdn-ts .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}

/* AV: 2026-09-04: #388 VTEX Procesos de sincronizacion (.ipn-vtex-ts / -detail). */
/* AV: 2026-09-09: #515 ? flush tabs?card/form (chrome #133 / patr?n #509); gap solo filtros?grilla. */
.ipn-vtex-ts .ipn-tabs + .ipn-card,
.ipn-vtex-ts .ipn-tabs + .ipn-card--table,
.ipn-vtex-ts .ipn-tabs + form > .ipn-card{
  margin-top:0;
  border-top-left-radius:0;
  border-top-right-radius:0;
}
.ipn-vtex-ts .ipn-tabs + form{ margin-top:0; }
.ipn-vtex-ts form + .ipn-card,
.ipn-vtex-ts .ipn-notice-stack + .ipn-tabs{ margin-top:16px; }
.ipn-vtex-ts-filters{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:12px 16px;
}
.ipn-vtex-ts-filters .ipn-field{ flex:1 1 200px; min-width:160px; }
/* AV: 2026-09-09: #515 ? field--sm >= datepicker 168px (antes 140px comprim?a el ?cono). */
.ipn-vtex-ts-filters .ipn-field--sm{ flex:0 1 168px; min-width:140px; }
.ipn-vtex-ts-filters .ipn-field--sm .ipn-datepicker,
.ipn-vtex-ts-filters .ipn-field--sm .ipn-input{
  max-width:168px;
  width:100%;
  box-sizing:border-box;
}
.ipn-vtex-ts-filters .ipn-datepicker{
  display:inline-flex;
  align-items:stretch;
  max-width:168px;
  width:168px;
}
.ipn-vtex-ts-filters .ipn-datepicker input[data-input]{
  flex:1 1 auto;
  min-width:0;
  width:auto;
  height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  min-height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  padding:0 12px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-right:0;
  border-radius:var(--ipn-radius-input, 8px) 0 0 var(--ipn-radius-input, 8px);
  font:inherit;
  font-size:14px;
  color:var(--ipn-text);
  background:var(--ipn-surface);
  box-sizing:border-box;
}
.ipn-vtex-ts-filters .ipn-datepicker input[data-input]:focus{
  outline:none;
  border-color:var(--ipn-brand, var(--ipn-primary));
  z-index:1;
}
.ipn-vtex-ts-filters .ipn-datepicker__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  flex:0 0 42px;
  height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  min-height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-radius:0 var(--ipn-radius-input, 8px) var(--ipn-radius-input, 8px) 0;
  background:var(--ipn-surface-soft, #f5f7fb);
  color:var(--ipn-text-2, #5b6b80);
  cursor:pointer;
  padding:0;
}
.ipn-vtex-ts-filters .ipn-datepicker__btn:hover{
  background:var(--ipn-surface);
  color:var(--ipn-brand, var(--ipn-primary));
}
.ipn-vtex-ts-filters .ipn-datepicker__btn .material-symbols-rounded{ font-size:18px; }
.ipn-vtex-ts-filters .ipn-secure-filters__actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
  margin-left:auto;
}
.ipn-vtex-ts-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
.ipn-vtex-ts .ipn-card--table{ overflow:visible; }
.ipn-vtex-ts .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-vtex-ts .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-vtex-ts-detail .ipn-page-title{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:8px;
  min-width:0;
}
.ipn-vtex-ts-detail .ipn-page-title__label{
  flex:0 0 auto;
  white-space:nowrap;
}
.ipn-vtex-ts-detail .ipn-page-title__entity{
  flex:1 1 auto;
  min-width:0;
  font-size:16px;
  font-weight:600;
  color:var(--ipn-text-2, #55606f);
  line-height:1.3;
  overflow-wrap:anywhere;
}
.ipn-vtex-ts-detail .ipn-dl + .ipn-table-wrap,
.ipn-vtex-ts-detail .ipn-form-section__title + .ipn-table-wrap{ margin-top:16px; }
.ipn-vtex-ts__status{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.ipn-vtex-ts__status .material-symbols-rounded{
  font-size:18px;
  color:var(--ipn-muted, #5b6b80);
  vertical-align:middle;
}
body.ipn2:has(.ipn-vtex-ts-detail) #iPNpopUpDiv.iPNpopUpDiv,
#iPNpopUpDiv.ipn-vtex-ts-popup{
  height:auto;
  max-height:85vh;
  width:min(70vw, 920px);
  max-width:calc(100vw - 24px);
  overflow:auto;
  padding:20px 22px;
  box-sizing:border-box;
}
.ipn-vtex-ts-popup .ipn-vtex-ts-popup__title{
  margin:0 0 14px;
  font-size:18px;
  font-weight:700;
}
.ipn-vtex-ts-popup .ipn-dl{ margin-bottom:12px; }
.ipn-vtex-ts-popup__tabs{
  display:flex;
  gap:0;
  list-style:none;
  margin:0 0 0;
  padding:0;
  width:100%;
  max-width:320px;
}
.ipn-vtex-ts-popup__tabs li{ flex:1 1 0; min-width:0; }
.ipn-vtex-ts-popup__tabs a{
  display:block;
  text-align:center;
  text-decoration:none;
  color:var(--ipn-text);
  padding:8px 0;
  background:var(--ipn-surface-soft, #eee);
  border-radius:8px 8px 0 0;
}
.ipn-vtex-ts-popup__tabs a:hover{ background:var(--ipn-surface-soft-2, #ccc); }
.ipn-vtex-ts-popup__tabs .ipn-vtex-ts-popup__indicator{
  display:block;
  width:50%;
  height:4px;
  margin:-4px auto 0;
  background:var(--ipn-brand, #365ABA);
  visibility:hidden;
  border-radius:2px;
}
.ipn-vtex-ts-popup__tabs li.is-active .ipn-vtex-ts-popup__indicator,
.ipn-vtex-ts-popup__tabs .ipn-vtex-ts-popup__indicator.is-visible{
  visibility:visible;
}
.ipn-vtex-ts-popup .ipn-vtex-ts-popup__pre{
  margin:0;
  padding:12px 14px;
  border-left:4px solid var(--ipn-brand, #365ABA);
  background:var(--ipn-surface-soft, #eee);
  overflow:auto;
  min-height:40vh;
  max-height:48vh;
  font-size:13px;
}
.ipn-vtex-ts-popup .ipn-vtex-ts-popup__actions{
  margin-top:16px;
  display:flex;
  justify-content:flex-start;
}
body:has(.ipn-vtex-ts) .flatpickr-calendar{
  font-family:var(--ipn-font);
}
@media (max-width:700px){
  .ipn-vtex-ts-filters{ flex-direction:column; align-items:stretch; }
  .ipn-vtex-ts-filters .ipn-field,
  .ipn-vtex-ts-filters .ipn-field--sm,
  .ipn-vtex-ts-filters .ipn-field--sm .ipn-datepicker,
  .ipn-vtex-ts-filters .ipn-field--sm .ipn-input,
  .ipn-vtex-ts-filters .ipn-datepicker{ max-width:100%; width:100%; }
  .ipn-vtex-ts-filters .ipn-secure-filters__actions{
    width:100%;
    flex:1 1 auto;
    flex-direction:column;
    align-items:stretch;
    margin-left:0;
  }
  .ipn-vtex-ts-filters .ipn-secure-filters__actions .ipn-btn{
    flex:1 1 auto;
    width:100%;
    min-height:var(--ipn-touch-min,44px);
    justify-content:center;
    box-sizing:border-box;
  }
}
@media (max-width:899px){
  .ipn-vtex-ts .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-vtex-ts .ipn-table--list .ipn-table__th-desc,
  .ipn-vtex-ts .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}
/* AV: 2026-09-04: #361 ? B2C AutomaticPromoCodes; scroll-x mobile (patron #89). */
.ipn-b2c-apc{
  min-width:0;
  max-width:100%;
}
.ipn-b2c-apc .ipn-card--table{
  overflow:visible;
  max-width:100%;
  min-width:0;
}
.ipn-b2c-apc .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-b2c-apc .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-b2c-apc__row--deleted td,
.ipn-b2c-apc__row--deleted .ipn-table__desc-link{
  color:#b42318 !important;
  text-decoration:line-through !important;
}
.ipn-b2c-apc__row--pending td{
  color:#9aa5b5;
}
.ipn-b2c-apc__badge-deleted{
  color:#b42318;
  font-size:0.85em;
  font-weight:600;
  margin-left:6px;
}
.ipn-b2c-apc__cat-list{
  margin:0;
  padding:0;
  list-style:none;
}
.ipn-b2c-apc__cat-item{
  list-style:none;
}
.ipn-b2c-apc__cat-item.is-root{
  font-weight:700;
}
.ipn-b2c-apc-form .ipn-field{ min-width:0; }
.ipn-b2c-apc-form .ipn-input,
.ipn-b2c-apc-form .ipn-select{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
.ipn-b2c-apc__interval,
.ipn-b2c-apc__discount-row,
.ipn-b2c-apc__limit-row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
}
.ipn-b2c-apc__interval .ipn-input{ max-width:120px; }
.ipn-b2c-apc__interval .ipn-select{ max-width:120px; }
.ipn-b2c-apc__discount-row .ipn-select{ max-width:180px; }
.ipn-b2c-apc__discount-row .ipn-input{ max-width:120px; }
.ipn-b2c-apc__limit-row .ipn-select{ max-width:220px; }
.ipn-b2c-apc__limit-times{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
}
.ipn-b2c-apc__limit-times .ipn-input{ max-width:120px; }
.ipn-b2c-apc__checklist{
  display:flex;
  flex-direction:column;
  gap:8px;
  max-width:100%;
}
.ipn-b2c-apc__store-head{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
  margin-top:12px;
  margin-bottom:4px;
}
.ipn-b2c-apc-form .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
  box-sizing:border-box;
}
.ipn-b2c-apc-form .ipn-check-row.is-disabled{
  opacity:0.6;
}
.ipn-b2c-apc-delete .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
  box-sizing:border-box;
}
@media (max-width:899px){
  .ipn-b2c-apc .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-b2c-apc .ipn-table--list .ipn-table__th-desc,
  .ipn-b2c-apc .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}
@media (max-width:700px){
  .ipn-b2c-apc .ipn-table--list th,
  .ipn-b2c-apc .ipn-table--list td{
    padding:8px 10px;
  }
  .ipn-b2c-apc__interval,
  .ipn-b2c-apc__discount-row,
  .ipn-b2c-apc__limit-row{
    flex-direction:column;
    align-items:stretch;
  }
  .ipn-b2c-apc__interval .ipn-input,
  .ipn-b2c-apc__interval .ipn-select,
  .ipn-b2c-apc__discount-row .ipn-select,
  .ipn-b2c-apc__discount-row .ipn-input,
  .ipn-b2c-apc__limit-row .ipn-select,
  .ipn-b2c-apc__limit-times .ipn-input{
    max-width:100%;
    width:100%;
  }
}
.ipn-b2c-apc-form .ipn-icon-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  padding:0;
  border:0;
  background:transparent;
  color:var(--ipn-muted, #6b7280);
  cursor:pointer;
  vertical-align:middle;
}
.ipn-b2c-apc-form .ipn-icon-btn .material-symbols-rounded{
  font-size:20px;
}
.ipn-b2c-apc-form .ipn-label .ipn-icon-btn{
  margin-left:4px;
}


/* AV: 2026-09-04: #366 ? CashFlow Connect CVU listado (scope .ipn-cfc-cvu). */
.ipn-cfc-cvu-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
/* AV: 2026-09-07: #454 - .ipn-field after --grow overrode flex (Cliente ~180px + hint = tiny click target). */
.ipn-cfc-cvu-filters .ipn-field{
  flex:0 1 180px;
  min-width:140px;
}
.ipn-cfc-cvu-filters .ipn-field--grow{
  flex:1 1 320px;
  min-width:280px;
}
.ipn-cfc-cvu-filters .ipn-secure-filters__actions{
  margin-left:auto;
  flex:0 0 auto;
  gap:8px;
}
.ipn-cfc-cvu-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
.ipn-cfc-cvu .ipn-card--table{
  overflow:visible;
}
.ipn-cfc-cvu .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-cfc-cvu .ipn-table--list{
  width:max-content;
  min-width:100%;
}
.ipn-cfc-cvu__deleted{
  color:#b42318;
  text-decoration:line-through;
}
.ipn-cfc-cvu__cust-merged{
  border-top:none;
  border-bottom:none;
}
.ipn-cfc-cvu .ipn-cfc-cvu__customer a{
  color:var(--ipn-brand, #2f62c4);
  text-decoration:none;
}
.ipn-cfc-cvu .ipn-cfc-cvu__customer a:hover{
  text-decoration:underline;
}
@media (max-width:700px){
  .ipn-cfc-cvu-filters{
    flex-direction:column;
    align-items:stretch;
  }
  .ipn-cfc-cvu-filters .ipn-field,
  .ipn-cfc-cvu-filters .ipn-field--grow{
    flex:1 1 auto;
    min-width:0;
    width:100%;
  }
  .ipn-cfc-cvu-filters .ipn-secure-filters__actions{
    margin-left:0;
    width:100%;
  }
  .ipn-cfc-cvu-filters .ipn-secure-filters__actions .ipn-btn{
    flex:1 1 auto;
    justify-content:center;
  }
  .ipn-cfc-cvu .ipn-table--list th,
  .ipn-cfc-cvu .ipn-table--list td{
    padding:8px 10px;
  }
}

/* AV: 2026-09-04: #367 Cashflow Connect settings ? patr?n de reglas (scope .ipn-cfc-settings). */
.ipn-cfc-settings__list{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin:0 0 8px;
}
.ipn-cfc-settings__rule{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:16px 18px;
  background:var(--ipn-surface, #fff);
  border:1px solid var(--ipn-hairline, #e2e7ef);
  border-radius:var(--ipn-radius-card, 12px);
  box-shadow:var(--ipn-shadow-card, 0 1px 2px rgba(18,39,64,.04));
  border-left:3px solid var(--ipn-brand, #1e60a2);
}
.ipn-cfc-settings__rule--default{
  background:#fff8f8;
  border-left-color:var(--ipn-danger, #d92d20);
}
.ipn-cfc-settings__rule-head{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:8px 12px;
}
.ipn-cfc-settings__badge{
  margin-left:auto;
  font-size:11px;
  font-weight:700;
  color:var(--ipn-danger, #d92d20);
  text-decoration:underline;
  white-space:nowrap;
}
.ipn-cfc-settings__rule-title{
  flex:1 1 auto;
  min-width:0;
  margin:0;
  font-size:15px;
  font-weight:650;
  color:var(--ipn-text, #122740);
  line-height:1.3;
}
.ipn-cfc-settings__rule-desc{
  margin:0;
  font-size:13px;
  color:var(--ipn-text-3, #5b6b80);
  line-height:1.45;
}
.ipn-cfc-settings__rule-control{
  margin-top:4px;
  max-width:100%;
}
.ipn-cfc-settings__rule-control .ipn-input,
.ipn-cfc-settings__rule-control .ipn-select{
  max-width:min(100%, 480px);
  width:100%;
  box-sizing:border-box;
}
.ipn-cfc-settings .ipn-secure-actions{
  display:flex;
  align-items:center;
  gap:10px;
  margin:16px 0 8px;
  position:sticky;
  bottom:0;
  z-index:5;
  padding:12px 0;
  background:linear-gradient(180deg, transparent, #f4f6f9 28%);
}
.ipn-cfc-settings .ipn-secure-actions .ipn-btn--primary{ margin-left:auto; }
.ipn-cfc-settings-log .ipn-table th.is-center,
.ipn-cfc-settings-log .ipn-table td.is-center{ text-align:center; }
.ipn-cfc-settings-log .ipn-muted{
  font-size:12px;
  color:var(--ipn-text-3, #5b6b80);
}
.ipn-cfc-settings .ipn-field{ min-width:0; }
.ipn-cfc-settings .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
}
.ipn-cfc-settings .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
@media (max-width:700px){
  .ipn-cfc-settings__badge{ margin-left:0; width:100%; }
  .ipn-cfc-settings__rule-control .ipn-input,
  .ipn-cfc-settings__rule-control .ipn-select{
    max-width:100%;
  }
  .ipn-cfc-settings .ipn-secure-actions{
    flex-wrap:wrap;
  }
  .ipn-cfc-settings .ipn-secure-actions .ipn-btn--primary{
    margin-left:0;
    width:100%;
  }
}
/* AV: 2026-09-04: #362 ? Perfiles de gesti?n de ?rdenes (scope .ipn-billing-cfg). */
.ipn-billing-cfg{
  min-width:0;
  max-width:100%;
}
.ipn-billing-cfg .ipn-card--table{
  overflow:visible;
  max-width:100%;
  min-width:0;
}
.ipn-billing-cfg .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.ipn-billing-cfg .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-billing-cfg-form .ipn-field{
  min-width:0;
}
.ipn-billing-cfg-form .ipn-check-row{
  display:flex;
  align-items:flex-start;
  flex-wrap:wrap;
  gap:6px;
  white-space:normal;
  max-width:100%;
}
.ipn-billing-cfg-form .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ipn-billing-cfg-form .ipn-help-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  background:transparent;
  padding:0;
  margin:0;
  color:var(--ipn-text-3, #5b6b80);
  cursor:help;
  line-height:1;
}
.ipn-billing-cfg-form .ipn-help-btn .material-symbols-rounded{
  font-size:18px;
}
.ipn-billing-cfg-form .ipn-secure-actions{
  margin-top:16px;
}
.ipn-billing-cfg-form .ipn-secure-actions .ipn-btn--primary{
  margin-left:auto;
}
.ipn-billing-cfg-form #spn_salesPointCmbFact select,
.ipn-billing-cfg-form #spn_salesPointCmbRemito select,
.ipn-billing-cfg-form #employeeZone select,
.ipn-billing-cfg-form #paymentEmployeeZone select,
.ipn-billing-cfg-form #jurisdictionID,
.ipn-billing-cfg-form #priceListID{
  width:100%;
  max-width:100%;
}
.ipn-billing-cfg-detail .ipn-form-section__title{
  margin:0 0 12px;
}
.ipn-billing-cfg-detail .ipn-form-section__title + .ipn-dl{
  margin-bottom:20px;
}
.ipn-billing-cfg-detail .ipn-action-row--danger{
  width:100%;
  text-align:left;
  cursor:pointer;
  font:inherit;
  background:transparent;
  border:0;
  padding:0;
}
.ipn-billing-cfg-delete .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
  margin-top:12px;
}
.ipn-billing-cfg-delete .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ipn-billing-cfg-delete .ipn-secure-actions .ipn-btn--danger{
  margin-left:auto;
}
@media (max-width:700px){
  .ipn-billing-cfg .ipn-table--list thead th{
    position:static;
    top:auto;
  }
  .ipn-billing-cfg .ipn-table--list th,
  .ipn-billing-cfg .ipn-table--list td{
    padding:8px 10px;
  }
  .ipn-billing-cfg-form .ipn-secure-actions,
  .ipn-billing-cfg-delete .ipn-secure-actions{
    flex-wrap:wrap;
  }
  .ipn-billing-cfg-form .ipn-secure-actions .ipn-btn,
  .ipn-billing-cfg-delete .ipn-secure-actions .ipn-btn{
    width:100%;
  }
  .ipn-billing-cfg-form .ipn-secure-actions .ipn-btn--primary,
  .ipn-billing-cfg-delete .ipn-secure-actions .ipn-btn--danger{
    margin-left:0;
  }
}

/* AV: 2026-09-07: #333 Imputacion de comprobantes - scope dominio. */
.ipn-profit-centre-imputation{
  min-width:0;
  max-width:100%;
}
.ipn-profit-centre-imputation .ipn-card--table,
.ipn-profit-centre-imputation .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow:visible;
}
.ipn-profit-centre-imputation .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-profit-centre-imputation .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-profit-centre-imputation__table-head{
  padding-bottom:0;
}
.ipn-profit-centre-imputation__amt,
.ipn-profit-centre-imputation__perc{
  width:96px;
  max-width:100%;
  text-align:right;
  font-variant-numeric:tabular-nums;
}
.ipn-profit-centre-imputation__th-max,
.ipn-profit-centre-imputation__max{
  width:52px;
  text-align:center;
}
.ipn-profit-centre-imputation__max .ipn-check-row{
  display:inline-flex;
  justify-content:center;
  margin:0;
}
.ipn-profit-centre-imputation__tfoot-label{
  text-align:right;
  font-weight:600;
}
.ipn-profit-centre-imputation .ipn-secure-actions{
  margin-top:16px;
}
.ipn-profit-centre-imputation .ipn-datepicker{
  max-width:200px;
}
@media (max-width:899px){
  .ipn-profit-centre-imputation .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-profit-centre-imputation .ipn-table--list .ipn-table__th-desc,
  .ipn-profit-centre-imputation .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}
@media (max-width:700px){
  .ipn-profit-centre-imputation .ipn-table--list th,
  .ipn-profit-centre-imputation .ipn-table--list td{ padding:8px 10px; }
  .ipn-profit-centre-imputation__amt,
  .ipn-profit-centre-imputation__perc{ width:84px; }
}

/* AV: 2026-09-07: #339 restockingProcessSettings ? scope .ipn-rps / .ipn-rps-log. */
.ipn-rps .ipn-rps__scheduler{ margin:0 0 16px; }
.ipn-rps .ipn-rps__section-head{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:0 0 12px; }
.ipn-rps .ipn-rps__section-title{ margin:0; font-size:16px; font-weight:700; color:var(--ipn-text); display:inline-flex; align-items:center; gap:6px; flex:1 1 auto; min-width:0; }
.ipn-rps .ipn-rps__hint{ margin:0 0 14px; font-size:13px; color:var(--ipn-text-3, #5b6b80); }
.ipn-rps .ipn-rps__nested-card{ margin:0 0 16px; overflow:visible; }
.ipn-rps .ipn-rps__nested-card .ipn-table-wrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
.ipn-rps .ipn-table--list{ width:max-content; min-width:100%; }
.ipn-rps .ipn-rps__tree-th{ white-space:nowrap; }
.ipn-rps .ipn-rps__tree-toggle{ vertical-align:middle; margin-right:4px; }
.ipn-rps .ipn-rps__tree-body.is-collapsed{ display:none; }
.ipn-rps .ipn-rps__row--deleted td{ background:#fff7f7; text-decoration:line-through; color:var(--ipn-danger, #b42318); }
.ipn-rps .ipn-rps__add-block{ margin-top:4px; }
.ipn-rps .ipn-rps__add-block .ipn-textarea{ width:100%; min-height:150px; box-sizing:border-box; }
.ipn-rps .ipn-label .ipn-help-btn,
.ipn-rps .ipn-rps__section-title .ipn-help-btn{ vertical-align:middle; }
.ipn-rps .ipn-rps__stores{ display:flex; flex-direction:column; gap:8px; }
.ipn-rps .ipn-rps__company{ margin-top:8px; }
.ipn-rps .ipn-rps__store-type{ padding:6px 0 2px 12px; font-size:13px; color:var(--ipn-text-2, #344054); }
.ipn-rps .ipn-rps__stores-row{ display:flex; flex-wrap:wrap; gap:8px 16px; padding-left:24px; }
.ipn-rps .ipn-rps__store-check,
.ipn-rps .ipn-rps__company-check{ display:flex; align-items:flex-start; white-space:normal; max-width:100%; min-width:0; flex:1 1 220px; }
.ipn-rps .ipn-rps__company-check{ flex:1 1 100%; }
.ipn-rps .ipn-check-row > span{ min-width:0; flex:1 1 auto; overflow-wrap:anywhere; line-height:1.35; }
.ipn-rps .ipn-field{ min-width:0; }
.ipn-rps .ipn-secure-actions{ display:flex; align-items:center; gap:10px; margin-top:16px; }
.ipn-rps .ipn-secure-actions .ipn-btn--primary{ margin-left:auto; }
.ipn-rps-log .ipn-table th.is-center,
.ipn-rps-log .ipn-table td.is-center{ text-align:center; }
.ipn-rps-log .ipn-rps-log__toggle{ vertical-align:middle; margin-right:4px; }
.ipn-rps-log .ipn-rps-log__detail-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; padding:8px 4px; }
.ipn-rps-log .ipn-rps-log__detail-title{ margin:0 0 8px; font-size:13px; font-weight:700; }
.ipn-rps-log .ipn-rps-log__detail-values{ font-size:13px; line-height:1.45; overflow-wrap:anywhere; }
@media (max-width:700px){
  .ipn-rps .ipn-table--list th,
  .ipn-rps .ipn-table--list td,
  .ipn-rps-log .ipn-table--list th,
  .ipn-rps-log .ipn-table--list td{ padding:8px 10px; }
  .ipn-rps .ipn-rps__stores-row{ padding-left:8px; }
  .ipn-rps .ipn-rps__store-check{ flex:1 1 100%; }
  .ipn-rps .ipn-secure-actions{ flex-wrap:wrap; }
  .ipn-rps .ipn-secure-actions .ipn-btn--primary{ margin-left:0; width:100%; justify-content:center; }
  .ipn-rps-log .ipn-rps-log__detail-grid{ grid-template-columns:1fr; }
}

/* AV: 2026-09-08: #424 ? plugin embebido de tareas programadas (taskSchedulerPlugIn2). */
.ipn-task-sched-plugin{
  margin:0 0 16px;
  font-family:var(--ipn-font);
}
.ipn-task-sched-plugin__title{
  margin:0 0 12px;
  font-size:16px;
  font-weight:700;
  color:var(--ipn-text);
  line-height:1.3;
}
.ipn-task-sched-plugin .ipn-card--table{
  overflow:visible;
}
.ipn-task-sched-plugin .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-task-sched-plugin .ipn-table--list{
  width:max-content;
  min-width:100%;
}
.ipn-task-sched-plugin .ipn-task-sched__status{
  display:inline-flex;
  align-items:center;
  gap:6px;
  vertical-align:middle;
}
.ipn-task-sched-plugin .js-ipn-tsp-error{
  vertical-align:middle;
  margin-left:4px;
}
.ipn-task-sched-plugin__actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding:12px 16px 16px;
}
@media (max-width:700px){
  .ipn-task-sched-plugin .ipn-table--list th,
  .ipn-task-sched-plugin .ipn-table--list td{ padding:8px 10px; }
  .ipn-task-sched-plugin__actions .ipn-btn{ width:100%; justify-content:center; }
}


/* AV: 2026-09-07: #316 ? Ofertas (filtros tabs, estados grilla, checks stores) */
/* AV: 2026-09-07: #438 ? chrome Flatpickr listado/alta; req inline; mobile labels arriba. */
/* AV: 2026-09-07: #446 ? mobile: * inline + checks sucursales/listas en columna. */
/* AV: 2026-09-08: #475 - flush tabs->card aunque haya nodos entre medio; Buscar al pie del card. */
/* AV: 2026-09-09: #511/#520 - selects filtros: border con --ipn-border-input
   (--ipn-border no existe en :root ? border invalido / transparente). */
.ipn-offers .ipn-offers-filters select,
.ipn-offers .ipn-offers-filters select.field,
.ipn-offers .ipn-offers-filters select.select,
.ipn-offers .ipn-offers-filters .ipn-select{
  appearance:none;
  -webkit-appearance:none;
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
  height:var(--ipn-form-control-h, 42px);
  padding:0 34px 0 12px;
  border:1px solid var(--ipn-border-input, #d7dce4);
  border-radius:var(--ipn-radius-input, 8px);
  background-color:var(--ipn-surface, #fff);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%238a94a2' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 10px center;
  font:inherit;
  font-size:14px;
  color:var(--ipn-text);
  line-height:var(--ipn-form-control-h, 42px);
}
.ipn-offers form > .ipn-tabs ~ .ipn-card{
  margin-top:0;
  border-top-left-radius:0;
  border-top-right-radius:0;
}
/* AV: 2026-09-08: #487 ? Buscar al pie visual del card aunque en DOM vaya antes de Sucursales. */
.ipn-offers .ipn-card__body{
  display:flex;
  flex-direction:column;
}
.ipn-offers .ipn-card__body > .ipn-offers-panel{ order:1; }
.ipn-offers .ipn-card__body > .ipn-secure-filters__actions{ order:2; }
.ipn-offers .ipn-offers-filters .ipn-secure-filters__actions{ margin-left:auto; }
.ipn-offers .ipn-secure-filters__actions{ margin-left:auto; margin-top:12px; display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.ipn-offers .ipn-card__body > .ipn-secure-filters__actions{ margin-top:16px; }
.ipn-offers .ipn-offers-dates{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.ipn-offers .ipn-offers-dates .ipn-datepicker,
.ipn-offers-form .ipn-datepicker,
.ipn-offers-audit .ipn-datepicker{
  display:inline-flex;
  align-items:stretch;
  width:180px;
  max-width:100%;
  vertical-align:middle;
}
.ipn-offers .ipn-offers-dates .ipn-datepicker input[data-input],
.ipn-offers-form .ipn-datepicker input[data-input],
.ipn-offers-form .ipn-datepicker .ipn-input,
.ipn-offers-audit .ipn-datepicker input[data-input],
.ipn-offers-audit .ipn-datepicker .ipn-input{
  flex:1 1 auto;
  min-width:0;
  width:auto;
  height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  min-height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  padding:0 12px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-right:0;
  border-radius:var(--ipn-radius-input, 8px) 0 0 var(--ipn-radius-input, 8px);
  font:inherit;
  font-size:14px;
  color:var(--ipn-text);
  background:var(--ipn-surface);
  box-sizing:border-box;
}
.ipn-offers .ipn-offers-dates .ipn-datepicker input[data-input]:focus,
.ipn-offers-form .ipn-datepicker input[data-input]:focus,
.ipn-offers-audit .ipn-datepicker input[data-input]:focus{
  outline:none;
  border-color:var(--ipn-brand, var(--ipn-primary));
  z-index:1;
}
.ipn-offers .ipn-offers-dates .ipn-datepicker__btn,
.ipn-offers-form .ipn-datepicker__btn,
.ipn-offers-audit .ipn-datepicker__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  flex:0 0 42px;
  height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  min-height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-radius:0 var(--ipn-radius-input, 8px) var(--ipn-radius-input, 8px) 0;
  background:var(--ipn-surface-soft, #f5f7fb);
  color:var(--ipn-text-2, #5b6b80);
  cursor:pointer;
  padding:0;
  line-height:1;
  box-sizing:border-box;
}
.ipn-offers .ipn-offers-dates .ipn-datepicker__btn:hover,
.ipn-offers-form .ipn-datepicker__btn:hover,
.ipn-offers-audit .ipn-datepicker__btn:hover{
  background:var(--ipn-surface);
  color:var(--ipn-brand, var(--ipn-primary));
}
.ipn-offers .ipn-offers-dates .ipn-datepicker__btn .material-symbols-rounded,
.ipn-offers-form .ipn-datepicker__btn .material-symbols-rounded,
.ipn-offers-audit .ipn-datepicker__btn .material-symbols-rounded{
  font-size:18px;
  line-height:1;
  display:block;
}
.ipn-offers .ipn-offers-store-types{ display:flex; flex-wrap:wrap; gap:8px 16px; margin-bottom:12px; }
.ipn-offers .ipn-offers-stores{ display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:8px; }
.ipn-offers .ipn-offers-panel.is-hidden{ display:none !important; }
.ipn-offers .ipn-table--list tr.is-disabled{ color:var(--ipn-danger,#c62828); text-decoration:line-through; }
.ipn-offers .ipn-table--list tr.is-not-vigent{ background:var(--ipn-surface-muted,#f0f0f0); }
.ipn-offers .ipn-card--table{ overflow:visible; }
.ipn-offers .ipn-table-wrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
.ipn-offers .ipn-table--list{ width:max-content; min-width:100%; }
.ipn-offers-detail .ipn-offers-list{ margin:0; padding-left:18px; }
.ipn-offers-detail .ipn-offers-list li{ margin:4px 0; }
.ipn-offers-detail .ipn-offers-status--ok{ color:#039855; font-weight:600; }
.ipn-offers-detail .ipn-offers-status--off{ color:var(--ipn-danger,#c62828); font-weight:600; }
.ipn-offers-form .ipn-field{ min-width:0; }
.ipn-offers-form .ipn-check-row{ display:flex; align-items:flex-start; white-space:normal; max-width:100%; }
.ipn-offers-form .ipn-check-row > span{ min-width:0; flex:1 1 auto; overflow-wrap:anywhere; line-height:1.35; }
.ipn-offers-form .ipn-offers-form-panel.is-hidden{ display:none !important; }
.ipn-offers-form .ipn-offers-form-table{ width:100%; border-collapse:collapse; }
.ipn-offers-form .ipn-offers-form-table > tbody > tr > td{
  padding:8px 0;
  vertical-align:middle;
}
.ipn-offers-form .ipn-offers-form-table > tbody > tr > td:first-child{
  width:240px;
  padding-right:12px;
  color:var(--ipn-text-2, #5b6b80);
  font-size:13px;
}
.ipn-offers-form .ipn-offers-form__date-row--start > td{ padding-top:20px; }
.ipn-offers-form .ipn-offers-datetime{
  display:inline-flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 10px;
  max-width:100%;
}
.ipn-offers-form .ipn-offers-time{
  width:64px;
  min-width:64px;
  max-width:72px;
}
.ipn-offers-form .ipn-offers-form-table .ipn-input,
.ipn-offers-form .ipn-offers-form-table .ipn-select:not(.ipn-offers-time){
  display:inline-block;
  vertical-align:middle;
  width:min(420px, 100%);
  max-width:100%;
}
.ipn-offers-form .ipn-offers-form-table .ipn-req,
.ipn-offers-form .ipn-offers-datetime .ipn-req{
  display:inline-flex;
  align-items:center;
  vertical-align:middle;
  white-space:nowrap;
  flex:0 0 auto;
  margin-left:4px;
}
/* AV: 2026-09-07: #446 ? input+* en la misma fila (mobile). */
.ipn-offers-form .ipn-offers-form__with-req{
  display:inline-flex;
  align-items:center;
  gap:6px;
  max-width:100%;
  width:min(420px, 100%);
  vertical-align:middle;
}
.ipn-offers-form .ipn-offers-form__with-req > .ipn-input{
  flex:1 1 auto;
  min-width:0;
  width:auto;
  max-width:none;
}
.ipn-offers-form .ipn-offers-form__with-req > .ipn-req{
  margin-left:0;
}
/* AV: 2026-09-08: #486 ? checks sucursales/listas/m?todos con gap (desktop no amontonados). */
/* AV: 2026-09-08: #491 ? separacion tipos->items; menos aire tabs->titulo Datos de la oferta. */
.ipn-offers-form form > .ipn-tabs + .ipn-card{
  margin-top:0;
  border-top-left-radius:0;
  border-top-right-radius:0;
}
.ipn-offers-form form > .ipn-tabs + .ipn-card > .ipn-card__body{
  padding-top:12px;
}
.ipn-offers-form .ipn-offers-form-table > tbody > tr:first-child > td{
  padding-top:0;
}
.ipn-offers-form .ipn-offers-form-table h2{
  margin:0 0 4px;
  font-size:16px;
  font-weight:700;
  line-height:1.3;
}
/* AV: 2026-09-08: #494 ? gap checks + label Sucursales alineado a la 1.a fila. */
.ipn-offers-form .ipn-offers-form-checks{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
}
.ipn-offers-form .ipn-offers-form-checks > tbody > tr.ipn-offers-form-checks__types{
  display:flex;
  flex-wrap:wrap;
  gap:12px 28px;
  align-items:flex-start;
  margin:0 0 8px;
  padding:0 0 14px;
  border-bottom:1px solid var(--ipn-hairline, #e2e7ef);
}
.ipn-offers-form .ipn-offers-form-checks > tbody > tr.ipn-offers-form-checks__types > td{
  display:flex;
  align-items:flex-start;
  gap:10px;
  width:auto !important;
  max-width:100%;
  padding:2px 4px 2px 0;
  vertical-align:top;
  line-height:1.4;
  box-sizing:border-box;
}
.ipn-offers-form .ipn-offers-form-checks > tbody > tr.ipn-offers-form-checks__items{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));
  gap:14px 24px;
  margin-top:14px;
}
.ipn-offers-form .ipn-offers-form-checks > tbody > tr.ipn-offers-form-checks__items + tr.ipn-offers-form-checks__items{
  margin-top:14px;
}
.ipn-offers-form .ipn-offers-form-checks > tbody > tr.ipn-offers-form-checks__items > td{
  display:flex;
  align-items:flex-start;
  gap:10px;
  width:auto !important;
  max-width:100%;
  padding:2px 8px 2px 0;
  vertical-align:top;
  line-height:1.4;
  box-sizing:border-box;
}
.ipn-offers-form .ipn-offers-form-checks label{
  flex:1 1 auto;
  min-width:0;
  white-space:normal;
  overflow-wrap:anywhere;
  line-height:1.4;
}
.ipn-offers-form .ipn-offers-form-checks input[type=checkbox],
.ipn-offers-form table input[type=checkbox]{
  flex:0 0 auto;
  margin:3px 0 0;
  vertical-align:top;
}
.ipn-offers-form #storesContent > tbody > tr > td,
.ipn-offers-form #pricelistsContent > tbody > tr > td,
.ipn-offers-form #paymentMethodContent > tbody > tr > td,
.ipn-offers-form #financialPlansContent > tbody > tr > td{
  vertical-align:top;
  padding-top:0;
}
.ipn-offers-form #storesContent > tbody > tr > td:first-child,
.ipn-offers-form #pricelistsContent > tbody > tr > td:first-child,
.ipn-offers-form #paymentMethodContent > tbody > tr > td:first-child,
.ipn-offers-form #financialPlansContent > tbody > tr > td:first-child{
  width:240px;
  padding-right:12px;
  padding-top:2px;
  color:var(--ipn-text-2, #5b6b80);
  font-size:13px;
  line-height:1.4;
}
/* AV: 2026-09-08: #494 ? help tippy iPN2 (no icon_0009 / qTip cream). */
.ipn-offers-form button.ipn-help-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  background:transparent;
  padding:0;
  margin:0 0 0 4px;
  color:var(--ipn-text-3, #5b6b80);
  cursor:help;
  line-height:1;
  vertical-align:middle;
}
.ipn-offers-form button.ipn-help-btn .material-symbols-rounded{
  font-size:18px;
}
.ipn-offers-form .ipn-secure-actions{ margin-top:16px; }
/* AV: 2026-09-08: #494 ? ancho filtros fecha; chrome Flatpickr compartido arriba. */
.ipn-offers-audit .ipn-secure-filters .ipn-field--sm{ flex:0 1 168px; min-width:140px; }
.ipn-offers-audit .ipn-datepicker{ max-width:168px; width:168px; }
@media (max-width:899px){
  .ipn-offers .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-offers .ipn-table--list .ipn-table__th-desc,
  .ipn-offers .ipn-table--list .ipn-table__desc{ position:static; left:auto; z-index:auto; background:transparent; }
}
@media (max-width:700px){
  .ipn-offers .ipn-offers-filters .ipn-secure-filters__actions,
  .ipn-offers .ipn-secure-filters__actions{ margin-left:0; width:100%; }
  .ipn-offers .ipn-table--list th,
  .ipn-offers .ipn-table--list td{ padding:8px 10px; }
  .ipn-offers .ipn-offers-dates,
  .ipn-offers .ipn-offers-dates .ipn-datepicker{ width:100%; max-width:none; }
  .ipn-offers-audit .ipn-secure-filters .ipn-field--sm,
  .ipn-offers-audit .ipn-datepicker{ max-width:100%; width:100%; }
  .ipn-offers-form .ipn-offers-form-table,
  .ipn-offers-form .ipn-offers-form-table > tbody,
  .ipn-offers-form .ipn-offers-form-table > tbody > tr,
  .ipn-offers-form .ipn-offers-form-table > tbody > tr > td{
    display:block;
    width:100%;
    max-width:100%;
  }
  .ipn-offers-form .ipn-offers-form-table > tbody > tr > td{
    padding:4px 0;
  }
  .ipn-offers-form .ipn-offers-form-table > tbody > tr > td:first-child{
    width:auto;
    padding-right:0;
    padding-bottom:2px;
  }
  .ipn-offers-form .ipn-offers-form__date-row--start > td{ padding-top:12px; }
  .ipn-offers-form .ipn-offers-form-table .ipn-input,
  .ipn-offers-form .ipn-offers-form-table .ipn-select:not(.ipn-offers-time){
    width:100%;
    max-width:100%;
    display:block;
  }
  .ipn-offers-form .ipn-offers-form__with-req{
    display:flex;
    width:100%;
  }
  .ipn-offers-form .ipn-offers-form__with-req > .ipn-input{
    flex:1 1 auto;
    width:auto;
    max-width:none;
    display:block;
  }
  .ipn-offers-form .ipn-offers-datetime,
  .ipn-offers-form .ipn-datepicker,
  .ipn-offers-audit .ipn-datepicker{
    width:100%;
    max-width:none;
  }
  .ipn-offers-form .ipn-datepicker input[data-input],
  .ipn-offers-form .ipn-datepicker .ipn-input,
  .ipn-offers-audit .ipn-datepicker input[data-input],
  .ipn-offers-audit .ipn-datepicker .ipn-input{
    width:100%;
  }
  .ipn-offers-form .ipn-offers-form-table .ipn-req,
  .ipn-offers-form .ipn-offers-datetime .ipn-req{
    margin-top:0;
  }
  /* AV: 2026-09-07: #446 ? sucursales / listas: checks en columna mobile. */
  /* AV: 2026-09-08: #494 - mobile columna con mas aire; desktop usa grid/gap base. */
  .ipn-offers-form .ipn-offers-form-checks > tbody > tr.ipn-offers-form-checks__types,
  .ipn-offers-form .ipn-offers-form-checks > tbody > tr.ipn-offers-form-checks__items{
    display:flex;
    flex-direction:column;
    gap:12px;
  }
  .ipn-offers-form .ipn-offers-form-checks,
  .ipn-offers-form .ipn-offers-form-checks > tbody,
  .ipn-offers-form .ipn-offers-form-checks > tbody > tr,
  .ipn-offers-form .ipn-offers-form-checks > tbody > tr > td{
    display:block;
    width:100% !important;
    max-width:100%;
  }
  .ipn-offers-form .ipn-offers-form-checks > tbody > tr{
    margin:0 0 12px;
  }
  .ipn-offers-form .ipn-offers-form-checks__types > td,
  .ipn-offers-form .ipn-offers-form-checks__items > td{
    display:flex;
    align-items:flex-start;
    gap:10px;
    padding:6px 0;
  }
  .ipn-offers-form #storesContent > tbody > tr > td,
  .ipn-offers-form #pricelistsContent > tbody > tr > td,
  .ipn-offers-form #paymentMethodContent > tbody > tr > td,
  .ipn-offers-form #financialPlansContent > tbody > tr > td{
    display:block;
    width:100% !important;
    max-width:100%;
  }
}

/* AV: 2026-09-07: #431 - gestion de articulos ofertados (grilla editable) */
.ipn-offers-edit-items .ipn-secure-actions{ margin-top:16px; }
.ipn-offers-edit-items .ipn-card--table{ overflow:visible; }
.ipn-offers-edit-items .ipn-table-wrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
.ipn-offers-edit-items .ipn-table--list{ width:max-content; min-width:100%; }
.ipn-offers-edit-items .ipn-table--list th,
.ipn-offers-edit-items .ipn-table--list td{ vertical-align:middle; }
.ipn-offers-edit-items .ipn-table--list .ipn-input{ width:100%; min-width:0; }
.ipn-offers-edit-items .ipn-table--list .ipn-input--sm{ max-width:110px; margin:0 auto; display:block; }
.ipn-offers-edit-items .ipn-table--list .ipn-th-num{ width:40px; }
.ipn-offers-edit-items .ipn-table--list .ipn-th-code{ min-width:140px; }
.ipn-offers-edit-items .ipn-table--list .ipn-th-qty{ min-width:100px; }
.ipn-offers-edit-items .ipn-table--list .ipn-th-iva{ min-width:72px; }
.ipn-offers-edit-items .ipn-table--list .ipn-th-price{ min-width:110px; }
.ipn-offers-edit-items .ipn-table--list .ipn-th-actions{ width:52px; }
.ipn-offers-edit-items #validationMsg ul{ margin:8px 0 0; padding-left:18px; }
@media (max-width:899px){
  .ipn-offers-edit-items .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-offers-edit-items .ipn-table--list .ipn-table__th-desc,
  .ipn-offers-edit-items .ipn-table--list .ipn-table__desc{ position:static; left:auto; z-index:auto; background:transparent; }
}
@media (max-width:700px){
  .ipn-offers-edit-items .ipn-table--list th,
  .ipn-offers-edit-items .ipn-table--list td{ padding:8px 10px; }
  .ipn-offers-edit-items .ipn-page-head__actions{ width:100%; }
  .ipn-offers-edit-items .ipn-page-head__actions .ipn-btn{ width:100%; }
}

/* AV: 2026-09-09: #522 ? Agrupadores de colores (513); scope .ipn-color-group*. */
.ipn-color-group-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-color-group-filters .ipn-field--grow{ flex:1 1 240px; min-width:220px; }
.ipn-color-group-filters .ipn-secure-filters__actions{
  margin-left:auto;
  flex:0 0 auto;
  gap:8px;
}
.ipn-color-group-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
.ipn-color-group .ipn-card--table{
  overflow:visible;
}
.ipn-color-group .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-color-group .ipn-table--list{
  width:max-content;
  min-width:100%;
}
.ipn-color-group__swatch{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:4.5rem;
  padding:4px 10px;
  border-radius:8px;
  border:1px solid var(--ipn-border, #d0d5dd);
  font-weight:700;
  font-size:13px;
  color:#111;
  text-shadow:0 0 2px #fff;
}
.ipn-color-group-form__hint{
  margin:0 0 14px;
  font-size:13.5px;
  color:var(--ipn-muted, #5b6b80);
  line-height:1.45;
}
/* AV: 2026-09-11: #555 ? picker: label + fila (combo|Agregar); mobile gap m?nimo. */
.ipn-color-group-form__picker{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:6px;
  margin-bottom:16px;
}
.ipn-color-group-form__picker > .ipn-label{
  margin:0;
}
.ipn-color-group-form__picker-row{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-color-group-form__combo{
  flex:1 1 220px;
  min-width:0;
}
.ipn-color-group-form__picker-row .ipn-btn{
  height:var(--ipn-form-control-h, 42px);
  min-height:var(--ipn-form-control-h, 42px);
  box-sizing:border-box;
  flex:0 0 auto;
}
/* AV: 2026-09-10: #540 ? flexselect input = alto del control; sin hueco extra vs bot?n. */
.ipn-color-group-form__combo input[id$="_flexselect"],
.ipn-color-group-form__combo .flexselect_input,
.ipn-color-group-form__picker input[id$="_flexselect"],
.ipn-color-group-form__picker .flexselect_input{
  height:var(--ipn-form-control-h, 42px);
  min-height:var(--ipn-form-control-h, 42px);
  box-sizing:border-box;
  width:100%;
  max-width:100%;
}
/* AV: 2026-09-11: #555 ? select nativo no reserva alto tras flexselect. */
.ipn-color-group-form__combo:has(input[id$="_flexselect"]) select.ipn-select{
  display:none !important;
  height:0 !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
}
.ipn-color-group-form .color-box{
  cursor:pointer;
  font-weight:700;
}
.ipn-color-group-form__saved{
  margin-top:4px;
}
@media (max-width:700px){
  .ipn-color-group-filters{ flex-direction:column; align-items:stretch; }
  .ipn-color-group-filters .ipn-field,
  .ipn-color-group-filters .ipn-field--grow{ min-width:0; flex:1 1 auto; width:100%; }
  .ipn-color-group-filters .ipn-secure-filters__actions{ margin-left:0; width:100%; }
  .ipn-color-group-filters .ipn-secure-filters__actions .ipn-btn{ width:100%; justify-content:center; }
  .ipn-color-group .ipn-table--list th,
  .ipn-color-group .ipn-table--list td,
  .ipn-color-group-form .ipn-table--list th,
  .ipn-color-group-form .ipn-table--list td{ padding:8px 10px; }
  .ipn-color-group-form__picker-row{
    flex-direction:column;
    align-items:stretch;
    gap:6px;
  }
  .ipn-color-group-form__combo{ flex:1 1 auto; width:100%; min-width:0; }
  .ipn-color-group-form__picker-row .ipn-btn{
    width:100%;
    justify-content:center;
    margin:0;
  }
}

/* AV: 2026-09-10: #523 ? Colores (32); scope .ipn-color*. */
.ipn-color-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-color-filters .ipn-field--grow{ flex:1 1 240px; min-width:220px; }
.ipn-color-filters .ipn-secure-filters__actions{
  margin-left:auto;
  flex:0 0 auto;
  gap:8px;
}
.ipn-color-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
.ipn-color .ipn-card--table{ overflow:visible; }
.ipn-color .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-color .ipn-table--list{
  width:max-content;
  min-width:100%;
}
.ipn-color__th-lang{
  font-weight:400;
  color:var(--ipn-muted, #5b6b80);
}
.ipn-color__thumb,
.ipn-color__preview{
  width:48px;
  height:64px;
  object-fit:cover;
  border-radius:6px;
  border:1px solid var(--ipn-border, #d0d5dd);
  vertical-align:middle;
}
.ipn-color__preview{
  width:75px;
  height:100px;
}
.ipn-color-form__image{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.ipn-color-form__image-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
@media (max-width:700px){
  .ipn-color-filters{ flex-direction:column; align-items:stretch; }
  .ipn-color-filters .ipn-field,
  .ipn-color-filters .ipn-field--grow{ min-width:0; flex:1 1 auto; width:100%; }
  .ipn-color-filters .ipn-secure-filters__actions{ margin-left:0; width:100%; }
  .ipn-color-filters .ipn-secure-filters__actions .ipn-btn{ width:100%; justify-content:center; }
  .ipn-color .ipn-table--list th,
  .ipn-color .ipn-table--list td{ padding:8px 10px; }
}

/* AV: 2026-09-10: #524 ? hub configFactura (stub); scope .ipn-config-factura*. */
.ipn-config-factura__layout{
  display:grid;
  grid-template-columns:minmax(220px,280px) minmax(0,1fr);
  gap:16px;
  align-items:start;
}
.ipn-config-factura__menu{
  list-style:none;
  margin:0;
  padding:0;
}
.ipn-config-factura__group{ border-bottom:1px solid var(--ipn-border, #e4e7ec); }
.ipn-config-factura__group:last-child{ border-bottom:0; }
.ipn-config-factura__group-btn{
  display:flex;
  align-items:center;
  gap:8px;
  width:100%;
  padding:12px 4px;
  border:0;
  background:transparent;
  font:inherit;
  font-weight:600;
  color:var(--ipn-text, #101828);
  cursor:pointer;
  text-align:left;
}
.ipn-config-factura__group-btn .material-symbols-rounded:first-child{ font-size:20px; color:var(--ipn-brand, #175cd3); }
.ipn-config-factura__chevron{ margin-left:auto; font-size:20px; transition:transform .2s ease; }
.ipn-config-factura__group.is-open .ipn-config-factura__chevron{ transform:rotate(180deg); }
.ipn-config-factura__items{
  list-style:none;
  margin:0 0 10px;
  padding:0 0 0 28px;
  color:var(--ipn-muted, #5b6b80);
  font-size:13.5px;
}
.ipn-config-factura__items li{ padding:6px 0; }
.ipn-config-factura__cards{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:12px;
  margin-top:16px;
}
.ipn-config-factura__card .ipn-card__body{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.ipn-config-factura__card .material-symbols-rounded{
  font-size:28px;
  color:var(--ipn-brand, #175cd3);
}
.ipn-config-factura__card p{
  margin:0;
  font-size:13.5px;
  color:var(--ipn-muted, #5b6b80);
  line-height:1.45;
}
@media (max-width:900px){
  .ipn-config-factura__layout{ grid-template-columns:1fr; }
}
@media (max-width:700px){
  .ipn-config-factura__cards{ grid-template-columns:1fr; }
}

/* AV: 2026-09-10: #525 ? loyaltyCards (404); scope .ipn-loyalty*. */
.ipn-loyalty-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-loyalty-filters .ipn-field--grow{ flex:1 1 220px; min-width:200px; }
.ipn-loyalty-filters .ipn-secure-filters__actions{
  margin-left:auto;
  flex:0 0 auto;
  gap:8px;
}
.ipn-loyalty-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
/* AV: 2026-09-10: #541 ? datepicker can?nico (mismo chrome que reportes / Configuraci?n). */
.ipn-loyalty-filters .ipn-datepicker{
  display:flex;
  align-items:stretch;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
.ipn-loyalty-filters .ipn-datepicker input[data-input]{
  flex:1 1 auto;
  min-width:0;
  width:auto;
  height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  min-height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  padding:0 12px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-right:0;
  border-radius:var(--ipn-radius-input, 8px) 0 0 var(--ipn-radius-input, 8px);
  font:inherit;
  font-size:14px;
  color:var(--ipn-text);
  background:var(--ipn-surface);
  box-sizing:border-box;
}
.ipn-loyalty-filters .ipn-datepicker input[data-input]:focus{
  outline:none;
  border-color:var(--ipn-brand, var(--ipn-primary));
  z-index:1;
}
.ipn-loyalty-filters .ipn-datepicker__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  flex:0 0 42px;
  height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  min-height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-radius:0 var(--ipn-radius-input, 8px) var(--ipn-radius-input, 8px) 0;
  background:var(--ipn-surface-soft, #f5f7fb);
  color:var(--ipn-text-2, #5b6b80);
  cursor:pointer;
  padding:0;
  line-height:1;
  box-sizing:border-box;
}
.ipn-loyalty-filters .ipn-datepicker__btn:hover{
  background:#eef2f7;
  color:var(--ipn-text);
}
.ipn-loyalty-filters .ipn-datepicker__btn .material-symbols-rounded{
  font-size:18px;
  line-height:1;
  display:block;
}
.ipn-loyalty .ipn-card--table,
.ipn-loyalty-cards .ipn-card--table,
.ipn-loyalty-card-detail .ipn-card--table{
  overflow:visible;
}
.ipn-loyalty .ipn-table-wrap,
.ipn-loyalty-cards .ipn-table-wrap,
.ipn-loyalty-card-detail .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-loyalty .ipn-table--list,
.ipn-loyalty-cards .ipn-table--list,
.ipn-loyalty-card-detail .ipn-table--list{
  width:max-content;
  min-width:100%;
}
.ipn-loyalty-stores{
  margin:0;
  padding:0 0 0 1.25rem;
  columns:2;
  column-gap:24px;
}
.ipn-loyalty-stores li{ break-inside:avoid; padding:4px 0; }
.ipn-loyalty-stores-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));
  gap:8px 16px;
  margin-top:12px;
}
.ipn-loyalty-form .ipn-field{ min-width:0; }
.ipn-loyalty-form .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
}
.ipn-loyalty-form .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ipn-loyalty-form__hint,
.ipn-loyalty-log-intro{
  margin:0 0 14px;
  font-size:13.5px;
  color:var(--ipn-muted, #5b6b80);
  line-height:1.45;
}
.ipn-loyalty-inline-rule{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
}
.ipn-loyalty-inline-rule .ipn-input--sm{
  width:72px;
  max-width:100%;
  text-align:center;
}
.ipn-loyalty-form .ipn-help-icon{
  border:0;
  background:transparent;
  padding:0;
  margin-left:6px;
  cursor:help;
  vertical-align:middle;
  color:var(--ipn-brand, #175cd3);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
}
.ipn-loyalty-form .ipn-help-icon .material-symbols-rounded{ font-size:18px; }
/* AV: 2026-09-11: #556 ? help dentro del span del check-row (no entre checkboxes). */
.ipn-loyalty-form .ipn-check-row .ipn-help-icon{
  margin-left:4px;
  flex:0 0 auto;
}
.ipn-loyalty-delete__comments{ margin-top:16px; }
.ipn-loyalty-card-detail .ipn-loyalty-log__comments a{ color:var(--ipn-brand, #175cd3); }
.ipn-loyalty-form .ipn-static{
  min-height:var(--ipn-form-control-h, 42px);
  display:flex;
  align-items:center;
  font-weight:600;
}
@media (max-width:700px){
  .ipn-loyalty-filters{ flex-direction:column; align-items:stretch; }
  .ipn-loyalty-filters .ipn-field,
  .ipn-loyalty-filters .ipn-field--grow,
  .ipn-loyalty-filters .ipn-field--sm{ min-width:0; flex:1 1 auto; width:100%; }
  .ipn-loyalty-filters .ipn-secure-filters__actions{ margin-left:0; width:100%; }
  .ipn-loyalty-filters .ipn-secure-filters__actions .ipn-btn{ width:100%; justify-content:center; }
  .ipn-loyalty-stores{ columns:1; }
  .ipn-loyalty .ipn-table--list th,
  .ipn-loyalty .ipn-table--list td,
  .ipn-loyalty-cards .ipn-table--list th,
  .ipn-loyalty-cards .ipn-table--list td,
  .ipn-loyalty-card-detail .ipn-table--list th,
  .ipn-loyalty-card-detail .ipn-table--list td{ padding:8px 10px; }
}

/* AV: 2026-09-10: #526 ? productType; scope .ipn-product-type*. */
.ipn-product-type-filters{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ipn-product-type-filters .ipn-field--grow{ flex:1 1 240px; min-width:220px; }
/* AV: 2026-09-10: #545 ? checkbox alineado al control (no align-self:center vs flex-end). */
.ipn-product-type-filters .ipn-check-row{
  flex:0 0 auto;
  align-self:flex-end;
  height:var(--ipn-form-control-h, 42px);
  margin-bottom:0;
  vertical-align:middle;
}
.ipn-product-type-filters .ipn-secure-filters__actions{
  margin-left:auto;
  flex:0 0 auto;
  gap:8px;
}
.ipn-product-type-filters .ipn-btn{
  height:42px;
  min-height:42px;
  box-sizing:border-box;
}
.ipn-product-type .ipn-card--table{ overflow:visible; }
.ipn-product-type .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-product-type .ipn-table--list{
  width:max-content;
  min-width:100%;
}
.ipn-product-type .ipn-table__sort{
  color:inherit;
  text-decoration:none;
}
.ipn-product-type .ipn-table__sort.is-active{
  color:var(--ipn-brand, #175cd3);
  font-weight:600;
}
.ipn-product-type__disabled,
.ipn-product-type tr.is-disabled td{
  text-decoration:line-through;
  color:var(--ipn-muted, #5b6b80);
}
.ipn-product-type__badge{
  display:inline-block;
  margin-left:8px;
  padding:2px 8px;
  border-radius:6px;
  font-size:12px;
  font-weight:600;
  vertical-align:middle;
  color:#b42318;
  background:#fef3f2;
  border:1px solid #fecdca;
}
.ipn-product-type__sizes{
  margin:0;
  padding-left:1.1rem;
}
.ipn-product-type__sizes li{ margin:2px 0; }
.ipn-product-type__size-grid{
  display:flex;
  flex-wrap:wrap;
  gap:8px 16px;
}
/* AV: 2026-09-10: #545 ? aire entre textbox (grilla) y bloque Talles. */
.ipn-product-type-form .ipn-form-grid + .ipn-field{
  margin-top:20px;
}
.ipn-product-type__size-grid .ipn-check-row{
  flex:1 1 180px;
  max-width:100%;
  min-width:0;
}
.ipn-product-type__ops-update{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:12px;
  padding-left:4px;
}
.ipn-product-type__ops-update.is-hidden{ display:none; }
.ipn-product-type-form .ipn-check-row span{
  white-space:normal;
}
.ipn-product-type__scheduler{ margin-bottom:16px; }
@media (max-width:700px){
  .ipn-product-type-filters{ flex-direction:column; align-items:stretch; }
  .ipn-product-type-filters .ipn-field,
  .ipn-product-type-filters .ipn-field--grow{ min-width:0; flex:1 1 auto; width:100%; }
  .ipn-product-type-filters .ipn-secure-filters__actions{ margin-left:0; width:100%; }
  .ipn-product-type-filters .ipn-secure-filters__actions .ipn-btn{ width:100%; justify-content:center; }
  .ipn-product-type .ipn-table--list th,
  .ipn-product-type .ipn-table--list td{ padding:8px 10px; }
  .ipn-product-type__size-grid .ipn-check-row{ flex:1 1 100%; }
}

/* AV: 2026-09-14: #574 ? Categor?as de productos (control/category); scope .ipn-prod-category*. */
.ipn-prod-category-filters{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:12px 16px;
}
.ipn-prod-category-filters .ipn-field--grow{ flex:1 1 240px; min-width:220px; }
.ipn-prod-category-filters .ipn-secure-filters__actions{
  margin-left:auto;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.ipn-prod-category-filters .ipn-btn{ white-space:nowrap; }
.ipn-prod-category .ipn-card--table{ overflow:visible; }
.ipn-prod-category .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-prod-category .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-prod-category .ipn-table__sort{
  color:inherit;
  text-decoration:none;
}
.ipn-prod-category .ipn-table__sort.is-active{
  color:var(--ipn-brand, #2f62c4);
  font-weight:600;
}
.ipn-prod-category__disabled,
.ipn-prod-category tr.is-disabled td{
  text-decoration:line-through;
  color:var(--ipn-danger, #b42318);
}
.ipn-prod-category__badge{
  display:inline-block;
  margin-left:8px;
  padding:2px 8px;
  border-radius:999px;
  font-size:12px;
  font-weight:600;
  color:var(--ipn-danger, #b42318);
  background:color-mix(in srgb, var(--ipn-danger, #b42318) 12%, #fff);
  vertical-align:middle;
}
.ipn-prod-category__ops-update{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:12px;
  min-width:0;
}
.ipn-prod-category__ops-update.is-hidden,
.ipn-prod-category__gs.is-hidden,
.ipn-prod-category__mla.is-hidden{ display:none; }
.ipn-prod-category-form .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
}
.ipn-prod-category-form .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ipn-prod-category-form .ipn-field{ min-width:0; }
.ipn-prod-category-form .choices{ margin-bottom:0; width:100%; }
.ipn-prod-category__gs-combos,
.ipn-prod-category__mla{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin-top:12px;
  min-width:0;
}
.ipn-prod-category__gs-combos .choices,
.ipn-prod-category__mla .choices{
  flex:1 1 220px;
  min-width:180px;
  max-width:100%;
}
.ipn-prod-category__mla-del{
  flex:0 0 auto;
  min-width:44px;
  padding:8px;
}
.ipn-prod-category__scheduler{ margin-bottom:16px; }
.ipn-prod-category-detail .ipn-action-row{
  width:100%;
  text-align:left;
  border:0;
  background:transparent;
  cursor:pointer;
  font:inherit;
  color:inherit;
}
@media (max-width:700px){
  .ipn-prod-category-filters{ flex-direction:column; align-items:stretch; }
  .ipn-prod-category-filters .ipn-field,
  .ipn-prod-category-filters .ipn-field--grow{ min-width:0; flex:1 1 auto; width:100%; }
  .ipn-prod-category-filters .ipn-secure-filters__actions{ margin-left:0; width:100%; }
  .ipn-prod-category-filters .ipn-secure-filters__actions .ipn-btn{ width:100%; justify-content:center; }
  .ipn-prod-category .ipn-table--list th,
  .ipn-prod-category .ipn-table--list td{ padding:8px 10px; }
}

/* AV: 2026-09-10: #527 - Visualizacion de productos (detalle + edicion). */
.ipn-product-viz__affects{
  margin:0;
  padding-left:1.15rem;
  list-style:disc;
}
.ipn-product-viz__affects li{
  margin:4px 0;
  line-height:1.45;
  overflow-wrap:anywhere;
}
.ipn-product-viz__options{
  display:flex;
  flex-direction:column;
  gap:12px;
  max-width:100%;
}
.ipn-product-viz-form .ipn-product-viz__options .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
}
.ipn-product-viz-form .ipn-product-viz__options .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.4;
}
.ipn-product-viz-form .ipn-secure-actions{
  margin-top:20px;
}

/* AV: 2026-09-10: #528 - Config. impresion comprobantes; scope .ipn-receipt-print* (solo dominio). */
.ipn-receipt-print-filters{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:12px 16px;
}
.ipn-receipt-print-filters .ipn-field--grow{ flex:1 1 240px; min-width:220px; }
.ipn-receipt-print-filters .ipn-secure-filters__actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-left:auto;
}
.ipn-receipt-print-filters .ipn-btn{ white-space:nowrap; }
.ipn-receipt-print .ipn-card--table{ overflow:visible; }
.ipn-receipt-print .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-receipt-print .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-receipt-print-detail .ipn-receipt-print-panel.is-hidden{ display:none !important; }
.ipn-receipt-print-fields{
  display:flex;
  flex-wrap:wrap;
  gap:16px 24px;
  align-items:flex-start;
}
.ipn-receipt-print-fields__form{
  flex:1 1 320px;
  min-width:0;
  max-width:100%;
}
.ipn-receipt-print-added{
  flex:1 1 240px;
  min-width:0;
  max-width:100%;
}
.ipn-receipt-print-field-table{
  width:100%;
  border-collapse:collapse;
}
.ipn-receipt-print-field-table td{
  padding:4px 0 8px;
  vertical-align:top;
  font-family:var(--ipn-font);
  font-size:13px;
  color:var(--ipn-muted, #6b7785);
}
.ipn-receipt-print-field-table__label{
  width:160px;
  color:var(--ipn-text) !important;
  font-weight:600;
}
.ipn-receipt-print-field-table .ipn-input,
.ipn-receipt-print-field-table .ipn-select{ max-width:100%; }
.ipn-receipt-print-field-table .ipn-input--sm{ width:120px; max-width:100%; }
.ipn-receipt-print-field-table__actions{ text-align:right; padding-top:12px; }
.ipn-receipt-print-combo-row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
}
.ipn-receipt-print-combo-row select,
.ipn-receipt-print-combo-row .ipn-select{
  flex:1 1 200px;
  min-width:0;
  max-width:100%;
}
.ipn-receipt-print-added__actions{
  white-space:nowrap;
}
.ipn-receipt-print-added__actions .ipn-row-action{
  display:inline-flex;
  vertical-align:middle;
}
.ipn-receipt-print-detail .ipn-label .ipn-icon-btn{
  vertical-align:middle;
  margin-left:4px;
}
.ipn-receipt-print-form .ipn-field{ min-width:0; }
.ipn-receipt-print-form .ipn-check-row,
.ipn-receipt-print-detail .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
}
.ipn-receipt-print-form .ipn-check-row > span,
.ipn-receipt-print-detail .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
@media (max-width:700px){
  .ipn-receipt-print-filters{ flex-direction:column; align-items:stretch; }
  .ipn-receipt-print-filters .ipn-field,
  .ipn-receipt-print-filters .ipn-field--grow,
  .ipn-receipt-print-filters .ipn-field--sm{ min-width:0; flex:1 1 auto; width:100%; }
  .ipn-receipt-print-filters .ipn-secure-filters__actions{ margin-left:0; width:100%; }
  .ipn-receipt-print-filters .ipn-secure-filters__actions .ipn-btn{ width:100%; justify-content:center; }
  .ipn-receipt-print .ipn-table--list th,
  .ipn-receipt-print .ipn-table--list td{ padding:8px 10px; }
  .ipn-receipt-print-fields{ flex-direction:column; }
  /* AV: 2026-09-10: #542 ? labels apilados; inputs 100% en tabs mobile. */
  .ipn-receipt-print-field-table,
  .ipn-receipt-print-field-table tbody,
  .ipn-receipt-print-field-table tr,
  .ipn-receipt-print-field-table td{
    display:block;
    width:100%;
    box-sizing:border-box;
  }
  .ipn-receipt-print-field-table__label{
    width:auto;
    display:block;
    padding-bottom:4px;
  }
  .ipn-receipt-print-field-table .ipn-input,
  .ipn-receipt-print-field-table .ipn-input--sm,
  .ipn-receipt-print-field-table .ipn-select,
  .ipn-receipt-print-detail .ipn-form-grid .ipn-input,
  .ipn-receipt-print-detail .ipn-form-grid .ipn-select{
    width:100% !important;
    max-width:100%;
    box-sizing:border-box;
  }
  .ipn-receipt-print-detail .ipn-form-grid,
  .ipn-receipt-print-detail .ipn-form-grid--2{
    grid-template-columns:1fr;
  }
  .ipn-receipt-print-detail .ipn-field--sm{ max-width:none; width:100%; }
}
@media (max-width:899px){
  .ipn-receipt-print .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-receipt-print .ipn-table--list .ipn-table__th-desc,
  .ipn-receipt-print .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}

/* AV: 2026-09-10: #529 ? Puntos de venta fiscales; scope .ipn-sales-point*. Dominio only (no shell chrome). */
.ipn-sales-point .ipn-card--table{ overflow:visible; }
.ipn-sales-point .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-sales-point .ipn-table--list{
  width:max-content;
  min-width:100%;
}
.ipn-sales-point .ipn-table--list .ipn-table__th-desc,
.ipn-sales-point .ipn-table--list .ipn-table__desc{
  min-width:120px;
}
.ipn-sales-point__flag{
  font-size:20px;
  vertical-align:middle;
}
.ipn-sales-point__flag.is-ok{ color:var(--ipn-success, #1f8a4c); }
.ipn-sales-point__flag.is-off{ color:var(--ipn-danger, #c0392b); }
.ipn-sales-point .is-disabled td,
.ipn-sales-point tr.is-disabled td{
  text-decoration:line-through;
  color:var(--ipn-danger, #c0392b);
}
.ipn-sales-point-filters{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:12px;
}
.ipn-sales-point-filters .ipn-field--sm{ flex:0 1 220px; min-width:160px; }
.ipn-sales-point-filters .ipn-secure-filters__actions{
  margin-left:auto;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.ipn-sales-point-form .ipn-sales-point-receipts{
  width:100%;
  min-width:720px;
}
.ipn-sales-point-form .ipn-sales-point-receipts th,
.ipn-sales-point-form .ipn-sales-point-receipts td{
  font-family:var(--ipn-font);
  font-size:13px;
  padding:8px 10px;
  vertical-align:middle;
}
.ipn-sales-point-form .ipn-datepicker{
  display:inline-flex;
  max-width:160px;
}
.ipn-sales-point-form .ipn-datepicker .ipn-input{
  width:100%;
  min-width:0;
}
.ipn-sales-point__terminal-row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
}
.ipn-sales-point__terminal-row .ipn-input{
  flex:1 1 200px;
  min-width:0;
}
.ipn-sales-point-form .ipn-payway-methods{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:8px 12px;
}
.ipn-sales-point-cfc .ipn-table--list{
  width:max-content;
  min-width:100%;
}
.ipn-sales-point-detail .ipn-dl__value.is-mono,
.ipn-sales-point .is-mono{
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size:12px;
  word-break:break-all;
}
body:has(.ipn-sales-point-form) .flatpickr-calendar,
body:has(.ipn-sales-point) .flatpickr-calendar{
  font-family:var(--ipn-font);
}
@media (max-width:700px){
  .ipn-sales-point-filters{ flex-direction:column; align-items:stretch; }
  .ipn-sales-point-filters .ipn-field,
  .ipn-sales-point-filters .ipn-field--sm{ min-width:0; width:100%; flex:1 1 auto; }
  .ipn-sales-point-filters .ipn-secure-filters__actions{ margin-left:0; width:100%; }
  .ipn-sales-point-filters .ipn-secure-filters__actions .ipn-btn{ width:100%; justify-content:center; }
  .ipn-sales-point .ipn-table--list th,
  .ipn-sales-point .ipn-table--list td{ padding:8px 10px; }
  .ipn-sales-point-form .ipn-payway-methods{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
}

/* AV: 2026-09-10: #530 ? Temporadas (297); scope .ipn-season*. */
.ipn-season .ipn-card--table{ overflow:visible; }
.ipn-season .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-season .ipn-table--list{
  width:max-content;
  min-width:100%;
}
.ipn-season .ipn-row-action.is-disabled{
  opacity:0.4;
  pointer-events:none;
  cursor:default;
}
.ipn-season-form .ipn-field{ min-width:0; }
.ipn-season-form .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
}
.ipn-season-form .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ipn-season-form__actions-opts{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-bottom:4px;
}
.ipn-season-form__trademark.is-hidden{ display:none !important; }
.ipn-season-delete .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
  margin-top:12px;
}
.ipn-season-delete .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
@media (max-width:899px){
  .ipn-season .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-season .ipn-table--list .ipn-table__th-desc,
  .ipn-season .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}
@media (max-width:700px){
  .ipn-season .ipn-table--list th,
  .ipn-season .ipn-table--list td{ padding:8px 10px; }
}

/* AV: 2026-09-10: #531 ? Tareas (64); scope .ipn-config-tasks* (no .ipn-task-sched*). */
.ipn-config-tasks .ipn-card--table{ overflow:visible; }
/* AV: 2026-09-10: #547 ? sin radius superior en thead (grupos con card__head / flush). */
.ipn-config-tasks .ipn-card--table .ipn-table--list thead th:first-child,
.ipn-config-tasks .ipn-card--table .ipn-table--list thead th:last-child{
  border-top-left-radius:0;
  border-top-right-radius:0;
}
.ipn-config-tasks .ipn-table-wrap,
.ipn-config-tasks-detail .ipn-table-wrap,
.ipn-config-tasks-form .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-config-tasks .ipn-table--list,
.ipn-config-tasks-detail .ipn-table--list,
.ipn-config-tasks-form .ipn-table--list{
  width:max-content;
  min-width:100%;
}
.ipn-config-tasks__group + .ipn-config-tasks__group{
  border-top:1px solid var(--ipn-border, #e5e7eb);
}
.ipn-config-tasks__group .ipn-card__head{
  padding-bottom:0;
}
.ipn-config-tasks__dist,
.ipn-config-tasks-form__dist{ max-width:100%; min-width:0; }
/* AV: 2026-09-10: #547 ? distribucion con muchos talles: fila full-width + scroll-x. */
.ipn-config-tasks-detail .ipn-dl__row:has(.ipn-config-tasks__dist){
  flex-direction:column;
  align-items:stretch;
  gap:8px;
}
.ipn-config-tasks-detail .ipn-dl__row:has(.ipn-config-tasks__dist) .ipn-dl__label,
.ipn-config-tasks-detail .ipn-dl__row:has(.ipn-config-tasks__dist) .ipn-dl__value{
  flex:0 0 auto;
  width:100%;
  max-width:100%;
  min-width:0;
}
.ipn-config-tasks-detail .ipn-config-tasks__dist{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-config-tasks-form__qty{
  width:56px;
  max-width:100%;
  text-align:center;
  margin:0 auto;
}
.ipn-config-tasks-form__assoc{
  margin:8px 0 0;
  padding-left:1.25em;
}
.ipn-config-tasks-form .ipn-field{ min-width:0; }
.ipn-config-tasks-form .ipn-readonly{
  padding:10px 0;
  color:var(--ipn-fg, #111827);
  line-height:1.4;
}
/* AV: 2026-09-11: #559 ? flexselect dropdown se appenda a body; body:has + clase dd (no Window/Highlight). */
body:has(.ipn-config-tasks-form) .flexselect_dropdown,
body:has(.ipn-config-tasks-form) .ipn-config-tasks-fs-dd,
.ipn-config-tasks-fs-dd{
  z-index:12050;
  max-width:min(100vw - 24px, 420px) !important;
  border:1px solid var(--ipn-border, #e2e8f0) !important;
  border-radius:var(--ipn-radius-input, 8px);
  background:var(--ipn-surface, #fff) !important;
  color:var(--ipn-text, #1e293b) !important;
  box-shadow:0 8px 24px rgba(16,32,55,.12);
  font-family:var(--ipn-font, "Inter", sans-serif);
}
body:has(.ipn-config-tasks-form) .flexselect_dropdown li,
.ipn-config-tasks-fs-dd li{
  padding:8px 12px;
  font:inherit !important;
  font-size:13.5px !important;
  color:var(--ipn-text, #1e293b) !important;
  background:transparent;
}
body:has(.ipn-config-tasks-form) .flexselect_dropdown li.disabled,
.ipn-config-tasks-fs-dd li.disabled{
  color:var(--ipn-muted, #6b7280) !important;
}
body:has(.ipn-config-tasks-form) .flexselect_selected,
.ipn-config-tasks-fs-dd .flexselect_selected{
  background:var(--ipn-brand-soft, #e8eef8) !important;
  color:var(--ipn-text, #1e293b) !important;
}
.ipn-config-tasks-form input.flexselect_input,
.ipn-config-tasks-form #productTypeID_flexselect{
  width:100% !important;
  min-height:var(--ipn-form-control-h, 42px);
  height:var(--ipn-form-control-h, 42px);
  padding:0 12px;
  line-height:var(--ipn-form-control-h, 42px);
  border:1px solid var(--ipn-border, #e2e8f0);
  border-radius:var(--ipn-radius-input, 8px);
  background:var(--ipn-surface, #fff);
  box-sizing:border-box;
  font-family:var(--ipn-font, "Inter", sans-serif);
  font-size:13.5px;
  color:var(--ipn-text, #1e293b);
}
.ipn-config-tasks-delete .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
  margin-top:12px;
}
.ipn-config-tasks-delete .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
@media (max-width:899px){
  .ipn-config-tasks .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-config-tasks .ipn-table--list .ipn-table__th-desc,
  .ipn-config-tasks .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}
@media (max-width:700px){
  .ipn-config-tasks .ipn-table--list th,
  .ipn-config-tasks .ipn-table--list td,
  .ipn-config-tasks-detail .ipn-table--list th,
  .ipn-config-tasks-detail .ipn-table--list td,
  .ipn-config-tasks-form .ipn-table--list th,
  .ipn-config-tasks-form .ipn-table--list td{ padding:8px 10px; }
  .ipn-config-tasks-form__qty{ width:100%; max-width:72px; }
}

/* AV: 2026-09-10: #532 - Configuracion de ticket (scope .ipn-ticket-config*). */
.ipn-ticket-config{
  min-width:0;
  max-width:100%;
}
.ipn-ticket-config__hint{
  margin:0 0 12px;
  color:var(--ipn-muted, #6b7280);
  font-size:0.925rem;
  line-height:1.4;
}
.ipn-ticket-config__canvas{
  position:relative;
  min-height:400px;
  height:400px;
  padding:12px;
  border:1px dashed var(--ipn-border, #d1d5db);
  border-radius:12px;
  background:var(--ipn-surface-2, #f8fafc);
  overflow:hidden;
  user-select:none;
  -webkit-user-select:none;
  touch-action:none;
}
.ipn-ticket-config__chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  float:left;
  margin:4px;
  padding:8px 12px;
  border-radius:8px;
  background:var(--ipn-brand, #374151);
  color:var(--ipn-brand-fg, #fff);
  font-size:0.8125rem;
  font-weight:600;
  letter-spacing:0.02em;
  cursor:grab;
  box-shadow:0 1px 2px rgba(15, 23, 42, 0.12);
  z-index:1;
}
.ipn-ticket-config__chip.is-dragging{
  cursor:grabbing;
  z-index:5;
  box-shadow:0 6px 16px rgba(15, 23, 42, 0.2);
}
@media (max-width:700px){
  .ipn-ticket-config__canvas{
    min-height:320px;
    height:320px;
    padding:8px;
  }
  .ipn-ticket-config__chip{
    padding:10px 12px;
    font-size:0.75rem;
  }
}

/* AV: 2026-09-10: #537 - Clover merchant + export plataformas (scopes .ipn-clover-merchant* / .ipn-integ-export). */
.ipn-clover-merchant,
.ipn-integ-export{
  min-width:0;
  max-width:100%;
}
.ipn-clover-merchant .ipn-card--table,
.ipn-clover-merchant .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow:visible;
}
.ipn-clover-merchant .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-clover-merchant .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-clover-merchant-form .ipn-field{
  min-width:0;
}
.ipn-clover-merchant-form .ipn-check-row,
.ipn-clover-merchant-delete .ipn-check-row,
.ipn-integ-export .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
}
.ipn-clover-merchant-form .ipn-check-row > span,
.ipn-clover-merchant-delete .ipn-check-row > span,
.ipn-integ-export .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ipn-integ-export__stores{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:8px 16px;
  margin-top:10px;
}
.ipn-integ-export__types,
.ipn-integ-export__platform{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px 20px;
}
.ipn-integ-export .ipn-help-tip{
  display:inline-flex;
  align-items:center;
  margin-left:4px;
  padding:0;
  border:0;
  background:transparent;
  color:var(--ipn-text-muted, #64748b);
  cursor:help;
  vertical-align:middle;
}
.ipn-integ-export .ipn-help-tip .material-symbols-rounded{
  font-size:18px;
}
.ipn-integ-export .ipn-label .ipn-help-tip{
  vertical-align:text-bottom;
}
@media (max-width:899px){
  .ipn-clover-merchant .ipn-table--list thead th{ position:static; top:auto; }
  .ipn-clover-merchant .ipn-table--list .ipn-table__th-desc,
  .ipn-clover-merchant .ipn-table--list .ipn-table__desc{
    position:static; left:auto; z-index:auto; background:transparent;
  }
}
@media (max-width:700px){
  .ipn-clover-merchant .ipn-table--list th,
  .ipn-clover-merchant .ipn-table--list td{ padding:8px 10px; }
  .ipn-integ-export__stores{
    grid-template-columns:1fr;
  }
  .ipn-integ-export .ipn-secure-actions .ipn-btn{
    width:100%;
    justify-content:center;
  }
}

/* AV: 2026-09-11: #560/#565 ? help icon Porcentaje de stock / MLA; color s?lido (no brand blanco). */
.ipn-stores-detail .ipn-dl__label .ipn-icon-btn,
.ipn-stores-detail .ipn-card__title .ipn-icon-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  margin-left:4px;
  padding:0;
  border:1px solid var(--ipn-hairline, #e2e7ef);
  border-radius:8px;
  background:var(--ipn-surface, #fff);
  color:var(--ipn-text-muted, #64748b);
  cursor:help;
  vertical-align:middle;
  flex-shrink:0;
  line-height:1;
}
.ipn-stores-detail .ipn-dl__label .ipn-icon-btn:hover,
.ipn-stores-detail .ipn-card__title .ipn-icon-btn:hover{
  background:var(--ipn-surface-soft, #f5f7fb);
  color:var(--ipn-text, #122740);
  border-color:var(--ipn-border, #cfd8e6);
}
.ipn-stores-detail .ipn-dl__label .ipn-icon-btn .material-symbols-rounded,
.ipn-stores-detail .ipn-card__title .ipn-icon-btn .material-symbols-rounded{
  font-size:18px;
  color:inherit;
  font-feature-settings:"liga";
  -webkit-font-feature-settings:"liga";
}
.ipn-stores-detail .ipn-dl__label:has(.ipn-icon-btn){
  display:inline-flex;
  align-items:center;
  flex-wrap:wrap;
  gap:2px 0;
}

/* AV: 2026-09-13: #570 ? Empleados ABM (.ipn-employees*): dominio only (filtros, grilla, form, fases). */
.ipn-employees-filters{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px 16px;
  align-items:start; /* AV: 2026-09-14: #580 */
}
.ipn-employees-filters .ipn-field{ min-width:0; }
.ipn-employees-filters__name .ipn-ac-hint{
  margin-top:4px;
  font-size:12px;
  color:var(--ipn-muted, #667085);
}
/* AV: 2026-09-14: #584 ? ocultar hint AC al alcanzar minChars. */
.ipn-employees-filters__name .ipn-ac-hint.is-hidden{ display:none; }
.ipn-employees-filters .ipn-secure-filters__actions{
  grid-column:1 / -1;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-left:auto;
}
.ipn-employees-stores{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.ipn-employees-stores__grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:8px 16px;
}
.ipn-employees-stores .ipn-secure-filters__actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-left:auto;
}
.ipn-employees .ipn-table--list{
  width:max-content;
  min-width:100%;
}
.ipn-employees .ipn-card--table,
.ipn-employees .ipn-table-wrap{
  overflow:visible;
  max-width:100%;
  min-width:0;
}
.ipn-employees .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-employees__amt--debt{ color:var(--ipn-danger, #b42318); }
.ipn-employees__amt--credit{ color:var(--ipn-success, #027a48); }
.ipn-employees-users{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.ipn-employees-form .ipn-form-section__title{ margin-top:8px; }
.ipn-employees-form .ipn-form-section__title:first-child{ margin-top:0; }
.ipn-employees-form .ipn-field{ min-width:0; }
.ipn-employees-cuil__row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.ipn-employees-cuil__row .ipn-input{ flex:1 1 220px; min-width:0; }
.ipn-employees-phases{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px 16px;
}
.ipn-employees-form .ipn-check-row{
  white-space:normal;
  align-items:flex-start;
}
.ipn-employees-arca-msg{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:0.875rem;
}
.ipn-employees-readonly{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:var(--ipn-form-control-h, 40px);
}
.ipn-employees-export-warn{ margin-top:10px; }
.ipn-employees-export-actions{ margin-top:12px; }
.ipn-employees-detail .ipn-action-row.js-delete-employee{
  width:100%;
  text-align:left;
  cursor:pointer;
  font:inherit;
}
/* AV: 2026-09-13: #570 ? Flatpickr tipograf?a en form empleados. */
/* AV: 2026-09-15: #590 - chrome datepicker canonico (input+btn) en form empleados. */
.ipn-employees-form .ipn-datepicker{
  display:inline-flex;
  align-items:stretch;
  max-width:200px;
  width:100%;
}
.ipn-employees-form .ipn-datepicker input[data-input]{
  flex:1 1 auto;
  min-width:0;
  width:auto;
  height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  min-height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  padding:0 12px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-right:0;
  border-radius:var(--ipn-radius-input, 8px) 0 0 var(--ipn-radius-input, 8px);
  font:inherit;
  font-size:14px;
  color:var(--ipn-text);
  background:var(--ipn-surface);
  box-sizing:border-box;
}
.ipn-employees-form .ipn-datepicker input[data-input]:focus{
  outline:none;
  border-color:var(--ipn-brand, var(--ipn-primary));
  z-index:1;
}
.ipn-employees-form .ipn-datepicker__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  flex:0 0 42px;
  height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  min-height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-radius:0 var(--ipn-radius-input, 8px) var(--ipn-radius-input, 8px) 0;
  background:var(--ipn-surface-soft, #f5f7fb);
  color:var(--ipn-text-2, #5b6b80);
  cursor:pointer;
  padding:0;
  line-height:1;
  box-sizing:border-box;
}
.ipn-employees-form .ipn-datepicker__btn:hover{
  background:#eef2f7;
  color:var(--ipn-text);
}
.ipn-employees-form .ipn-datepicker__btn .material-symbols-rounded{
  font-size:18px;
  line-height:1;
  display:block;
}
body:has(.ipn-employees-form) .flatpickr-calendar{
  font-family:var(--ipn-font);
}
@media (max-width:700px){
  .ipn-employees-filters{
    grid-template-columns:1fr;
  }
  /* AV: 2026-09-13: #570 ? stores no matchea [class$="-filters"]; mobile full-width solo ac?. */
  .ipn-employees-stores .ipn-secure-filters__actions{
    margin-left:0;
    width:100%;
  }
  .ipn-employees-stores .ipn-secure-filters__actions .ipn-btn{
    width:100%;
    justify-content:center;
  }
  .ipn-employees-stores__grid,
  .ipn-employees-phases{
    grid-template-columns:1fr;
  }
  .ipn-employees .ipn-table--list th,
  .ipn-employees .ipn-table--list td{
    padding:8px 10px;
  }
  .ipn-employees-cuil__row .ipn-btn{
    width:100%;
    justify-content:center;
  }
}
/* AV: 2026-09-14: #571 ? Empleados cuenta corriente / haberes (.ipn-employees-acctresc): dominio only. */
.ipn-employees-acctresc-filters{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
  gap:12px 16px;
  align-items:end;
}
.ipn-employees-acctresc-filters .ipn-secure-filters__actions{
  margin-left:auto;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:flex-end;
}
.ipn-employees-acctresc-dates,
.ipn-employees-acctresc-period{
  min-width:0;
}
.ipn-employees-acctresc-dates__row,
.ipn-employees-acctresc-period{
  display:flex;
  flex-wrap:wrap;
  gap:8px 12px;
  align-items:flex-end;
}
.ipn-employees-acctresc-filters .ipn-datepicker,
.ipn-employees-acctresc-form .ipn-datepicker{
  display:inline-flex;
  align-items:stretch;
  max-width:160px;
}
/* AV: 2026-09-15: #590 - chrome Flatpickr cuenta corriente (input+btn unidos). */
.ipn-employees-acctresc-filters .ipn-datepicker input[data-input],
.ipn-employees-acctresc-form .ipn-datepicker input[data-input]{
  flex:1 1 auto;
  width:110px;
  min-width:0;
  height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  min-height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  padding:0 12px;
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-right:0;
  border-radius:var(--ipn-radius-input, 8px) 0 0 var(--ipn-radius-input, 8px);
  font:inherit;
  font-size:14px;
  color:var(--ipn-text);
  background:var(--ipn-surface);
  box-sizing:border-box;
}
.ipn-employees-acctresc-filters .ipn-datepicker input[data-input]:focus,
.ipn-employees-acctresc-form .ipn-datepicker input[data-input]:focus{
  outline:none;
  border-color:var(--ipn-brand, var(--ipn-primary));
  z-index:1;
}
.ipn-employees-acctresc-filters .ipn-datepicker__btn,
.ipn-employees-acctresc-form .ipn-datepicker__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  flex:0 0 42px;
  height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  min-height:var(--ipn-form-control-h, var(--ipn-control-h, 42px));
  border:1px solid var(--ipn-border-input, #c7d3e3);
  border-radius:0 var(--ipn-radius-input, 8px) var(--ipn-radius-input, 8px) 0;
  background:var(--ipn-surface-soft, #f5f7fb);
  color:var(--ipn-text-2, #5b6b80);
  cursor:pointer;
  padding:0;
  line-height:1;
  box-sizing:border-box;
}
.ipn-employees-acctresc-filters .ipn-datepicker__btn:hover,
.ipn-employees-acctresc-form .ipn-datepicker__btn:hover{
  background:#eef2f7;
  color:var(--ipn-text);
}
.ipn-employees-acctresc-filters .ipn-datepicker__btn .material-symbols-rounded,
.ipn-employees-acctresc-form .ipn-datepicker__btn .material-symbols-rounded{
  font-size:18px;
  line-height:1;
  display:block;
}
.ipn-employees-acctresc .ipn-card--table{
  overflow:visible;
}
.ipn-employees-acctresc .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  max-width:100%;
  min-width:0;
}
.ipn-employees-acctresc .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-employees-acctresc .ipn-table--list td.is-num,
.ipn-employees-acctresc .ipn-table--list th.is-num,
.ipn-employees-acctresc .ipn-table--list th.is-right,
.ipn-employees-acctresc .ipn-table--list td.is-right{
  text-align:right;
  font-variant-numeric:tabular-nums;
}
.ipn-employees-acctresc__row--deleted td{
  text-decoration:line-through;
  color:var(--ipn-danger, #b42318);
}
.ipn-employees-acctresc__comment td,
.ipn-employees-acctresc__comment-text{
  color:var(--ipn-muted, #667085);
  font-style:italic;
  font-size:0.875rem;
}
.ipn-employees-acctresc__annulled{
  color:var(--ipn-danger, #b42318);
  font-weight:600;
}
.ipn-employees-acctresc .ipn-table--list td.is-strong,
.ipn-employees-acctresc .ipn-table--list tr.is-strong td{
  font-weight:600;
}
.ipn-employees-acctresc-form .ipn-form-section__title{ margin-top:8px; }
.ipn-employees-acctresc-form .ipn-form-section__title:first-child{ margin-top:0; }
.ipn-employees-acctresc-form .ipn-field{ min-width:0; }
.ipn-employees-acctresc-form select.ipn-select,
.ipn-employees-acctresc-form .ipn-select{
  max-width:100%;
}
.ipn-employees-acctresc-form .ipn-textarea{
  min-height:90px;
  width:100%;
  max-width:640px;
}
.ipn-employees-acctresc-comments{ margin-top:16px; }
.ipn-employees-acctresc-detail .ipn-action-row.js-annul-salary,
.ipn-employees-acctresc-detail .ipn-action-row.js-annul-salary-pay,
.ipn-employees-acctresc-detail .ipn-action-row.js-annul-income,
.ipn-employees-acctresc-detail .ipn-action-row.js-annul-payment,
.ipn-employees-acctresc-detail .ipn-action-row.js-annul-settlement,
.ipn-employees-acctresc-detail .ipn-action-row.js-delete-comm,
.ipn-employees-acctresc-detail .ipn-action-row.js-delete-commission,
.ipn-employees-acctresc-detail .ipn-action-row.js-export-pdf{
  width:100%;
  text-align:left;
  cursor:pointer;
  font:inherit;
}
.ipn-employees-acctresc-delete .ipn-check-row{
  margin-top:12px;
}
body:has(.ipn-employees-acctresc) .flatpickr-calendar,
body:has(.ipn-employees-acctresc-form) .flatpickr-calendar,
body:has(.ipn-employees-acctresc-detail) .flatpickr-calendar{
  font-family:var(--ipn-font);
}
@media (max-width:700px){
  .ipn-employees-acctresc-filters{
    grid-template-columns:1fr;
  }
  .ipn-employees-acctresc-filters .ipn-secure-filters__actions{
    margin-left:0;
    width:100%;
  }
  .ipn-employees-acctresc-filters .ipn-secure-filters__actions .ipn-btn{
    width:100%;
    justify-content:center;
  }
  .ipn-employees-acctresc-dates__row,
  .ipn-employees-acctresc-period{
    flex-direction:column;
    align-items:stretch;
  }
  .ipn-employees-acctresc-filters .ipn-datepicker,
  .ipn-employees-acctresc-form .ipn-datepicker{
    max-width:none;
    width:100%;
  }
  .ipn-employees-acctresc-filters .ipn-datepicker input[data-input],
  .ipn-employees-acctresc-form .ipn-datepicker input[data-input]{
    width:100%;
  }
  .ipn-employees-acctresc .ipn-table--list th,
  .ipn-employees-acctresc .ipn-table--list td{
    padding:8px 10px;
  }
}

/* AV: 2026-09-14: #573 ? Etapas de produccion (.ipn-phases*): dominio only. */
.ipn-phases .ipn-card--table,
.ipn-phases .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow:visible;
}
.ipn-phases .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-phases .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-phases__attribs{
  display:block;
  margin-top:4px;
  font-size:12px;
  font-style:italic;
  text-transform:capitalize;
  color:var(--ipn-muted, #667085);
}
.ipn-phases__add-disabled{
  opacity:0.45;
  pointer-events:none;
  cursor:not-allowed;
}
.ipn-phases .ipn-page-head__actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
}
.ipn-phases-form .ipn-field{
  min-width:0;
}
.ipn-phases-form .ipn-field--full{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:8px;
}
/* AV: 2026-09-14: #585 - tip help (tippy theme ipn); sin qTip. */
.ipn-phases-form .ipn-icon-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  margin:0;
  padding:0;
  border:0;
  border-radius:8px;
  background:transparent;
  color:var(--ipn-brand, #2f62c4);
  cursor:help;
  vertical-align:middle;
  line-height:1;
}
.ipn-phases-form .ipn-icon-btn:hover{
  background:rgba(47,98,196,.08);
}
.ipn-phases-form .ipn-icon-btn .material-symbols-rounded{
  font-size:20px;
}
.ipn-phases-form .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
}
.ipn-phases-form .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ipn-phases-form__hint{
  margin:0 0 16px;
  color:var(--ipn-muted, #667085);
  font-size:14px;
  line-height:1.4;
}
.ipn-phases-form .ipn-field--sm .ipn-select,
.ipn-phases-form .ipn-field--sm .ipn-input-affix{
  max-width:160px;
}
.ipn-phases-delete .ipn-check-row{
  margin-top:12px;
}
.ipn-phases-detail__attribs{
  margin-top:16px;
}
/* AV: 2026-09-14: #585 - sin padding:0 en Eliminar; chrome = global button.ipn-action-row. */
@media (max-width:899px){
  .ipn-phases .ipn-table--list thead th{
    position:static;
    top:auto;
  }
  .ipn-phases .ipn-table--list .ipn-table__th-desc,
  .ipn-phases .ipn-table--list .ipn-table__desc{
    position:static;
    left:auto;
    z-index:auto;
    background:transparent;
  }
  .ipn-phases .ipn-table--list th,
  .ipn-phases .ipn-table--list td{
    padding:8px 10px;
  }
}

/* AV: 2026-09-14: #578 - Sub-componentes (.ipn-subcomponents*): dominio only. */
.ipn-subcomponents .ipn-card--table,
.ipn-subcomponents .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow:visible;
}
.ipn-subcomponents .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-subcomponents .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-subcomponents__cert{
  font-size:20px;
  vertical-align:middle;
}
.ipn-subcomponents__cert.is-on{
  color:var(--ipn-brand, #2f62c4);
}
.ipn-subcomponents__cert.is-off{
  color:var(--ipn-muted, #98a2b3);
}
.ipn-subcomponents .ipn-table__desc-link.is-blocked{
  opacity:0.55;
}
.ipn-subcomponents-form .ipn-field{
  min-width:0;
}
.ipn-subcomponents-form .ipn-field--full{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:8px;
}
.ipn-subcomponents-form .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
}
.ipn-subcomponents-form .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ipn-subcomponents-form__hint,
.ipn-subcomponents-detail__hint{
  margin:0 0 16px;
  color:var(--ipn-muted, #667085);
  font-size:14px;
  line-height:1.4;
}
.ipn-subcomponents-delete .ipn-check-row{
  margin-top:12px;
}
/* AV: 2026-09-14: #588 - sin padding:0 en Eliminar; chrome = global button.ipn-action-row. */
@media (max-width:899px){
  .ipn-subcomponents .ipn-table--list thead th{
    position:static;
    top:auto;
  }
  .ipn-subcomponents .ipn-table--list .ipn-table__th-desc,
  .ipn-subcomponents .ipn-table--list .ipn-table__desc{
    position:static;
    left:auto;
    z-index:auto;
    background:transparent;
  }
  .ipn-subcomponents .ipn-table--list th,
  .ipn-subcomponents .ipn-table--list td{
    padding:8px 10px;
  }
}

/* AV: 2026-09-14: #576 ? Talleres (.ipn-workshop*): dominio only. */
.ipn-workshop .ipn-card--table,
.ipn-workshop .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow:visible;
}
.ipn-workshop .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-workshop .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-workshop-filters .ipn-secure-filters__actions{
  margin-left:auto;
}
.ipn-workshop-form__hint,
.ipn-workshop-detail__hint{
  margin:0 0 16px;
  color:var(--ipn-muted, #667085);
  font-size:14px;
  line-height:1.4;
}
.ipn-workshop-form .ipn-field{
  min-width:0;
}
.ipn-workshop-form .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
  margin-top:28px;
}
.ipn-workshop-form .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ipn-workshop-form .ipn-field__hint{
  display:block;
  margin-top:6px;
  font-size:12px;
  color:var(--ipn-muted, #667085);
}
.ipn-workshop-form__provider-readonly{
  display:inline-block;
  padding-top:8px;
}
.ipn-workshop-delete .ipn-check-row{
  margin-top:12px;
}
/* AV: 2026-09-14: #587 - sin padding:0 en Eliminar; chrome = global button.ipn-action-row. */
.ipn-workshop .ipn-table__desc-link.is-blocked,
.ipn-workshop tr.is-blocked .ipn-table__desc-link{
  color:var(--ipn-muted, #667085);
  text-decoration:line-through;
}
@media (max-width:700px){
  .ipn-workshop-filters .ipn-secure-filters__actions{
    margin-left:0;
    width:100%;
  }
  .ipn-workshop-filters .ipn-secure-filters__actions .ipn-btn{
    width:100%;
  }
  .ipn-workshop-form .ipn-check-row{
    margin-top:0;
  }
}
@media (max-width:899px){
  .ipn-workshop .ipn-table--list thead th{
    position:static;
    top:auto;
  }
  .ipn-workshop .ipn-table--list .ipn-table__th-desc,
  .ipn-workshop .ipn-table--list .ipn-table__desc{
    position:static;
    left:auto;
    z-index:auto;
    background:transparent;
  }
  .ipn-workshop .ipn-table--list th,
  .ipn-workshop .ipn-table--list td{
    padding:8px 10px;
  }
}

/* AV: 2026-09-14: #577 ? Tipos de no conformidad (.ipn-prod-errors*): dominio only. */
.ipn-prod-errors .ipn-card--table,
.ipn-prod-errors .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow:visible;
}
.ipn-prod-errors .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-prod-errors .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-prod-errors-form__hint{
  margin:0 0 16px;
  color:var(--ipn-muted, #667085);
  font-size:14px;
  line-height:1.4;
}
.ipn-prod-errors-form .ipn-field{
  min-width:0;
}
.ipn-prod-errors-delete .ipn-check-row{
  margin-top:12px;
}
@media (max-width:700px){
  .ipn-prod-errors .ipn-table--list th,
  .ipn-prod-errors .ipn-table--list td{
    padding:8px 10px;
  }
}

/* AV: 2026-09-14: #575 ? Componentes (.ipn-components*): dominio only. */
.ipn-components .ipn-card--table,
.ipn-components .ipn-table-wrap{
  max-width:100%;
  min-width:0;
  overflow:visible;
}
.ipn-components .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.ipn-components .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-components__cert{
  font-size:20px;
  vertical-align:middle;
}
.ipn-components__cert.is-on{
  color:var(--ipn-brand, #2f62c4);
}
.ipn-components__cert.is-off{
  color:var(--ipn-muted, #98a2b3);
}
.ipn-components .ipn-table__desc-link.is-blocked{
  opacity:0.55;
}
.ipn-components-form .ipn-field{
  min-width:0;
}
.ipn-components-form .ipn-field--full{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:8px;
}
.ipn-components-form .ipn-check-row{
  display:flex;
  align-items:flex-start;
  white-space:normal;
  max-width:100%;
}
.ipn-components-form .ipn-check-row > span{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ipn-components-form__hint,
.ipn-components-detail__hint{
  margin:0 0 16px;
  color:var(--ipn-muted, #667085);
  font-size:14px;
  line-height:1.4;
}
.ipn-components-delete .ipn-check-row{
  margin-top:12px;
}
/* AV: 2026-09-14: #586 - sin padding:0 en Eliminar; chrome = global button.ipn-action-row. */
@media (max-width:899px){
  .ipn-components .ipn-table--list thead th{
    position:static;
    top:auto;
  }
  .ipn-components .ipn-table--list .ipn-table__th-desc,
  .ipn-components .ipn-table--list .ipn-table__desc{
    position:static;
    left:auto;
    z-index:auto;
    background:transparent;
  }
  .ipn-components .ipn-table--list th,
  .ipn-components .ipn-table--list td{
    padding:8px 10px;
  }
}

/* AV: 2026-09-14: #583 - Liquidaciones de haberes (.ipn-income-settlement): dominio only. */
.ipn-income-settlement-filters{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:12px 16px;
}
.ipn-income-settlement-filters .ipn-secure-filters__actions{
  margin-left:auto;
}
.ipn-income-settlement-filters .ipn-datepicker{
  min-width:140px;
}
.ipn-income-settlement-filters .ipn-datepicker input[data-input]{
  width:110px;
}
.ipn-income-settlement .ipn-card--table{
  overflow:visible;
}
.ipn-income-settlement .ipn-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  max-width:100%;
  min-width:0;
}
.ipn-income-settlement .ipn-table--list{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.ipn-income-settlement .ipn-table--list td.is-num,
.ipn-income-settlement .ipn-table--list th.is-num,
.ipn-income-settlement .ipn-table--list th.is-right,
.ipn-income-settlement .ipn-table--list td.is-right{
  font-variant-numeric:tabular-nums;
}
.ipn-income-settlement__row--deleted td{
  color:var(--ipn-danger, #d92d20);
}
.ipn-income-settlement__strike{
  text-decoration:line-through;
  font-weight:normal;
}
.ipn-income-settlement__annulled{
  color:var(--ipn-danger, #d92d20);
  font-weight:600;
  margin-left:4px;
}
.ipn-income-settlement__totals th,
.ipn-income-settlement__totals td{
  background:var(--ipn-surface-2, #f9fafb);
  font-weight:600;
}
.ipn-income-settlement-delete .ipn-check-row{
  margin-top:12px;
}
.ipn-income-settlement-detail .ipn-action-row.js-annul-settlement{
  width:100%;
  text-align:left;
  cursor:pointer;
  font:inherit;
  background:transparent;
  border:0;
  padding:0;
}
@media (max-width:700px){
  .ipn-income-settlement-filters{
    flex-direction:column;
    align-items:stretch;
  }
  .ipn-income-settlement-filters .ipn-secure-filters__actions{
    margin-left:0;
    width:100%;
  }
  .ipn-income-settlement-filters .ipn-secure-filters__actions .ipn-btn{
    width:100%;
  }
  .ipn-income-settlement-filters .ipn-datepicker,
  .ipn-income-settlement-filters .ipn-datepicker input[data-input]{
    width:100%;
    min-width:0;
  }
}
@media (max-width:899px){
  .ipn-income-settlement .ipn-table--list thead th{
    position:static;
    top:auto;
  }
  .ipn-income-settlement .ipn-table--list th,
  .ipn-income-settlement .ipn-table--list td{
    padding:8px 10px;
  }
}
