/* nv-guardar · botón Guardar + hoja de carpetas + biblioteca (25-sep-2026).
   Solo tokens: en BuscadorLaboral los mismos nombres pintan granate. */

.nvg-btn{display:inline-flex;align-items:center;gap:7px;font:600 13px/1.4 var(--oc-font-sans);color:var(--oc-navy);background:var(--oc-surface);border:1px solid var(--oc-line-2);border-radius:var(--oc-r);padding:8px 14px;cursor:pointer;white-space:nowrap;transition:background var(--oc-dur-fast) var(--oc-ease),border-color var(--oc-dur-fast) var(--oc-ease),color var(--oc-dur-fast) var(--oc-ease)}
.nvg-btn:hover{border-color:var(--oc-navy-500);background:var(--oc-bg-alt)}
.nvg-btn:focus-visible,.nvg-ico:focus-visible,.nvg-sheet button:focus-visible,.nvg-sheet input:focus-visible{outline:2px solid var(--oc-focus);outline-offset:2px}
.nvg-btn svg,.nvg-ico svg{width:16px;height:16px;flex:0 0 auto}
.nvg-btn[aria-pressed="true"]{background:var(--oc-navy);border-color:var(--oc-navy);color:var(--oc-surface)}
.nvg-btn[aria-pressed="true"]:hover{background:var(--oc-navy-800);border-color:var(--oc-navy-800)}
.nvg-btn .nvg-n{font-weight:500;opacity:.8}

/* variante ícono (tarjetas de resultados) */
.nvg-ico{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--oc-r-circle);border:1px solid transparent;background:transparent;color:var(--oc-mute);cursor:pointer;transition:background var(--oc-dur-fast) var(--oc-ease),color var(--oc-dur-fast) var(--oc-ease)}
.nvg-ico:hover{background:var(--oc-bg-alt);color:var(--oc-navy)}
.nvg-ico[aria-pressed="true"]{color:var(--oc-navy)}
.nvg-ico svg{width:19px;height:19px}

