/* ─────────────────────────────────────────────────────────────────────────────
   DOCUMENTOS IMPRIMIBLES — contrato de alquiler y rendición al propietario

   La hoja imita el papel: ancho A4, serif para el cuerpo legal, cláusulas
   numeradas y destacadas. En pantalla vive dentro del shell de la app; al
   imprimir (o "Guardar como PDF" del navegador) el chrome desaparece y quedan
   sólo la hoja, el membrete repetido en cada página y el pie.

   ⚠️ El PDF sale del navegador a propósito. En App Service no hay Word ni
   LibreOffice, así que no existe conversión server-side: es la misma decisión
   que ya se tomó en LicitAr para el pliego.

   Las clases doc-* las escribe ContratoHtmlBuilder. Si cambian allá, cambian acá.
   ───────────────────────────────────────────────────────────────────────────── */

.doc-hoja {
    background: #fff;
    border: 1px solid var(--dm-border);
    border-radius: 6px;
    box-shadow: 0 2px 14px rgba(15, 23, 42, .06);
    max-width: 210mm;
    margin: 0 auto;
    padding: 22mm 20mm;
}

.doc {
    font-family: Georgia, "Times New Roman", serif;
    color: var(--dm-dark-1);
    font-size: .95rem;
    line-height: 1.6;
    text-align: justify;
}

.doc-encabezado {
    display: flex;
    align-items: center;
    gap: 14px;
    border-bottom: 2px solid var(--dm-primary);
    padding-bottom: 10px;
    margin-bottom: 20px;
}

/* El logo de la inmobiliaria en el membrete. Alto acotado para que un logo
   apaisado y uno cuadrado ocupen lo mismo y no empujen el resto del encabezado. */
.doc-encabezado-logo {
    height: 44px;
    max-width: 150px;
    object-fit: contain;
    flex: 0 0 auto;
}

.doc-encabezado-titular {
    font-family: system-ui, sans-serif;
    font-weight: 700;
    font-size: .95rem;
    color: var(--dm-dark-1);
}

.doc-encabezado-texto {
    font-family: system-ui, sans-serif;
    font-size: .78rem;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--dm-text-muted);
    flex: 1;
    text-align: right;
}

.doc-portada { text-align: center; margin-bottom: 26px; }

.doc-titulo {
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.3;
    margin: 0 0 6px;
}

.doc-subtitulo {
    font-family: system-ui, sans-serif;
    font-size: .82rem;
    color: var(--dm-text-muted);
    letter-spacing: .06em;
    text-transform: uppercase;
    margin-bottom: 0;
}

/* break-inside: una cláusula partida al medio por un salto de hoja se lee mal
   y, en un contrato, se discute peor. */
.doc-art { margin-bottom: 16px; break-inside: avoid-page; }

.doc-art-titulo {
    font-family: system-ui, sans-serif;
    font-size: .88rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .02em;
    color: var(--dm-primary);
    margin: 0 0 6px;
    text-align: left;
}

.doc-art-titulo.doc-art-sn {
    color: var(--dm-dark-1);
    border-bottom: 1px solid var(--dm-border);
    padding-bottom: 4px;
}

.doc-art-cuerpo p { margin: 0 0 8px; }
.doc-art-cuerpo ul, .doc-art-cuerpo ol { margin: 0 0 8px; padding-left: 26px; }
.doc-art-cuerpo li { margin-bottom: 4px; }

.doc-nota {
    background: #f8fafc;
    border-left: 3px solid var(--dm-accent);
    padding: 8px 12px;
    font-size: .88rem;
    font-style: italic;
}

.doc-tabla {
    width: 100%;
    border-collapse: collapse;
    margin: 10px 0 14px;
    font-family: system-ui, sans-serif;
    font-size: .82rem;
    text-align: left;
}

.doc-tabla th {
    background: var(--dm-bg-content);
    border: 1px solid var(--dm-border);
    padding: 6px 9px;
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--dm-text-muted);
}

.doc-tabla td { border: 1px solid var(--dm-border); padding: 6px 9px; vertical-align: top; }

.doc-pie {
    margin-top: 24px;
    padding-top: 10px;
    border-top: 1px solid var(--dm-border);
    font-family: system-ui, sans-serif;
    font-size: .72rem;
    color: var(--dm-text-muted);
    text-align: center;
}

/* ─── Firmas ─── */
.doc-firmas {
    display: flex;
    gap: 40px;
    margin-top: 40px;
    break-inside: avoid-page;
}

.doc-firma { flex: 1; text-align: center; font-family: system-ui, sans-serif; }

.doc-firma-linea {
    border-top: 1px solid var(--dm-dark-1);
    margin-bottom: 6px;
    height: 34px;
}

.doc-firma-rotulo { font-size: .78rem; font-weight: 600; }
.doc-firma-aclaracion { font-size: .72rem; color: var(--dm-text-muted); }

/* Un token que quedó sin resolver SE MUESTRA, no se disimula: un contrato con un
   hueco invisible se firma sin que nadie lo note. */
.doc-art-cuerpo :not(pre) > code, .doc-hueco {
    background: #fef3c7;
    color: #92400e;
    padding: 0 3px;
    border-radius: 3px;
}

/* ─── Panel de parámetros, al costado del documento ─── */
.doc-param-grupo {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--dm-text-muted);
    font-weight: 700;
    margin: 14px 0 6px;
}

.doc-param-chip {
    font-family: ui-monospace, monospace;
    font-size: .68rem;
    color: var(--dm-text-muted);
}

/* ─── IMPRESIÓN ─── */
@media print {
    @page { size: A4; margin: 18mm 16mm 20mm; }

    .sidebar, .top-bar, .page-header, .doc-noprint, .btn, .alert, nav {
        display: none !important;
    }

    .app-layout, .main-content, .page-content {
        display: block !important;
        padding: 0 !important;
        margin: 0 !important;
        background: #fff !important;
    }

    .doc-hoja {
        border: 0;
        box-shadow: none;
        border-radius: 0;
        max-width: none;
        margin: 0;
        padding: 0;
    }

    .doc { font-size: 10.5pt; }
    .doc-art { break-inside: avoid; }
    .doc-art-titulo { break-after: avoid; }

    /* El membrete se repite en cada hoja impresa. */
    /* Color explicito por lo mismo que los demas flotantes: el encabezado se
       repite en cada hoja impresa y no puede depender de heredar. */
    .doc-encabezado { position: fixed; top: 0; left: 0; right: 0; background: #fff; color: #111; }
    .doc-cuerpo { margin-top: 26mm; }
    .doc-portada { margin-top: 26mm; }
    .doc-portada + .doc-cuerpo { margin-top: 0; }
}
