/* ============================================================
   Praxiom — hoja compartida de las vistas imprimibles
   (contrato de impresion 0.3 §5 — prefijo unico: imp-)

   W2 la crea; W3 la REUSA tal cual (lo suyo va en su .razor.css).
   Tokens: SOLO los permitidos por el contrato §5 (fuentes, texto,
   bordes, graphite-600/700/800/900, brass-600/700). El papel se
   maqueta con HAIRLINES, no con rellenos: nadie imprime el fondo
   por default. Sin sombras, sin animaciones, sin paleta nueva.
   ============================================================ */

/* ── La hoja ─────────────────────────────────────────────────
   En pantalla es un pliego carta centrado sobre el canvas del
   shell; en papel (bloque @media print de abajo) los margenes
   los pone @page y el marco desaparece. 816px = 8.5in a 96dpi. */
.imp-hoja {
    max-width: 816px;
    margin: 24px auto 56px;
    padding: 56px 64px;
    background: #fff;                             /* blanco papel; los navegadores no lo imprimen */
    border: 1px solid var(--border-default);      /* marco hairline en pantalla, nunca sombra */
    color: var(--text-primary);
    font-family: var(--font-sans);
    font-size: 0.8125rem;
    line-height: 1.5;
}

/* ── Barra de acciones (SOLO pantalla; display:none en print) ── */
.imp-barra {
    position: sticky;
    top: 0;
    z-index: 10;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 24px;
    background: #fff;
    border-bottom: 1px solid var(--border-default);
}

.imp-barra__acciones {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 12px;
}

.imp-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border: 1px solid var(--border-subtle);
    border-radius: 6px;
    background: none;
    font-family: var(--font-sans);
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--text-primary);
    text-decoration: none;
    cursor: pointer;
}

.imp-btn:hover {
    border-color: var(--color-graphite-600);
}

.imp-btn--primario {
    background: var(--color-graphite-800);
    border-color: var(--color-graphite-800);
    color: #fff;
}

.imp-btn--primario:hover {
    background: var(--color-graphite-900);
    border-color: var(--color-graphite-900);
}

.imp-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

/* ── Diagnostico de PANTALLA (jamas papel): discrepancia de
      saldo, IdCuenta crudo raro. PROHIBIDO meter aqui nada que
      cambie la lectura del papel (eso va en imp-nota). ──────── */
.imp-sinprint {
    max-width: 816px;
    margin: 16px auto 0;
    padding: 12px 16px;
    border: 1px solid var(--border-default);
    border-left: 3px solid var(--color-brass-600);
    font-size: 0.75rem;
    color: var(--text-secondary);
}

.imp-sinprint p {
    margin: 2px 0;
}

/* Bloques del documento que v1 declara AUSENTES (domicilio,
   contacto, anticipo, descuento manual): se anuncian en
   pantalla; el papel simplemente no los lleva. */
.imp-ausente {
    max-width: 816px;
    margin: 16px auto 0;
    padding: 12px 16px;
    border: 1px dashed var(--border-subtle);
    font-size: 0.75rem;
    color: var(--text-muted);
}

/* ── Encabezado del documento ───────────────────────────────── */
.imp-encabezado {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 32px;
    padding-bottom: 20px;
    border-bottom: 2px solid var(--color-brass-600);   /* la regla fina de la casa (unico brass del papel) */
    margin-bottom: 28px;
}

.imp-membrete .imp-membrete__eyebrow {
    font-family: var(--font-mono);
    font-size: 0.6875rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--color-brass-700);
    margin: 0 0 8px;
}

.imp-membrete h1 {
    font-family: var(--font-serif);
    font-size: 1.625rem;
    font-weight: 500;
    letter-spacing: -0.02em;
    line-height: 1.1;
    color: var(--text-heading);
    margin: 0;
}

.imp-doc-meta {
    text-align: right;
    font-size: 0.8125rem;
    color: var(--text-secondary);
    white-space: nowrap;
}

.imp-doc-meta div {
    margin: 2px 0;
}

.imp-doc-meta strong {
    font-weight: 600;
    color: var(--text-primary);
}

/* ── Bloque cliente ─────────────────────────────────────────── */
.imp-cliente {
    margin-bottom: 28px;
}

.imp-cliente__rotulo {
    font-size: 0.625rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-muted);
    margin: 0 0 4px;
}

.imp-cliente__nombre {
    font-size: 1rem;
    font-weight: 600;
    color: var(--text-heading);
    margin: 0;
}

.imp-cliente__detalle {
    font-size: 0.75rem;
    color: var(--text-secondary);
    margin: 4px 0 0;
}