.nvg-pop svg{animation:nvg-pop var(--oc-dur) var(--oc-ease-out)}
@keyframes nvg-pop{0%{transform:scale(1)}40%{transform:scale(1.28)}100%{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.nvg-pop svg{animation:none}}

/* hoja: popover en escritorio, bottom sheet en móvil */
.nvg-scrim{position:fixed;inset:0;background:var(--oc-scrim);z-index:99990;opacity:0;transition:opacity var(--oc-dur) var(--oc-ease)}
.nvg-scrim.on{opacity:1}
.nvg-sheet{position:fixed;z-index:99991;background:var(--oc-surface);color:var(--oc-body);border:1px solid var(--oc-line);border-radius:var(--oc-r-lg);box-shadow:var(--oc-shadow-lg);width:340px;max-width:calc(100vw - 32px);font:400 14px/1.45 var(--oc-font-sans);opacity:0;transform:translateY(6px);transition:opacity var(--oc-dur) var(--oc-ease-out),transform var(--oc-dur) var(--oc-ease-out)}
.nvg-sheet.on{opacity:1;transform:none}
.nvg-sheet [hidden]{display:none}
.nvg-sheet .nvg-hd{display:flex;align-items:center;gap:10px;padding:16px 18px 10px}
.nvg-sheet .nvg-hd svg{width:20px;height:20px;color:var(--oc-navy);flex:0 0 auto}
.nvg-sheet h2{margin:0;font:600 15px/1.3 var(--oc-font-sans);color:var(--oc-ink);flex:1}
.nvg-sheet .nvg-x{background:none;border:0;color:var(--oc-mute);cursor:pointer;padding:4px;border-radius:var(--oc-r-sm);font:500 18px/1 var(--oc-font-sans)}
.nvg-sheet .nvg-sub{margin:0 18px 10px;color:var(--oc-mute);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nvg-sheet .nvg-lbl{margin:4px 18px 6px;font:600 12px/1.3 var(--oc-font-sans);color:var(--oc-mute);letter-spacing:.02em}
.nvg-list{list-style:none;margin:0;padding:0 8px;max-height:236px;overflow:auto}
.nvg-list li button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;border-radius:var(--oc-r);padding:9px 10px;cursor:pointer;font:500 14px/1.3 var(--oc-font-sans);color:var(--oc-text)}
.nvg-list li button:hover{background:var(--oc-bg-alt)}
.nvg-list .nvg-chk{width:18px;height:18px;border-radius:var(--oc-r-sm);border:1.5px solid var(--oc-line-2);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:var(--oc-surface);transition:background var(--oc-dur-fast) var(--oc-ease),border-color var(--oc-dur-fast) var(--oc-ease)}
.nvg-list [aria-checked="true"] .nvg-chk{background:var(--oc-navy);border-color:var(--oc-navy)}
.nvg-list .nvg-chk svg{width:12px;height:12px;opacity:0}
.nvg-list [aria-checked="true"] .nvg-chk svg{opacity:1}
.nvg-list .nvg-cn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nvg-list .nvg-cc{color:var(--oc-subtle);font-size:12px;font-variant-numeric:tabular-nums}
.nvg-new{display:flex;gap:8px;padding:8px 18px 4px}
.nvg-new input{flex:1;min-width:0;font:400 14px/1.3 var(--oc-font-sans);color:var(--oc-text);border:1px solid var(--oc-line-2);border-radius:var(--oc-r);padding:8px 10px;background:var(--oc-surface)}
.nvg-new button,.nvg-foot .nvg-ok,.nvg-cta{font:600 13px/1 var(--oc-font-sans);border-radius:var(--oc-r);padding:9px 14px;cursor:pointer;border:1px solid var(--oc-navy);background:var(--oc-navy);color:var(--oc-surface);text-decoration:none;display:inline-flex;align-items:center}
.nvg-new button[disabled]{opacity:.5;cursor:default}
.nvg-addf{display:flex;align-items:center;gap:8px;margin:2px 8px 0;padding:9px 10px;background:none;border:0;border-radius:var(--oc-r);color:var(--oc-navy);font:600 13px/1.3 var(--oc-font-sans);cursor:pointer;width:calc(100% - 16px);text-align:left}
.nvg-addf:hover{background:var(--oc-bg-alt)}
.nvg-note{margin:6px 18px 0;font-size:12.5px;color:var(--oc-mute)}
.nvg-note a{color:var(--oc-navy);font-weight:600}
.nvg-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 18px 16px;border-top:1px solid var(--oc-line);margin-top:10px}
.nvg-foot .nvg-rm{background:none;border:0;color:var(--oc-bad-strong);font:600 13px/1 var(--oc-font-sans);cursor:pointer;padding:8px 4px}
.nvg-foot .nvg-lib{color:var(--oc-navy);font:600 13px/1 var(--oc-font-sans);text-decoration:none}
.nvg-body{padding:0 18px 4px}
.nvg-body p{margin:0 0 12px;color:var(--oc-body)}
.nvg-meter{height:6px;border-radius:var(--oc-r-pill);background:var(--oc-bg-alt);overflow:hidden;margin:0 18px 6px}
.nvg-meter i{display:block;height:100%;background:var(--oc-navy);border-radius:var(--oc-r-pill)}

@media (max-width:640px){
  .nvg-sheet{left:0!important;right:0;bottom:0;top:auto!important;width:auto;max-width:none;border-radius:var(--oc-r-lg) var(--oc-r-lg) 0 0;transform:translateY(24px);padding-bottom:env(safe-area-inset-bottom)}
  .nvg-list{max-height:40vh}
}

/* toast */
.nvg-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,12px);z-index:99995;display:flex;align-items:center;gap:14px;background:var(--oc-ink);color:var(--oc-surface);padding:11px 14px 11px 16px;border-radius:var(--oc-r);box-shadow:var(--oc-shadow-lg);font:500 14px/1.3 var(--oc-font-sans);opacity:0;transition:opacity var(--oc-dur) var(--oc-ease-out),transform var(--oc-dur) var(--oc-ease-out);max-width:calc(100vw - 32px)}
.nvg-toast.on{opacity:1;transform:translate(-50%,0)}
.nvg-toast button{background:none;border:0;color:var(--oc-accent);font:600 14px/1 var(--oc-font-sans);cursor:pointer;padding:4px 2px}

