*{box-sizing:border-box;margin:0;padding:0}
:root{--navy:#0f1340;--blue:#2E6BB5;--lb:#7BAFE0;--dark:#111827;--gray:#f4f6fb;--border:#dde5f0}
html{width:100%;overflow-x:hidden;-webkit-text-size-adjust:100%}
body{font-family:'Segoe UI',Arial,sans-serif;background:#e0e6f0;min-height:100vh;width:100%;overflow-x:hidden}
button,input,select,textarea{font:inherit}
button{touch-action:manipulation}
.logo-wrap{display:flex;align-items:center;gap:14px}
.logo-circles{position:relative;width:96px;height:58px;flex-shrink:0}
.logo-circles .c{position:absolute;width:54px;height:54px;border-radius:50%;top:2px}
.c1{left:0;background:#1B2580;z-index:1}.c2{left:18px;background:#3178c6;opacity:.88;z-index:2}.c3{left:34px;background:#7BAFE0;opacity:.82;z-index:3}
.logo-text{display:flex;flex-direction:column;justify-content:center}
.logo-brand{font-family:'Blanquotey','Comfortaa','Arial Black',sans-serif;font-size:2.6rem;color:#fff;line-height:1;letter-spacing:1px}
.logo-brand sup{font-family:Arial,sans-serif;font-size:.9rem;vertical-align:super;letter-spacing:0}
.logo-sub{font-size:.65rem;letter-spacing:3px;color:rgba(255,255,255,.82);margin-top:3px}
#landing{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px}
.land-header{background:#0f1340;width:100%;max-width:900px;border-radius:18px 18px 0 0;padding:28px 36px}
.land-body{background:#fff;width:100%;max-width:900px;border-radius:0 0 18px 18px;padding:40px;box-shadow:0 10px 50px rgba(15,19,64,.18)}
.land-body h2{font-size:1.1rem;font-weight:800;color:var(--dark);margin-bottom:6px}
.land-body>p{font-size:.85rem;color:#666;margin-bottom:32px}
.land-cards{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:16px}
.land-card{border:2px solid var(--border);border-radius:14px;padding:26px 20px;text-align:center;background:var(--gray);transition:.2s}
.land-card:hover{border-color:var(--blue);background:#eef4ff;transform:translateY(-2px);box-shadow:0 6px 20px rgba(46,107,181,.15)}
.land-card .lc-icon{font-size:2.4rem;margin-bottom:12px}
.land-card h3{font-size:.95rem;font-weight:800;color:var(--navy);margin-bottom:6px}
.land-card p{font-size:.78rem;color:#666;margin-bottom:16px;line-height:1.6}
.lc-btn{display:inline-block;padding:9px 22px;background:linear-gradient(135deg,var(--navy),var(--blue));color:#fff;border-radius:8px;font-size:.82rem;font-weight:700;border:none;cursor:pointer}
.fc{max-width:720px;margin:36px auto 60px;background:#fff;border-radius:18px;box-shadow:0 10px 50px rgba(15,19,64,.18);overflow:hidden}
.fh{background:#0f1340;padding:26px 36px;display:flex;align-items:center;justify-content:space-between}
.fh-left{display:flex;align-items:center;gap:20px}
.fh-txt h1{color:#fff;font-size:1.25rem;font-weight:800}
.fh-txt p{color:#7BAFE0;font-size:.8rem;margin-top:3px}
.btn-home{background:rgba(255,255,255,.15);border:1.5px solid rgba(255,255,255,.35);color:#fff;padding:7px 14px;border-radius:8px;font-size:.78rem;font-weight:700;cursor:pointer;white-space:nowrap}
.btn-home:hover{background:rgba(255,255,255,.25)}
.fb{padding:36px}
.st{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:2px;color:var(--blue);margin:26px 0 13px;padding-bottom:7px;border-bottom:2px solid var(--border)}
.st:first-child{margin-top:0}
.fg{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fl{display:flex;flex-direction:column;gap:5px}
.fl label{font-size:.78rem;font-weight:700;color:#1a2340}
.fl input,.fl select,.fl textarea{padding:10px 13px;border:1.5px solid var(--border);border-radius:8px;font-size:.9rem;color:var(--dark);background:var(--gray);transition:.2s;font-family:inherit}
.fl input:focus,.fl select:focus,.fl textarea:focus{outline:none;border-color:var(--blue);background:#fff;box-shadow:0 0 0 3px rgba(46,107,181,.1)}
.fl .hint{font-size:.7rem;color:#999;margin-top:2px}
.btn-gen{width:100%;margin-top:28px;padding:14px;background:linear-gradient(135deg,#0f1340,#2E6BB5);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:800;cursor:pointer;transition:.2s}
.btn-gen:hover{opacity:.9;transform:translateY(-1px)}
.extra-row{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;margin-bottom:8px}
.extra-row input,.pared-row input{padding:9px 12px;border:1.5px solid var(--border);border-radius:8px;font-size:.88rem;background:var(--gray);color:var(--dark)}
.extra-row input:focus,.pared-row input:focus{outline:none;border-color:var(--blue);background:#fff}
.pared-row{display:grid;grid-template-columns:1fr 80px 150px auto;gap:8px;align-items:center;margin-bottom:8px}
.btn-add-extra{padding:9px 16px;background:var(--blue);color:#fff;border:none;border-radius:8px;font-size:.82rem;font-weight:700;cursor:pointer}
.btn-add-extra:hover,.btn-del-extra:hover{opacity:.85}
.btn-del-extra{padding:7px 10px;background:#fee;color:#c0392b;border:1.5px solid #f5c6cb;border-radius:8px;font-size:.9rem;cursor:pointer;font-weight:700}
.qa{max-width:980px;margin:28px auto 10px;display:flex;gap:10px;justify-content:flex-end;padding:0 16px}
.bbk,.bpdf{padding:10px 22px;border-radius:8px;border:none;font-size:.88rem;font-weight:700;cursor:pointer;transition:.2s}
.bbk{background:#fff;color:#0f1340;border:2px solid #0f1340}
.bpdf{background:linear-gradient(135deg,#0f1340,#2E6BB5);color:#fff;display:flex;align-items:center;gap:8px}
.bbk:hover,.bpdf:hover{opacity:.85}
.qdoc-wrap{max-width:816px;margin:0 auto 60px;background:#fff;box-shadow:0 6px 40px rgba(0,0,0,.15)}
.qh{background:#0f1340;padding:24px 40px;display:flex;justify-content:space-between;align-items:center}
.qhr .qnum{font-size:.95rem;font-weight:800;color:#7BAFE0;text-align:right}
.qhr .qd{font-size:.73rem;color:rgba(255,255,255,.65);margin-top:4px;text-align:right}
.qhr .qv{font-size:.73rem;color:#7BAFE0;font-weight:700;margin-top:4px;text-align:right}
.qb{padding:30px 40px}
.qintro{background:#f0f4fb;border-left:4px solid #2E6BB5;padding:12px 16px;border-radius:0 8px 8px 0;font-size:.83rem;color:#444;line-height:1.72;margin-bottom:22px}
.qcb{display:grid;border:1.5px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:22px}
.qcb.c4{grid-template-columns:1fr 1fr 1fr 1fr}.qcb.c3{grid-template-columns:1fr 1fr 1fr}
.qf2{padding:12px 14px;border-right:1px solid var(--border)}.qf2:last-child{border-right:none}
.qf2 label{font-size:.62rem;text-transform:uppercase;letter-spacing:1.3px;color:#2E6BB5;font-weight:800;display:block;margin-bottom:3px}
.qf2 p{font-size:.85rem;font-weight:700;color:#111827}
.qst{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:1.5px;color:#fff;background:#0f1340;padding:6px 13px;border-radius:5px;margin:18px 0 10px;display:inline-block;page-break-after:avoid;break-after:avoid}
.qt{width:100%;border-collapse:collapse;font-size:.83rem;margin-bottom:4px;page-break-inside:avoid;break-inside:avoid}
.qt thead{background:#2E6BB5;color:#fff}
.qt thead th{padding:8px 13px;text-align:left;font-weight:700}
.qt tbody tr:nth-child(even){background:#f4f6fb}
.qt tbody td{padding:8px 13px;border-bottom:1px solid #e4ecf5;color:#333}
.qt tfoot{background:#0f1340;color:#fff;font-weight:800}.qt tfoot td{padding:10px 13px}
.qpt{width:100%;border-collapse:collapse;page-break-inside:avoid;break-inside:avoid}
.qpt td{padding:9px 13px;border-bottom:1px solid #e4ecf5;font-size:.88rem}
.qpt .ql{color:#555}.qpt .qr{text-align:right;font-weight:700;color:#111827}
.qpt tr.subtotal td{background:#f0f4fb;font-weight:700}.qpt tr.subtotal td:last-child{text-align:right}
.qpt tr.iva td{background:#e8f0fb}.qpt tr.iva td:last-child{text-align:right}
.qpt tr.total td{background:#0f1340;color:#fff;font-weight:800;font-size:1rem;border-bottom:none}
.qpt tr.total td:last-child{text-align:right}
.qnote{font-size:.68rem;color:#999;margin-top:6px}
.qnsr{font-size:.8rem;color:#444;line-height:1.8}.qnsr p{margin-bottom:7px}.qnsr ul{margin:5px 0 9px 18px}.qnsr ul li{margin-bottom:3px}
.qsg{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:10px 0;page-break-inside:avoid;break-inside:avoid}
.qsg1{display:grid;grid-template-columns:1fr;gap:12px;margin:10px 0}
.qsc{background:#f4f6fb;border-radius:8px;padding:13px 15px;border-top:3px solid #2E6BB5;page-break-inside:avoid;break-inside:avoid}
.qsc h4{font-size:.68rem;text-transform:uppercase;letter-spacing:1px;color:#2E6BB5;margin-bottom:6px;font-weight:800}
.qsc p{font-size:.79rem;color:#444;line-height:1.62}
.qaig{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:10px 0;page-break-inside:avoid;break-inside:avoid}
.qinc{padding:11px 15px;border-radius:8px;font-size:.8rem;background:#e8f5e9;border-left:4px solid #43a047}
.qninc{padding:11px 15px;border-radius:8px;font-size:.8rem;background:#fff3e0;border-left:4px solid #fb8c00}
.qinc h4{color:#2e7d32;margin-bottom:4px;font-size:.68rem;text-transform:uppercase;letter-spacing:1px}
.qninc h4{color:#e65100;margin-bottom:4px;font-size:.68rem;text-transform:uppercase;letter-spacing:1px}
.qcg{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:10px 0 8px;page-break-inside:avoid;break-inside:avoid}
.qci{text-align:center;padding:12px 8px;background:#f4f6fb;border-radius:8px}
.qci .ci{font-size:1.35rem;margin-bottom:4px}
.qci .cl{font-size:.63rem;text-transform:uppercase;letter-spacing:1px;color:#2E6BB5;font-weight:800}
.qci .cv{font-size:.79rem;color:#111827;margin-top:3px;font-weight:700}
.qpers{display:flex;flex-direction:column;gap:5px;margin:8px 0}
.qper{display:flex;align-items:flex-start;gap:9px;padding:8px 12px;background:#f4f6fb;border-radius:6px;font-size:.79rem;color:#444;line-height:1.5;page-break-inside:avoid;break-inside:avoid}
.qper::before{content:'◆';color:#2E6BB5;flex-shrink:0;margin-top:2px;font-size:.62rem}
.qsig{margin-top:28px;display:flex;justify-content:space-between;align-items:flex-end;padding-top:16px;border-top:2px solid #e4ecf5;page-break-inside:avoid;break-inside:avoid}
.qsigb{text-align:center}.qsigb .sn{font-size:.82rem;font-weight:800;color:#111827}.qsigb .st2{font-size:.71rem;color:#666;margin-top:2px}
.qfoot{background:#0f1340;padding:12px 40px;display:flex;justify-content:space-between;align-items:center}
.qfoot p{color:rgba(255,255,255,.55);font-size:.7rem}.qfoot .qfv{color:#7BAFE0;font-size:.71rem;font-weight:700}
.qfoot a{color:#7BAFE0;text-decoration:none}
.tipo-badge{display:inline-block;background:linear-gradient(135deg,#0f1340,#2E6BB5);color:#fff;font-size:.68rem;font-weight:700;padding:4px 12px;border-radius:20px;letter-spacing:.8px;margin-bottom:14px;text-transform:uppercase}
.qsc,.qci,.qcb,.qaig,.qinc,.qninc,.qsg,.qsg1,.qpers,.qsig,.qcg{page-break-inside:avoid;break-inside:avoid}
.resumen-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px}
.rcard{background:#f0f4fb;border-radius:10px;padding:14px;text-align:center;border-top:3px solid #2E6BB5}
.rcard .rc-label{font-size:.63rem;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:#2E6BB5;margin-bottom:5px}
.rcard .rc-val{font-size:1.3rem;font-weight:900;color:#0f1340}
.rcard .rc-sub{font-size:.72rem;color:#666;margin-top:2px}
.banco-box{background:#f0f4fb;border-radius:8px;padding:14px 18px;border-left:4px solid #2E6BB5;font-size:.82rem;color:#333;line-height:1.9;margin:10px 0}
.banco-box strong{color:#0f1340}

.file-input{padding:7px;font-size:.82rem}
.preview-img{display:none;margin-top:8px;max-height:110px;border-radius:8px;border:1.5px solid var(--border);object-fit:cover}

.pdf-exporting .qdoc-wrap{width:816px!important;max-width:816px!important;margin-left:auto!important;margin-right:auto!important}
.pdf-exporting #qdoc4{width:760px!important;max-width:760px!important}
.pdf-exporting .qh{flex-direction:row!important;align-items:center!important}
.pdf-exporting .qcb.c4{grid-template-columns:1fr 1fr 1fr 1fr!important}
.pdf-exporting .qcb.c3{grid-template-columns:1fr 1fr 1fr!important}
.pdf-exporting .resumen-cards{grid-template-columns:repeat(3,1fr)!important}
.pdf-exporting .qsg,.pdf-exporting .qaig{grid-template-columns:1fr 1fr!important}
.pdf-exporting .qcg{grid-template-columns:repeat(3,1fr)!important}
.pdf-exporting .qfoot,.pdf-exporting .qsig{flex-direction:row!important}

@media (max-width:900px){
  #landing{justify-content:flex-start;padding:18px 12px 28px}
  .land-header,.land-body{max-width:100%;border-radius:14px}
  .land-header{padding:22px}
  .land-body{padding:24px 18px;box-shadow:0 8px 28px rgba(15,19,64,.14)}
  .land-cards{grid-template-columns:1fr 1fr;gap:12px}
  .fc{width:calc(100% - 24px);margin:18px auto 32px;border-radius:14px}
  .fh{padding:20px;gap:16px}
  .fh-left{min-width:0;gap:14px}
  .fb{padding:24px 20px}
  .qdoc-wrap{width:calc(100% - 24px);max-width:816px;overflow:hidden}
  .qa{max-width:816px}
}

@media (max-width:640px){
  body{background:#edf2f8}
  .logo-wrap{gap:10px;min-width:0}
  .logo-circles{width:68px;height:43px}
  .logo-circles .c{width:40px;height:40px}
  .c2{left:14px}.c3{left:26px}
  .logo-brand{font-size:1.85rem}
  .logo-sub{font-size:.52rem;letter-spacing:1.8px}
  .land-header{padding:18px 16px}
  .land-body{padding:22px 14px}
  .land-body h2{font-size:1rem}
  .land-body>p{margin-bottom:18px}
  .land-cards{grid-template-columns:1fr}
  .land-card{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;text-align:left;padding:16px}
  .land-card .lc-icon{grid-row:1/4;margin:0;font-size:1.9rem}
  .land-card p{margin-bottom:8px}
  .lc-btn{width:100%;padding:12px 16px;text-align:center}
  .fc{width:100%;margin:0;border-radius:0;box-shadow:none}
  .fh{flex-direction:column;align-items:stretch;padding:18px 14px}
  .fh-left{align-items:flex-start}
  .fh-txt h1{font-size:1.05rem;line-height:1.25}
  .fh-txt p{font-size:.74rem}
  .btn-home,.btn-gen,.btn-add-extra,.bbk,.bpdf{min-height:44px}
  .btn-home{align-self:stretch}
  .fb{padding:20px 14px 28px}
  .st{font-size:.66rem;letter-spacing:1.2px;margin:22px 0 11px}
  .fg{grid-template-columns:1fr!important;gap:12px}
  .fl[style*="grid-column"]{grid-column:auto!important}
  .fl input,.fl select,.fl textarea{font-size:16px;min-height:44px}
  .file-input{font-size:16px}
  .extra-row{grid-template-columns:1fr auto}
  .extra-row input:first-child{grid-column:1/-1}
  .extra-row input[type="number"]{min-width:0;width:100%;max-width:none!important}
  .pared-row{grid-template-columns:1fr 82px auto}
  .pared-row input:first-child{grid-column:1/-1}
  .pared-row input{min-width:0}
  #k_paredes_wrap>div[style*="grid-template-columns"]{display:none!important}
  #k_paredes_wrap .btn-add-extra{width:100%}
  .qa{position:sticky;top:0;z-index:10;display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0;padding:10px;background:rgba(237,242,248,.96);backdrop-filter:blur(8px)}
  .qa .bpdf{grid-column:1/-1;justify-content:center}
  .bbk,.bpdf{width:100%;justify-content:center;padding:11px 12px;font-size:.82rem}
  .qdoc-wrap{width:100%;margin:0 0 28px;box-shadow:none;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
  .qh{flex-direction:column;align-items:flex-start;gap:14px;padding:18px 14px}
  .qhr .qnum,.qhr .qd,.qhr .qv{text-align:left}
  .qb{padding:20px 14px}
  .qintro{font-size:.8rem}
  .qcb,.qcb.c4,.qcb.c3{grid-template-columns:1fr}
  .qf2{border-right:none;border-bottom:1px solid var(--border)}
  .qf2:last-child{border-bottom:none}
  .resumen-cards,.qsg,.qaig,.qcg{grid-template-columns:1fr}
  .qt,.qpt{font-size:.78rem}
  .qt thead th,.qt tbody td,.qt tfoot td,.qpt td{padding:8px}
  .qt td,.qpt td{word-break:break-word}
  .qfoot{flex-direction:column;align-items:flex-start;gap:4px;padding:12px 14px}
  .qsig{flex-direction:column;align-items:stretch;gap:18px}
  div[style*="grid-template-columns:1fr 1fr 1fr 1fr 1fr"]{grid-template-columns:1fr 1fr!important}
  div[style*="grid-template-columns:1fr 1fr 1fr 1fr 1fr"]>div:last-child{grid-column:1/-1}
}

@media (max-width:380px){
  .land-card{grid-template-columns:1fr}
  .land-card .lc-icon{grid-row:auto}
  .pared-row{grid-template-columns:1fr}
  .extra-row{grid-template-columns:1fr}
  .btn-del-extra{width:100%;min-height:40px}
  .qa{grid-template-columns:1fr}
  .qa .bpdf{grid-column:auto}
}
