/* ============================================================
   Rhino Business Fact — documentos (factura, presupuesto, contrato)
   Los colores salen de la plantilla del cliente: --c (principal)
   y --a (secundario). Se usa en pantalla, en p.html y al imprimir.
   ============================================================ */

.doc{position:relative;background:#fff;color:#2b2f3a;width:100%;max-width:820px;margin:0 auto;padding:44px 48px 36px;
  font-size:12.5px;line-height:1.5;box-shadow:0 1px 3px rgba(16,24,40,.1),0 8px 24px rgba(16,24,40,.06);border-radius:4px;overflow:hidden}
.doc *{box-sizing:border-box}
.doc h1,.doc h2,.doc h4{margin:0;color:var(--a)}
.doc h4{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--c);margin-bottom:5px}
.doc .sm{font-size:10.5px;color:#7a8091}
.doc-stamp{position:absolute;top:10px;right:12px;transform:rotate(4deg);border:2px solid #d9534f;color:#d9534f;background:rgba(255,255,255,.85);
  font-weight:800;letter-spacing:.15em;padding:2px 10px;border-radius:5px;font-size:12px;pointer-events:none;z-index:2}

.doc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:28px}
.doc-brand img{max-height:72px;max-width:240px;display:block;object-fit:contain}
.doc-name{font-size:22px;font-weight:700;color:var(--a)}
.doc-title{text-align:right}
.doc-title h1{font-size:26px;letter-spacing:.06em;color:var(--c);margin-bottom:8px}
.doc-meta{margin-left:auto;border-collapse:collapse}
.doc-meta td{padding:1px 0 1px 14px;text-align:right}
.doc-meta td:first-child{color:#7a8091}

.doc-parties{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:22px}
.doc-parties>div{padding:12px 14px;border-radius:6px;background:#f6f8fa}
.doc-parties b{color:var(--a);font-size:13.5px}
.doc-subject{font-weight:600;color:var(--a);margin:-6px 0 12px;font-size:13.5px}

.doc-lines{width:100%;border-collapse:collapse;margin-bottom:18px}
.doc-lines th{background:var(--a);color:#fff;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:8px 10px}
.doc-lines td{padding:9px 10px;border-bottom:1px solid #e7eaf0;vertical-align:top}
.doc-lines .n{text-align:right;white-space:nowrap;width:1%}
.doc-lines th.d,.doc-lines td.d{text-align:left}

.doc-bottom{display:grid;grid-template-columns:1fr 280px;gap:24px;align-items:start}
.doc-box{margin-bottom:12px;font-size:11.5px}
.doc-totals{width:100%;border-collapse:collapse}
.doc-totals td{padding:6px 10px;text-align:right}
.doc-totals td:first-child{text-align:left;color:#5b6172}
.doc-totals tr.grand td{background:var(--c);color:#fff;font-weight:700;font-size:15px;border-radius:0}
.doc-signline{margin-top:40px;width:240px;border-top:1px solid #9aa0ad;padding-top:4px;font-size:11px;color:#7a8091}
.doc-foot{margin-top:28px;padding-top:12px;border-top:1px solid #e7eaf0;font-size:10.5px;color:#7a8091;text-align:center}

/* Variante moderna: banda de color arriba */
.doc-moderna{padding-top:0}
.doc-moderna .doc-head{margin:0 -48px 28px;padding:28px 48px;background:var(--a)}
.doc-moderna .doc-title h1{color:#fff}
.doc-moderna .doc-meta td{color:#fff}
.doc-moderna .doc-meta td:first-child{color:rgba(255,255,255,.7)}
.doc-moderna .doc-name{color:#fff}
.doc-moderna .doc-brand img{background:#fff;padding:6px 10px;border-radius:6px}
.doc-moderna .doc-ref{color:#fff}
.doc-moderna .doc-lines th{background:var(--c)}
.doc-moderna .doc-totals tr.grand td{background:var(--a)}

/* Variante minimal: sin rellenos, filetes finos */
.doc-minimal .doc-parties>div{background:none;padding:0;border-top:2px solid var(--c);padding-top:8px;border-radius:0}
.doc-minimal .doc-lines th{background:none;color:var(--a);border-bottom:2px solid var(--a)}
.doc-minimal .doc-totals tr.grand td{background:none;color:var(--a);border-top:2px solid var(--a)}
.doc-minimal .doc-title h1{color:var(--a);font-weight:300;letter-spacing:.2em}

/* Variante clásica: filete de color bajo la cabecera */
.doc-clasica .doc-head{padding-bottom:18px;border-bottom:3px solid var(--c)}

/* Contrato */
.doc-contract{font-size:12.5px;line-height:1.65}
.doc-head.slim{align-items:center;margin-bottom:22px}
.doc-ref{color:#7a8091;font-size:11.5px}
.doc-text h1{font-size:18px;text-align:center;letter-spacing:.04em;margin:6px 0 18px;color:var(--a)}
.doc-text h2{font-size:13px;letter-spacing:.06em;margin:20px 0 8px;color:var(--c);text-transform:uppercase}
.doc-text p{margin:0 0 10px;text-align:justify}
.doc-text mark{background:#fff3c4;color:#8a5a00;padding:0 3px;border-radius:3px}
.doc-sigs{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:36px;page-break-inside:avoid}
.sig-img{height:70px;display:flex;align-items:flex-end}
.sig-img img{max-height:70px;max-width:100%}
.sig-line{border-top:1px solid #6b7180;margin:4px 0 6px}
.sig b{color:var(--a)}

@media screen and (max-width:700px){
  .doc{padding:24px 18px;font-size:12px}
  .doc-moderna .doc-head{margin:0 -18px 22px;padding:22px 18px}
  .doc-head{flex-direction:column}
  .doc-title{text-align:left}
  .doc-meta{margin-left:0}
  .doc-meta td{text-align:left;padding:1px 14px 1px 0}
  .doc-parties,.doc-bottom,.doc-sigs{grid-template-columns:1fr}
  .doc-lines{font-size:11px}
  .doc-lines th,.doc-lines td{padding:6px 5px}
}

/* Impresión / Guardar como PDF */
.print-body{margin:0;background:#fff}
@page{size:A4;margin:12mm}
@media print{
  .doc{box-shadow:none;max-width:none;padding:0;border-radius:0;overflow:visible}
  .doc-moderna .doc-head{margin:0 0 24px;padding:22px 24px;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .doc-lines th,.doc-totals tr.grand td,.doc-parties>div{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .doc-lines tr{page-break-inside:avoid}
}