/* ---- biblioteca /guardados ---- */
.nvgb{max-width:1100px;margin:0 auto;padding:28px 16px 64px;font:400 14px/1.5 var(--oc-font-sans);color:var(--oc-body)}
.nvgb-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.nvgb-head h1{margin:0;font:600 28px/1.2 var(--oc-font-serif);color:var(--oc-ink)}
.nvgb-head .nvgb-cuenta{color:var(--oc-mute);font-size:13px}
.nvgb-cuota{display:flex;align-items:center;gap:12px;background:var(--oc-bg-alt);border:1px solid var(--oc-line);border-radius:var(--oc-r);padding:12px 14px;margin-bottom:18px;font-size:13.5px}
.nvgb-cuota .nvg-meter{flex:0 0 140px;margin:0;background:var(--oc-surface)}
.nvgb-cuota a{margin-left:auto}
.nvgb-cols{display:grid;grid-template-columns:240px 1fr;gap:28px}
.nvgb-side h2{font:600 12px/1.3 var(--oc-font-sans);color:var(--oc-mute);letter-spacing:.02em;margin:0 0 8px}
.nvgb-side ul{list-style:none;margin:0 0 16px;padding:0}
.nvgb-side li button{display:flex;align-items:center;gap:8px;width:100%;background:none;border:0;border-radius:var(--oc-r);padding:8px 10px;cursor:pointer;font:500 14px/1.3 var(--oc-font-sans);color:var(--oc-body);text-align:left}
.nvgb-side li button:hover{background:var(--oc-bg-alt)}
.nvgb-side li button[aria-current="true"]{background:var(--oc-bg-alt);color:var(--oc-navy);font-weight:600}
.nvgb-side li .nvg-cn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nvgb-side li .nvg-cc{color:var(--oc-subtle);font-size:12px;font-variant-numeric:tabular-nums}
.nvgb-side svg{width:16px;height:16px;flex:0 0 auto;color:var(--oc-mute)}
.nvgb-tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.nvgb-tools input[type=search]{flex:1;min-width:180px;font:400 14px/1.3 var(--oc-font-sans);border:1px solid var(--oc-line-2);border-radius:var(--oc-r);padding:9px 12px;background:var(--oc-surface);color:var(--oc-text)}
.nvgb-chips{display:flex;gap:6px;flex-wrap:wrap}
.nvgb-chips button{font:500 12.5px/1 var(--oc-font-sans);border:1px solid var(--oc-line-2);background:var(--oc-surface);color:var(--oc-body);border-radius:var(--oc-r-pill);padding:7px 12px;cursor:pointer}
.nvgb-chips button[aria-pressed="true"]{background:var(--oc-navy);border-color:var(--oc-navy);color:var(--oc-surface)}
.nvgb-tools select{font:500 13px/1 var(--oc-font-sans);border:1px solid var(--oc-line-2);border-radius:var(--oc-r);padding:8px 10px;background:var(--oc-surface);color:var(--oc-body)}
.nvgb-carpeta-h{display:flex;align-items:center;gap:10px;margin:0 0 12px}
.nvgb-carpeta-h h2{margin:0;font:600 18px/1.3 var(--oc-font-sans);color:var(--oc-ink);flex:1}
.nvgb-carpeta-h button{background:none;border:0;color:var(--oc-navy);font:600 13px/1 var(--oc-font-sans);cursor:pointer;padding:6px}
.nvgb-carpeta-h .nvgb-del{color:var(--oc-bad-strong)}
.nvgb-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.nvgb-item{background:var(--oc-surface);border:1px solid var(--oc-line);border-radius:var(--oc-r);padding:14px 16px;display:grid;grid-template-columns:1fr auto;gap:6px 12px}
.nvgb-item:hover{border-color:var(--oc-line-2)}
.nvgb-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--oc-mute)}
.nvgb-tipo{font:600 11px/1 var(--oc-font-sans);padding:4px 7px;border-radius:var(--oc-r-sm);background:var(--oc-cat-1-bg);color:var(--oc-cat-1)}
.nvgb-tipo[data-t="circular"]{background:var(--oc-cat-2-bg);color:var(--oc-cat-2)}
.nvgb-tipo[data-t="articulo"]{background:var(--oc-cat-4-bg);color:var(--oc-cat-4)}
.nvgb-tipo[data-t="fallo"],.nvgb-tipo[data-t="superior"],.nvgb-tipo[data-t="tc"],.nvgb-tipo[data-t="sentencia"],.nvgb-tipo[data-t="alzada"]{background:var(--oc-cat-5-bg);color:var(--oc-cat-5)}
.nvgb-tipo[data-t="chat"]{background:var(--oc-cat-3-bg);color:var(--oc-cat-3)}
.nvgb-tipo[data-t="dictamen"],.nvgb-tipo[data-t="resolucion"]{background:var(--oc-cat-6-bg);color:var(--oc-cat-6)}
.nvgb-nov{font:600 11px/1 var(--oc-font-sans);padding:4px 7px;border-radius:var(--oc-r-sm);background:var(--oc-warn-bg);color:var(--oc-warn-deep)}
.nvgb-item a.nvgb-t{grid-column:1;font:600 15px/1.35 var(--oc-font-serif);color:var(--oc-ink);text-decoration:none}
.nvgb-item a.nvgb-t:hover{color:var(--oc-navy-500);text-decoration:underline}
.nvgb-acc{grid-column:2;grid-row:1 / span 3;display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.nvgb-acc button{background:none;border:0;color:var(--oc-mute);font:500 12.5px/1 var(--oc-font-sans);cursor:pointer;padding:6px 4px;border-radius:var(--oc-r-sm)}
.nvgb-acc button:hover{color:var(--oc-navy);background:var(--oc-bg-alt)}
.nvgb-nov-txt{grid-column:1;font-size:13px;color:var(--oc-warn-deep)}
.nvgb-nov-txt a{color:inherit;font-weight:600}
.nvgb-tags{grid-column:1;display:flex;gap:6px;flex-wrap:wrap}
.nvgb-tags span{font-size:12px;color:var(--oc-navy);background:var(--oc-bg-alt);border-radius:var(--oc-r-pill);padding:3px 9px}
.nvgb-nota{grid-column:1;font-size:13.5px;color:var(--oc-body-soft);border-left:2px solid var(--oc-line-2);padding-left:10px;white-space:pre-wrap}
.nvgb-nota-ed{grid-column:1 / -1}
.nvgb-nota-ed textarea{width:100%;box-sizing:border-box;min-height:70px;font:400 14px/1.45 var(--oc-font-sans);border:1px solid var(--oc-line-2);border-radius:var(--oc-r);padding:8px 10px;color:var(--oc-text)}
.nvgb-nota-ed div{display:flex;gap:8px;justify-content:flex-end;margin-top:6px}
.nvgb-vacio{text-align:center;padding:48px 16px;color:var(--oc-mute);border:1px dashed var(--oc-line-2);border-radius:var(--oc-r-lg)}
.nvgb-vacio svg{width:28px;height:28px;color:var(--oc-subtle)}
.nvgb-vacio h3{font:600 16px/1.3 var(--oc-font-sans);color:var(--oc-ink);margin:10px 0 6px}
.nvgb-mas{display:block;margin:16px auto 0;font:600 13px/1 var(--oc-font-sans);background:var(--oc-surface);border:1px solid var(--oc-line-2);color:var(--oc-navy);border-radius:var(--oc-r);padding:10px 16px;cursor:pointer}
.nvgb-pref{margin-top:18px;font-size:13px;color:var(--oc-mute);display:flex;gap:8px;align-items:flex-start}
@media (max-width:820px){.nvgb-cols{grid-template-columns:1fr;gap:12px}.nvgb-side ul{display:flex;gap:6px;overflow-x:auto;margin:0 0 8px;padding-bottom:4px}.nvgb-side li{flex:0 0 auto}.nvgb-side li button{white-space:nowrap;border:1px solid var(--oc-line);background:var(--oc-surface)}.nvgb-side li .nvg-cn{overflow:visible}.nvgb-side h2{display:none}.nvgb-side .nvg-addf{width:auto;margin:0 0 8px}}
@media (max-width:640px){.nvgb-head h1{font-size:24px}.nvgb-item{grid-template-columns:1fr}.nvgb-acc{grid-column:1;grid-row:auto;flex-direction:row;justify-content:flex-start;gap:2px;order:9;margin-left:-4px}.nvgb-cuota{flex-wrap:wrap}.nvgb-cuota a{margin-left:0}}

/* ranuras en tarjetas de resultados (BT y BL) */
.nv-card--fallo__top .nvg-ico,.nv-card--oficio__tag-row .nvg-ico,.dic-tarjeta .nvg-ico{width:30px;height:30px;margin:-6px -6px -6px 0}
.nv-card--oficio__reciente + .nvg-slot{margin-left:8px!important}
.fallo-copy-toolbar .nvg-slot,.nvg-slot{display:inline-flex}

/* página /guardados: enlace de salto oculto hasta recibir foco */
.nvgb-main{display:block}
.nv-skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.nv-skip-link:focus{left:16px;top:8px;width:auto;height:auto;z-index:100000;background:var(--oc-surface);color:var(--oc-navy);padding:8px 12px;border-radius:var(--oc-r);box-shadow:var(--oc-shadow)}
/* visor /doc/: el botón es un hijo más de la botonera (hereda .oc-btn y el ancho móvil) */
.doc-view-acciones > .nvg-slot{display:contents}
