#quote-builder[hidden]{display:none!important}body.qb-open{overflow:hidden}#quote-builder{position:fixed;z-index:10000;inset:0;background:var(--bg,#f5f6f8);color:var(--text,#202633);display:flex;flex-direction:column;font:inherit}#quote-builder *{box-sizing:border-box}.qb-top{height:66px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--surface,#fff);padding:10px 20px;border-bottom:1px solid var(--border,#dfe2e8)}.qb-top>div:first-child{display:flex;align-items:center;gap:12px}.qb-top small{font-size:12px;color:#8c90a0}.qb-actions{display:flex;gap:8px;flex-wrap:wrap}.qb-top button{white-space:nowrap}.qb-icon{border:0;background:transparent;color:inherit;font-size:24px;cursor:pointer;border-radius:8px;padding:4px 10px}.qb-columns{min-height:0;flex:1;display:grid;grid-template-columns:minmax(275px,320px) minmax(0,1fr) minmax(245px,280px)}.qb-settings{overflow:auto;padding:21px;background:var(--surface,#fff);min-width:0}.qb-left{border-right:1px solid var(--border,#e5e7eb)}.qb-right{border-left:1px solid var(--border,#e5e7eb)}.qb-settings h3{margin:0 0 20px;font-size:16px}.qb-settings h4{font-size:13px;margin:0}.qb-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.qb-field{display:flex;flex-direction:column;gap:5px;min-width:0;margin-bottom:13px;font-size:12px;color:var(--muted,#737b8a)}.qb-field input,.qb-field select,.qb-field textarea,.qb-line input,.qb-line textarea{width:100%;min-width:0;padding:10px;border:1px solid var(--border,#dfe2e8);background:var(--surface,#fff);color:var(--text,#222);border-radius:8px;font:inherit;font-size:13px}.qb-field textarea{resize:vertical}.qb-wide,.qb-fields>.qb-field:has(textarea),.qb-fields>.qb-field:has([name="nome"]),.qb-fields>.qb-field:has([name="ragione_sociale"]),.qb-fields>.qb-field:has([name="prodotto_id"]){grid-column:1/-1}.qb-row-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:20px 0 12px}.qb-row-title button{font-size:11px!important;padding:8px!important}.qb-line{display:grid;grid-template-columns:minmax(0,1fr) 65px 62px 83px 24px;gap:5px;align-items:end;margin:8px 0;padding-bottom:12px;border-bottom:1px solid var(--border,#eee)}.qb-line label{font-size:10px;color:var(--muted,#888)}.qb-line input,.qb-line textarea{padding:7px 5px;font-size:11px}.qb-line button{padding:6px 0;font-size:17px}.qb-footnote{font-size:11px;line-height:1.5;color:var(--muted,#8a8e9a)}.qb-colors{display:grid;grid-template-columns:1fr 1fr;gap:10px}.qb-preview{min-width:0;overflow:auto;padding:28px 24px;background:#e9edf3;display:flex;justify-content:center;align-items:flex-start}.qb-page{width:min(100%,794px);flex-shrink:0}.qb-paper{width:100%;min-height:1122px;padding:70px 68px 54px;box-shadow:0 8px 30px #28324822;color:#222;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:1.65;overflow-wrap:anywhere;display:flex;flex-direction:column}.qb-paper-head{display:flex;align-items:flex-start;gap:24px;justify-content:center;text-align:center;border-bottom:2px solid var(--pdf-accent);padding-bottom:22px}.qb-paper-head img{max-width:90px;max-height:90px;object-fit:contain}.qb-paper-head h2{font-size:20px;color:var(--pdf-accent);margin:0 0 5px;letter-spacing:.4px}.qb-paper-head p{margin:1px 0;font-size:10px}.qb-paper-meta{display:flex;justify-content:space-between;margin:30px 0 16px;font-size:12px}.qb-paper-meta b{color:var(--pdf-accent)}.qb-recipient{display:flex;flex-direction:column;align-items:flex-end;min-height:70px;margin-bottom:25px}.qb-recipient small{font-weight:bold;color:var(--pdf-accent)}.qb-recipient strong{font-size:15px}.qb-paper-title{font-weight:bold;font-size:15px;margin:16px 0 10px;text-transform:uppercase}.qb-paper-section{font-weight:bold;color:var(--pdf-accent);border-bottom:1px solid #ddd;margin:20px 0 12px;padding-bottom:4px}.qb-pdf-line{display:flex;justify-content:space-between;gap:30px;align-items:flex-start;margin:17px 0;break-inside:avoid}.qb-pdf-line>div{flex:1}.qb-pdf-line small{display:block;color:#777;font-size:10px}.qb-pdf-line strong{flex-shrink:0;font-size:12px;text-align:right;white-space:nowrap}.qb-pdf-totals{margin-top:25px;border-top:1px solid #ddd;padding-top:12px}.qb-pdf-totals>div{display:flex;justify-content:space-between;gap:15px;margin:6px 0}.qb-pdf-totals .qb-grand{border-top:2px solid #222;padding-top:12px;font-size:16px}.qb-paper-notes{white-space:normal;line-height:1.7}.qb-paper-iban{margin-top:20px}.qb-paper-footer{margin-top:auto;border-top:1px solid var(--pdf-accent);padding-top:15px;text-align:center;font-size:10px;color:#606570}.qb-empty-line{color:#aaa;font-style:italic;margin:20px 0}html[data-theme=dark] .qb-preview{background:#232836}html[data-theme=dark] .qb-paper{color:#222}@media(max-width:1200px){.qb-columns{grid-template-columns:280px minmax(0,1fr) 240px}.qb-settings{padding:14px}.qb-preview{padding:15px}.qb-paper{padding:48px 42px;min-height:980px}}@media(max-width:900px){.qb-columns{grid-template-columns: minmax(0,1fr) minmax(0,1fr)}.qb-preview{grid-column:1/-1;grid-row:2}.qb-right{border-left:1px solid var(--border,#ddd)}.qb-settings{max-height:44vh}.qb-columns{overflow:auto}.qb-preview{overflow:visible}.qb-top small{display:none}}@media(max-width:560px){.qb-top{height:auto;min-height:76px;padding:9px 12px;flex-wrap:wrap}.qb-actions{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.qb-actions button{font-size:11px;padding:8px 3px}.qb-columns{display:block;overflow:auto}.qb-settings{max-height:none;overflow:visible}.qb-preview{padding:12px}.qb-paper{min-height:650px;padding:30px 25px;font-size:9px}.qb-paper-head h2{font-size:15px}.qb-paper-head p{font-size:8px}.qb-paper-meta,.qb-pdf-line strong{font-size:9px}.qb-grand strong{font-size:11px}}@media print{@page{size:A4;margin:0}body>*:not(#quote-builder){display:none!important}#quote-builder{position:static;display:block!important;background:white!important}#quote-builder .qb-top,#quote-builder .qb-settings{display:none!important}.qb-columns{display:block!important}.qb-preview{padding:0!important;display:block!important;overflow:visible!important;background:#fff!important}.qb-page{width:210mm!important}.qb-paper{width:210mm!important;min-height:297mm!important;box-shadow:none!important;padding:18mm 18mm 14mm!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}.qb-pdf-line{break-inside:avoid}}

