/* v1-informes.css — estilos propios de Informes (constructor, legales, sellados), Pre-nómina y Correo. Solo añade; usa los tokens existentes (claro y oscuro). */

/* ---------- Comunes ---------- */
.inf1-page, .pn-page, .cr-page { min-width: 0; }
.inf1-sec { margin-bottom: var(--s-4); }
.inf1-sec > .card__title, .inf1-doc .card__title { margin-bottom: var(--s-2); }
.inf1-h2 { font-family: var(--font-display); font-size: var(--fs-lg); font-weight: 600; margin: var(--s-4) 0 var(--s-3); }
.inf1-h3 { font-size: var(--fs-md); font-weight: 600; margin: var(--s-4) 0 var(--s-1); }
.inf1-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2) var(--s-3); margin: var(--s-4) 0; }
.inf1-actions .btn { min-height: 40px; }
.inf1-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: var(--s-3) var(--s-4); align-items: start; margin-top: var(--s-3); }
.inf1-grid .field, .inf1-top .field { margin: 0; min-width: 0; }
.inf1-nw { white-space: nowrap; }
.inf1-fixed { min-height: 40px; display: flex; align-items: center; padding: 0 var(--s-3); border: 1px solid var(--line); border-radius: var(--r-md); background: var(--surface-2); color: var(--ink-2); overflow-wrap: anywhere; }
.inf1-errs:empty { display: none; }
.inf1-errs { margin: var(--s-3) 0; padding: var(--s-3) var(--s-4); border-left: 3px solid var(--err); background: var(--err-soft); color: var(--ink); border-radius: var(--r-sm); font-size: var(--fs-sm); }
.inf1-errs ul { margin: 0; padding-left: 1.1em; }
.inf1-range { display: flex; align-items: center; justify-content: space-between; gap: var(--s-2); min-height: 40px; font-variant-numeric: tabular-nums; text-align: left; }
.inf1-range > span { min-width: 0; overflow-wrap: anywhere; }
.inf1-actions .small { overflow-wrap: anywhere; }

/* Selector de periodo (hoja) */
.inf1-presets { display: flex; flex-wrap: wrap; gap: var(--s-2); margin-bottom: var(--s-3); }
.inf1-presets .btn { min-height: 40px; }
.inf1-calsum { margin: var(--s-3) 0 0; font-variant-numeric: tabular-nums; }
.inf1-bad { color: var(--err); font-weight: 600; }
.inf1-cal { min-width: 0; }

/* ---------- Constructor ---------- */
.inf1-top { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: var(--s-3) var(--s-4); align-items: end; margin-bottom: var(--s-4); }
.inf1-top__btns { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.inf1-top__btns .btn { min-height: 40px; }
.inf1-tpl-desc { margin: calc(-1 * var(--s-2)) 0 var(--s-3); overflow-wrap: anywhere; }
.inf1-count { font-family: var(--font-ui); font-weight: 500; font-variant-numeric: tabular-nums; }
.inf1-fields { list-style: none; margin: var(--s-3) 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); gap: var(--s-1) var(--s-4); }
.inf1-fields .check { width: 100%; min-height: 40px; overflow-wrap: anywhere; }
.inf1-order { list-style: none; margin: var(--s-3) 0 0; padding: 0; display: flex; flex-direction: column; gap: var(--s-2); counter-reset: ord; }
.inf1-order__i { display: flex; align-items: center; gap: var(--s-2); padding: var(--s-1) var(--s-2) var(--s-1) var(--s-3); border: 1px solid var(--line); border-radius: var(--r-md); background: var(--raised); cursor: grab; counter-increment: ord; min-height: 44px; }
.inf1-order__i::before { content: counter(ord); min-width: 1.6em; font-variant-numeric: tabular-nums; color: var(--ink-3); font-size: var(--fs-sm); }
.inf1-order__i.is-drag { opacity: .5; }
.inf1-order__i:hover { border-color: var(--ink-2); }
.inf1-order__grip { color: var(--ink-3); display: inline-flex; }
.inf1-order__t { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; font-weight: 500; }
.inf1-order__i .btn--icon { flex: none; }
.inf1-sorts { margin-top: var(--s-3); }
.inf1-totals { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: var(--s-3) var(--s-4); align-items: end; }
.inf1-totals > .check { grid-column: 1 / -1; }
.inf1-totals .field { margin: 0; }
.inf1-export { display: inline-flex; flex-wrap: wrap; align-items: center; gap: var(--s-2); }
.inf1-runs:empty { display: none; }
.inf1-runs { display: flex; flex-direction: column; gap: var(--s-2); margin-bottom: var(--s-4); }
.inf1-run { cursor: default; }
.inf1-run:hover { border-color: var(--line); }
.inf1-prev { margin-bottom: var(--s-6); }
.inf1-groups { margin-bottom: var(--s-4); }
.inf1-ptable .table td, .inf1-ptable .table th { vertical-align: top; }
.inf1-ptable .table td.num, .inf1-groups .table td.num { font-variant-numeric: tabular-nums; text-align: right; }

