/* ── Recibo de sueldo — layout duplicado argentino ────────────────────────── */

:root {
    --r-blue: #2233AA;
    --r-blue-light: #B8C8E8;
    --r-border: #999;
    --r-font: 'Arial', sans-serif;
    --r-size: 9px;
}

.recibo-page {
    background: white;
    color: #000;
    font-family: var(--r-font);
    font-size: var(--r-size);
    line-height: 1.3;
}

/* Dos copias lado a lado */
.recibo-doble {
    display: flex;
    gap: 0;
    width: 100%;
}

.recibo-copia {
    flex: 1;
    border: 1px solid var(--r-border);
    position: relative;
    padding: 4px;
    box-sizing: border-box;
    overflow: hidden;
}

.recibo-separador {
    width: 12px;
    border-left: 1px dashed #aaa;
    margin: 4px 0;
    flex-shrink: 0;
}

/* ── Tablas genéricas del recibo ── */
.r-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 0;
}

.r-table td, .r-table th {
    border: 1px solid var(--r-border);
    padding: 2px 4px;
    vertical-align: middle;
    font-size: var(--r-size);
}

/* ── Colores ── */
.r-blue-bg { background: var(--r-blue) !important; }
.r-white    { color: white !important; font-weight: 700; }
.r-right    { text-align: right; }
.r-mono     { font-family: 'Courier New', monospace; }

/* ── Header empresa ── */
.r-header-empresa { margin-bottom: 2px; }

