.quote-builder-page .qb-main{padding-bottom:64px}
.quote-builder-page .qb-hero{padding:50px 0 28px;max-width:820px}
.quote-builder-page .qb-hero h1{max-width:780px;font-size:clamp(2.15rem,5vw,4.1rem);line-height:1.08;letter-spacing:-.045em;margin:12px 0 18px}
.quote-builder-page .qb-lead{max-width:720px;font-size:1.14rem;line-height:1.65;color:var(--muted)}
.quote-builder-page .qb-private{font-size:.9rem;color:var(--muted);margin:16px 0 0}
.quote-builder-page .qb-example-banner{margin:22px 0 0;padding:16px 18px;border-radius:14px;border:1px solid #ead9a8;background:#fff8e8;color:#674d23;font-size:.9rem;line-height:1.55}
.quote-builder-page .qb-example-banner[hidden],.quote-builder-page .qb-confirm[hidden]{display:none!important}
.quote-builder-page .qb-toolbar{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0 8px;align-items:center}
.quote-builder-page .qb-toolbar .button{margin:0}
.quote-builder-page .qb-remember{display:flex;align-items:flex-start;gap:10px;font-size:.88rem;color:var(--muted);max-width:420px;line-height:1.45}
.quote-builder-page .qb-remember input{width:20px;height:20px;margin-top:2px;flex-shrink:0;accent-color:var(--accent)}
.quote-builder-page .qb-status{min-height:1.4em;margin:10px 0 18px;font-size:.88rem;color:var(--muted)}
.quote-builder-page .qb-confirm{padding:22px;border:2px solid var(--accent);background:var(--pale);border-radius:14px;margin:0 0 22px}
.quote-builder-page .qb-confirm h2{font-size:1.3rem;margin-bottom:10px}
.quote-builder-page .qb-confirm p{color:var(--muted);max-width:760px}
.quote-builder-page .qb-confirm .actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.quote-builder-page .qb-steps{list-style:none;padding:0;margin:8px 0 22px;display:flex;flex-wrap:wrap;gap:8px}
.quote-builder-page .qb-steps button{min-height:48px;padding:10px 16px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink);font-weight:650;font-size:.9rem}
.quote-builder-page .qb-steps button:hover{background:var(--pale)}
.quote-builder-page .qb-steps button[aria-current=step]{background:var(--accent);border-color:var(--accent);color:#fff}
.quote-builder-page .qb-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,320px);gap:24px;align-items:start}
.quote-builder-page .qb-panel{padding:28px;min-width:0}
.quote-builder-page .qb-panel h2{font-size:1.55rem;margin:6px 0 10px}
.quote-builder-page .qb-step-label{color:var(--accent);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;font-weight:750;margin:0}
.quote-builder-page .qb-panel-lead{color:var(--muted);font-size:.95rem;margin-bottom:18px;max-width:62ch}
.quote-builder-page .field{margin:18px 0}
.quote-builder-page .field label,.quote-builder-page .qb-check{display:block;font-weight:650;font-size:.93rem;margin:0 0 8px}
.quote-builder-page .hint{font-size:.83rem;color:var(--muted);line-height:1.55;margin:7px 0 0}
.quote-builder-page input,.quote-builder-page select,.quote-builder-page textarea{width:100%;min-width:0;padding:12px 13px;border:1px solid #cfd0df;border-radius:10px;font:inherit;background:#fff;color:var(--ink);min-height:48px}
.quote-builder-page textarea{min-height:120px;resize:vertical;line-height:1.55}
.quote-builder-page input:focus,.quote-builder-page select:focus,.quote-builder-page textarea:focus{outline:3px solid #5052cf29;outline-offset:1px;border-color:var(--accent)}
.quote-builder-page .inputrow{display:flex;align-items:center;gap:10px}
.quote-builder-page .inputrow span{color:var(--muted);min-width:12px;flex-shrink:0}
.quote-builder-page .inputrow input{flex:1}
.quote-builder-page .qb-work-list{display:grid;gap:14px;margin:8px 0 12px}
.quote-builder-page .qb-work-item{border:1px solid var(--line);border-radius:14px;padding:16px;background:#fbfbfe}
.quote-builder-page .qb-work-grid{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:10px}
.quote-builder-page .qb-work-item .field{margin:0}
.quote-builder-page .qb-work-item .field label{font-size:.8rem;font-weight:650;color:var(--muted)}
.quote-builder-page .qb-work-remove{margin-top:12px;min-height:44px}
.quote-builder-page .qb-radios{display:grid;gap:10px}
.quote-builder-page .qb-radio{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;min-height:48px}
.quote-builder-page .qb-radio input{width:20px;height:20px;margin-top:2px;flex-shrink:0;accent-color:var(--accent)}
.quote-builder-page .qb-radio span{font-weight:650;font-size:.92rem}
.quote-builder-page .qb-nav{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.quote-builder-page .qb-nav .button{flex:1 1 140px}
.quote-builder-page .qb-summary{position:sticky;top:16px;padding:22px;background:var(--paper);border:1px solid var(--line);border-radius:16px}
.quote-builder-page .qb-summary h2{font-size:1.15rem;margin:0 0 14px}
.quote-builder-page .qb-metric{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #ececf3;font-size:.88rem}
.quote-builder-page .qb-metric span{color:var(--muted)}
.quote-builder-page .qb-metric strong{font-variant-numeric:tabular-nums;text-align:right;overflow-wrap:anywhere}
.quote-builder-page .qb-metric.total{border-bottom:0;padding-top:14px}
.quote-builder-page .qb-metric.total strong{font-size:1.35rem;color:var(--accent)}
.quote-builder-page .qb-summary .hint{margin-top:12px}
.quote-builder-page .qb-warn{margin-top:12px;padding:12px 14px;border-radius:12px;background:#fff2d7;color:#67451d;font-size:.86rem}
.quote-builder-page .qb-error{margin-top:12px;padding:12px 14px;border-radius:12px;background:#fdeeee;color:#7a2430;font-size:.86rem}
.quote-builder-page .qb-document{margin-top:28px;padding:28px;border:1px solid var(--line);border-radius:16px;background:#fff;max-width:72ch}
.quote-builder-page .qb-document .kicker{font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:750}
.quote-builder-page .qb-document h3{font-size:1.7rem;margin:8px 0 16px}
.quote-builder-page .qb-document h4{font-size:1.02rem;margin:22px 0 8px;padding-top:14px;border-top:1px solid var(--line)}
.quote-builder-page .qb-document p,.quote-builder-page .qb-pair{font-size:.95rem;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}
.quote-builder-page .qb-pair{display:grid;grid-template-columns:minmax(110px,160px) minmax(0,1fr);gap:12px;margin:10px 0}
.quote-builder-page .qb-pair dt{color:var(--muted);font-weight:650;font-size:.82rem}
.quote-builder-page .qb-checklist{margin:22px 0;padding:0;list-style:none}
.quote-builder-page .qb-checklist li{margin:0}
.quote-builder-page .qb-checklist button{background:none;border:0;color:var(--accent);font-weight:650;padding:8px 0;min-height:44px;text-align:left;text-decoration:underline;text-underline-offset:3px}
.quote-builder-page .qb-check-row{display:flex;gap:12px;align-items:flex-start;margin:18px 0;font-size:.95rem;line-height:1.5}
.quote-builder-page .qb-check-row input{width:22px;height:22px;margin-top:2px;flex-shrink:0;accent-color:var(--accent)}
.quote-builder-page .qb-export{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.quote-builder-page .qb-footnote{font-size:.84rem;color:var(--muted);margin:28px 0 0;max-width:820px}
.quote-builder-page .file-input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media(max-width:900px){
  .quote-builder-page .qb-layout{grid-template-columns:1fr;gap:16px}
  .quote-builder-page .qb-summary{position:static}
  .quote-builder-page .qb-hero{padding-top:32px}
}
@media(max-width:700px){
  .quote-builder-page .qb-work-grid{grid-template-columns:1fr 1fr}
  .quote-builder-page .qb-work-grid .field:first-child{grid-column:1/-1}
  .quote-builder-page .qb-panel{padding:22px}
  .quote-builder-page .qb-pair{grid-template-columns:1fr}
  .quote-builder-page .qb-nav .button,.quote-builder-page .qb-export .button,.quote-builder-page .qb-toolbar .button{width:100%}
  .quote-builder-page .qb-toolbar{flex-direction:column;align-items:stretch}
}
@media(max-width:390px){
  .quote-builder-page .qb-hero h1{font-size:2.05rem}
  .quote-builder-page .qb-work-grid{grid-template-columns:1fr}
  .quote-builder-page .qb-panel{padding:16px}
  .quote-builder-page .qb-steps button{flex:1 1 calc(50% - 8px)}
  .quote-builder-page .qb-document{padding:18px}
}