/* v8.5: l'anteprima e' un documento A4, indipendente dal tema UI. */
.qb-preview{background:#e9ecf2!important;overflow:auto;align-items:flex-start}
.qb-page{width:min(100%,794px);min-width:0;max-width:794px;flex-shrink:1;margin:0 auto}
.qb-paper{background:#fff!important;color:#202020!important;width:100%;min-height:0;aspect-ratio:210 / 297;box-shadow:0 6px 25px rgba(30,39,58,.16);padding:7% 7% 5%;font-family:Arial,Helvetica,sans-serif;line-height:1.55;overflow:visible}
.qb-paper-head{border-bottom:0;flex-direction:column;align-items:center;gap:9px;padding-bottom:12px}
.qb-paper-head h2{color:var(--pdf-accent);font-weight:800;font-size:18px}
.qb-paper-head img{max-width:65px;max-height:65px}
.qb-paper-meta{margin:21px 0 9px}
.qb-recipient{margin-bottom:22px;align-items:flex-end;text-align:right}
.qb-paper-title{font-size:14px;margin:9px 0 5px}
.qb-paper-section{border:0;color:#202020;margin:13px 0 12px}
.qb-pdf-line{margin:14px 0 19px}
.qb-pdf-totals{border:0;margin-top:22px}
.qb-pdf-totals .qb-grand{border-top:1px solid #444}
html[data-theme=dark] .qb-preview{background:#262a35!important}
html[data-theme=dark] .qb-paper,body.dark .qb-paper{background:#fff!important;color:#202020!important;color-scheme:light}
@media(max-width:900px){.qb-paper{aspect-ratio:auto;min-height:0;padding:7%;}.qb-page{max-width:720px}}
@media(max-width:560px){.qb-paper{padding:6%;font-size:10px}.qb-paper-head h2{font-size:13px}.qb-preview{padding:10px!important}}
@media print{.qb-paper{aspect-ratio:auto!important;min-height:297mm!important;background:#fff!important;color:#222!important;box-shadow:none!important;padding:18mm!important}.qb-page{max-width:none!important}}

/* v8.6: facsimile A4 sempre visibile, con sola intestazione all'apertura */
#quote-builder .qb-template-paper{display:flex!important;flex-direction:column!important;position:relative!important;background:#fff!important;color:#222!important;min-height:1122px!important;aspect-ratio:auto!important;overflow:visible!important;box-shadow:0 8px 24px #15192522!important;padding:22px 54px 44px!important;font-family:Arial,Helvetica,sans-serif!important;}
#quote-builder .qb-template-header{width:100%;height:125px;display:flex;align-items:flex-start;justify-content:center;flex-shrink:0;}
#quote-builder .qb-template-header img{display:block!important;max-width:280px!important;width:57%!important;max-height:115px!important;height:auto!important;object-fit:contain!important;}
#quote-builder .qb-company-extra{text-align:center;font-size:10px;margin:-12px 0 12px;color:#555;}
#quote-builder .qb-template-body{font-size:13px;line-height:1.55;margin-top:20px;}
#quote-builder .qb-template-body .qb-recipient{display:flex;align-items:flex-end;text-align:right;margin:0 0 35px;}
#quote-builder .qb-template-title{margin-bottom:27px;line-height:1.55;font-size:14px;}
#quote-builder .qb-template-total{margin-top:55px;font-size:18px;}
#quote-builder .qb-template-notes{margin-top:25px;white-space:pre-wrap;}
#quote-builder .qb-template-footer{margin-top:auto;font-size:10px;text-align:center;}
@media(max-width:560px){#quote-builder .qb-template-paper{min-height:680px!important;padding:15px 18px 30px!important}#quote-builder .qb-template-header{height:100px}#quote-builder .qb-template-header img{width:70%!important}}
@media print{#quote-builder .qb-template-paper{min-height:297mm!important;padding:8mm 18mm 14mm!important;box-shadow:none!important}}

/* v8.7: modello fisso preventivo e pannello destro ridotto */
.qb-right-minimal{display:flex;flex-direction:column;gap:10px}
.qb-right-minimal .qb-field{max-width:100%}
.qb-template-paper{min-height:1122px!important;padding:22px 54px 34px!important;display:flex!important;flex-direction:column!important;position:relative!important}
.qb-template-header{width:100%;height:125px;display:flex;align-items:flex-start;justify-content:center;flex-shrink:0}
.qb-template-header img{display:block!important;max-width:280px!important;width:57%!important;max-height:115px!important;height:auto!important;object-fit:contain!important}
.qb-template-body{margin-top:18px;line-height:1.6;color:#222}
.qb-template-empty{min-height:620px}
.qb-recipient{display:flex;flex-direction:column;align-items:flex-end;text-align:right;margin:0 0 38px;font-style:italic}
.qb-template-title{margin-bottom:24px;line-height:1.55}
.qb-template-total{margin-top:28px;font-size:18px}
.qb-template-notes{margin-top:20px;white-space:pre-wrap}
.qb-fixed-footer{margin-top:auto;padding-top:26px;font-size:10px;color:#333}
.qb-footer-lines{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.qb-footer-lines span{display:block;width:28%;border-top:1px solid #5f5f5f}
.qb-footer-company{text-align:center;font-weight:700;font-size:11px;margin-bottom:14px}
.qb-footer-meta{display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:flex-start;color:#264f80;font-size:9px}
.qb-footer-meta div:nth-child(5), .qb-footer-meta div:nth-child(6), .qb-footer-meta div:nth-child(7){color:#333}
.qb-footer-brands{text-align:right;color:#264f80;font-weight:700;font-size:12px;margin-top:8px}
@media(max-width:900px){.qb-columns{grid-template-columns:280px minmax(0,1fr)!important}.qb-right{grid-column:1/-1;border-left:0!important;border-top:1px solid var(--border,#ddd)}}
@media(max-width:560px){.qb-template-paper{padding:14px 18px 22px!important}.qb-template-empty{min-height:360px}.qb-footer-company{font-size:9px}.qb-footer-meta{font-size:8px}.qb-footer-brands{font-size:10px;text-align:left}}
@media print{.qb-fixed-footer{padding-top:18mm}.qb-template-empty{min-height:150mm}}

/* 8.8 - layout senza sovrapposizioni: larghezze minime e scorrimento */
#quote-builder .qb-columns{grid-template-columns:minmax(350px,390px) minmax(0,1fr) minmax(210px,235px)}
#quote-builder .qb-settings{min-width:0;overflow-x:hidden}
#quote-builder .qb-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#quote-builder .qb-field{min-width:0;max-width:100%;overflow-wrap:anywhere}
#quote-builder .qb-field>span{display:block;line-height:1.35;min-height:16px}
#quote-builder .qb-field input,#quote-builder .qb-field textarea,#quote-builder .qb-field select{width:100%;min-width:0;max-width:100%;box-sizing:border-box;height:auto;min-height:40px}
#quote-builder .qb-field:has([name="partita_iva_cliente"]),#quote-builder .qb-field:has([name="iban_cliente"]),#quote-builder .qb-field:has([name="prezzo_mq"]){grid-column:1/-1}
#quote-builder .qb-line{grid-template-columns:minmax(0,1fr) 55px 54px 75px 22px;gap:5px}
#quote-builder .qb-line label{min-width:0;overflow-wrap:anywhere}
#quote-builder .qb-line textarea,#quote-builder .qb-line input{box-sizing:border-box;min-width:0;max-width:100%;width:100%}
#quote-builder .qb-components{margin-top:15px;border-top:1px solid var(--border,#ddd);padding-top:14px}
#quote-builder .qb-components h4{font-size:13px;margin-bottom:10px}
#quote-builder .qb-component-row{display:flex;gap:4px;flex-direction:column;padding:9px 0;border-bottom:1px solid var(--border,#eee);font-size:12px}
#quote-builder .qb-component-row small{color:#20855c}
#quote-builder .qb-component-row .qb-shortage{color:#cf4654;font-weight:600}
#quote-builder .qb-bom-document{margin:20px 0 15px;border-top:1px solid #e5e5e5;padding-top:10px}
#quote-builder .qb-bom-document>div{display:flex;align-items:baseline;justify-content:space-between;gap:18px;margin:7px 0}
#quote-builder .qb-template-header img{object-fit:contain!important;max-height:108px!important;width:auto!important;max-width:250px!important}
@media(max-width:1150px){#quote-builder .qb-columns{grid-template-columns:minmax(320px,360px) minmax(0,1fr)}#quote-builder .qb-right{grid-column:1/-1}}
@media(max-width:700px){#quote-builder .qb-columns{display:flex;flex-direction:column;overflow:auto}#quote-builder .qb-settings{overflow:visible;max-height:none}#quote-builder .qb-preview{order:0}#quote-builder .qb-left{order:1}#quote-builder .qb-right{order:2}#quote-builder .qb-fields{grid-template-columns:repeat(2,minmax(0,1fr))}#quote-builder .qb-line{grid-template-columns:minmax(0,1fr) 55px 55px 75px 22px}}
@media(max-width:390px){#quote-builder .qb-fields{grid-template-columns:1fr}#quote-builder .qb-line{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}#quote-builder .qb-line label:first-child{grid-column:1/-1}#quote-builder .qb-line button{grid-column:2;justify-self:end}}
/* v8.9 - elenco prodotti/impianti multipli */
.qb-catalog-line{border:1px solid var(--border,#e2e5ed);border-radius:12px;padding:12px;margin:12px 0;background:var(--surface,#fff);min-width:0}
.qb-catalog-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.qb-catalog-head button{font-size:11px;padding:5px 9px}
.qb-catalog-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:9px}
.qb-catalog-fields label{display:flex;flex-direction:column;font-size:11px;gap:5px;color:var(--muted,#737b8a);min-width:0}
.qb-catalog-fields input,.qb-catalog-fields select{width:100%;min-width:0;max-width:100%;border:1px solid var(--border,#dfe2e8);border-radius:7px;padding:9px 7px;background:var(--surface,#fff);color:var(--text,#222);font-size:12px}
.qb-line-components{border-top:1px solid var(--border,#e2e5ed);margin-top:12px;padding-top:9px;font-size:11px;line-height:1.8}
.qb-line-components small{color:var(--muted,#777)}
.qb-legacy-only,.qb-left [name="mq"],.qb-left [name="prezzo_mq"]{display:none!important}
.qb-left [name="mq"] + *, .qb-left [name="prezzo_mq"] + *{display:none}
.qb-left label:has(> input[name="mq"]),.qb-left label:has(> input[name="prezzo_mq"]){display:none!important}
.qb-bom-document{font-size:.85em;margin-top:8px;padding-left:10px;color:#555}
@media(max-width:450px){.qb-catalog-fields{grid-template-columns:1fr}}

.qb-residual-list{display:grid;gap:8px;margin:10px 0}.qb-residual-row{display:grid;gap:4px;padding:10px;border:1px solid var(--border,#ddd);border-radius:9px;font-size:12px}.qb-residual-row span:nth-child(2){color:var(--muted,#666);font-size:11px}.qb-residual-row strong{color:#17845c}.qb-residual-row strong.qb-shortage{color:#d64444}

/* v9.1 - spaziatura documento coerente con PDF A4 */
#quote-builder .qb-page{width:min(100%,794px);max-width:794px}
#quote-builder .qb-template-paper{box-sizing:border-box;min-height:1122px!important;padding:28px 79px 54px!important}
#quote-builder .qb-template-body{margin-top:12px!important;line-height:1.38!important;white-space:normal;overflow-wrap:break-word;word-break:normal}
#quote-builder .qb-template-title{margin-bottom:26px!important;line-height:1.38!important}
#quote-builder .qb-pdf-line{display:grid!important;grid-template-columns:minmax(0,1fr) 145px;align-items:start!important;column-gap:18px!important;margin:0 0 22px!important;padding:0!important;break-inside:avoid}
#quote-builder .qb-pdf-line>div{min-width:0;line-height:1.38}
#quote-builder .qb-pdf-line>strong{font-size:inherit!important;font-weight:400!important;text-align:right!important;white-space:nowrap;align-self:start}
#quote-builder .qb-bom-document{margin:5px 0 0!important;padding:0 0 0 12px!important;border:0!important;font-size:.84em!important;line-height:1.38!important}
#quote-builder .qb-bom-document>div{display:block!important;margin:2px 0!important}
#quote-builder .qb-template-total{margin-top:20px!important;font-size:1.2em!important}
#quote-builder .qb-template-notes{white-space:pre-wrap!important;line-height:1.38!important;margin-top:18px!important}
#quote-builder .qb-recipient{margin-bottom:35px!important;line-height:1.38!important}
@media(max-width:700px){#quote-builder .qb-template-paper{padding:20px 7%!important}#quote-builder .qb-pdf-line{grid-template-columns:minmax(0,1fr) 85px!important;gap:10px!important}}

/* v9.4 - spaziature del form preventivi e feedback salvataggio */
#quote-builder .qb-columns{grid-template-columns:minmax(400px,430px) minmax(0,1fr) minmax(200px,220px);}
#quote-builder .qb-left{padding:24px 22px 32px!important;}
#quote-builder .qb-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:14px;row-gap:4px;align-items:start;}
#quote-builder .qb-field{margin:0 0 13px!important;display:flex;flex-direction:column;gap:7px;}
#quote-builder .qb-field>span{min-height:0!important;line-height:1.45;}
#quote-builder .qb-field input,#quote-builder .qb-field select,#quote-builder .qb-field textarea{line-height:1.35;min-height:42px;}
#quote-builder .qb-row-title{margin-top:22px;display:flex;flex-wrap:wrap;align-items:center;gap:12px;}
#quote-builder .qb-row-title h4{flex:1 1 155px;line-height:1.35;}
#quote-builder .qb-catalog-line{padding:15px;margin:14px 0;}
#quote-builder .qb-catalog-fields{column-gap:12px;row-gap:13px;}
#quote-builder .qb-catalog-fields label{line-height:1.4;gap:7px;}
#quote-builder .qb-save-feedback{font-size:12px;max-width:220px;line-height:1.35;}
#quote-builder .qb-save-ok{color:#158554;font-weight:700;}
#quote-builder .qb-save-error{color:#cb414d;font-weight:700;}
@media(max-width:1270px){#quote-builder .qb-columns{grid-template-columns:minmax(350px,395px) minmax(0,1fr)!important}}
@media(max-width:700px){#quote-builder .qb-columns{display:flex!important;flex-direction:column!important}#quote-builder .qb-left{padding:18px 15px!important}#quote-builder .qb-save-feedback{max-width:none;width:100%;}}
@media(max-width:420px){#quote-builder .qb-fields,#quote-builder .qb-catalog-fields{grid-template-columns:1fr!important}}

/* v10: dati anagrafici recuperati dal catalogo clienti/fornitori */
#quote-builder .qb-contact-autofill{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:5px 12px;padding:10px 12px;background:var(--surface-secondary,#f6f7fa);border:1px solid var(--border,#e3e5e9);border-radius:9px;font-size:12px;color:var(--text,#2d3240);min-width:0;overflow-wrap:anywhere}
#quote-builder .qb-contact-autofill strong{width:100%;font-weight:700}

#quote-builder .qb-customer-field{position:relative;min-width:0}
#quote-builder .qb-customer-field>label{font-size:11px;color:var(--text-muted,#687082)}
#quote-builder .qb-customer-options{position:absolute;top:100%;left:0;right:0;width:100%;max-height:220px;overflow-y:auto;overflow-x:hidden;z-index:30;box-sizing:border-box;margin-top:4px;padding:5px;border:1px solid var(--border,#d9dce6);border-radius:8px;background:var(--surface,#fff);box-shadow:0 8px 20px #0002;overscroll-behavior:contain}
#quote-builder .qb-customer-options button{display:block;width:100%;max-width:100%;padding:9px 10px;border:0;border-radius:5px;text-align:left;background:transparent;color:var(--text,inherit);font:inherit;white-space:normal;overflow-wrap:anywhere}
#quote-builder .qb-customer-options button:hover,#quote-builder .qb-customer-options button:focus-visible{background:rgba(120,99,216,.12)}
#quote-builder .qb-customer-options strong{display:block;font-size:12px;line-height:1.4}
#quote-builder .qb-customer-options small{display:block;margin-top:3px;font-size:11px;line-height:1.4;color:var(--text-muted,#777b8c)}
#quote-builder .qb-customer-options p{font-size:12px;line-height:1.5;margin:8px;white-space:normal}
