.quote-workspace{display:grid;grid-template-columns:minmax(360px,1fr) minmax(360px,460px);gap:26px;align-items:start}
.quote-editor{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.quote-editor-head{padding:20px 22px;border-bottom:1px solid var(--line)}
.quote-editor-head h3{font-family:Nunito,sans-serif;font-size:18px;margin:0 0 4px}.quote-editor-head p{color:var(--muted);font-size:13px;margin:0}
.quote-form{padding:20px 22px}.quote-form .field{margin-bottom:14px}.quote-form .field small{display:block;color:var(--muted);font-size:11px;line-height:1.4;margin-top:5px}
.quote-items-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0 10px}.quote-items-head h4{margin:0;font-size:14px}
.quote-item-list{display:grid;gap:9px}.quote-item-row{display:grid;grid-template-columns:minmax(0,1fr) 135px 38px;gap:8px;align-items:center}.quote-item-row .input{padding:11px 12px}
.quote-remove{width:38px;height:38px;border:1px solid var(--line);border-radius:11px;background:#fff;color:#9b4b57;font-size:18px;line-height:1}.quote-remove:hover{background:#fff1f3}
.quote-summary-input{margin-top:20px;padding-top:18px;border-top:1px dashed var(--line)}.quote-tools{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}.quote-tools .btn{flex:1}
.quote-preview-wrap{position:sticky;top:18px}.quote-preview-label{display:flex;justify-content:space-between;align-items:center;margin:0 0 10px;color:var(--muted);font-size:11px;font-weight:900;letter-spacing:.08em}
.quote-receipt{position:relative;isolation:isolate;width:100%;aspect-ratio:1/1;overflow:hidden;background:#ffb9d2;color:#562a3c;border:0;border-radius:28px;box-shadow:0 22px 65px rgba(132,63,90,.22);padding:27px 30px 24px;font-family:Nunito,Arial,sans-serif;display:flex;flex-direction:column}
.quote-receipt:before,.quote-receipt:after{content:"";position:absolute;z-index:-1;border-radius:50%;background:rgba(255,255,255,.28)}
.quote-receipt:before{width:210px;height:210px;right:-92px;top:-108px}.quote-receipt:after{width:150px;height:150px;left:-70px;bottom:-80px}
.quote-sparkle{position:absolute;color:#fff29d;font-weight:900;text-shadow:0 2px 0 rgba(255,255,255,.35)}.quote-sparkle-one{font-size:25px;left:26px;top:31px;transform:rotate(-12deg)}.quote-sparkle-two{font-size:18px;right:32px;top:84px;transform:rotate(12deg)}
.quote-receipt-brand{text-align:center;height:68px}.quote-receipt-logo{display:block;width:104px;height:auto;margin:-7px auto 0;filter:drop-shadow(0 4px 8px rgba(117,57,80,.12))}
.quote-kicker{text-align:center;text-transform:uppercase;font-size:9px;font-weight:900;letter-spacing:.15em;color:#9d4769;margin-top:2px}
.quote-person{text-align:center;font-size:21px;font-weight:900;line-height:1.1;margin-top:4px;color:#502438}
.quote-event{text-align:center;font-size:11px;font-weight:700;color:#8d4964;margin-top:3px;min-height:14px}
.quote-title-wrap{text-align:center;margin:13px 0 11px}.quote-title-wrap span{display:block;font-size:8px;font-weight:900;letter-spacing:.18em;color:#a54a6d;margin-bottom:3px}
.quote-doc-title{font-family:Nunito,sans-serif;text-align:center;font-size:24px;line-height:1.02;font-weight:900;letter-spacing:.035em;margin:0;color:#fff;text-shadow:0 2px 0 rgba(123,48,78,.16)}
.quote-list-card{background:#fffafc;border:2px solid rgba(255,255,255,.72);border-radius:20px;padding:14px 16px 13px;box-shadow:0 10px 25px rgba(130,56,86,.12)}
.quote-lines{width:100%;border-collapse:collapse;font-size:12px}.quote-lines th{font-size:9px;letter-spacing:.09em;color:#b05377;text-transform:uppercase;border-bottom:2px solid #f4b5ca;padding:0 0 8px;text-align:left}.quote-lines th:last-child,.quote-lines td:last-child{text-align:right}
.quote-lines td{padding:8px 0;border-bottom:1px dashed #f2c7d6;vertical-align:top;font-weight:700}.quote-lines td:first-child{padding-right:10px}.quote-empty-line{color:#bf8a9e;font-style:italic}
.quote-totals{margin-top:9px;display:grid;gap:4px}.quote-total-row{display:flex;justify-content:space-between;gap:14px;font-size:10px;align-items:center}.quote-total-row span{color:#9e5871;font-weight:800}.quote-total-row strong{font-size:11px;font-variant-numeric:tabular-nums;color:#55263a}
.quote-total-row.balance{background:#fff0a8;border:0;border-radius:12px;padding:8px 10px;margin-top:5px;font-size:12px}.quote-total-row.balance span{color:#7f3b54;font-weight:900}.quote-total-row.balance strong{font-size:19px;color:#dc4f84}
.quote-note{text-align:center;margin:9px 12px 0;font-size:9px;line-height:1.35;color:#7e4159;white-space:pre-wrap;font-weight:700}
.quote-receipt-footer{margin-top:auto;display:flex;align-items:end;justify-content:space-between;gap:10px;color:#984564;font-size:8px;padding:9px 3px 0}.quote-receipt-footer strong{color:#fff;font-size:10px;letter-spacing:.02em}
.quote-compact{padding-top:22px;padding-bottom:19px}.quote-compact .quote-receipt-brand{height:57px}.quote-compact .quote-receipt-logo{width:88px}.quote-compact .quote-title-wrap{margin:8px 0}.quote-compact .quote-doc-title{font-size:21px}.quote-compact .quote-list-card{padding-top:10px;padding-bottom:10px}.quote-compact .quote-lines td{padding:5px 0}.quote-compact .quote-note{margin-top:6px}
.quote-save-note{color:var(--muted);font-size:11px;margin:9px 0 0;line-height:1.45}
@media(max-width:930px){.quote-workspace{grid-template-columns:1fr}.quote-preview-wrap{position:static}.quote-receipt{max-width:460px;margin:auto}}
@media(max-width:620px){.quote-editor-head,.quote-form{padding-left:16px;padding-right:16px}.quote-item-row{grid-template-columns:minmax(0,1fr) 105px 38px}.quote-tools{flex-direction:column}.quote-tools .btn{width:100%}.quote-receipt{padding:23px 22px 20px;border-radius:23px}.quote-doc-title{font-size:21px}.quote-person{font-size:18px}}
@media print{body{background:#fff!important}body *{visibility:hidden!important}.quote-receipt,.quote-receipt *{visibility:visible!important}.quote-receipt{position:absolute!important;left:0!important;top:0!important;width:180mm!important;height:180mm!important;max-width:none!important;margin:0!important;padding:12mm!important;border:0!important;box-shadow:none!important;border-radius:0!important}@page{size:180mm 180mm;margin:0}}