.r-empresa-info {
    width: 55%;
    vertical-align: top;
    padding: 3px 6px;
}
.r-nombre-empresa  { font-size: 11px; font-weight: 700; }
.r-detalle-empresa { font-size: 8px; color: #333; }

.r-cuit-box {
    width: 20%;
    text-align: center;
    font-size: 8px;
}
.r-label-small { font-size: 8px; opacity: .75; display: block; }
.r-value-bold  { font-weight: 700; font-size: 9px; }

.r-cuil-recibo {
    width: 25%;
    border: 1px solid var(--r-border);
    padding: 3px 6px;
    text-align: center;
}

.r-recibo-num {
    text-align: center;
    font-size: 8px;
    padding: 3px;
}

/* ── Filas de datos ── */
.r-labels td { font-weight: 700; font-size: 8px; }
.r-values td { font-size: 9px; min-height: 16px; height: 16px; }

.r-label-inline {
    font-weight: 700;
    font-size: 8px;
    padding: 2px 4px;
}

/* ── Columnas del encabezado de empleado ── */
.r-col-nombre { width: 40%; }
.r-col-doc    { width: 14%; }
.r-col-sec    { width: 12%; }
.r-col-leg    { width: 12%; }
.r-col-cat    { width: 22%; }

/* ── Columnas fila banco/período ── */
.r-col-banco  { width: 18%; }
.r-col-per    { width: 14%; }
.r-col-fdate  { width: 14%; }
.r-col-tarea  { width: 22%; }
.r-col-fing   { width: 16%; }
.r-col-rem    { width: 16%; }

/* ── Columnas conceptos ── */
.r-col-desc  { width: 38%; }
.r-col-cod   { width: 8%; text-align: center; }
.r-col-unid  { width: 8%; text-align: center; }
.r-col-vunit { width: 12%; text-align: right; }
.r-col-rem2  { width: 17%; }
.r-col-desc2 { width: 17%; }

/* ── Filas de conceptos ── */
.r-conceptos-header { margin-top: 2px; }
.r-conceptos-body td { height: 14px; min-height: 14px; font-size: 8.5px; border-color: #ccc; }
.r-concepto-desc { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 0; }

/* ── Footer ── */
.r-footer { margin-top: 2px; }

.r-subtotal { margin-bottom: 0; }
.r-texto-legal   { width: 48%; font-size: 7.5px; line-height: 1.4; vertical-align: top; padding: 3px; }
.r-subtotal-label { width: 16%; text-align: center; font-size: 8px; font-weight: 700; }
.r-subtotal-val   { width: 18%; font-family: monospace; padding: 2px 6px; }
.r-neto-label     { text-align: center; font-size: 8px; font-weight: 700; padding: 2px; }
.r-neto-title     { text-align: center; font-size: 10px; font-weight: 700; letter-spacing: 1px; padding: 3px; }

.r-firmas { margin-top: 0; }
.r-firma-box {
    background: var(--r-blue-light);
    width: 28%;
    height: 40px;
    vertical-align: bottom;
    text-align: center;
    padding: 4px;
}
.r-firma-linea { font-size: 8px; border-top: 1px solid #555; padding-top: 2px; margin-top: 20px; }
.r-importe-letras {
    font-size: 8px;
    font-weight: 700;
    padding: 4px 8px;
    vertical-align: middle;
    background: var(--r-blue-light);
    line-height: 1.4;
}
.r-letras-label { font-weight: 400; opacity: .7; }

/* ── Sello original/duplicado ── */
.r-duplicado-stamp {
    position: absolute;
    top: 6px;
    right: 6px;
    font-size: 8px;
    font-weight: 700;
    color: #888;
    border: 1px solid #aaa;
    padding: 1px 4px;
    border-radius: 3px;
    opacity: .7;
}
.r-original { color: var(--r-blue); border-color: var(--r-blue); opacity: .6; }

/* ── Página de todos los recibos (pantalla) ── */
.recibos-toolbar {
    position: sticky;
    top: 0;
    z-index: 10;
    display: flex;
    align-items: center;
    padding: 10px 16px;
    background: var(--mud-palette-surface, #1e1e2d);
    border-bottom: 1px solid var(--mud-palette-lines-default, rgba(255,255,255,.1));
}
.recibos-print-all { background: #555; padding: 12px; }
.recibos-print-all .recibo-print-item {
    background: white;
    margin: 0 auto 14px;
    box-shadow: 0 2px 8px rgba(0,0,0,.4);
    max-width: 1100px;
}
.recibo-pagina {
    font-size: 12px;
    font-weight: 600;
    color: #333;
    background: #eef1f7;
    border-bottom: 1px solid #d4d9e3;
    padding: 5px 10px;
    font-family: ui-monospace, monospace;
}

/* ── Impresión ── */
@media print {
    body * { visibility: hidden; }

    /* Caso 1: un solo recibo dentro de un dialog */
    /* El MudDialog se centra con transform; eso hace que un `position: fixed` interno se ancle al
       diálogo (no al viewport) y el recibo quede a media hoja con espacio en blanco arriba. Se
       neutralizan los transforms de los contenedores del diálogo al imprimir. */
    .mud-dialog-container, .mud-dialog { transform: none !important; inset: 0 !important; margin: 0 !important; }
    #recibo-print-area,
    #recibo-print-area * { visibility: visible; }
    #recibo-print-area {
        position: fixed; inset: 0; background: white; padding: 8px;
        /* Contenido MudBlazor "crudo" (ej. LegajoReciboDialog) hereda estas variables del tema
           oscuro de la app y queda texto claro sobre el papel blanco (invisible al imprimir).
           El recibo "de diseño" (.recibo-page, formato Empleado) ya trae sus propios colores
           fijos y no usa estas variables, así que el override no lo afecta. */
        --mud-palette-text-primary: #1a1a1a;
        --mud-palette-text-secondary: #555555;
    }
    /* La tabla de conceptos del recibo: bordes/texto oscuros visibles al imprimir. */
    #recibo-print-area .recibo-tabla th,
    #recibo-print-area .recibo-tabla td { color: #1a1a1a; border-color: #ccc; }

    /* Caso 2: página de todos los recibos de la tanda */
    .recibos-print-all,
    .recibos-print-all * { visibility: visible !important; }
    .recibos-print-all { position: absolute; left: 0; top: 0; width: 100%; background: white; padding: 0; }
    .recibos-print-all .recibo-print-item {
        box-shadow: none;
        margin: 0;
        page-break-after: always;
    }
    .recibos-print-all .recibo-print-item:last-child { page-break-after: auto; }

    /* Caso 3: reportes (listados, construidos con MudBlazor) — se imprime solo el área del reporte,
       con salto de página natural. Los componentes MudBlazor heredan el color de texto del tema
       oscuro (claro/blanco); sin esto, Chrome imprime "texto claro sobre papel blanco" = invisible,
       salvo que el usuario tilde manualmente "Gráficos de fondo" en el diálogo de impresión. Se fuerza
       texto negro y fondo blanco explícitos para que se vea sin depender de esa opción. */
    #reporte-print-area,
    #reporte-print-area * {
        visibility: visible !important;
        color: #000 !important;
        background-color: transparent !important;
        box-shadow: none !important;
    }
    #reporte-print-area { position: absolute; left: 0; top: 0; width: 100%; background: white !important; padding: 0; }

    .no-print { display: none !important; }
    .recibo-doble { page-break-inside: avoid; }

    /* Duplicado en la misma hoja: las dos copias + el corte no se parten entre páginas, y se
       reducen (zoom) para caber juntas en una A4. */
    .recibos-print-all .recibo-dupsheet { page-break-after: always; page-break-inside: avoid; }
    .recibos-print-all .recibo-dupsheet .recibo-copia { zoom: 0.62; }
    .recibos-print-all .recibo-dupsheet .recibo-corte { border-top: 1px dashed #999; }

    @page {
        size: A4 landscape;
        margin: 8mm;
    }
}

/* ── Duplicado (original / duplicado) ── */
.recibo-sello {
    float: right;
    background: #c0392b;
    color: #fff;
    font-weight: 700;
    padding: 0 10px;
    border-radius: 3px;
    letter-spacing: 1px;
}
.recibo-corte {
    text-align: center;
    color: #888;
    font-size: 11px;
    letter-spacing: 2px;
    padding: 8px 0;
    font-family: ui-monospace, monospace;
    white-space: nowrap;
    overflow: hidden;
}
