/* Quote builder uses the same controls and spacing at desktop and phone widths. */
.quote-workspace{width:min(960px,calc(100vw - 28px));max-width:960px}
.quote-workspace .form-error{position:relative;padding:12px;border-radius:8px;background:#fff0ed;color:#8a2f22;scroll-margin:16px}
.q-summary,.q-step{min-width:0}.q-summary-heading,.q-section-heading,.q-review-heading,.q-total{display:flex;justify-content:space-between;gap:16px;align-items:center}.q-summary-total{font-size:1.45rem}.q-actions{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.q-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0}.q-facts div{padding:12px;background:var(--paper,#f7f6f2);border-radius:8px}.q-facts dt{font-size:.8rem;color:#63716e}.q-facts dd{margin:5px 0 0;font-weight:600}.q-status{display:inline-block;font-size:.78rem;font-weight:600;padding:5px 9px;border-radius:20px;background:#edf1ee;color:#3b574e}.q-status-revision,.q-status-expired{background:#fff0da;color:#865a1e}.q-status-paid,.q-status-job{background:#e1efe5;color:#235937}
.q-list{display:grid;gap:12px;width:100%}.q-card{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:18px;align-items:center;padding:18px;border:1px solid #dce1dd;border-radius:10px;background:#fff}.q-card h3{font-size:1.06rem;margin:4px 0}.q-card p{margin:0}.q-card-customer{font-size:.82rem;color:#53645c}.q-card-state{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.q-card-state small{font-size:.75rem;color:#68746f}.q-empty{padding:30px;text-align:center;border:1px dashed #bdc9c1;border-radius:12px}.q-customer .q-card{margin-bottom:10px}
.q-steps{display:flex;gap:4px;padding:8px 0 18px;margin-bottom:18px;border-bottom:1px solid #dde3de;overflow-x:auto}.q-steps button{flex:1;min-width:100px;border:0;background:transparent;padding:9px 5px;border-radius:8px;font:inherit;font-size:.83rem;color:#57675e;cursor:pointer}.q-steps button span{display:inline-flex;align-items:center;justify-content:center;width:23px;height:23px;margin-right:6px;background:#e8ede8;border-radius:50%;font-size:.74rem}.q-steps button[aria-current]{background:#e8f0eb;color:#223d30;font-weight:700}.q-steps button[aria-current] span{background:#31533e;color:#fff}.q-piece-tabs{display:flex;gap:7px;overflow-x:auto;padding-bottom:14px}.q-piece-tabs .button{white-space:nowrap;flex-shrink:0}.q-route-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:8px 0 22px}.q-route{display:flex;flex-direction:column;text-align:left;gap:6px;border:1px solid #cbd4cc;border-radius:10px;background:#fff;padding:14px;cursor:pointer;color:inherit;font:inherit}.q-route small{font-size:.76rem;color:#65756b;line-height:1.35}.q-route.selected{border-color:#345842;background:#edf3ee;box-shadow:inset 0 0 0 1px #345842}.q-step-navigation{display:flex;justify-content:space-between;gap:10px;padding:20px 0 6px}.q-piece-summary,.q-price-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:1px solid #e1e5df}.q-piece-summary span,.q-price-row small{display:block;font-size:.76rem;color:#65756b;margin-top:4px}.q-piece-summary p{font-size:.83rem;margin:6px 0}.q-piece-summary>div:last-child{display:flex;flex-wrap:wrap;gap:6px}.q-fieldset{border:1px solid #d7dfd6;border-radius:10px;padding:18px;margin:20px 0}.q-fieldset legend{font-weight:600;padding:0 7px}.q-total{font-size:1.1rem;border-top:2px solid #cbd7ce;padding:16px 0;margin:15px 0}.q-check{display:flex;gap:10px;align-items:flex-start;padding:10px 0}.q-check input{flex-shrink:0;margin-top:3px}.q-missing{padding:15px;background:#fff7e8;border:1px solid #e6d6ad;border-radius:9px;margin:16px 0}.q-missing ul{padding-left:19px;margin:8px 0 0}.q-document{font:inherit;font-size:.9rem;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;background:#fafaf6;padding:20px;border:1px solid #e0e4db;border-radius:8px}.q-attachments{list-style:none;padding:0}.q-attachments li{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #e1e5df;overflow-wrap:anywhere}.q-attachments li>span:last-child{display:flex;gap:6px;flex-shrink:0}.q-upload{position:relative;overflow:hidden;display:inline-flex;cursor:pointer;margin:10px 0}.q-upload input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.q-history{margin-top:20px}
@media(max-width:900px){.quote-workspace{width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}.q-card{grid-template-columns:minmax(0,1fr) auto;gap:12px}.q-card>.button{grid-column:1/-1;width:100%}.q-steps{gap:2px}.q-steps button{min-width:95px}.q-route-choices{gap:6px}.q-route{padding:11px 9px}.q-summary-total{font-size:1.2rem}.q-actions>.button{min-height:42px}.q-document{padding:14px}.q-fieldset{padding:13px}}
@media(max-width:480px){.q-route-choices{grid-template-columns:1fr}.q-route{flex-direction:row;align-items:center;justify-content:space-between;gap:12px}.q-route small{max-width:57%;text-align:right}.q-attachments li{align-items:flex-start;flex-direction:column}.q-attachments li>span:last-child{width:100%;justify-content:flex-end}.q-facts{gap:8px}.q-piece-summary{align-items:flex-start}.q-piece-summary>div:last-child{flex-direction:column}.q-card-state{max-width:135px}.q-check{font-size:.9rem}}
@media(max-width:600px){.q-steps{overflow:visible;align-items:stretch}.q-steps button{min-width:0;display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 3px;font-size:.72rem;line-height:1.2}.q-steps button span{margin:0}.q-questions small{display:block;color:#68746f;margin-top:4px}}