/* ── Secciones (Honorarios, Gastos, Abogados, Cobranza) ─────── */
.imp-seccion {
    margin: 28px 0 0;
}

.imp-seccion__titulo {
    font-family: var(--font-sans);
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-secondary);
    border-bottom: 1px solid var(--border-subtle);
    padding-bottom: 6px;
    margin: 0 0 4px;
}

/* ── Tabla de renglones ─────────────────────────────────────── */
.imp-tabla {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8125rem;
}

.imp-tabla th {
    font-size: 0.625rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
    text-align: left;
    padding: 8px 8px 4px;
    border-bottom: 1px solid var(--border-default);
}

.imp-tabla td {
    padding: 5px 8px;
    border-bottom: 1px solid var(--border-default);
    vertical-align: top;
}

.imp-tabla tfoot td {
    border-bottom: none;
    border-top: 1px solid var(--border-subtle);
    font-weight: 600;
    color: var(--text-heading);
}

.imp-tabla__num {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.imp-tabla th.imp-tabla__num {
    text-align: right;
}

.imp-tabla__fecha {
    white-space: nowrap;
}

/* Zebra: apoyo de LECTURA EN PANTALLA (graphite-900 al 3%).
   DECISION (a) — la zebra SE APAGA en papel (complemento @media
   print, al final del archivo): el contrato §5 prohibe cualquier
   fondo de color en impresion, y con "imprimir fondos" activado el
   navegador SI pintaria estas bandas. No hace falta en papel: los
   hairlines de cada fila ya cargan la estructura. */
.imp-tabla--zebra tbody tr:nth-child(even) td {
    background: rgba(20, 23, 31, 0.03);
}

/* ── Totales ────────────────────────────────────────────────── */
.imp-totales {
    margin: 24px 0 0 auto;
    width: 340px;
    max-width: 100%;
}

.imp-total {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 16px;
    padding: 5px 0;
    border-bottom: 1px solid var(--border-default);
    font-size: 0.8125rem;
}

.imp-total > span:last-child {
    font-variant-numeric: tabular-nums;
    text-align: right;
    white-space: nowrap;
}

.imp-total--fuerte {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--text-heading);
    border-top: 1px solid var(--color-graphite-800);
    border-bottom: 1px solid var(--border-default);
}

.imp-saldo {
    font-size: 1rem;
    font-weight: 600;
    color: var(--text-heading);
    border-top: 3px double var(--color-graphite-800);   /* la doble raya contable del cierre */
    border-bottom: none;
    padding-top: 8px;
}

/* ── Notas al pie y pie del documento ───────────────────────── */
/* imp-nota SI SE IMPRIME: aqui viven las declaraciones
   obligatorias del contrato §2.1, §2.2 y §3.1. */
.imp-nota {
    font-size: 0.75rem;
    color: var(--text-secondary);
    margin: 6px 0 0;
}

.imp-pie {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    margin-top: 40px;
    padding-top: 12px;
    border-top: 1px solid var(--border-default);
    font-size: 0.6875rem;
    color: var(--text-muted);
}

/* ============================================================
   Hoja de impresion — bloque OBLIGATORIO del contrato §5,
   identico en ambos documentos. NO TOCAR.
   ============================================================ */
@media print {
  @page { size: Letter portrait; margin: 14mm 16mm; }
  .imp-barra, .imp-sinprint { display: none !important; }
  .imp-hoja { max-width: none; }
  .imp-tabla { page-break-inside: auto; }
  .imp-tabla tr { page-break-inside: avoid; page-break-after: auto; }
  .imp-seccion__titulo, .imp-totales { page-break-inside: avoid; }
  thead { display: table-header-group; }   /* el encabezado de tabla se repite por pagina */
}

/* Complemento de impresion (ADITIVO: no modifica el bloque
   obligatorio de arriba). Quita el chrome de pantalla de la hoja
   y esconde los bloques AUSENTES: se declaran en pantalla con
   imp-ausente y en el papel simplemente no aparecen (tarea 2.4,
   contrato §7.8-§7.9). Lo que SI cambia el papel va en imp-nota
   y NO se toca aqui. */
@media print {
  body { background: #fff; }
  .imp-hoja { margin: 0; padding: 0; border: none; }
  .imp-ausente { display: none !important; }
  /* Decision (a): zebra apagada en papel — §5 prohibe fondos de
     color en impresion; era chrome de pantalla, no del documento. */
  .imp-tabla--zebra tbody tr:nth-child(even) td { background: none; }
}