/* ---------- Legales ---------- */
.inf1-kinds { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: var(--s-3); margin-bottom: var(--s-4); }
.inf1-kind { position: relative; display: flex; flex-direction: column; gap: var(--s-1); padding: var(--s-3) var(--s-4); min-height: 112px; border: 1.5px solid var(--line); border-radius: var(--r-lg); background: var(--surface); cursor: pointer; min-width: 0; transition: border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease); }
.inf1-kind:hover { border-color: var(--ink-2); }
.inf1-kind input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.inf1-kind.is-on { border-color: var(--accent); background: var(--accent-soft); box-shadow: 0 0 0 1px var(--accent) inset; }
.inf1-kind:focus-within { outline: 2px solid var(--focus); outline-offset: 2px; }
.inf1-kind__h { display: flex; gap: var(--s-2); align-items: flex-start; }
.inf1-kind__h b { font-family: var(--font-display); font-weight: 600; font-size: var(--fs-md); overflow-wrap: anywhere; }
.inf1-kind__ref { font-size: var(--fs-xs); font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-2); }
.inf1-kind__d { font-size: var(--fs-sm); color: var(--ink-2); overflow-wrap: anywhere; }
.inf1-sign { display: flex; align-items: flex-start; margin-top: var(--s-4); }
.inf1-sign span { overflow-wrap: anywhere; }
.inf1-docs { display: flex; flex-direction: column; gap: var(--s-3); }
.inf1-doc { margin-bottom: var(--s-3); }
.inf1-doc__h { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s-2); }
.inf1-doc__l { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: var(--s-3) var(--s-4); margin: var(--s-3) 0 0; }
.inf1-doc__l dt { font-size: var(--fs-xs); font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-3); }
.inf1-doc__l dd { margin: 0; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.inf1-doc code, .inf1-ptable code, .inf1-verify code, #sg-list code { font-family: var(--font-mono); font-size: var(--fs-sm); overflow-wrap: anywhere; }
.inf1-verify { margin-top: var(--s-5); }
.inf1-verdict:empty { display: none; }
.inf1-verdict { margin-top: var(--s-3); padding: var(--s-3) var(--s-4); border-radius: var(--r-md); border-left: 4px solid var(--line-strong); background: var(--surface-2); color: var(--ink); overflow-wrap: anywhere; }
.inf1-verdict.is-ok { border-left-color: var(--ok); background: var(--ok-soft); }
.inf1-verdict.is-bad { border-left-color: var(--err); background: var(--err-soft); }
.inf1-sfilters { margin-top: var(--s-4); }
.inf1-sfilters .field { flex: 1 1 200px; }
.inf1-sfilters .btn { align-self: end; }

/* ---------- Pre-nómina ---------- */
.pn-banner { position: sticky; top: calc(var(--topbar-h, 56px) + var(--s-2)); z-index: 6; margin-bottom: var(--s-4); box-shadow: var(--shadow-1); font-size: var(--fs-base); }
.pn-bar { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--s-3); margin-bottom: var(--s-4); }
.pn-sel { flex: 1 1 260px; margin: 0; min-width: 0; }
.pn-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s-3); margin-bottom: var(--s-4); }
.pn-state { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2); }
.pn-btns { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2); }
.pn-btns .btn { min-height: 40px; }
.btn--danger { color: var(--err); }
.pn-table th[scope=row], .pn-table td { vertical-align: middle; }
.pn-table th.num, .pn-table td.num { text-align: right; font-variant-numeric: tabular-nums; }
.pn-emp { font-weight: 600; text-align: left; overflow-wrap: anywhere; }
.pn-total .v1-money { font-weight: 700; }
.pn-row.is-open { background: var(--surface-2); }
.pn-foot th, .pn-foot td { font-weight: 700; border-top: 2px solid var(--ink); background: var(--surface-2); }
.pn-detail > td { background: var(--surface-2); padding: var(--s-2) var(--s-4) var(--s-4); }
.pn-lines { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--s-2); }
.pn-line { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px var(--s-3); padding: var(--s-2) 0; border-bottom: 1px dashed var(--line-strong); }
.pn-line:last-child { border-bottom: 0; }
.pn-line__m { grid-column: 1; overflow-wrap: anywhere; }
.pn-line__a { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
.pn-tax { color: var(--ink); font-weight: 600; }
.pn-foot-note { margin-top: var(--s-3); }
@media (min-width: 720px) { .pn-detail > td { padding-left: var(--s-5); } }
@media (max-width: 719px) {
  .pn-table, .pn-table tbody, .pn-table tfoot, .pn-table tr, .pn-table th[scope=row], .pn-table td { display: block; width: 100%; }
  .pn-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .pn-table tr { padding: var(--s-3) var(--s-4); border-bottom: 1px solid var(--line); }
  .pn-table th[scope=row] { padding: 0 0 var(--s-2); border: 0; font-size: var(--fs-md); }
  .pn-table td { display: flex; justify-content: space-between; gap: var(--s-4); padding: .3rem 0; border: 0; text-align: right; }
  .pn-table td::before { content: attr(data-label); font-size: var(--fs-xs); font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-3); text-align: left; flex: none; padding-top: .15rem; }
  .pn-table td.pn-more::before { display: none; }
  .pn-table td.pn-more { justify-content: flex-start; }
  .pn-table .pn-detail { padding: 0; }
  .pn-table .pn-detail > td { display: block; padding: var(--s-2) 0; }
  .pn-table .pn-detail > td::before { display: none; }
  .pn-table tfoot tr { padding-top: var(--s-4); }
  .pn-table tfoot td:last-child:empty { display: none; }
  .pn-banner { top: calc(var(--topbar-h, 56px) + var(--s-1)); }
  .inf1-actions .btn, .pn-btns .btn { flex: 1 1 auto; }
  .inf1-export { width: 100%; }
  .inf1-export .btn { flex: 1 1 auto; }
}

