/* GOYISA · Documentos imprimibles (cotización, factura, estado de cuenta) */
@page { size: letter; margin: 0.5in 0.55in; }
:root { --y:#FFE500; --b:#04448E; --r:#D7262E; --k:#111316; --g:#6B7280; --line:#D1D5DB; }
* { box-sizing: border-box; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
html, body { margin: 0; background: #E5E7EB; color: var(--k); font: 12.5px/1.45 "Helvetica Neue", Arial, sans-serif; }
.toolbar { position: sticky; top: 0; z-index: 5; display: flex; align-items: center; gap: 12px; padding: 10px 16px; background: #032F63; color: #fff; flex-wrap: wrap; }
.tb-info { flex: 1; font-size: 13px; opacity: .85; }
.tb-btn { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.5); border-radius: 6px; padding: 8px 14px; font: 600 14px Arial, sans-serif; text-decoration: none; cursor: pointer; }
.tb-main { background: var(--y); color: var(--k); border-color: var(--y); }
.sheet { width: 8.5in; min-height: 11in; margin: 18px auto; background: #fff; padding: 0.5in 0.55in; box-shadow: 0 6px 30px rgba(0,0,0,.18); display: flex; flex-direction: column; }
.d-head { display: flex; align-items: flex-start; gap: 16px; }
.d-logo { height: 62px; width: auto; }
.d-emp { flex: 1; display: flex; flex-direction: column; font-size: 11px; color: #374151; }
.d-emp strong { font-size: 14px; color: var(--k); text-transform: uppercase; letter-spacing: .3px; }
.d-num { text-align: right; display: flex; flex-direction: column; align-items: flex-end; gap: 3px; }
.d-tipo { background: var(--b); color: #fff; font-weight: 800; font-size: 13px; letter-spacing: 1px; padding: 4px 10px; border-radius: 3px; }
.d-n { font: 800 20px/1 "Courier New", monospace; color: var(--r); }
.d-n.long { font-size: 13px; letter-spacing: 0; }
.d-emp { min-width: 0; }
.d-meta { font-size: 11px; color: #374151; }
.hazard { height: 6px; margin: 12px 0 16px; background: repeating-linear-gradient(-45deg, var(--y) 0 12px, var(--k) 12px 24px); }
.d-box { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border: 1px solid var(--line); border-radius: 6px; margin-bottom: 16px; }
.d-box > div { padding: 10px 12px; display: flex; flex-direction: column; gap: 2px; }
.d-box > div + div { border-left: 1px solid var(--line); }
.l { font-size: 9px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; color: var(--g); }
.d-box b { font-size: 14px; }
.d-box small { color: #4B5563; }
.d-lines { width: 100%; border-collapse: collapse; }
.d-lines th { background: var(--k); color: #fff; font-size: 10px; letter-spacing: .6px; text-transform: uppercase; text-align: left; padding: 7px 8px; }
.d-lines td { padding: 7px 8px; border-bottom: 1px solid var(--line); vertical-align: top; }
.d-lines tr:nth-child(even) td { background: #F9FAFB; }
.n { text-align: right; white-space: nowrap; }
.empty { text-align: center; color: var(--g); }
.d-tot { margin: 12px 0 0 auto; width: 300px; display: flex; flex-direction: column; }
.d-tot div { display: flex; justify-content: space-between; padding: 4px 8px; }
.d-tot .grand { background: #FFF8C6; border-top: 2px solid var(--k); font-size: 16px; margin-top: 4px; padding: 8px; }
.d-tot .grand b { color: var(--b); }
.d-cond { margin-top: 20px; border-left: 4px solid var(--y); padding: 4px 12px; font-size: 11.5px; color: #374151; }
.d-cond h3 { font-size: 12px; margin: 0 0 4px; text-transform: uppercase; letter-spacing: .5px; color: var(--k); }
.d-cond p { margin: 0; }
.d-bank { font-size: 11.5px; margin: 12px 0 0; }
.d-firmas { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; margin-top: auto; padding-top: 40px; }
.d-firmas div { display: flex; flex-direction: column; text-align: center; font-size: 10.5px; color: #374151; }
.d-firmas .linea { border-bottom: 1px solid var(--k); height: 26px; margin-bottom: 4px; font-size: 11px; font-weight: 600; color: var(--b); display: flex; align-items: flex-end; justify-content: center; }
.d-foot { display: flex; justify-content: space-between; gap: 10px; margin-top: 18px; padding-top: 6px; border-top: 1px solid var(--line); font-size: 9px; color: var(--g); }
.d-sum { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-bottom: 14px; }
.d-sum div { border: 1px solid var(--line); border-radius: 6px; padding: 8px 10px; }
.d-sum b { display: block; font-size: 15px; }
.d-sum .hl { background: #FFF8C6; border-color: #E5C800; }
.d-sec { font-size: 12px; text-transform: uppercase; letter-spacing: .6px; margin: 18px 0 6px; }
.st-pagada { color: #14613A; font-weight: 700; } .st-pendiente, .st-vencida { color: var(--r); font-weight: 700; } .st-parcial { color: #93500A; font-weight: 700; }
.sello { position: absolute; top: 40%; left: 50%; transform: translate(-50%, -50%) rotate(-14deg); font: 900 70px Arial, sans-serif; color: rgba(215,38,46,.22); border: 6px solid rgba(215,38,46,.22); padding: 0 24px; border-radius: 10px; letter-spacing: 6px; pointer-events: none; }
.sheet { position: relative; }

/* Respuesta del cliente (enlace público) */
.resp { width: 8.5in; margin: 0 auto 24px; background: #fff; border-radius: 8px; padding: 20px 24px; box-shadow: 0 6px 30px rgba(0,0,0,.12); font-family: Arial, sans-serif; }
.resp h2 { margin: 0 0 6px; font-size: 20px; }
.resp form { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; }
.resp label { display: flex; flex-direction: column; gap: 4px; font-weight: 600; font-size: 13px; }
.resp input, .resp textarea { font: 14px Arial, sans-serif; padding: 9px 10px; border: 1px solid #CBD2DA; border-radius: 6px; }
.resp .wide { grid-column: 1 / -1; }
.resp .btns { display: flex; gap: 10px; flex-wrap: wrap; }
.btn-ok { background: #1E8E4E; color: #fff; border: 0; border-radius: 6px; padding: 11px 18px; font: 700 15px Arial, sans-serif; cursor: pointer; }
.btn-no { background: #fff; color: var(--r); border: 1px solid var(--r); border-radius: 6px; padding: 11px 18px; font: 700 15px Arial, sans-serif; cursor: pointer; }
.msg { padding: 12px 16px; border-radius: 6px; font-weight: 600; margin-bottom: 10px; }
.msg-ok { background: #E8F6EE; color: #14613A; } .msg-err { background: #FDECEC; color: #9B1C22; }

@media print {
  html, body { background: #fff; }
  .no-print, .resp { display: none !important; }
  .sheet { width: auto; min-height: 0; height: 10in; margin: 0; padding: 0; box-shadow: none; }
}
@media screen and (max-width: 860px) {
  .resp { width: auto; margin: 0 12px 24px; }
  .resp form { grid-template-columns: 1fr; }
}

/* Ficha técnica de maquinaria */
.fi{display:grid;grid-template-columns:3.4in 1fr;gap:20px;align-items:start}
.fi-img{border-radius:6px;overflow:hidden;background:#E5E7EB;aspect-ratio:4/3}
.fi-img img{width:100%;height:100%;object-fit:cover;display:block}
.fi-t{font:800 26px/1.1 Arial,sans-serif;text-transform:uppercase;margin:0 0 8px}
.fi-ok{display:inline-block;background:#FFF8C6;border-left:4px solid var(--y);padding:6px 10px;font-weight:700}
.fi-spec th{background:#F3F4F6;color:var(--k);text-transform:none;font-size:12.5px;letter-spacing:0;width:40%;border-bottom:1px solid var(--line)}
.fi-spec tr:nth-child(even) td{background:#fff}
@media screen and (max-width:860px){ .sheet{width:auto;margin:0;padding:18px;min-height:0} .fi{grid-template-columns:1fr} .d-head{flex-wrap:wrap} }
