/* Fase 7·4 — NotaLineasGrid (grid de detalle de la nota de crédito). Prefijo nl-; tokens de .gv-root. */
/* FormV2 · usa los tokens de .gv-root (--de-*, ok/warn/err) del editor que lo hospeda */
.nl-wrap { width: 100%; background: #fff; overflow: hidden; border-radius: 0 0 10px 10px; }
.nl-scroll { max-height: 52vh; overflow: auto; scrollbar-width: thin; }
.nl-tbl { width: 100%; min-width: 1080px; border-collapse: separate; border-spacing: 0; font-size: 12.5px; }
.nl-tbl th { position: sticky; top: 0; z-index: 2; background: var(--de-surface-2); color: var(--de-muted); border-bottom: 1px solid var(--de-line); padding: 9px 8px; font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; white-space: nowrap; text-align: left; }
.nl-tbl td { padding: 6px 8px; border-bottom: 1px solid var(--de-line); vertical-align: middle; white-space: nowrap; color: var(--de-ink); }
.nl-tbl tr:hover td { background: var(--de-surface-2); }
.nl-tbl tr.nl-mod td { background: var(--warn-bg); }
.nl-tbl tr.nl-rem td { background: var(--de-surface-3); color: var(--de-faint); }
.nl-tbl tr.nl-rem .nl-desc-t { text-decoration: line-through; }
.nl-tbl tr.nl-err td { background: var(--err-bg); }
.nl-r { text-align: right !important; }
.nl-c { text-align: center !important; }
.nl-desc { white-space: normal !important; min-width: 230px; }
.nl-desc-t { font-weight: 500; }
.nl-codigo { font-family: var(--mono); font-size: 11.5px; font-weight: 600; color: var(--de-acc-deep); }
.nl-mono { font-family: var(--mono); font-size: 12px; font-variant-numeric: tabular-nums; }
.nl-dscto { color: var(--err); } .nl-igv { color: var(--warn); } .nl-tot { color: var(--ok); font-weight: 700; }
.nl-sem { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: 6px; vertical-align: middle; }
.nl-sem-ok { background: var(--ok); } .nl-sem-warn { background: var(--warn); } .nl-sem-bad { background: var(--err); } .nl-sem-neu { background: var(--de-line-strong); }
.nl-mini { font-size: 10px; border-radius: 4px; padding: 1px 5px; margin-left: 5px; font-weight: 700; border: 1px solid; }
.nl-m-lote { background: var(--de-acc-soft); color: var(--de-acc-deep); border-color: var(--de-acc-line); }
.nl-m-serie { background: var(--prog-bg); color: var(--prog); border-color: var(--prog-line); }
.nl-m-talla { background: var(--warn-bg); color: var(--warn); border-color: var(--warn-line); }
.nl-qty { display: inline-flex; align-items: center; border: 1px solid var(--de-line-strong); border-radius: 6px; overflow: hidden; height: 29px; background: #fff; }
.nl-qty button { border: 0; background: var(--de-surface-2); width: 24px; height: 100%; color: var(--de-acc); font-weight: 700; cursor: pointer; }
.nl-qty button:hover:not(:disabled) { background: var(--de-acc-soft); }
.nl-qty button:disabled { opacity: .4; cursor: not-allowed; }
.nl-qty input { width: 70px; border: 0; text-align: right; padding: 0 6px; height: 100%; outline: none; font-weight: 700; font-family: var(--mono); font-size: 12.5px; color: var(--de-ink); }
.nl-qty:focus-within { border-color: var(--de-acc); box-shadow: 0 0 0 3px var(--de-acc-soft); }
.nl-trk { display: inline-flex; align-items: center; gap: 6px; height: 29px; padding: 3px 10px; border: 1px solid var(--de-acc-line); border-radius: 6px; background: var(--de-acc-soft); color: var(--de-acc-deep); font-size: 12px; font-weight: 600; cursor: pointer; }
.nl-trk:hover:not(:disabled) { border-color: var(--de-acc); }
.nl-trk:disabled { opacity: .45; cursor: not-allowed; }
.nl-errtxt { display: block; font-size: 10.5px; color: var(--err); font-weight: 600; margin-top: 2px; white-space: normal; }
.nl-empty { padding: 28px; text-align: center; color: var(--de-muted); }
.nl-quit { font-size: 11px; color: var(--de-faint); }