/* ---------- Correo ---------- */
.cr-intro { margin: var(--s-3) 0; }
.cr-form { margin-bottom: var(--s-4); }
.cr-fields { margin-top: var(--s-3); }
.cr-types { list-style: none; margin: var(--s-3) 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); gap: var(--s-2) var(--s-4); }
.cr-types li { display: flex; align-items: center; gap: var(--s-2); min-height: 32px; }
.cr-types__i { color: var(--ink-3); display: inline-flex; }
.cr-rems { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: var(--s-4); align-items: start; }
.cr-rem { margin: 0; }
.cr-rem__h { display: flex; justify-content: space-between; gap: var(--s-3); align-items: flex-start; }
.cr-rem__h > div { min-width: 0; }
.cr-rem__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr)); gap: var(--s-3); margin: var(--s-3) 0; }
.cr-rem__grid .field { margin: 0; }
.cr-fs { border: 0; margin: var(--s-3) 0 0; padding: 0; min-width: 0; }
.cr-fs legend { padding: 0; margin-bottom: var(--s-1); }
.cr-days { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.cr-day { position: relative; display: inline-grid; place-items: center; width: 44px; height: 44px; border: 1.5px solid var(--control-line); border-radius: var(--r-md); background: var(--raised); color: var(--ink); font-weight: 600; cursor: pointer; user-select: none; }
.cr-day input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.cr-day:has(input:checked) { background: var(--ink); color: var(--ink-inv); border-color: var(--ink); }
.cr-day:has(input:focus-visible) { outline: 2px solid var(--focus); outline-offset: 2px; }
.cr-to { display: flex; flex-wrap: wrap; gap: var(--s-1) var(--s-4); }
.cr-wrap { overflow-wrap: anywhere; max-width: 28ch; }
.cr-err { color: var(--err); font-size: var(--fs-sm); max-width: 32ch; }
.cr-rem__days { overflow-wrap: anywhere; }
@media (max-width: 719px) { .cr-wrap, .cr-err { max-width: none; } }

/* Foco visible y movimiento reducido */
.inf1-doc:focus, #inf1-h-prev:focus { outline: 2px solid var(--focus); outline-offset: 4px; }
@media (prefers-reduced-motion: reduce) { .inf1-kind { transition: none; } }
@media print { .pn-banner { position: static; } }
.pn-line__n { grid-column: 1 / -1; overflow-wrap: anywhere; }
.pn-warn { color: var(--warn); font-weight: 600; display: flex; gap: var(--s-1); align-items: flex-start; }
.pn-page, .pn-page > *, #pn-body, #pn-body > *, #pn-detail, #pn-pv, #pn-pv > *, .pn-wrap { min-width: 0; max-width: 100%; }
.pn-wrap { overflow-x: auto; }
.pn-wrap { position: relative; }

/* Ronda 3 (P1-N2 + P2 tabla cortada a 1440): nombre legible y estrecho, cabeceras en dos líneas, entregas al detalle en pantallas medianas; aviso de «pendiente de decidir» */
.pn-table thead th { white-space: normal; vertical-align: bottom; line-height: 1.25; }
.pn-table thead th.num { min-width: 5.5rem; }
.pn-table th, .pn-table td { padding-inline: .7rem; }
.pn-table td.num { white-space: nowrap; }
.pn-table tbody th[scope=row], .pn-table tfoot th[scope=row] { position: static; text-transform: none; letter-spacing: 0; font: 600 var(--fs-base)/1.35 var(--font-ui); color: var(--ink); white-space: normal; background: transparent; min-width: 9rem; max-width: 15rem; }
.pn-pchip { display: flex; width: fit-content; align-items: center; gap: 4px; margin-top: 4px; padding: 2px 8px; border-radius: var(--r-pill); background: var(--warn-soft); color: var(--ink); border: 1px solid color-mix(in srgb, var(--warn) 45%, transparent); font: 600 var(--fs-xs)/1.4 var(--font-ui); }
.pn-pchip svg { color: var(--warn); flex: none; }
.pn-warn { display: inline-flex; align-items: center; gap: 4px; font-weight: 600; }
.pn-warn--pending { color: var(--ink); } .pn-warn--pending svg { color: var(--warn); }
.pn-warn--err { color: var(--err); }
.pn-pending { margin-bottom: var(--s-4); }
@media (min-width: 720px) and (max-width: 1279px) { .pn-table .pn-c-advance { display: none; } }
@media (max-width: 719px) { .pn-table tbody th[scope=row], .pn-table tfoot th[scope=row] { max-width: none; } }
.pn-table tfoot th[scope=row] { background: var(--surface-2); }
