/* =============================================================================
 * NS WMS · Sistema de diseño v2
 * -----------------------------------------------------------------------------
 * Capa final y única de estilo: tokens (color, tipografía, radios, sombras),
 * estructura (menú lateral claro, barra superior, encabezados) y componentes
 * (tarjetas, botones, formularios, tablas, insignias, ventanas, pestañas).
 * Se activa con body.nsv2 y se carga después de todas las hojas anteriores.
 * ========================================================================== */
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url(../assets/fonts/inter-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url(../assets/fonts/inter-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url(../assets/fonts/inter-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:700;font-display:swap;src:url(../assets/fonts/inter-latin-700-normal.woff2) format("woff2")}
:root{
  --ds-bg:#f4f6fa; --ds-surface:#ffffff; --ds-surface-2:#f8fafc; --ds-sunken:#f1f4f9;
  --ds-line:#e6eaf0; --ds-line-strong:#d5dce6;
  --ds-ink:#0f172a; --ds-ink-2:#334155; --ds-muted:#64748b; --ds-faint:#94a3b8;
  --ds-primary:#2457e6; --ds-primary-600:#1d47c4; --ds-primary-50:#eef3ff; --ds-primary-100:#dfe8ff;
  --ds-navy:#0f1f3d; --ds-lime:#84cc16;
  --ds-good:#16a34a; --ds-good-50:#eafaf0; --ds-warn:#b45309; --ds-warn-50:#fff7e8; --ds-bad:#dc2626; --ds-bad-50:#fdeeee;
  --ds-radius:14px; --ds-radius-sm:10px; --ds-radius-xs:8px;
  --ds-shadow:0 1px 2px rgba(15,23,42,.04),0 1px 3px rgba(15,23,42,.05);
  --ds-shadow-lg:0 12px 32px -8px rgba(15,23,42,.18),0 4px 10px -4px rgba(15,23,42,.08);
  --ds-font:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --ds-nav-w:256px; --ds-nav-w-c:76px; --ds-top-h:64px;
}

/* ------------------------------------------------------------ base */
html body.nsv2{background:var(--ds-bg)!important;color:var(--ds-ink)!important;font-family:var(--ds-font)!important;font-size:14px;letter-spacing:-.003em;-webkit-font-smoothing:antialiased}
html body.nsv2 *{font-family:inherit}
html body.nsv2 h1,html body.nsv2 h2,html body.nsv2 h3,html body.nsv2 h4{color:var(--ds-ink)!important;letter-spacing:-.015em;font-weight:650}
html body.nsv2 small,html body.nsv2 .small,html body.nsv2 .muted{color:var(--ds-muted)}
html body.nsv2 .right,html body.nsv2 .fe-r,html body.nsv2 td.right,html body.nsv2 strong,html body.nsv2 b{font-variant-numeric:tabular-nums}

/* ------------------------------------------------------------ estructura: menú lateral */
html body.nsv2 .ns-desktop-nav{width:var(--ds-nav-w)!important;background:var(--ds-surface)!important;color:var(--ds-ink)!important;border-right:1px solid var(--ds-line)!important;box-shadow:none!important;display:flex!important;flex-direction:column!important;padding:18px 14px 14px!important;gap:0!important}
html body.nsv2 .ds-brand{display:flex;align-items:center;gap:10px;padding:2px 6px 16px}
html body.nsv2 .ds-brand img{width:34px;height:34px;border-radius:9px;object-fit:contain;background:#fff;border:1px solid var(--ds-line)}
html body.nsv2 .ds-brand-txt{display:flex;flex-direction:column;min-width:0}
html body.nsv2 .ds-brand-txt strong{font-size:16px;font-weight:700;color:var(--ds-ink);letter-spacing:-.02em}
html body.nsv2 .ds-brand-txt span{font-size:11.5px;color:var(--ds-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px}
html body.nsv2 .ds-nav-scroll{flex:1;overflow-y:auto;overflow-x:hidden;margin:0 -6px;padding:0 6px;scrollbar-width:thin}
html body.nsv2 .ds-nav-item{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:11px;width:100%;padding:9px 10px;border-radius:10px;color:var(--ds-ink-2);font-size:13.5px;font-weight:500;cursor:pointer;position:relative;margin:1px 0;transition:background .12s,color .12s}
html body.nsv2 .ds-nav-item:hover{background:var(--ds-sunken);color:var(--ds-ink)}
html body.nsv2 .ds-nav-item.active{background:var(--ds-primary-50);color:var(--ds-primary);font-weight:600}
html body.nsv2 .ds-nav-item.active::before{content:"";position:absolute;left:-14px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--ds-primary)}
html body.nsv2 .ds-nav-item svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
html body.nsv2 .ds-nav-item .ds-lbl{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html body.nsv2 .ds-badge{font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px;background:var(--ds-good-50);color:var(--ds-good);border:1px solid #cdeedb}
html body.nsv2 .ds-badge.warn{background:var(--ds-warn-50);color:var(--ds-warn);border-color:#f6dfb5}
html body.nsv2 .ds-badge.bad{background:var(--ds-bad-50);color:var(--ds-bad);border-color:#f6cdcd}
html body.nsv2 .ds-group{margin-top:6px}
html body.nsv2 .ds-group-head{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:11px;width:100%;padding:9px 10px;border-radius:10px;color:var(--ds-ink-2);font-size:13.5px;font-weight:500;cursor:pointer}
html body.nsv2 .ds-group-head:hover{background:var(--ds-sunken)}
html body.nsv2 .ds-group-head svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
html body.nsv2 .ds-group-head .ds-chev{margin-left:auto;width:15px;height:15px;color:var(--ds-faint);transition:transform .15s}
html body.nsv2 .ds-group.cerrado .ds-chev{transform:rotate(-90deg)}
html body.nsv2 .ds-group-body{position:relative;padding-left:20px;margin-left:9px}
html body.nsv2 .ds-group-body::before{content:"";position:absolute;left:9px;top:2px;bottom:6px;width:1px;background:var(--ds-line)}
html body.nsv2 .ds-group-body .ds-nav-item{padding:7px 10px;font-size:13px}
html body.nsv2 .ds-group-body .ds-nav-item svg{display:none}
html body.nsv2 .ds-group-body .ds-nav-item.active::before{left:-11px;top:6px;bottom:6px}
html body.nsv2 .ds-group.cerrado .ds-group-body{display:none}
html body.nsv2 .ds-group.contiene-activo>.ds-group-head{color:var(--ds-ink);font-weight:600}
html body.nsv2 .ds-sep{height:1px;background:var(--ds-line);margin:10px 4px}
html body.nsv2 .ds-nav-foot{border-top:1px solid var(--ds-line);padding-top:10px;margin-top:8px}
html body.nsv2 .ds-plan{margin-top:10px;border-radius:14px;padding:14px;color:#fff;background:radial-gradient(120% 140% at 0% 0%,#2a5cf0 0%,#1338a8 55%,#0b1f63 100%);box-shadow:0 10px 24px -12px rgba(36,87,230,.7)}
html body.nsv2 .ds-plan strong{display:block;font-size:13.5px;font-weight:650}
html body.nsv2 .ds-plan span{display:block;font-size:11.5px;opacity:.82;margin-top:3px;line-height:1.4}
html body.nsv2 .ds-plan button{all:unset;cursor:pointer;display:block;text-align:center;margin-top:10px;padding:7px;border-radius:999px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);font-size:12px;font-weight:600}
html body.nsv2 .ds-plan button:hover{background:rgba(255,255,255,.26)}
html body.nsv2 .ds-plan .ds-plan-ico{width:28px;height:28px;border-radius:8px;background:rgba(255,255,255,.95);display:grid;place-items:center;margin-bottom:10px}
html body.nsv2 .ds-plan .ds-plan-ico svg{width:16px;height:16px;fill:none;stroke:#1d47c4;stroke-width:2}
html body.nsv2 .ds-collapse{all:unset;cursor:pointer;width:28px;height:28px;border-radius:8px;display:grid;place-items:center;color:var(--ds-muted);margin-left:auto}
html body.nsv2 .ds-collapse:hover{background:var(--ds-sunken);color:var(--ds-ink)}
html body.nsv2 .ds-collapse svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.75}

/* menú contraído */
html body.nsv2.ns-nav-collapsed .ns-desktop-nav{width:var(--ds-nav-w-c)!important;padding:18px 10px 14px!important}
html body.nsv2.ns-nav-collapsed .ds-brand-txt,html body.nsv2.ns-nav-collapsed .ds-lbl,html body.nsv2.ns-nav-collapsed .ds-badge,html body.nsv2.ns-nav-collapsed .ds-chev,html body.nsv2.ns-nav-collapsed .ds-plan{display:none!important}
html body.nsv2.ns-nav-collapsed .ds-group-body{padding-left:0;margin-left:0}
html body.nsv2.ns-nav-collapsed .ds-group-body::before{display:none}
html body.nsv2.ns-nav-collapsed .ds-group-body .ds-nav-item svg{display:block}
html body.nsv2.ns-nav-collapsed .ds-group-head{display:none}
html body.nsv2.ns-nav-collapsed .ds-group.cerrado .ds-group-body{display:block}
html body.nsv2.ns-nav-collapsed .ds-nav-item,html body.nsv2.ns-nav-collapsed .ds-group-body .ds-nav-item{justify-content:center;padding:10px}
html body.nsv2.ns-nav-collapsed .ds-brand{justify-content:center;padding-left:0;padding-right:0}
html body.nsv2.ns-nav-collapsed .ds-collapse{margin:0 auto}
html body.nsv2.ns-adaptive-ready>.app{margin-left:var(--ds-nav-w)!important;width:calc(100% - var(--ds-nav-w))!important;padding:0 28px 32px!important}
html body.nsv2.ns-adaptive-ready.ns-nav-collapsed>.app{margin-left:var(--ds-nav-w-c)!important;width:calc(100% - var(--ds-nav-w-c))!important}

/* se ocultan la cabecera, la franja de indicadores y las pestañas antiguas */
html body.nsv2 .app>header.topbar,html body.nsv2 .app>.stat-grid,html body.nsv2 .app>.tabs,html body.nsv2 #alertaStockProductos{display:none!important}

/* ------------------------------------------------------------ barra superior */
html body.nsv2 .ds-top{position:sticky;top:0;z-index:40;height:var(--ds-top-h);display:flex;align-items:center;gap:12px;margin:0 -28px 22px;padding:0 28px;background:rgba(244,246,250,.82);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--ds-line)}
html body.nsv2 .ds-search{position:relative;flex:0 1 420px}
html body.nsv2 .ds-search input{width:100%!important;height:38px!important;border-radius:999px!important;border:1px solid var(--ds-line)!important;background:var(--ds-surface)!important;padding:0 64px 0 38px!important;font-size:13.5px!important;color:var(--ds-ink)!important;box-shadow:var(--ds-shadow)!important;margin:0!important}
html body.nsv2 .ds-search input:focus{outline:none!important;border-color:var(--ds-primary)!important;box-shadow:0 0 0 4px var(--ds-primary-50)!important}
html body.nsv2 .ds-search>svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:16px;height:16px;fill:none;stroke:var(--ds-muted);stroke-width:2}
html body.nsv2 .ds-kbd{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:11px;color:var(--ds-muted);border:1px solid var(--ds-line);border-radius:6px;padding:1px 6px;background:var(--ds-surface-2)}
html body.nsv2 .ds-search-res{position:absolute;top:46px;left:0;width:min(560px,80vw);max-height:70vh;overflow:auto;background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:14px;box-shadow:var(--ds-shadow-lg);padding:8px;display:none}
html body.nsv2 .ds-search-res.abierto{display:block}
html body.nsv2 .ds-sr-grupo{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ds-faint);padding:10px 10px 4px}
html body.nsv2 .ds-sr-item{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:10px;cursor:pointer}
html body.nsv2 .ds-sr-item:hover,html body.nsv2 .ds-sr-item.sel{background:var(--ds-primary-50)}
html body.nsv2 .ds-sr-item b{font-weight:600;color:var(--ds-ink);font-size:13.5px}
html body.nsv2 .ds-sr-item small{color:var(--ds-muted);font-size:12px}
html body.nsv2 .ds-sr-item .ds-sr-ico{width:30px;height:30px;border-radius:8px;background:var(--ds-sunken);display:grid;place-items:center;flex:none}
html body.nsv2 .ds-sr-item .ds-sr-ico svg{width:15px;height:15px;fill:none;stroke:var(--ds-ink-2);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
html body.nsv2 .ds-sr-vacio{padding:18px;text-align:center;color:var(--ds-muted)}
html body.nsv2 .ds-top-sp{flex:1}
html body.nsv2 .ds-icon-btn{all:unset;box-sizing:border-box;cursor:pointer;width:38px;height:38px;border-radius:999px;display:grid;place-items:center;background:var(--ds-surface);border:1px solid var(--ds-line);box-shadow:var(--ds-shadow);color:var(--ds-ink-2);position:relative}
html body.nsv2 .ds-icon-btn:hover{color:var(--ds-ink);border-color:var(--ds-line-strong)}
html body.nsv2 .ds-icon-btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
html body.nsv2 .ds-dot{position:absolute;top:-3px;right:-3px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:var(--ds-bad);color:#fff;font-size:10.5px;font-weight:700;display:grid;place-items:center;border:2px solid var(--ds-bg)}
html body.nsv2 .ds-new{all:unset;box-sizing:border-box;cursor:pointer;height:38px;padding:0 16px;border-radius:999px;background:var(--ds-primary);color:#fff;font-weight:600;font-size:13.5px;display:flex;align-items:center;gap:6px;box-shadow:0 6px 16px -6px rgba(36,87,230,.6)}
html body.nsv2 .ds-new:hover{background:var(--ds-primary-600)}
html body.nsv2 .ds-new svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
html body.nsv2 .ds-avatar{all:unset;cursor:pointer;width:38px;height:38px;border-radius:999px;display:grid;place-items:center;background:linear-gradient(135deg,#1d47c4,#0f1f3d);color:#fff;font-weight:700;font-size:13px;box-shadow:0 0 0 2px #fff,0 0 0 3px var(--ds-line)}
html body.nsv2 .ds-pop{position:absolute;top:52px;right:0;min-width:240px;background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:14px;box-shadow:var(--ds-shadow-lg);padding:6px;display:none;z-index:60}
html body.nsv2 .ds-pop.abierto{display:block}
html body.nsv2 .ds-pop-cab{padding:10px 12px;border-bottom:1px solid var(--ds-line);margin-bottom:4px}
html body.nsv2 .ds-pop-cab strong{display:block;font-size:13.5px}
html body.nsv2 .ds-pop-cab span{font-size:12px;color:var(--ds-muted)}
html body.nsv2 .ds-pop button{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border-radius:9px;font-size:13.5px;color:var(--ds-ink-2)}
html body.nsv2 .ds-pop button:hover{background:var(--ds-sunken);color:var(--ds-ink)}
html body.nsv2 .ds-pop button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
html body.nsv2 .ds-pop button.peligro{color:var(--ds-bad)}
html body.nsv2 .ds-top-item{position:relative}
html body.nsv2 .ds-notif{width:380px;max-height:70vh;overflow:auto}
html body.nsv2 .ds-notif .ds-n{display:flex;gap:10px;align-items:flex-start;white-space:normal;line-height:1.4;font-size:13px}
html body.nsv2 .ds-notif .ds-n i{font-style:normal;flex:none;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:var(--ds-sunken);font-size:13px}
html body.nsv2 .ds-vacio-n{padding:22px;text-align:center;color:var(--ds-muted);font-size:13px}

/* ------------------------------------------------------------ encabezados de página */
html body.nsv2 .cot-header.card,html body.nsv2 .cli-header.card,html body.nsv2 .report-simple-header,html body.nsv2 .fe-header{background:transparent!important;border:0!important;box-shadow:none!important;padding:0 0 4px!important;margin:0 0 18px!important;display:flex!important;align-items:flex-end!important;justify-content:space-between!important;gap:16px!important}
html body.nsv2 .cot-header h2,html body.nsv2 .cli-header h2,html body.nsv2 .report-simple-header h2,html body.nsv2 .fe-header h2{font-size:26px!important;font-weight:700!important;letter-spacing:-.025em!important;margin:0 0 4px!important;color:var(--ds-ink)!important}
html body.nsv2 .cot-header p,html body.nsv2 .cli-header p,html body.nsv2 .report-simple-header p,html body.nsv2 .fe-header p{color:var(--ds-muted)!important;font-size:13.5px!important;margin:0!important;max-width:760px}

/* ------------------------------------------------------------ tarjetas */
html body.nsv2 .card,html body.nsv2 .nsb-card,html body.nsv2 .fe-card,html body.nsv2 .config-card{background:var(--ds-surface)!important;border:1px solid var(--ds-line)!important;border-radius:var(--ds-radius)!important;box-shadow:var(--ds-shadow)!important}
html body.nsv2 .card-header{border-bottom:1px solid var(--ds-line)!important;background:transparent!important}
html body.nsv2 .card-header h2,html body.nsv2 .card-header h3{font-size:16px!important}

/* ------------------------------------------------------------ botones */
html body.nsv2 .btn-primary,html body.nsv2 .btn-light,html body.nsv2 .btn-success,html body.nsv2 .btn-danger,html body.nsv2 .btn-dark,html body.nsv2 .btn-secondary{border-radius:10px!important;font-weight:600!important;font-size:13.5px!important;padding:8px 14px!important;min-height:36px;box-shadow:var(--ds-shadow)!important;transition:background .12s,border-color .12s,color .12s!important;text-shadow:none!important;background-image:none!important}
html body.nsv2 .btn-primary{background:var(--ds-primary)!important;border:1px solid var(--ds-primary)!important;color:#fff!important}
html body.nsv2 .btn-primary:hover{background:var(--ds-primary-600)!important;border-color:var(--ds-primary-600)!important}
html body.nsv2 .btn-light,html body.nsv2 .btn-secondary{background:var(--ds-surface)!important;border:1px solid var(--ds-line-strong)!important;color:var(--ds-ink-2)!important}
html body.nsv2 .btn-light:hover,html body.nsv2 .btn-secondary:hover{background:var(--ds-surface-2)!important;color:var(--ds-ink)!important;border-color:#c3ccd9!important}
html body.nsv2 .btn-success{background:var(--ds-good)!important;border:1px solid var(--ds-good)!important;color:#fff!important}
html body.nsv2 .btn-danger{background:var(--ds-surface)!important;border:1px solid #f1c4c4!important;color:var(--ds-bad)!important}
html body.nsv2 .btn-danger:hover{background:var(--ds-bad-50)!important}
html body.nsv2 .btn-danger.solid-danger{background:var(--ds-bad)!important;color:#fff!important}
html body.nsv2 .btn-dark{background:var(--ds-navy)!important;border:1px solid var(--ds-navy)!important;color:#fff!important}
html body.nsv2 .btn-dark:hover{background:#1a2c52!important}
html body.nsv2 button:disabled{opacity:.55;cursor:not-allowed}

/* ------------------------------------------------------------ formularios */
html body.nsv2 .app input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),html body.nsv2 .app select,html body.nsv2 .app textarea,
html body.nsv2 .ns-modal input:not([type=checkbox]):not([type=radio]):not([type=file]),html body.nsv2 .ns-modal select,html body.nsv2 .ns-modal textarea{border:1px solid var(--ds-line-strong)!important;border-radius:10px!important;background:var(--ds-surface)!important;color:var(--ds-ink)!important;font-size:13.5px!important;box-shadow:none!important;min-height:38px}
html body.nsv2 .app input:focus,html body.nsv2 .app select:focus,html body.nsv2 .app textarea:focus,html body.nsv2 .ns-modal input:focus,html body.nsv2 .ns-modal select:focus,html body.nsv2 .ns-modal textarea:focus{outline:none!important;border-color:var(--ds-primary)!important;box-shadow:0 0 0 4px var(--ds-primary-50)!important}
html body.nsv2 label{color:var(--ds-ink-2)}
html body.nsv2 input[type=checkbox],html body.nsv2 input[type=radio]{accent-color:var(--ds-primary)}

/* ------------------------------------------------------------ tablas */
html body.nsv2 .main-table,html body.nsv2 .nsb-table,html body.nsv2 .fe-tabla,html body.nsv2 .cli-table,html body.nsv2 .cot-tabla{border-collapse:separate!important;border-spacing:0!important;width:100%;background:transparent!important}
html body.nsv2 .main-table th,html body.nsv2 .nsb-table th,html body.nsv2 .fe-tabla th,html body.nsv2 .cli-table th,html body.nsv2 .cot-tabla th{background:transparent!important;color:var(--ds-faint)!important;font-size:11.5px!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.05em!important;padding:10px 12px!important;border-bottom:1px solid var(--ds-line)!important;border-top:0!important;white-space:nowrap}
html body.nsv2 .main-table td,html body.nsv2 .nsb-table td,html body.nsv2 .fe-tabla td,html body.nsv2 .cli-table td,html body.nsv2 .cot-tabla td{padding:12px!important;border-bottom:1px solid #eef1f5!important;border-top:0!important;color:var(--ds-ink-2);background:transparent;vertical-align:middle}
html body.nsv2 .main-table tbody tr:hover td,html body.nsv2 .nsb-table tbody tr:hover td,html body.nsv2 .cli-table tbody tr:hover td{background:var(--ds-surface-2)!important}
html body.nsv2 .main-table tbody tr:last-child td,html body.nsv2 .nsb-table tbody tr:last-child td,html body.nsv2 .fe-tabla tbody tr:last-child td{border-bottom:0!important}
html body.nsv2 .main-table tfoot th,html body.nsv2 .nsb-table tfoot th{color:var(--ds-ink)!important;font-size:13px!important;text-transform:none!important;letter-spacing:0!important;border-top:1px solid var(--ds-line)!important;border-bottom:0!important;background:var(--ds-surface-2)!important}
html body.nsv2 .nsb-table-wrap,html body.nsv2 .cli-table-wrap,html body.nsv2 .table-wrap{border:1px solid var(--ds-line)!important;border-radius:12px!important;overflow:auto!important;background:var(--ds-surface)!important;box-shadow:none!important}

/* ------------------------------------------------------------ insignias */
html body.nsv2 .fe-badge,html body.nsv2 .cob-badge,html body.nsv2 .cot-badge,html body.nsv2 .nsci-badge{border-radius:999px!important;font-size:11.5px!important;font-weight:600!important;padding:3px 9px!important;border:1px solid transparent!important}
html body.nsv2 .fe-badge.ok,html body.nsv2 .cob-badge.ok{background:var(--ds-good-50)!important;color:var(--ds-good)!important;border-color:#cdeedb!important}
html body.nsv2 .fe-badge.aviso,html body.nsv2 .cob-badge.aviso{background:var(--ds-warn-50)!important;color:var(--ds-warn)!important;border-color:#f6dfb5!important}
html body.nsv2 .fe-badge.mal,html body.nsv2 .cob-badge.mal{background:var(--ds-bad-50)!important;color:var(--ds-bad)!important;border-color:#f6cdcd!important}
html body.nsv2 .fe-badge.neutro,html body.nsv2 .cob-badge.neutro,html body.nsv2 .cob-badge.gris{background:var(--ds-sunken)!important;color:var(--ds-ink-2)!important;border-color:var(--ds-line)!important}

/* ------------------------------------------------------------ indicadores (KPI) */
html body.nsv2 .cob-kpi,html body.nsv2 .cot-kpi{background:var(--ds-surface)!important;border:1px solid var(--ds-line)!important;border-left:1px solid var(--ds-line)!important;border-radius:var(--ds-radius)!important;padding:16px 18px!important;box-shadow:var(--ds-shadow)!important;gap:4px!important}
html body.nsv2 .cob-kpi small,html body.nsv2 .cot-kpi span{font-size:12.5px!important;font-weight:600!important;color:var(--ds-ink-2)!important;text-transform:none!important;letter-spacing:0!important}
html body.nsv2 .cob-kpi strong,html body.nsv2 .cot-kpi strong{font-size:24px!important;font-weight:700!important;letter-spacing:-.02em!important;color:var(--ds-ink)!important}
html body.nsv2 .cob-kpi span,html body.nsv2 .cot-kpi small{font-size:12px!important;color:var(--ds-muted)!important}
html body.nsv2 .cob-kpi.rojo strong{color:var(--ds-bad)!important}
html body.nsv2 .cob-kpi:hover{border-color:var(--ds-line-strong)!important}

/* ------------------------------------------------------------ pestañas internas */
html body.nsv2 .nsb-subnav,html body.nsv2 .fe-tabs,html body.nsv2 .report-simple-tab-buttons{display:inline-flex!important;flex-wrap:wrap;gap:2px!important;background:var(--ds-sunken)!important;border:1px solid var(--ds-line)!important;border-radius:12px!important;padding:3px!important;margin:0 0 16px!important;box-shadow:none!important}
html body.nsv2 .nsb-subnav button,html body.nsv2 .fe-tabs button,html body.nsv2 .report-simple-tab-buttons button{all:unset;cursor:pointer;padding:7px 14px!important;border-radius:9px!important;font-size:13px!important;font-weight:600!important;color:var(--ds-muted)!important;background:transparent!important;border:0!important;box-shadow:none!important;white-space:nowrap}
html body.nsv2 .nsb-subnav button:hover,html body.nsv2 .fe-tabs button:hover{color:var(--ds-ink)!important}
html body.nsv2 .nsb-subnav button.active,html body.nsv2 .fe-tabs button.active,html body.nsv2 .fe-tabs button.activo,html body.nsv2 .report-simple-tab-buttons button.active{background:var(--ds-surface)!important;color:var(--ds-ink)!important;box-shadow:0 1px 2px rgba(15,23,42,.08),0 1px 1px rgba(15,23,42,.04)!important}

/* ------------------------------------------------------------ ventanas */
html body.nsv2 .ns-modal-overlay{background:rgba(15,23,42,.38)!important;backdrop-filter:blur(3px)}
html body.nsv2 .ns-modal{border-radius:18px!important;border:1px solid var(--ds-line)!important;box-shadow:var(--ds-shadow-lg)!important;background:var(--ds-surface)!important;overflow:hidden}
html body.nsv2 .ns-modal-header{background:var(--ds-surface)!important;border-bottom:1px solid var(--ds-line)!important;padding:18px 22px!important}
html body.nsv2 .ns-modal-header h3{font-size:17px!important;font-weight:700!important}
html body.nsv2 .ns-modal-footer{background:var(--ds-surface-2)!important;border-top:1px solid var(--ds-line)!important;padding:12px 22px!important}
html body.nsv2 .ns-modal-close{border-radius:10px!important;color:var(--ds-muted)!important}

/* ------------------------------------------------------------ avisos */
html body.nsv2 .notice{border-radius:12px!important}
html body.nsv2 .nsb-cargando{color:var(--ds-muted);padding:30px;text-align:center}

/* ============================================================ INICIO (panel) */
html body.nsv2 .ds-dash{display:flex;flex-direction:column;gap:18px}
html body.nsv2 .ds-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
html body.nsv2 .ds-head h1{font-size:28px;font-weight:700;letter-spacing:-.03em;margin:0}
html body.nsv2 .ds-head p{margin:4px 0 0;color:var(--ds-muted);font-size:13.5px}
html body.nsv2 .ds-head-acc{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
html body.nsv2 .ds-pill{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:999px;background:var(--ds-surface);border:1px solid var(--ds-line);box-shadow:var(--ds-shadow);font-size:13px;font-weight:500;color:var(--ds-ink-2)}
html body.nsv2 .ds-pill svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8}
html body.nsv2 .ds-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
html body.nsv2 .ds-tile{background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-radius);box-shadow:var(--ds-shadow);padding:18px 20px;cursor:pointer;transition:border-color .12s,transform .12s}
html body.nsv2 .ds-tile:hover{border-color:var(--ds-line-strong)}
html body.nsv2 .ds-tt{display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:600;color:var(--ds-ink)}
html body.nsv2 .ds-tt svg{width:18px;height:18px;fill:none;stroke:var(--ds-primary);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
html body.nsv2 .ds-tv{display:flex;align-items:baseline;gap:10px;margin-top:14px;flex-wrap:wrap}
html body.nsv2 .ds-tv strong{font-size:27px;font-weight:700;letter-spacing:-.03em;color:var(--ds-ink)}
html body.nsv2 .ds-tile small{display:block;margin-top:6px;font-size:12px;color:var(--ds-muted)}
html body.nsv2 .ds-var{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--ds-good-50);color:var(--ds-good);border:1px solid #cdeedb}
html body.nsv2 .ds-var.baja{background:var(--ds-bad-50);color:var(--ds-bad);border-color:#f6cdcd}
html body.nsv2 .ds-var.neutra{background:var(--ds-sunken);color:var(--ds-muted);border-color:var(--ds-line)}
html body.nsv2 .ds-grid{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(0,1fr);gap:16px}
html body.nsv2 .ds-card{background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-radius);box-shadow:var(--ds-shadow);padding:20px;min-width:0}
html body.nsv2 .ds-card-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
html body.nsv2 .ds-card-h h3{font-size:15px!important;font-weight:650!important;margin:0}
html body.nsv2 .ds-card-h a,html body.nsv2 .ds-link{all:unset;cursor:pointer;font-size:12.5px;font-weight:600;color:var(--ds-primary)}
html body.nsv2 .ds-ventas{display:grid;grid-template-columns:minmax(200px,.8fr) minmax(0,2fr);gap:20px;align-items:center}
html body.nsv2 .ds-hero{font-size:36px;font-weight:700;letter-spacing:-.035em;line-height:1.05;color:var(--ds-ink)}
html body.nsv2 .ds-hero span{color:var(--ds-faint);font-weight:600}
html body.nsv2 .ds-hero-sub{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:12.5px;color:var(--ds-muted)}
html body.nsv2 .ds-chart{position:relative}
html body.nsv2 .ds-chart svg{display:block;width:100%;height:auto;overflow:visible}
html body.nsv2 .ds-chart .ds-ax{font-size:10.5px;fill:var(--ds-faint)}
html body.nsv2 .ds-tip{position:absolute;pointer-events:none;background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:10px;box-shadow:var(--ds-shadow-lg);padding:8px 10px;font-size:12px;white-space:nowrap;transform:translate(-50%,-110%);display:none;z-index:5}
html body.nsv2 .ds-tip b{display:block;font-size:12px;margin-bottom:3px;color:var(--ds-ink)}
html body.nsv2 .ds-tip i{display:inline-block;width:10px;height:2px;border-radius:2px;vertical-align:middle;margin-right:6px}
html body.nsv2 .ds-leyenda{display:flex;gap:16px;font-size:12px;color:var(--ds-muted);margin-top:6px}
html body.nsv2 .ds-leyenda i{display:inline-block;width:14px;height:2px;border-radius:2px;margin-right:6px;vertical-align:middle}
html body.nsv2 .ds-mini{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px;border:1px solid var(--ds-line);border-radius:12px;padding:14px}
html body.nsv2 .ds-mini div{padding:0 4px 10px;border-bottom:3px solid var(--c,#2457e6)}
html body.nsv2 .ds-mini strong{display:block;font-size:19px;font-weight:700;letter-spacing:-.02em}
html body.nsv2 .ds-mini small{font-size:12px;color:var(--ds-muted)}
html body.nsv2 .ds-bars{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;height:180px;padding-top:24px}
html body.nsv2 .ds-bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;height:100%;justify-content:flex-end;position:relative;cursor:default}
html body.nsv2 .ds-bar span{width:100%;max-width:38px;border-radius:10px;background:#e9edf3;min-height:6px;transition:background .12s}
html body.nsv2 .ds-bar.max span{background:linear-gradient(180deg,#4b7bf5,var(--ds-primary))}
html body.nsv2 .ds-bar:hover span{background:#cfd8e6}
html body.nsv2 .ds-bar.max:hover span{background:var(--ds-primary-600)}
html body.nsv2 .ds-bar small{font-size:12px;color:var(--ds-muted)}
html body.nsv2 .ds-bar.max small{color:var(--ds-primary);font-weight:700}
html body.nsv2 .ds-bar b{position:absolute;top:-2px;font-size:12px;font-weight:700;color:var(--ds-ink)}
html body.nsv2 .ds-tabla{width:100%;border-collapse:collapse}
html body.nsv2 .ds-tabla th{font-size:11.5px;font-weight:600;color:var(--ds-faint);text-transform:uppercase;letter-spacing:.05em;text-align:left;padding:8px 10px;border-bottom:1px solid var(--ds-line)}
html body.nsv2 .ds-tabla td{padding:12px 10px;border-bottom:1px solid #eef1f5;font-size:13.5px;color:var(--ds-ink-2)}
html body.nsv2 .ds-tabla tr:last-child td{border-bottom:0}
html body.nsv2 .ds-tabla .r{text-align:right;font-variant-numeric:tabular-nums}
html body.nsv2 .ds-prod{display:flex;align-items:center;gap:10px}
html body.nsv2 .ds-prod i{font-style:normal;width:32px;height:32px;border-radius:9px;background:var(--ds-sunken);border:1px solid var(--ds-line);display:grid;place-items:center;font-size:12px;font-weight:700;color:var(--ds-muted)}
html body.nsv2 .ds-prod b{color:var(--ds-ink);font-weight:600}
html body.nsv2 .ds-gauge{display:flex;flex-direction:column;align-items:center;padding-top:6px}
html body.nsv2 .ds-gauge svg{width:100%;max-width:250px;height:auto}
html body.nsv2 .ds-gauge-v{margin-top:-70px;text-align:center}
html body.nsv2 .ds-gauge-v strong{display:block;font-size:30px;font-weight:700;letter-spacing:-.03em}
html body.nsv2 .ds-gauge-v small{font-size:12px;color:var(--ds-muted)}
html body.nsv2 .ds-gauge-acc{margin-top:14px}
html body.nsv2 .ds-pend{display:flex;flex-direction:column}
html body.nsv2 .ds-pend button{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:12px;padding:11px 8px;border-bottom:1px solid #eef1f5;border-radius:8px;font-size:13.5px;color:var(--ds-ink-2)}
html body.nsv2 .ds-pend button:last-child{border-bottom:0}
html body.nsv2 .ds-pend button:hover{background:var(--ds-surface-2)}
html body.nsv2 .ds-pend i{font-style:normal;flex:none;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--ds-sunken);font-size:14px}
html body.nsv2 .ds-pend .ds-ir{margin-left:auto;color:var(--ds-faint)}
html body.nsv2 .ds-ok{display:flex;align-items:center;gap:10px;padding:14px;border-radius:12px;background:var(--ds-good-50);color:var(--ds-good);font-weight:600;font-size:13.5px}
html body.nsv2 .ds-estado{display:flex;flex-wrap:wrap;gap:8px}
html body.nsv2 .ds-chip{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;font-size:12.5px;font-weight:600;border:1px solid var(--ds-line);background:var(--ds-surface)}
html body.nsv2 .ds-chip::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ds-good)}
html body.nsv2 .ds-chip.warn::before{background:#f59e0b}
html body.nsv2 .ds-chip.bad::before{background:var(--ds-bad)}
html body.nsv2 .ds-nuevo-menu{right:auto;left:0}
html body.nsv2 .ds-amb{font-size:12px;color:var(--ds-warn);background:var(--ds-warn-50);border:1px solid #f6dfb5;border-radius:999px;padding:4px 10px;font-weight:600}

@media (max-width:1280px){html body.nsv2 .ds-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}html body.nsv2 .ds-ventas{grid-template-columns:1fr}}
@media (max-width:1100px){html body.nsv2 .ds-grid{grid-template-columns:1fr}html body.nsv2.ns-adaptive-ready>.app{margin-left:0!important;width:100%!important;padding:0 16px 24px!important}html body.nsv2 .ds-top{margin:0 -16px 16px;padding:0 16px 0 64px}}

/* ajustes */
html body.nsv2 .ds-brand .ds-collapse.ns-nav-collapse{all:unset!important;cursor:pointer!important;width:30px!important;height:30px!important;border-radius:8px!important;display:grid!important;place-items:center!important;color:var(--ds-faint)!important;margin-left:auto!important;flex:none!important}
html body.nsv2 .ds-brand .ds-collapse.ns-nav-collapse:hover{background:var(--ds-sunken)!important;color:var(--ds-ink)!important}
html body.nsv2 .ds-brand .ds-collapse svg{width:17px!important;height:17px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.75!important}
html body.nsv2 .ds-var{white-space:nowrap}
html body.nsv2 .ds-card .pos-statusbar{border:0!important;padding:0!important;background:transparent!important;box-shadow:none!important;margin:0!important}
html body.nsv2 .ds-card .pos-status-title{display:none!important}
html body.nsv2 .fe-header.card{border:0!important;box-shadow:none!important;background:transparent!important;padding:0!important}
html body.nsv2 .fe-filtros{display:flex!important;gap:10px!important;align-items:center!important}
html body.nsv2 .fe-filtros select{flex:0 0 220px!important;width:220px!important}
html body.nsv2 .fe-filtros input{flex:1 1 auto!important;min-width:200px!important}
html body.nsv2 .fe-amb{border-radius:999px!important;font-size:12px!important;padding:4px 12px!important}

/* ------------------------------------------------------------ ingreso (login) */
html body .ns-auth-overlay{display:grid!important;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)!important;align-items:stretch!important;padding:0!important;gap:0!important;
  background:radial-gradient(900px 600px at 100% 0%,#e3ebff 0%,transparent 60%),radial-gradient(700px 500px at 100% 100%,#eefbe0 0%,transparent 55%),#f4f6fa!important;font-family:var(--ds-font)!important}
html body .ns-auth-info{display:flex!important;flex-direction:column;justify-content:center;gap:18px;padding:64px 72px;color:#fff;
  background:radial-gradient(120% 90% at 0% 0%,#2a5cf0 0%,#1338a8 45%,#0b1f63 100%);position:relative;overflow:hidden}
html body .ns-auth-info::after{content:"";position:absolute;right:-120px;bottom:-120px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(132,204,22,.28),transparent 65%)}
html body .ns-auth-info-tit{font-size:34px;font-weight:700;letter-spacing:-.03em;line-height:1.1}
html body .ns-auth-info-tit span{display:block;font-size:16px;font-weight:500;opacity:.8;letter-spacing:0;margin-top:6px}
html body .ns-auth-info p{font-size:16px;line-height:1.55;opacity:.9;max-width:440px;margin:0}
html body .ns-auth-info ul{list-style:none;padding:0;margin:6px 0 0;display:flex;flex-direction:column;gap:12px;max-width:460px}
html body .ns-auth-info li{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);border-radius:12px;padding:12px 14px;font-size:14px;backdrop-filter:blur(4px)}
html body .ns-auth-info small{opacity:.7;font-size:12.5px}
html body .ns-auth-card{align-self:center!important;justify-self:center!important;margin:32px!important;border-radius:20px!important;border:1px solid var(--ds-line)!important;box-shadow:0 24px 60px -20px rgba(15,23,42,.25)!important;padding:34px!important;width:min(420px,calc(100% - 32px))!important}
html body .ns-auth-card .ns-auth-logo{width:84px!important;height:84px!important}
html body .ns-auth-card .ns-auth-brand strong{font-size:15px!important;letter-spacing:0!important;font-weight:600!important;color:var(--ds-muted)!important}
html body .ns-auth-card h2{font-size:24px!important;font-weight:700!important;letter-spacing:-.025em!important}
html body .ns-auth-card input{border-radius:10px!important;border:1px solid var(--ds-line-strong)!important;min-height:42px!important}
html body .ns-auth-card input:focus{outline:none!important;border-color:var(--ds-primary)!important;box-shadow:0 0 0 4px var(--ds-primary-50)!important}
html body .ns-auth-submit{background:var(--ds-primary)!important;border-radius:10px!important;font-weight:600!important;box-shadow:0 8px 18px -8px rgba(36,87,230,.7)!important}
@media (max-width:900px){html body .ns-auth-overlay{grid-template-columns:1fr!important}html body .ns-auth-info{display:none!important}}

/* ------------------------------------------------------------ configuración */
html body.nsv2 .config-module-header{background:transparent!important;border:0!important;box-shadow:none!important;padding:0 0 4px!important;margin:0 0 16px!important;color:var(--ds-ink)!important}
html body.nsv2 .config-module-header::before,html body.nsv2 .config-module-header::after{display:none!important}
html body.nsv2 .config-module-header h1{font-size:26px!important;font-weight:700!important;letter-spacing:-.025em!important;color:var(--ds-ink)!important;margin:2px 0 4px!important}
html body.nsv2 .config-module-header p{color:var(--ds-muted)!important;font-size:13.5px!important}
html body.nsv2 .config-eyebrow{color:var(--ds-primary)!important;background:transparent!important;padding:0!important;font-size:11.5px!important;letter-spacing:.06em!important}

/* ------------------------------------------------------------ productos */
html body.nsv2 #tab-productos .layout{grid-template-columns:minmax(300px,360px) minmax(0,1fr)!important;gap:16px!important}
html body.nsv2 #tab-productos .layout>.card{min-width:0!important;grid-column:auto!important}
html body.nsv2 #tab-productos .card-body{overflow-x:auto}
html body.nsv2 .lp-card-header{align-items:center!important}

/* menú: tarjeta de respaldo compacta y oculta en pantallas bajas */
html body.nsv2 .ds-plan{padding:12px}
html body.nsv2 .ds-plan .ds-plan-ico{display:none}
@media (max-height:860px){html body.nsv2 .ds-plan span{display:none}}
@media (max-height:760px){html body.nsv2 .ds-plan{display:none}}
html body .ns-auth-overlay>.ns-auth-info{width:100%!important;max-width:none!important;margin:0!important;justify-self:stretch!important;align-self:stretch!important;height:100%!important;box-sizing:border-box!important;border-radius:0!important}

/* ------------------------------------------------------------ ingreso: panel de marca con capturas del sistema */
html body .ns-auth-info{justify-content:center!important;gap:22px!important;padding:48px 56px!important;overflow:hidden!important}
html body .ns-auth-info>ul.nsl-chips{display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;gap:8px!important;max-width:none!important;margin:0!important}
html body .ns-auth-info .nsl-chips li{padding:6px 12px!important;border-radius:999px!important;font-size:12.5px!important;font-weight:500!important;background:rgba(255,255,255,.12)!important;border:1px solid rgba(255,255,255,.2)!important}
html body .nsl-top{display:flex;align-items:center;gap:14px;position:relative;z-index:2}
html body .nsl-logo{width:58px;height:58px;object-fit:contain;background:#fff;border-radius:14px;padding:6px;box-shadow:0 8px 24px -8px rgba(0,0,0,.4)}
html body .nsl-top .ns-auth-info-tit{font-size:26px!important;line-height:1!important}
html body .nsl-sub{display:block;font-size:13.5px;opacity:.78;margin-top:4px}
html body .nsl-h{font-size:28px!important;line-height:1.2!important;font-weight:700!important;letter-spacing:-.025em!important;color:#fff!important;margin:6px 0 0!important;max-width:560px;position:relative;z-index:2}
html body .nsl-show{position:relative;height:clamp(300px,44vh,440px);margin:8px 0 6px;z-index:1}
html body .nsl-shot{position:absolute;margin:0;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 30px 60px -20px rgba(2,8,30,.65),0 0 0 1px rgba(255,255,255,.18)}
html body .nsl-shot img{display:block;width:100%;height:auto}
html body .nsl-bar{display:flex;align-items:center;gap:5px;height:24px;padding:0 10px;background:#f1f4f9;border-bottom:1px solid #e3e8ef}
html body .nsl-bar i{width:8px;height:8px;border-radius:50%;background:#d6dce5}
html body .nsl-bar i:nth-child(1){background:#f87171}html body .nsl-bar i:nth-child(2){background:#fbbf24}html body .nsl-bar i:nth-child(3){background:#4ade80}
html body .nsl-bar span{margin-left:8px;font-size:10.5px;font-weight:600;color:#64748b}
html body .nsl-main{left:0;top:0;width:86%}
html body .nsl-a{left:6%;bottom:-6%;width:50%;transform:rotate(-1.5deg)}
html body .nsl-b{right:-2%;top:22%;width:40%;transform:rotate(2deg)}
html body .ns-auth-info::after{z-index:0}
@media (max-width:1250px){html body .nsl-b{display:none}html body .nsl-main{width:94%}}
@media (max-height:760px){html body .nsl-show{display:none}}
html body .ns-auth-overlay>.ns-auth-info{left:0!important;top:0!important;right:auto!important;bottom:auto!important;transform:none!important;animation:none!important}
html body .nsl-show{margin-bottom:34px!important}

/* ------------------------------------------------------------ tablas tipo planilla */
html body.nsv2 table.ds-xl{width:100%!important}
html body.nsv2 table.ds-xl th,html body.nsv2 table.ds-xl td{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:none!important;word-break:normal!important;overflow-wrap:normal!important}
html body.nsv2 table.ds-xl td{height:56px;padding-top:8px!important;padding-bottom:8px!important;line-height:1.35}
html body.nsv2 table.ds-xl td small,html body.nsv2 table.ds-xl td strong,html body.nsv2 table.ds-xl td span:not(.fe-badge):not(.cob-badge){white-space:nowrap}
html body.nsv2 table.ds-xl td.fe-acc,html body.nsv2 table.ds-xl td.cot-acciones,html body.nsv2 table.ds-xl td:has(>button){text-overflow:clip!important}
html body.nsv2 table.ds-xl td.fe-acc,html body.nsv2 table.ds-xl td.cot-acciones{display:table-cell!important}
html body.nsv2 table.ds-xl td.fe-acc button,html body.nsv2 table.ds-xl td.cot-acciones button{margin:2px 3px 2px 0!important;padding:5px 10px!important;min-height:30px!important;font-size:12.5px!important}
html body.nsv2 table.ds-xl th{position:relative;user-select:none}
html body.nsv2 .ds-xl-h{position:absolute;top:0;right:0;width:9px;height:100%;cursor:col-resize;z-index:2}
html body.nsv2 .ds-xl-h::after{content:"";position:absolute;right:3px;top:25%;bottom:25%;width:2px;border-radius:2px;background:var(--ds-line-strong);opacity:0;transition:opacity .12s}
html body.nsv2 table.ds-xl th:hover .ds-xl-h::after{opacity:1}
html body.nsv2 .ds-xl-h:hover::after{background:var(--ds-primary);opacity:1}
html body.nsv2.ds-xl-arrastrando,html body.nsv2.ds-xl-arrastrando *{cursor:col-resize!important;user-select:none!important}
html body.nsv2 .ds-xl-wrap{overflow-x:auto;max-width:100%}
html body.nsv2 table.ds-xl-medir{table-layout:auto!important;width:auto!important;min-width:0!important}
html body.nsv2 table.ds-xl-medir th,html body.nsv2 table.ds-xl-medir td{white-space:nowrap!important}
html body.nsv2 table.ds-xl-medir td.fe-acc,html body.nsv2 table.ds-xl-medir td.cot-acciones{display:table-cell!important}

/* sin parpadeo del diseño anterior: la aplicación se muestra cuando el menú nuevo está listo */
html body.nsv2:not(.ds-listo)>.app{visibility:hidden!important}
html body.nsv2 header.topbar,html body.nsv2 .stat-grid,html body.nsv2 .app>.tabs{display:none!important}
html body.nsv2 .ns-auth-info .nsl-h,html body.nsv2 .ns-auth-info .ns-auth-info-tit{color:#fff!important}

/* ===================================================================== acceso: recuperar contraseña, términos, inactividad */
html body .ns-auth-link{display:block;margin:10px auto 0;background:none;border:0;color:var(--ds-primary);font:600 13px/1.4 var(--ds-font);cursor:pointer;padding:4px 6px;border-radius:6px}
html body .ns-auth-link:hover{text-decoration:underline}
html body .ns-auth-link:focus-visible{outline:2px solid var(--ds-primary);outline-offset:2px}
html body .ns-auth-legal{display:flex;justify-content:center;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid var(--ds-line);font-size:12px;color:var(--ds-faint)}
html body .ns-auth-legal a{color:var(--ds-muted);text-decoration:none}
html body .ns-auth-legal a:hover{color:var(--ds-primary);text-decoration:underline}
html body .ns-auth-error.es-info{color:var(--ds-ink-2);background:var(--ds-primary-50);border-radius:10px;padding:10px 12px;font-weight:500;line-height:1.45}
html body .ns-auth-ok{background:var(--ds-good-50);color:var(--ds-good);border-radius:10px;padding:12px 14px;margin:6px 0 14px;font-size:13px;line-height:1.5}
html body .ns-auth-reglas{list-style:none;margin:4px 0 6px;padding:0;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--ds-faint)}
html body .ns-auth-reglas li::before{content:"○ ";}
html body .ns-auth-reglas li.ok{color:var(--ds-good)}
html body .ns-auth-reglas li.ok::before{content:"● "}
html body .ns-auth-eye{display:inline-flex!important;align-items:center;justify-content:center;color:var(--ds-muted)!important}
html body .ns-user-sin-correo{color:var(--ds-warn);font-style:normal}

html body .ns-idle-toast{position:fixed;right:20px;bottom:20px;z-index:100001;display:flex;align-items:center;gap:16px;max-width:min(460px,calc(100vw - 32px));background:var(--ds-surface);border:1px solid var(--ds-line);border-left:4px solid var(--ds-warn);border-radius:14px;box-shadow:var(--ds-shadow-lg);padding:14px 16px;font:14px/1.45 var(--ds-font);color:var(--ds-ink)}
html body .ns-idle-toast strong{display:block}
html body .ns-idle-toast span{color:var(--ds-muted);font-size:13px}
html body .ns-idle-toast button{flex-shrink:0;background:var(--ds-primary);color:#fff;border:0;border-radius:10px;padding:9px 14px;font:600 13px var(--ds-font);cursor:pointer}

html body .ns-legal-back{position:fixed;inset:0;z-index:100002;background:rgba(15,23,42,.55);display:flex;align-items:center;justify-content:center;padding:16px}
html body .ns-legal{background:var(--ds-surface);border-radius:18px;max-width:520px;width:100%;padding:28px;box-shadow:var(--ds-shadow-lg);font:14px/1.55 var(--ds-font);color:var(--ds-ink)}
html body .ns-legal h3{margin:0 0 8px;font-size:20px}
html body .ns-legal p{color:var(--ds-muted);margin:0 0 12px}
html body .ns-legal ul{margin:0 0 16px;padding-left:18px}
html body .ns-legal a{color:var(--ds-primary);font-weight:600}
html body .ns-legal-check{display:flex;gap:10px;align-items:flex-start;background:var(--ds-surface-2);border:1px solid var(--ds-line);border-radius:12px;padding:12px;cursor:pointer}
html body .ns-legal-check input{margin-top:3px;width:16px;height:16px;flex-shrink:0}
html body .ns-legal-err{color:var(--ds-bad);min-height:18px;margin:8px 0 0;font-size:13px}
html body .ns-legal-acc{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}
html body .ns-legal-acc button{border-radius:10px;padding:10px 16px;font:600 14px var(--ds-font);cursor:pointer;border:1px solid var(--ds-line-strong);background:var(--ds-surface);color:var(--ds-ink)}
html body .ns-legal-acc .ns-legal-pri{background:var(--ds-primary);border-color:var(--ds-primary);color:#fff}
html body .ns-legal-acc .ns-legal-pri:disabled{opacity:.5;cursor:not-allowed}

/* ===================================================================== seguridad en configuración */
html body .plat-inact{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
html body .plat-inact select{width:auto;min-width:150px}
html body .plat-acc-filtros{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
html body .plat-acc-filtros input,html body .plat-acc-filtros select{width:auto;min-width:200px}
html body .plat-scroll{max-height:420px;overflow:auto;border:1px solid var(--ds-line);border-radius:12px}
html body .plat-scroll .plat-tabla{border:0}
html body .plat-tabla th{position:sticky;top:0;z-index:1}
html body .plat-chip{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;background:var(--ds-sunken);color:var(--ds-ink-2)}
html body .plat-chip.ok{background:var(--ds-good-50);color:var(--ds-good)}
html body .plat-chip.warn{background:var(--ds-warn-50);color:var(--ds-warn)}
html body .plat-chip.bad{background:var(--ds-bad-50);color:var(--ds-bad)}
html body .plat-chip.info{background:var(--ds-primary-50);color:var(--ds-primary-600)}

/* ===================================================================== puesta en marcha */
html body .pm-back{position:fixed;inset:0;z-index:100000;background:rgba(15,23,42,.5);display:flex;align-items:center;justify-content:center;padding:16px}
html body .pm{display:grid;grid-template-columns:300px 1fr;width:min(1040px,100%);height:min(680px,calc(100vh - 32px));background:var(--ds-surface);border-radius:20px;overflow:hidden;box-shadow:var(--ds-shadow-lg);font:14px/1.5 var(--ds-font);color:var(--ds-ink)}
html body .pm-side{background:var(--ds-surface-2);border-right:1px solid var(--ds-line);padding:22px 16px;display:flex;flex-direction:column;overflow:auto}
html body .pm-side-cab{display:flex;gap:12px;align-items:center;padding:0 6px}
html body .pm-side-cab h3{margin:0;font-size:17px}
html body .pm-side-cab p{margin:0;color:var(--ds-muted);font-size:13px}
html body .pm-ico{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:11px;background:var(--ds-primary-50);color:var(--ds-primary);flex-shrink:0}
html body .pm-barra{height:6px;background:var(--ds-line);border-radius:99px;margin:16px 6px 14px;overflow:hidden}
html body .pm-barra i{display:block;height:100%;background:var(--ds-primary);border-radius:99px;transition:width .3s}
html body .pm-side ol{list-style:none;margin:0;padding:0;flex:1}
html body .pm-side li button{all:unset;box-sizing:border-box;display:flex;gap:11px;align-items:flex-start;width:100%;padding:9px 10px;border-radius:11px;cursor:pointer}
html body .pm-side li button:hover{background:var(--ds-sunken)}
html body .pm-side li button.activo{background:var(--ds-surface);box-shadow:var(--ds-shadow)}
html body .pm-side li button:focus-visible{outline:2px solid var(--ds-primary)}
html body .pm-num{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--ds-line-strong);font-size:12px;font-weight:600;color:var(--ds-muted);flex-shrink:0;margin-top:1px}
html body .pm-side .est-ok .pm-num{background:var(--ds-good);border-color:var(--ds-good);color:#fff}
html body .pm-txt strong{display:block;font-weight:600;font-size:13.5px}
html body .pm-txt small{display:block;color:var(--ds-faint);font-size:12px}
html body .pm-side .est-pendiente .pm-txt small{color:var(--ds-warn)}
html body .pm-ocultar{all:unset;cursor:pointer;color:var(--ds-faint);font-size:12px;padding:10px 10px 0;text-align:center}
html body .pm-ocultar:hover{color:var(--ds-ink-2);text-decoration:underline}
html body .pm-main{position:relative;overflow:auto;padding:30px 34px}
html body .pm-cerrar{position:absolute;top:14px;right:14px;all:unset;cursor:pointer;color:var(--ds-muted);padding:6px;border-radius:8px;display:inline-flex}
html body .pm-main .pm-cerrar{position:absolute;top:14px;right:14px}
html body .pm-cerrar:hover{background:var(--ds-sunken)}
html body .pm-cab h2{margin:8px 0 6px;font-size:22px;letter-spacing:-.02em}
html body .pm-cab p{margin:0 0 14px;color:var(--ds-muted);max-width:640px}
html body .pm-estado{display:inline-block;font-size:12px;font-weight:600;padding:2px 10px;border-radius:99px;background:var(--ds-warn-50);color:var(--ds-warn)}
html body .pm-estado.est-ok{background:var(--ds-good-50);color:var(--ds-good)}
html body .pm-estado.est-opcional{background:var(--ds-primary-50);color:var(--ds-primary-600)}
html body .pm-actual{background:var(--ds-surface-2);border:1px solid var(--ds-line);border-radius:12px;padding:10px 14px;margin-bottom:18px;font-size:13px;color:var(--ds-ink-2)}
html body .pm-form label,html body .pm-inline{display:block;font-size:12.5px;font-weight:600;color:var(--ds-ink-2);margin-bottom:12px}
html body .pm-form input,html body .pm-form select,html body .pm-inline input{display:block;width:100%;margin-top:5px;font-weight:400}
html body .pm-inline{display:inline-block;margin-right:12px;min-width:220px}
html body .pm-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
html body .pm-full{grid-column:1/-1}
html body .pm-acc{display:flex;gap:10px;flex-wrap:wrap;margin:6px 0 14px}
html body .pm-pri,html body .pm-sec,html body .pm-banner button{border-radius:10px;padding:10px 16px;font:600 14px var(--ds-font);cursor:pointer;border:1px solid var(--ds-line-strong);background:var(--ds-surface);color:var(--ds-ink)}
html body .pm-pri,html body .pm-banner button{background:var(--ds-primary);border-color:var(--ds-primary);color:#fff}
html body .pm-pri:disabled{opacity:.5;cursor:not-allowed}
html body .pm-check{display:flex;gap:10px;align-items:flex-start;margin:6px 0 12px;cursor:pointer}
html body .pm-links{padding-left:18px;margin:0 0 14px}
html body .pm-links a{color:var(--ds-primary);font-weight:600}
html body .pm-msg{white-space:pre-line;font-size:13px;border-radius:10px}
html body .pm-msg:not(:empty){padding:10px 14px;margin-top:6px}
html body .pm-msg.ok{background:var(--ds-good-50);color:var(--ds-good)}
html body .pm-msg.err{background:var(--ds-bad-50);color:var(--ds-bad)}
html body .pm-msg.info{background:var(--ds-primary-50);color:var(--ds-primary-600)}
html body .pm-tabla{width:100%;border-collapse:collapse;margin:0 0 16px;font-size:13px}
html body .pm-tabla th,html body .pm-tabla td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--ds-line)}
html body .pm-tabla th{color:var(--ds-muted);font-weight:600;font-size:12px}
html body .pm-dns{border:1px solid var(--ds-line);border-radius:12px;padding:12px 14px;margin:10px 0;font-size:13px;background:var(--ds-surface)}
html body .pm-dns p{margin:0 0 8px}
html body .pm-dns-ok{color:var(--ds-good)} html body .pm-dns-err{color:var(--ds-bad)}
html body .pm-dns-item{display:flex;gap:10px;padding:8px 0;border-top:1px solid var(--ds-line)}
html body .pm-dns-item>span{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;flex-shrink:0}
html body .pm-dns-item.ok>span{background:var(--ds-good-50);color:var(--ds-good)}
html body .pm-dns-item.falta>span{background:var(--ds-warn-50);color:var(--ds-warn)}
html body .pm-dns-item strong{display:block}
html body .pm-dns-item small{display:block;color:var(--ds-muted)}
html body .pm-dns-item code{display:block;margin-top:5px;background:var(--ds-sunken);border-radius:8px;padding:6px 8px;font-size:12px;word-break:break-all}
html body .pm-banner{display:grid;grid-template-columns:auto 1fr 180px auto;align-items:center;gap:14px;background:var(--ds-surface);border:1px solid var(--ds-primary-100);border-radius:var(--ds-radius);padding:14px 18px;margin:0;box-shadow:var(--ds-shadow)}
html body .pm-banner strong{display:block}
html body .pm-banner span{color:var(--ds-muted);font-size:13px}
html body .pm-banner-barra{height:6px;background:var(--ds-line);border-radius:99px;overflow:hidden}
html body .pm-banner-barra i{display:block;height:100%;background:var(--ds-primary)}
@media (max-width:780px){
  html body .pm{grid-template-columns:1fr;height:calc(100vh - 32px)}
  html body .pm-side{max-height:210px;border-right:0;border-bottom:1px solid var(--ds-line)}
  html body .pm-main{padding:22px 18px}
  html body .pm-grid{grid-template-columns:1fr}
  html body .pm-banner{grid-template-columns:auto 1fr;}
  html body .pm-banner-barra{grid-column:1/-1}
  html body .pm-banner button{grid-column:1/-1}
}

/* ===================================================================== íconos que reemplazan emojis */
html body .ds-emo{display:inline-flex;align-items:center;vertical-align:-.16em;margin-right:.38em;line-height:1}
html body .ds-emo svg{width:1.05em;height:1.05em;flex-shrink:0}
html body .ds-emo-alerta{color:var(--ds-warn)}
html body .nsci-notice-error .ds-emo-alerta,html body .bad .ds-emo-alerta{color:inherit}
html body .ds-punto{display:inline-block;width:.6em;height:.6em;border-radius:50%;margin-right:.4em;vertical-align:.05em}

/* ===================== Tesorería y Contabilidad (fx-* diálogos, fin-* vistas) ===================== */
.fx-back{position:fixed;inset:0;background:rgba(15,23,42,.45);display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px;z-index:9000;overflow:auto}
.fx{background:var(--ds-surface,#fff);border-radius:16px;width:100%;box-shadow:var(--ds-shadow-lg);border:1px solid var(--ds-line,#e6eaf0);font-family:var(--ds-font)}
.fx-cab{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--ds-line)}
.fx-cab h3{margin:0;font-size:17px;font-weight:700;color:var(--ds-ink)}
.fx-x{all:unset;cursor:pointer;font-size:24px;line-height:1;color:var(--ds-muted);padding:0 6px;border-radius:8px}.fx-x:hover{background:var(--ds-sunken);color:var(--ds-ink)}
.fx-cuerpo{padding:18px 20px;display:flex;flex-direction:column;gap:12px;max-height:72vh;overflow:auto}
.fx-cuerpo label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600;color:var(--ds-ink-2)}
.fx-cuerpo input,.fx-cuerpo select,.fx-cuerpo textarea{font:inherit;font-weight:400;padding:8px 10px;border:1px solid var(--ds-line-strong);border-radius:9px;background:var(--ds-surface);color:var(--ds-ink);min-width:0}
.fx-cuerpo input:focus,.fx-cuerpo select:focus{outline:2px solid var(--ds-primary-100);border-color:var(--ds-primary)}
.fx-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.fx-check{flex-direction:row!important;align-items:center;gap:8px!important;font-weight:500!important}.fx-check input{width:auto}
.fx-err{background:var(--ds-bad-50);color:var(--ds-bad);border-radius:9px;padding:9px 12px;font-size:13px;white-space:pre-line}
.fx-pie{display:flex;justify-content:flex-end;gap:8px;padding-top:6px;border-top:1px solid var(--ds-line);margin-top:4px;padding-top:14px;position:sticky;bottom:-18px;background:var(--ds-surface);padding-bottom:4px}
.fx-toast{position:fixed;left:50%;top:22px;transform:translateX(-50%);z-index:9500;display:flex;align-items:center;gap:10px;background:#0f7a3d;color:#fff;padding:12px 20px;border-radius:12px;font-size:15px;font-weight:700;box-shadow:0 12px 32px -8px rgba(0,0,0,.35);transition:opacity .4s,transform .4s;max-width:min(560px,92vw)}
.fx-toast-ico{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,.22);font-size:14px;flex:0 0 24px}
.fx-toast.error{background:var(--ds-bad)}.fx-toast.fuera{opacity:0;transform:translate(-50%,-10px)}
.fin-page .card{margin-bottom:16px}
.fin-subnav{max-width:100%;overflow-x:auto;flex-wrap:nowrap!important}
.fin-cab{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.fin-cab h3{margin:0 0 3px}.fin-cab p{margin:0}.fin-cab>div:last-child{display:flex;gap:8px;flex-wrap:wrap}
.fin-filtros{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:12px}
.fin-filtros>div{display:flex;flex-direction:column;gap:4px}.fin-filtros label{font-size:12px;font-weight:600;color:var(--ds-muted)}
.fin-buscar{flex:1;min-width:200px}.fin-ancho{flex:1.4;min-width:240px}.fin-buscar input,.fin-ancho select{width:100%}
.fin-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:11.5px;font-weight:600;background:var(--ds-sunken);color:var(--ds-ink-2);border:1px solid var(--ds-line);white-space:nowrap;vertical-align:middle}
.fin-chip.verde{background:var(--ds-good-50);color:var(--ds-good);border-color:#bfe8cd}.fin-chip.amarillo{background:var(--ds-warn-50);color:var(--ds-warn);border-color:#f5d9a8}.fin-chip.rojo{background:var(--ds-bad-50);color:var(--ds-bad);border-color:#f5c2c2}
.fin-mas{color:var(--ds-good)!important;font-weight:600}.fin-menos,.fin-neg{color:var(--ds-bad)!important;font-weight:600}.fin-vencido{color:var(--ds-bad)}
.fin-alerta{color:var(--ds-warn);font-weight:600}.fin-aviso{margin-bottom:14px}
.fin-vacio,.fin-prev{color:var(--ds-muted);font-size:13px;padding:14px 0}
.fin-kpis3{grid-template-columns:repeat(3,minmax(0,1fr))!important;margin-bottom:14px}
.fin-tot td,.fin-tot th{font-weight:700;background:var(--ds-surface-2)}.fin-tot.fuerte td{border-top:2px solid var(--ds-ink-2);background:var(--ds-primary-50)}
.fin-grupo td{font-weight:700;text-transform:uppercase;font-size:11.5px;letter-spacing:.04em;color:var(--ds-muted);background:var(--ds-sunken)}
.fin-inactiva{opacity:.55}
.fin-det{margin:6px 0 14px}.fin-det summary{cursor:pointer;font-weight:600;color:var(--ds-primary);margin-bottom:8px}
.fin-pag{display:flex;gap:4px;flex-wrap:wrap;margin-top:12px}
.fin-suma{font-size:13.5px;color:var(--ds-ink-2)}.fin-suma.mal b{color:var(--ds-bad)}
/* cuadratura */
.fin-cuad{display:flex;flex-direction:column;gap:8px}
.fin-cuad-it{display:grid;grid-template-columns:32px minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:11px 14px;border:1px solid var(--ds-line);border-radius:12px;background:var(--ds-surface)}
.fin-cuad-ico{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:14px;background:var(--ds-good-50);color:var(--ds-good)}
.fin-cuad-it.est-aviso{border-color:#f5d9a8;background:var(--ds-warn-50)}.fin-cuad-it.est-aviso .fin-cuad-ico{background:#fde8c4;color:var(--ds-warn)}
.fin-cuad-it.est-error{border-color:#f5c2c2;background:var(--ds-bad-50)}.fin-cuad-it.est-error .fin-cuad-ico{background:#fbd5d5;color:var(--ds-bad)}
.fin-cuad-txt{display:flex;flex-direction:column;gap:2px}.fin-cuad-txt small{color:var(--ds-muted);font-size:12.5px}
.fin-cuad-num{display:flex;flex-direction:column;align-items:flex-end;font-size:12.5px;color:var(--ds-ink-2);white-space:nowrap}.fin-cuad-num b{color:var(--ds-bad)}
.fin-cuad-acc{display:flex;gap:6px}
.fin-como-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.fin-como-grid>div{border:1px solid var(--ds-line);border-radius:11px;padding:10px 12px;display:flex;flex-direction:column;gap:3px;background:var(--ds-surface-2)}
.fin-como-grid b{font-size:13px}.fin-como-grid span{font-size:12.5px;color:var(--ds-muted)}
/* asientos */
.fin-asientos{display:flex;flex-direction:column;gap:10px}
.fin-asiento{border:1px solid var(--ds-line);border-radius:12px;overflow:hidden}
.fin-asiento-cab{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:9px 12px;background:var(--ds-surface-2);border-bottom:1px solid var(--ds-line);font-size:13px}
.fin-asiento-cab strong{flex:1;min-width:180px}.fin-num{font-weight:700;color:var(--ds-primary)}
.fin-lineas{width:100%;border-collapse:collapse;font-size:13px}.fin-lineas td{padding:6px 12px;border-top:1px solid var(--ds-line)}
.fin-lineas tr:first-child td{border-top:0}.fin-lineas .right{width:130px;text-align:right;font-variant-numeric:tabular-nums}
.fin-ctacod{width:96px;font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--ds-ink-2)}
.fin-editor input,.fin-editor select{width:100%;min-width:90px}
.fin-b8 td,.fin-b8 th,.fin-eerr td,.fin-eerr th,.fin-ppto td,.fin-ppto th{font-size:12.5px;white-space:nowrap;font-variant-numeric:tabular-nums}
.fin-eerr td:nth-child(2){white-space:normal;min-width:180px}
.fin-bg{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.fin-bg h4{margin:14px 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--ds-muted)}
.fin-bg-l,.fin-bg-t{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px dashed var(--ds-line);font-size:13.5px;font-variant-numeric:tabular-nums}
.fin-bg-t{border-bottom:0;border-top:2px solid var(--ds-ink-2);font-weight:700;margin-top:4px}
.fin-f29{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:24px}.fin-f29 h3{margin-top:0}
.fin-meses{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.fin-mes.est-cerrado{background:var(--ds-surface-2)}
.fin-check{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.fin-check li{display:grid;grid-template-columns:24px 1fr auto;gap:8px;align-items:center;font-size:13px}
.fin-check li>span{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:12px;background:var(--ds-good-50);color:var(--ds-good)}
.fin-check li.falta>span{background:var(--ds-warn-50);color:var(--ds-warn)}.fin-check li div{display:flex;flex-direction:column}.fin-check small{color:var(--ds-muted)}
.fin-ppto td small{display:block;color:var(--ds-muted);font-size:11px}
.fin-ppto-in{width:92px;text-align:right;padding:4px 6px;border:1px solid var(--ds-line-strong);border-radius:7px;font:inherit}
.fin-plan tr.titulo td{font-weight:700;background:var(--ds-surface-2)}
.fin-plan tr.niv-2 td:nth-child(2){padding-left:18px}.fin-plan tr.niv-3 td:nth-child(2){padding-left:32px}.fin-plan tr.niv-4 td:nth-child(2){padding-left:46px}
.fin-config .fx-grid{max-width:760px}.fin-config label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600}
/* tesorería */
.fin-cuentas{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-bottom:16px}
.fin-cta-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.fin-cta-saldos{display:flex;flex-direction:column;gap:2px;margin:10px 0;font-variant-numeric:tabular-nums}
.fin-cta-acc{display:flex;gap:6px;flex-wrap:wrap}
.fin-graf{width:100%;height:auto;display:block;margin:6px 0}
.fin-leyenda{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--ds-muted)}
.fin-tabla td,.fin-tabla th{font-variant-numeric:tabular-nums}
.fin-movs{display:flex;flex-direction:column;gap:10px}
.fin-mov{border:1px solid var(--ds-line);border-radius:12px;padding:12px 14px;background:var(--ds-surface)}
.fin-mov.est-conciliado{background:var(--ds-good-50);border-color:#bfe8cd}.fin-mov.est-clasificado{background:var(--ds-surface-2)}.fin-mov.est-ignorado{opacity:.6}
.fin-mov-fila{display:grid;grid-template-columns:100px minmax(0,1fr) auto;gap:12px;align-items:center}
.fin-mov-fecha{font-size:12.5px;color:var(--ds-muted)}.fin-mov-desc{display:flex;flex-direction:column;gap:2px;overflow-wrap:anywhere}.fin-mov-desc small{color:var(--ds-muted);font-size:12px}
.fin-mov-monto{font-weight:700;font-size:15px;font-variant-numeric:tabular-nums}.fin-mov-monto.mas{color:var(--ds-good)}.fin-mov-monto.menos{color:var(--ds-bad)}
.fin-mov-acc{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.fin-sug{margin-top:10px;border:1px dashed var(--ds-line-strong);border-radius:10px;padding:9px 12px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px}
.fin-sug.fuerte{border:1px solid var(--ds-primary);background:var(--ds-primary-50)}.fin-sug.ok{border-style:solid;border-color:#bfe8cd;background:#fff}.fin-sug.vacia{color:var(--ds-muted)}
.fin-sug-tit{font-weight:700;color:var(--ds-ink-2)}.fin-sug-doc{flex:1;min-width:200px}
.fin-op{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--ds-line)}
.fin-docs{max-height:50vh;overflow:auto}.fin-monto{font-variant-numeric:tabular-nums;font-weight:600}
.fin-total{font-weight:700}.fin-filtro-docs{margin-bottom:8px}
@media(max-width:900px){.fin-kpis3,.fin-como-grid{grid-template-columns:1fr!important}.fin-bg,.fin-f29{grid-template-columns:1fr}.fx-grid{grid-template-columns:1fr}
  .fin-cuad-it{grid-template-columns:28px 1fr}.fin-cuad-num,.fin-cuad-acc{grid-column:2}.fin-cuad-num{align-items:flex-start}.fin-mov-fila{grid-template-columns:1fr}}
#tab-contabilidad,#tab-tesoreria,.fin-page,.fin-page .card{min-width:0;max-width:100%}
.fin-page{overflow-x:clip}
html body .fin-page .cob-kpis{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.fin-filtros>.cob-btns{flex-direction:row;flex-wrap:wrap;gap:8px}
.fin-graf .grid{stroke:var(--ds-line);stroke-width:1}.fin-graf .cero{stroke:var(--ds-line-strong);stroke-width:1.5}
.fin-graf .eje{fill:var(--ds-muted);font-size:11px;font-family:var(--ds-font)}
.fin-graf .ing{fill:#86d7a3}.fin-graf .egr{fill:#f3a3a3}
.fin-graf .saldo{fill:none;stroke:var(--ds-primary);stroke-width:2.5;stroke-linejoin:round}
.fin-graf .pt{fill:var(--ds-primary)}.fin-graf .neg{fill:var(--ds-bad)}
.fin-leyenda span{display:inline-flex;align-items:center;gap:6px}.fin-leyenda i{width:12px;height:12px;border-radius:3px;display:inline-block}
.fin-leyenda i.ing{background:#86d7a3}.fin-leyenda i.egr{background:#f3a3a3}.fin-leyenda i.saldo{height:3px;background:var(--ds-primary)}
.fin-page>*{min-width:0}
/* Panel «Contabilidad» en documentos de otros módulos */
.nsf-conta{margin:12px 0;border:1px solid var(--ds-line,#e6eaf0);border-radius:12px;background:var(--ds-surface-2,#f8fafc);padding:10px 12px}
.nsf-conta:empty{display:none}
.nsf-conta-cab{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:13px}
.nsf-conta-tit{font-weight:700;color:var(--ds-ink,#0f172a);margin-right:auto}
.nsf-cc{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-size:13px;color:var(--ds-ink-2,#334155);font-weight:500}
.nsf-cc select{font:inherit;padding:5px 8px;border:1px solid var(--ds-line-strong,#d5dce6);border-radius:8px;background:#fff;max-width:240px}
.nsf-sin{color:var(--ds-muted,#64748b)}
.nsf-conta-det{margin-top:10px;display:flex;flex-direction:column;gap:8px}
.nsf-asiento{background:var(--ds-surface,#fff);border:1px solid var(--ds-line,#e6eaf0);border-radius:10px;overflow:hidden}
.nsf-asiento-cab{padding:7px 10px;font-size:12.5px;border-bottom:1px solid var(--ds-line,#e6eaf0);display:flex;flex-wrap:wrap;gap:6px}
.nsf-asiento-cab span{color:var(--ds-muted,#64748b)}
.nsf-asiento table{width:100%;border-collapse:collapse;font-size:12.5px}.nsf-asiento td{padding:5px 10px;border-top:1px solid var(--ds-line,#e6eaf0)}
.nsf-asiento tr:first-child td{border-top:0}.nsf-r{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.nsf-cta{width:64px;font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--ds-ink-2,#334155)}
.fin-ap-tot{max-width:520px;margin:8px 0 14px}
.fin-cta-cab strong{display:block;font-size:15px}.fin-cta-cab small{display:block;color:var(--ds-muted);font-size:12px;margin-top:2px}.fin-cta-cab .fin-chip{margin-left:6px}
.fin-cta-saldos{display:grid!important;grid-template-columns:1fr 1fr;gap:10px}.fin-cta-saldos small{display:block;color:var(--ds-muted);font-size:11.5px}.fin-cta-saldos b{font-size:16px}

html[data-active-tab="contabilidad"] #nsModoConsulta.contador{display:none}
/* Contabilidad: filtros, chips de documentos y remuneraciones */
.ct-filtros{grid-template-columns:repeat(4,minmax(0,1fr))!important;align-items:end;margin-bottom:10px}
.ct-filtros label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600}
.ct-chips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 12px}.ct-chips .fin-chip{cursor:pointer}
#ctIndForm h4,#ctVista h4{margin:16px 0 8px}
@media(max-width:900px){.ct-filtros{grid-template-columns:1fr 1fr!important}}
.fin-f29-tit td{background:var(--ds-sunken);font-size:12px;letter-spacing:.3px;padding-top:10px!important}
/* Contabilidad: menú agrupado por tema */
.ct-nav{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 16px}
.ct-nav-g{display:flex;flex-direction:column;gap:6px;background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:12px;padding:8px 10px 10px}
.ct-nav-t{font-size:10.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--ds-muted);padding-left:4px}
.ct-nav-b{display:flex;flex-wrap:wrap;gap:4px}
.ct-nav-b button{border:0;background:transparent;color:var(--ds-ink-2);font:600 13px/1 inherit;padding:8px 11px;border-radius:8px;cursor:pointer;white-space:nowrap}
.ct-nav-b button:hover{background:var(--ds-sunken);color:var(--ds-ink)}
.ct-nav-b button.active{background:var(--ds-primary,#2457e6);color:#fff}
@media(max-width:700px){.ct-nav-g{flex:1 1 100%}}
/* Contabilidad: barra de módulos tipo ERP */
.ct-miga{font-size:12px;font-weight:600;color:var(--ds-muted);margin-bottom:4px;letter-spacing:.1px}
.ct-miga span{margin:0 4px;opacity:.6}
.ct-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:12px;padding:6px;margin:0 0 18px;box-shadow:0 1px 2px rgba(15,23,42,.04);position:relative;z-index:30}
.ct-bar-l{display:flex;align-items:center;gap:2px;flex-wrap:wrap}
.ct-bar-g{position:relative}
.ct-bar-btn{display:inline-flex;align-items:center;gap:7px;border:0;background:transparent;color:var(--ds-ink-2);font:600 13.5px/1 inherit;padding:10px 12px;border-radius:8px;cursor:pointer;white-space:nowrap;position:relative;transition:background .15s,color .15s}
.ct-bar-btn:hover,.ct-bar-g.open>.ct-bar-btn{background:var(--ds-sunken);color:var(--ds-ink)}
.ct-bar-btn.active{color:var(--ds-primary,#2457e6);background:color-mix(in srgb,var(--ds-primary,#2457e6) 9%,transparent)}
.ct-bar-btn.active::after{content:"";position:absolute;left:12px;right:12px;bottom:-7px;height:2px;border-radius:2px;background:var(--ds-primary,#2457e6)}
.ct-ico{width:17px;height:17px;flex:none;opacity:.85}
.ct-chev{width:14px;height:14px;opacity:.55;transition:transform .15s}
.ct-bar-g.open .ct-chev{transform:rotate(180deg)}
.ct-dd{display:none;position:absolute;top:calc(100% + 8px);left:0;min-width:300px;background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:12px;box-shadow:0 12px 32px rgba(15,23,42,.14),0 2px 6px rgba(15,23,42,.06);padding:6px;z-index:40}
.ct-bar-g.open .ct-dd{display:block;animation:ctDd .12s ease-out}
@keyframes ctDd{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.ct-dd-i{display:flex;flex-direction:column;align-items:flex-start;gap:3px;width:100%;text-align:left;border:0;background:transparent;padding:9px 12px;border-radius:8px;cursor:pointer;color:var(--ds-ink);border-left:3px solid transparent}
.ct-dd-i:hover{background:var(--ds-sunken)}
.ct-dd-i b{font:600 13.5px/1.2 inherit;display:flex;align-items:center;gap:8px}
.ct-dd-i small{font-size:12px;font-weight:400;line-height:1.35;color:var(--ds-muted);white-space:normal}
.ct-dd-i.active{background:color-mix(in srgb,var(--ds-primary,#2457e6) 8%,transparent);border-left-color:var(--ds-primary,#2457e6)}
.ct-dd-i.active b{color:var(--ds-primary,#2457e6)}
.ct-dd-tag{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:2px 6px;border-radius:999px;background:#dcfce7;color:#166534}
.ct-bar-chip{border:1px solid var(--ds-line);background:var(--ds-sunken);color:var(--ds-ink-2);font:600 12px/1 inherit;padding:8px 12px;border-radius:999px;cursor:pointer;white-space:nowrap;margin-right:4px}
.ct-bar-chip:hover{border-color:var(--ds-primary,#2457e6);color:var(--ds-primary,#2457e6)}
@media(max-width:1100px){.ct-bar{flex-direction:column;align-items:stretch}.ct-bar-chip{align-self:flex-start;margin:0 0 4px 6px}.ct-bar-btn.active::after{display:none}}
@media(max-width:600px){.ct-bar-g{position:static}.ct-dd{left:6px;right:6px;min-width:0}}
