:root{--bg:#f3f0e8;--surface:#fffdf7;--surface-strong:#f7f2e8;--ink:#1f1d18;--muted:#6d6557;--border:#d7ccbb;--accent:#244034;--accent-soft:#dce7df;--danger:#a33e2d;--danger-soft:#f5ddd7;--warning:#8a6100;--warning-soft:#f8edc7;--success:#1f6b49;--success-soft:#d9ede2;--shadow:0 14px 40px #1f1d1814;--radius:18px;--font-sans:"Segoe UI", "Aptos", "Helvetica Neue", sans-serif}*{box-sizing:border-box}html{font-family:var(--font-sans);color:var(--ink);background:linear-gradient(#ece6da 0%,#f7f3eb 100%)}body{min-height:100vh;margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.topbar{z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffdf7eb;border-bottom:1px solid #d7ccbbcc;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.5rem;display:flex;position:sticky;top:0}.brand{align-items:center;gap:.75rem;display:flex}.brand-copy{flex-direction:column;gap:.15rem;display:flex}.topbar-logo{object-fit:contain;width:92px;max-width:22vw;height:auto;max-height:36px}.brand-title{letter-spacing:.04em;text-transform:uppercase;font-size:1rem;font-weight:700}.brand-subtitle{color:var(--muted);font-size:.88rem}.nav-links{flex-wrap:wrap;gap:.6rem;display:flex}.nav-link{color:var(--muted);border-radius:999px;padding:.65rem .95rem;transition:background .2s,color .2s}.nav-link:hover,.nav-link[data-active=true]{background:var(--accent-soft);color:var(--accent)}.page-wrap{width:min(1360px,100vw - 2rem);margin:0 auto;padding:1.5rem 0 3rem}.page-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.page-title{margin:0;font-size:clamp(1.8rem,3vw,2.7rem);line-height:1.05}.page-subtitle{color:var(--muted);max-width:60rem;margin:.35rem 0 0}.panel,.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.panel{padding:1.25rem}.card{padding:1rem 1.1rem}.grid{gap:1rem;display:grid}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.stack{flex-direction:column;gap:1rem;display:flex}.inline{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.field{flex-direction:column;gap:.4rem;display:flex}.field label{font-size:.9rem;font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--border);background:#fff;border-radius:12px;width:100%;padding:.8rem .9rem}.field[data-invalid=true] input,.field[data-invalid=true] select,.field[data-invalid=true] textarea{border-color:#d35a49;box-shadow:0 0 0 1px #d35a491f}.field textarea{resize:vertical;min-height:120px}.field-hint,.muted{color:var(--muted);font-size:.88rem}.field-error{color:var(--danger);font-size:.86rem}.button-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.button,.button-secondary,.button-danger,.button-ghost{border:1px solid #0000;border-radius:12px;padding:.8rem 1rem;font-weight:600}.button{background:var(--accent);color:#fff}.button-secondary{background:var(--surface-strong);color:var(--ink);border-color:var(--border)}.button-danger{background:var(--danger);color:#fff}.button-ghost{border-color:var(--border);color:var(--ink);background:0 0}.button:disabled,.button-secondary:disabled,.button-danger:disabled,.button-ghost:disabled{opacity:.55;cursor:not-allowed}.status-pill{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;align-items:center;padding:.35rem .7rem;font-size:.8rem;font-weight:700;display:inline-flex}.status-pill[data-status=DRAFT]{color:#5d5240;background:#ebe7dd}.status-pill[data-status=SENT]{color:#2e5b90;background:#dbe8f8}.status-pill[data-status=APPROVED]{background:var(--success-soft);color:var(--success)}.status-pill[data-status=COMPLETED]{color:#185b40;background:#d6efe6}.status-pill[data-status=REJECTED]{background:var(--danger-soft);color:var(--danger)}.summary-card-label{color:var(--muted);margin:0 0 .4rem;font-size:.88rem}.summary-card-value{margin:0;font-size:1.9rem;font-weight:700}.summary-card-detail{color:var(--muted);margin:.5rem 0 0;font-size:.86rem}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{vertical-align:top;text-align:left;border-bottom:1px solid #ece3d6;padding:.85rem .7rem}th{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:.83rem}.empty-state,.notice,.error-box,.success-box{border-radius:14px;padding:1rem 1.1rem}.empty-state,.notice{background:var(--surface-strong);border:1px solid var(--border)}.error-box{background:var(--danger-soft);color:var(--danger);border:1px solid #e8bfb6}.success-box{background:var(--success-soft);color:var(--success);border:1px solid #b7d8c4}.quote-builder{grid-template-columns:minmax(0,2fr) minmax(320px,.95fr);align-items:start;gap:1rem;display:grid}.sticky-sidebar{position:sticky;top:6rem}.quote-form-banner{grid-template-columns:1.25fr .75fr;align-items:start;gap:1rem;display:grid}.quote-form-banner-label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.45rem;font-size:.82rem;font-weight:700}.quote-form-banner-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;display:grid}.material-toggle-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.material-toggle{border:1px solid var(--border);background:#fff;border-radius:14px;justify-content:space-between;align-items:center;gap:.75rem;padding:.9rem 1rem;display:flex}.material-toggle[data-selected=true]{background:var(--accent-soft);border-color:#a5c0b1}.material-section{background:#fffdfa;border:1px solid #e8ded1;border-radius:16px;padding:1rem}.quote-notes-grid{align-items:start}.quote-quick-links{flex-wrap:wrap;gap:.6rem;display:flex}.quote-preview-hero{background:linear-gradient(135deg,#f8f4eb 0%,#fffdf7 100%);border:1px solid #e8ded1;border-radius:16px;grid-template-columns:1.1fr .9fr;gap:.85rem;margin-bottom:1rem;padding:1rem;display:grid}.customer-selector{gap:.75rem}.customer-results{gap:.6rem;max-height:320px;display:grid;overflow-y:auto}.same-address-toggle{margin-top:-.25rem}.checkbox-inline{color:var(--ink);align-items:center;gap:.55rem;font-weight:600;display:inline-flex}.checkbox-inline input{width:1rem;height:1rem}.customer-result{border:1px solid var(--border);text-align:left;background:#fff;border-radius:14px;flex-direction:column;gap:.25rem;width:100%;padding:.85rem .95rem;display:flex}.customer-result[data-selected=true]{background:var(--accent-soft);border-color:#a5c0b1}.customer-result-title{font-weight:700}.customer-result-meta{color:var(--muted);font-size:.84rem}.selected-customer-card{background:#f3f8f4;border:1px solid #b9ceb7;border-radius:14px;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem .95rem;display:flex}.quote-save-actions{flex-direction:column;align-items:stretch}.material-section-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.75rem;display:flex}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;display:grid}.detail-item{background:var(--surface-strong);border-radius:14px;padding:.85rem}.detail-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.25rem;font-size:.8rem;display:block}.detail-value{font-weight:600}.section-heading{margin:0 0 .75rem;font-size:1.15rem}.split{grid-template-columns:1.2fr .8fr;gap:1rem;display:grid}.quote-sheet{border:1px solid var(--border);box-shadow:var(--shadow);background:#fff;border-radius:24px;padding:1rem 1.05rem}.quote-sheet-compact{flex-direction:column;gap:.65rem;display:flex}.quote-sheet-header,.quote-sheet-section,.quote-sheet-footer{border-bottom:none;margin:0;padding:0}.quote-sheet-eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 .15rem;font-size:.72rem}.quote-sheet-title{margin:0;font-size:clamp(1.55rem,2.6vw,2rem)}.quote-sheet-subtitle{color:var(--muted);max-width:42rem;margin:.2rem 0 0;font-size:.9rem}.proposal-services-table-wrap{border:1px solid #ded5c7;border-radius:14px;overflow-x:auto}.proposal-services-table{border-collapse:collapse;width:100%}.proposal-services-table thead{background:#f5f1e8}.proposal-services-table th,.proposal-services-table td{vertical-align:top;padding:.48rem .62rem;line-height:1.2}.proposal-service-name{min-width:170px;font-weight:700}.proposal-service-qty{text-align:center;white-space:nowrap;width:76px}.proposal-service-details{color:var(--muted);font-size:.88rem}.proposal-service-amount{text-align:right;white-space:nowrap;min-width:100px;font-weight:700}.proposal-total-divider{background:#d9cfbf;height:1px;margin:.25rem 0}.quote-meta-row{justify-content:space-between;align-items:flex-start;gap:1rem;padding:.12rem 0;display:flex}.quote-meta-row span{color:var(--muted);font-size:.84rem}.quote-sheet-disclaimer{background:#faf7ef;border:1px solid #e7ddcf;border-radius:12px;padding:.58rem .72rem}.quote-sheet-disclaimer p{color:var(--muted);margin:.18rem 0 0;font-size:.82rem}.proposal-header-compact{border-bottom:1px solid #e4dbcf;gap:.6rem;padding-bottom:.55rem;display:grid}.proposal-brand-bar{grid-template-columns:auto 1fr;align-items:center;gap:.75rem;display:grid}.proposal-logo{object-fit:contain;width:110px;max-width:100%;height:auto}.proposal-brand-copy{min-width:0}.proposal-company-name{font-size:1.25rem;font-weight:700;line-height:1.05}.proposal-company-address{color:var(--muted);margin-top:.14rem;font-size:.8rem}.proposal-company-contact{color:var(--muted);flex-wrap:wrap;gap:.22rem .7rem;margin-top:.18rem;font-size:.8rem;display:flex}.proposal-title-row{grid-template-columns:1.2fr .8fr;align-items:start;gap:.75rem;display:grid}.proposal-title-compact{font-size:1.6rem}.proposal-subtitle-compact{margin-top:.1rem;font-size:.84rem}.proposal-intro-copy{color:var(--muted);margin:.22rem 0 0;font-size:.8rem}.proposal-expiration-copy{color:var(--ink);margin:.16rem 0 0;font-size:.78rem;font-weight:600}.proposal-flexibility-section{background:#fffdf8;border:1px solid #e4dbcf;border-radius:14px;padding:.54rem .68rem}.proposal-flexibility-copy{color:var(--muted);white-space:pre-line;margin:0;font-size:.78rem;line-height:1.42}.proposal-pill-stack{gap:.4rem;display:grid}.proposal-emphasis-card{background:#f4f0e7;border:1px solid #ddd3c5;border-radius:14px;padding:.6rem .74rem}.proposal-emphasis-card span{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.78rem;display:block}.proposal-emphasis-card strong{margin-top:.15rem;font-size:1.15rem;line-height:1.1;display:block}.proposal-emphasis-card-secondary strong{font-size:1rem}.proposal-summary-grid{grid-template-columns:1fr 1fr;align-items:stretch;gap:.6rem;display:grid}.proposal-summary-panel,.proposal-totals-card-compact,.proposal-acceptance-block{background:#fffdf8;border:1px solid #e4dbcf;border-radius:14px;padding:.62rem .74rem}.proposal-summary-panel{flex-direction:column;height:100%;display:flex}.proposal-grid-heading{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.36rem;font-size:.74rem;font-weight:700}.proposal-detail-grid{grid-template-columns:1fr 1fr;gap:.35rem .65rem;display:grid}.proposal-meta-pair{flex-direction:column;gap:.1rem;display:flex}.proposal-meta-pair span{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.76rem}.proposal-meta-pair strong{font-size:.88rem;font-weight:600;line-height:1.15}.proposal-meta-pair-wide{grid-column:1/-1}.proposal-notes-block{border-top:1px solid #ece3d6;margin-top:.45rem;padding-top:.4rem}.proposal-notes-copy{color:var(--muted);white-space:pre-wrap;margin:0;font-size:.84rem;line-height:1.35}.proposal-services-section{gap:.36rem;display:grid}.proposal-bottom-grid{grid-template-columns:1.15fr .85fr;align-items:start;gap:.6rem;display:grid}.proposal-bottom-column{gap:.48rem;display:grid}.proposal-disclaimer-compact{margin:0}.proposal-acceptance-copy{color:var(--muted);margin:0;font-size:.8rem;line-height:1.28}.proposal-signature-grid,.quote-signature-grid{grid-template-columns:1fr 1fr;gap:.65rem;margin-top:.42rem;display:grid}.signature-line{flex-direction:column;gap:.3rem;display:flex}.signature-line-compact{grid-column:span 2;max-width:11rem}.signature-line-rule{background:#8c8476;height:1px;margin-top:.78rem}.signature-line span{color:var(--muted);font-size:.78rem}.quote-sheet-footer-copy{color:var(--muted);flex-wrap:wrap;gap:.18rem .65rem;font-size:.72rem;display:flex}.proposal-footer-compact{border-top:1px solid #e4dbcf;padding-top:.28rem}.document-sheet{border:1px solid var(--border);box-shadow:var(--shadow);background:#fff;border-radius:24px;padding:1rem 1.05rem}.document-sheet-inner{flex-direction:column;gap:.7rem;display:flex}.document-header{border-bottom:1px solid #e4dbcf;gap:.6rem;padding-bottom:.55rem;display:grid}.document-brand-bar{grid-template-columns:auto 1fr;align-items:center;gap:.75rem;display:grid}.document-header-grid{grid-template-columns:1.2fr .8fr;align-items:start;gap:.75rem;display:grid}.document-two-column{grid-template-columns:1fr 1fr;gap:.6rem;display:grid}.document-copy{color:var(--muted);white-space:pre-line;margin:0;font-size:.82rem;line-height:1.45}.document-sheet .proposal-summary-panel{box-shadow:none}.document-sheet .proposal-services-section,.document-sheet .proposal-summary-grid,.document-sheet .document-two-column{gap:.7rem}.document-sheet .proposal-services-table{table-layout:fixed}.document-sheet .proposal-services-table th,.document-sheet .proposal-services-table td{vertical-align:top;padding:.42rem .5rem}.document-sheet .proposal-service-name{min-width:170px}.document-sheet .proposal-service-qty{width:92px}.document-sheet .proposal-service-amount{min-width:94px}.document-sheet .proposal-signature-grid{margin-top:.2rem}.document-preview-stack{flex-direction:column;gap:1.5rem;display:flex}.document-preview-block{gap:.65rem}.document-preview-label{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:.82rem;font-weight:700}.print-page-wrap[data-pdf-mode=true] .quote-sheet-compact{gap:.28rem}.print-page-wrap[data-pdf-mode=true] [data-proposal-sheet=true]{zoom:var(--pdf-scale,1)}.print-page-wrap[data-pdf-mode=true] .proposal-services-section{gap:.18rem}.print-page-wrap[data-pdf-mode=true] .proposal-services-table th,.print-page-wrap[data-pdf-mode=true] .proposal-services-table td{padding:.18rem .3rem;line-height:1.08}.print-page-wrap[data-pdf-mode=true] .proposal-summary-panel,.print-page-wrap[data-pdf-mode=true] .proposal-totals-card-compact,.print-page-wrap[data-pdf-mode=true] .proposal-acceptance-block,.print-page-wrap[data-pdf-mode=true] .quote-sheet-disclaimer{padding:.34rem .44rem}.print-page-wrap[data-pdf-mode=true] .proposal-bottom-grid{gap:.28rem;margin-top:auto;padding-top:.04rem}.print-page-wrap[data-pdf-mode=true] .proposal-bottom-column{gap:.24rem}.print-page-wrap[data-pdf-mode=true] .proposal-signature-grid{gap:.34rem;margin-top:.18rem}.print-page-wrap[data-pdf-mode=true] .signature-line-rule{margin-top:.42rem}.print-page-wrap[data-pdf-mode=true] .proposal-total-divider{margin:.05rem 0}.print-page-wrap[data-pdf-mode=true] .quote-meta-row{padding:.01rem 0}.print-page-wrap[data-pdf-mode=true] .proposal-footer-compact{margin-top:0;padding-top:.08rem}.print-page-wrap[data-pdf-mode=true] .quote-sheet-footer-copy{gap:.12rem .5rem;font-size:.66rem}.print-page-wrap{width:min(980px,100vw - 2rem);margin:0 auto;padding:.75rem 0 1.25rem}.print-toolbar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.auth-page{justify-content:center;align-items:center;min-height:calc(100vh - 110px);display:flex}.auth-card{width:min(480px,100%)}.modal-backdrop{z-index:30;background:#1f1d1880;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:min(760px,100%);max-height:calc(100vh - 2rem);box-shadow:var(--shadow);padding:1.25rem;overflow:auto}.timeline{flex-direction:column;gap:1rem;display:flex}.timeline-item{position:relative}.summary-strip{background:var(--surface-strong);color:var(--muted);border-radius:14px;padding:.85rem 1rem;font-size:.92rem}.change-row{background:#fffdfa;border:1px solid #ece3d6;border-radius:14px;grid-template-columns:minmax(120px,170px) minmax(0,1fr) auto minmax(0,1fr);align-items:start;gap:.75rem;padding:.8rem .9rem;display:grid}.change-arrow{color:var(--muted);font-weight:700}@media (max-width:1100px){.quote-builder,.split,.quote-form-banner,.grid.cols-4,.grid.cols-3,.grid.cols-2,.form-grid,.form-grid.three,.detail-grid,.material-toggle-grid,.quote-preview-hero,.document-header-grid,.document-two-column,.proposal-title-row,.proposal-summary-grid,.proposal-bottom-grid{grid-template-columns:1fr}.sticky-sidebar{position:static}.quote-form-banner-stats,.quote-signature-grid,.proposal-detail-grid{grid-template-columns:1fr}.signature-line-compact{grid-column:auto;max-width:none}.change-row{grid-template-columns:1fr}}@media (max-width:720px){.page-wrap{width:min(100vw - 1rem,1360px);padding:1rem 0 2rem}.topbar{flex-direction:column;align-items:flex-start}.page-header{flex-direction:column}}@media print{@page{size:Letter;margin:.18in}html,body{background:#fff}.topbar,.page-header,.no-print{display:none!important}.page-wrap,.print-page-wrap{width:100%;margin:0;padding:0}.quote-sheet{box-shadow:none;border:none;border-radius:0;min-height:10.64in;padding:0}.proposal-header-compact,.proposal-summary-grid,.proposal-services-section,.proposal-bottom-grid,.proposal-acceptance-block,.proposal-totals-card-compact,.quote-sheet-disclaimer,.proposal-services-table-wrap,.proposal-summary-panel{break-inside:avoid}.print-page-wrap{max-width:8.5in}.quote-sheet-compact{gap:.34rem;min-height:10.64in}.proposal-header-compact{gap:.32rem;padding-bottom:.3rem}.proposal-brand-bar{gap:.45rem}.proposal-logo{width:88px}.proposal-company-name{font-size:1.04rem}.proposal-company-contact,.proposal-company-address,.proposal-expiration-copy,.proposal-intro-copy,.proposal-flexibility-copy,.proposal-subtitle-compact,.proposal-service-details,.proposal-acceptance-copy,.quote-sheet-footer-copy{font-size:.68rem}.proposal-title-compact{font-size:1.26rem}.proposal-title-row,.proposal-summary-grid,.proposal-bottom-grid,.document-header-grid,.document-two-column{gap:.32rem}.proposal-summary-panel,.proposal-totals-card-compact,.proposal-acceptance-block,.quote-sheet-disclaimer,.proposal-flexibility-section{padding:.38rem .48rem}.proposal-services-table th,.proposal-services-table td{padding:.22rem .32rem;font-size:.68rem;line-height:1.12}.proposal-service-name{min-width:132px}.proposal-service-qty{width:54px}.proposal-service-amount{min-width:76px}.proposal-emphasis-card{padding:.36rem .45rem}.proposal-emphasis-card strong{font-size:.9rem}.proposal-emphasis-card-secondary strong{font-size:.84rem}.quote-meta-row{padding:.02rem 0}.quote-meta-row span,.proposal-meta-pair span{font-size:.63rem}.proposal-meta-pair strong,.quote-meta-row strong{font-size:.74rem}.proposal-total-divider{margin:.08rem 0}.proposal-notes-block{margin-top:.3rem;padding-top:.28rem}.proposal-notes-copy{font-size:.68rem;line-height:1.22}.proposal-signature-grid{gap:.42rem;margin-top:.24rem}.signature-line-rule{margin-top:.52rem}.proposal-services-section{gap:.24rem}.proposal-bottom-column{gap:.32rem}.proposal-bottom-grid{margin-top:auto;padding-top:.08rem}.proposal-footer-compact{margin-top:.02rem;padding-top:.12rem}.document-sheet{box-shadow:none;border:none;border-radius:0;padding:0}.document-sheet-inner{gap:.42rem}.document-header{gap:.35rem;padding-bottom:.34rem}.document-brand-bar{gap:.45rem}.document-copy{font-size:.72rem;line-height:1.32}.document-sheet .proposal-summary-panel,.document-sheet .proposal-services-table-wrap{break-inside:avoid}.document-sheet .proposal-summary-panel{padding:.42rem .5rem}.document-sheet .proposal-services-table th,.document-sheet .proposal-services-table td{padding:.24rem .34rem;font-size:.69rem;line-height:1.16}.document-preview-stack{gap:.9rem}.document-preview-block{break-after:page}.document-preview-block:last-child{break-after:auto}}
