:root{--red:#b20e0e;--dark-red:#850707;--ink:#171717;--muted:#666;--line:#d8d8d8;--panel:#ffffff;--soft:#f6f6f6}*{box-sizing:border-box}body{margin:0;background:#efefef;color:var(--ink);font-family:Arial,Helvetica,sans-serif}button,input,textarea{font:inherit}.shell{max-width:1080px;margin:24px auto;background:white;border:1px solid #ddd;box-shadow:0 14px 40px rgba(0,0,0,.08)}.hero{padding:34px 40px 28px;border-bottom:5px solid #111;display:grid;grid-template-columns:240px minmax(0,1fr);grid-gap:42px;gap:42px}.brand-mark,.hero{align-items:center}.brand-mark{display:flex;justify-content:center}.brand-mark img{display:block;width:100%;height:auto}.hero-copy{min-width:0}.hero h1{margin:0;font-size:clamp(34px,5vw,62px);line-height:.95}.hero h1 span{color:var(--red);display:block}.hero p{margin:18px 0 0;color:#444;max-width:620px}.content{padding:28px}.section{border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:22px;background:var(--panel)}.section-title{margin:0;padding:12px 18px;color:white;font-size:20px;background:linear-gradient(90deg,var(--dark-red),var(--red))}.section-body{padding:18px}.dropzone{border:2px dashed #aaa;border-radius:12px;padding:34px;text-align:center;background:var(--soft)}.dropzone input{margin-top:16px}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}.primary,.secondary{border:0;border-radius:8px;padding:12px 18px;cursor:pointer;font-weight:700}.primary{background:var(--red);color:white}.secondary{background:#1d1d1d;color:white}.primary:disabled{opacity:.45;cursor:not-allowed}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px}.field label{display:block;font-weight:700;margin-bottom:6px}.field small{display:block;color:var(--muted);margin-top:5px}.field input,.field textarea{width:100%;border:1px solid #bbb;border-radius:7px;padding:11px 12px;background:white}.field input[readonly]{background:#f2f2f2}.money{position:relative}.money:before{content:"$";position:absolute;left:12px;top:12px;font-weight:700}.money input{padding-left:28px}.notice{border-left:5px solid var(--red);background:#fff5f5;padding:12px 14px;margin-bottom:18px}.summary{display:grid;grid-template-columns:1fr auto;grid-gap:10px 20px;gap:10px 20px;border-top:1px solid var(--line);padding-top:14px}.summary strong:last-child{color:var(--red);font-size:20px}.footer{align-items:center;background:#111;color:white;display:flex;flex-wrap:wrap;gap:4px 10px;justify-content:center;padding:16px;text-align:center;letter-spacing:.5px}.footer span{color:#e22020}.footer .footer-line{color:white}.footer-separator{color:white!important}@media (max-width:720px){.footer{flex-direction:column;gap:4px;text-align:center}.footer-line{display:block;width:100%}.footer-separator{display:none}.hero{grid-template-columns:minmax(90px,30vw) minmax(0,1fr);gap:14px;padding:22px 16px 20px}.brand-mark{max-width:180px}.hero h1{font-size:clamp(20px,6vw,34px);line-height:1}.hero p{font-size:13px;margin-top:10px}.grid{grid-template-columns:1fr}.content{padding:16px}}.upload-card{width:100%}.upload-dropzone{min-height:300px;border:2px dashed #a7a7a7;border-radius:14px;background:linear-gradient(rgba(255,255,255,.88),rgba(255,255,255,.88)),repeating-linear-gradient(45deg,#f2f2f2,#f2f2f2 10px,#fafafa 0,#fafafa 20px);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:36px;text-align:center;cursor:pointer;transition:border-color .16s ease,background-color .16s ease,transform .16s ease}.upload-dropzone-active,.upload-dropzone:hover{border-color:var(--red);background-color:#fff8f8;transform:translateY(-2px)}.upload-input{display:none}.upload-icon{width:72px;height:72px;border-radius:18px;background:linear-gradient(145deg,var(--red),var(--dark-red));color:white;display:grid;place-items:center;font-size:19px;font-weight:900;letter-spacing:1px;margin-bottom:18px;box-shadow:0 12px 24px rgba(178,14,14,.2)}.upload-dropzone h3{margin:0;font-size:24px;word-break:break-word}.upload-dropzone p{margin:10px 0 0;color:var(--muted)}.selected-file{margin-top:18px;display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.selected-file span{background:white;border:1px solid #ddd;border-radius:999px;padding:7px 12px;font-size:13px}.upload-error{margin-top:12px;padding:11px 14px;border-radius:8px;background:#fff0f0;color:#9c0909;font-weight:700}.upload-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:14px;margin-top:20px}.text-button{border:0;background:transparent;color:var(--red);cursor:pointer;font-weight:700;padding:10px}.text-button:hover{text-decoration:underline}.processing-panel{margin-top:20px;border:1px solid #d7d7d7;border-radius:12px;padding:20px;background:#fafafa}.processing-heading{display:flex;justify-content:space-between;gap:20px;margin-bottom:12px}.progress-track{height:10px;background:#dedede;border-radius:999px;overflow:hidden}.progress-value{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--dark-red),var(--red));transition:width .4s ease}.processing-steps{display:grid;grid-gap:10px;gap:10px;margin-top:18px}.processing-step{display:grid;grid-template-columns:24px 1fr;align-items:center;color:#888}.processing-step-active{color:var(--ink);font-weight:700}.processing-step-complete{color:#22743c}.processing-status{font-size:18px;font-weight:900}.review-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px;padding:18px;border:1px solid #bad9c3;border-radius:12px;background:#f1fbf4}.review-header>div{display:flex;align-items:center;gap:14px}.review-header p{margin:4px 0 0;color:#4f6857}.review-complete-icon{flex:0 0 auto;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#267642;color:white;font-size:22px;font-weight:900}.financial-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px;margin-top:6px}.financial-summary>div{border:1px solid #ddd;border-radius:10px;padding:18px;display:flex;flex-direction:column;gap:8px;background:#fafafa}.financial-summary>.financial-equation{grid-column:1/-1;gap:0}.financial-equation h3{margin:0 0 12px}.financial-equation>div{align-items:center;display:flex;justify-content:space-between;gap:20px;padding:8px 0}.financial-equation>div strong{color:#222;font-size:18px;white-space:nowrap}.financial-equation>.financial-equation-total{border-top:2px solid #222;margin-top:6px;padding-top:14px}.financial-equation>.financial-equation-total span,.financial-equation>.financial-equation-total strong{color:var(--red);font-size:22px;font-weight:800}.financial-summary span{color:#555;font-weight:700}.financial-summary strong{color:var(--red);font-size:24px}.financial-summary .financial-equation-total span,.financial-summary .financial-equation-total strong{font-size:21px;font-weight:700}.excluded-items{display:grid;grid-gap:10px;gap:10px}.excluded-item{align-items:start;background:#fafafa;border:1px solid #ddd;border-radius:9px;display:grid;grid-gap:6px 12px;gap:6px 12px;grid-template-columns:minmax(0,1fr) auto;padding:9px 12px}.excluded-item>div:first-child{min-width:0}.excluded-item div{display:grid;grid-gap:5px;gap:5px}.empty-excluded-items,.excluded-item span{color:var(--muted)}.excluded-item .partial-roof-callout{background:#fff3cd;border:1px solid #dfb85c;border-radius:5px;color:#503700;font-weight:700;margin-top:3px;padding:6px 9px}.partial-roof-amount{color:#267642;display:grid;grid-gap:2px;gap:2px;justify-items:end}.partial-roof-amount small{color:#555;font-size:11px;font-weight:700;text-transform:uppercase}.excluded-total{align-items:center;border-top:2px solid var(--ink);display:flex;font-size:18px;justify-content:space-between;margin-top:5px;padding:14px 4px 2px}.excluded-total strong{color:var(--red);font-size:21px}.responsibility-heading{margin:0 0 12px}.responsibility-heading-excluded,.responsibility-heading-review{border-top:1px solid var(--line);margin-top:28px;padding-top:22px}.review-item{background:#fff8e8;border-color:#dfc47d}.review-total strong{color:#8a5a00}.scope-move-button{background:#fff;border:1px solid #999;border-radius:6px;color:#333;cursor:pointer;font-size:12px;font-weight:700;line-height:normal;min-height:31px;padding:7px 10px}.scope-move-button-included{border-color:#6ea77d;color:#216537}.scope-move-button-excluded{border-color:#c77c76;color:#8f1710}.scope-move-button-out-of-pocket{border-color:#a56a00;color:#744a00}.scope-move-button:focus-visible,.scope-move-button:hover{background:#f3f3f3}.generation-blocker{background:#fff8e8;border:1px solid #dfc47d;border-radius:7px;color:#6b4700;font-weight:700;padding:10px 12px}.scope-split-form{align-items:end;background:#fff;border:1px solid #c7a85a;border-radius:7px;display:grid;grid-gap:10px 16px;gap:10px 16px;grid-column:1/-1;grid-template-columns:minmax(150px,1fr) minmax(180px,1fr) minmax(150px,1fr) auto;padding:12px}.scope-split-form label,.scope-split-form>div{display:grid;grid-gap:5px;gap:5px}.scope-split-form input{border:1px solid #999;border-radius:6px;padding:9px 10px}.scope-split-form p{color:var(--red);grid-column:1/-1;margin:0}.scope-split-actions{display:flex!important;gap:8px!important}@media (max-width:850px){.scope-split-form{grid-template-columns:1fr}}.included-item{background:#f3faf5;border-color:#bad9c3}.included-total strong{color:#267642}.responsibility-reconciliation{background:#f6f6f6;border:1px solid var(--line);border-radius:9px;display:grid;grid-gap:9px;gap:9px;margin-top:24px;padding:15px}.responsibility-reconciliation div{display:flex;gap:20px;justify-content:space-between}.responsibility-reconciliation div:last-child{border-top:1px solid #aaa;font-size:17px;padding-top:9px}.scope-item-details{align-items:center;display:flex!important;flex-wrap:wrap;gap:5px 10px!important;grid-column:1/-1;justify-content:flex-start;margin-top:3px}.scope-inline-financials,.scope-item-heading-line{align-items:center;display:flex!important;flex-wrap:wrap;gap:2px 7px!important;margin-top:0}.scope-item-heading-line>span{white-space:nowrap}.scope-item-details input{border:1px solid #bbb;border-radius:6px;flex:1 1 240px;padding:8px 10px}.scope-line-items-controls{align-items:center;display:flex!important;flex-wrap:wrap;gap:5px 10px!important}.scope-line-items-toggle{align-items:center;background:#fff;border:1px solid #b8c1cc;border-radius:6px;color:#263649;cursor:pointer;display:inline-flex;font-family:inherit;font-size:12px;font-weight:700;gap:.55rem;justify-content:space-between;line-height:normal;min-height:31px;padding:7px 10px}.scope-line-items-range,.scope-line-items-toggle span{color:#5d6b7b;font-size:.78rem;font-weight:600}.scope-line-items-toggle:focus-visible,.scope-line-items-toggle:hover{border-color:#6b7888;outline:none}.scope-line-items-panel{background:#f7f9fb;border:1px solid #d8dee6;border-radius:7px;display:grid;grid-gap:.45rem;gap:.45rem;margin-top:.55rem;padding:.75rem;flex:1 1 100%;order:2}.scope-line-items-panel label{display:grid;grid-gap:.3rem;gap:.3rem}.scope-line-items-panel label>span{color:#263649;font-size:.82rem;font-weight:700}.scope-line-items-panel small{color:#657384}.scope-line-item-actions{display:flex;flex-wrap:wrap;gap:.5rem}.scope-line-item-list{display:grid;grid-gap:.55rem;gap:.55rem}.scope-line-item-row{align-items:center;background:#fff;border:1px solid #d8dee6;border-left:4px solid #75869a;border-radius:6px;display:grid;grid-gap:.65rem;gap:.65rem;grid-template-columns:minmax(0,1fr) auto;padding:.7rem}.scope-line-item-description{display:grid;grid-gap:.2rem;gap:.2rem;min-width:0}.scope-line-item-description strong{color:#202b38;overflow-wrap:anywhere}.scope-line-item-description span{color:#657384;font-size:.8rem}.scope-line-item-row .scope-line-item-actions{grid-column:1/-1;grid-row:2;justify-content:flex-start;justify-self:start}.scope-line-item-row .scope-move-button{white-space:nowrap;width:auto}@media (max-width:640px){.scope-line-item-row{grid-template-columns:1fr}.scope-line-item-amount,.scope-line-item-row .scope-line-item-actions{grid-column:1;grid-row:auto;justify-self:start}}.excluded-item .scope-amount-control{align-items:center;align-self:center;display:flex;gap:7px;grid-column:2;grid-row:1/3;justify-content:flex-end;white-space:nowrap}@media (max-width:640px){.excluded-item{grid-template-columns:minmax(0,1fr) auto}.scope-item-details{grid-column:1/-1}.excluded-item .scope-amount-control{grid-row:1}}.scope-item-delete{align-items:center;background:transparent;border:1px solid transparent;border-radius:5px;color:#8f1710;cursor:pointer;display:inline-flex;justify-content:center;padding:4px}.scope-item-delete:focus-visible,.scope-item-delete:hover{background:#fff0ef;border-color:#d9a4a0}.scope-item-delete svg{fill:currentColor;height:17px;width:17px}.scope-undo-bar{align-items:center;background:#fff8e8;border:1px solid #dfc47d;border-radius:7px;display:flex;gap:12px;justify-content:space-between;margin-bottom:16px;padding:10px 12px}.scope-undo-button{background:#1d1d1d;border:0;border-radius:6px;color:#fff;cursor:pointer;flex:0 0 auto;font:inherit;font-weight:700;padding:7px 12px}.scope-undo-button:focus-visible,.scope-undo-button:hover{background:#8f1710}.scope-undo-bar-excluded{margin-top:24px}.add-responsibility-button-row{display:flex;justify-content:flex-start}.add-responsibility-form{background:#f4faf4;border:1px solid #b7d7b7;border-radius:8px;display:grid;grid-gap:8px;gap:8px;padding:12px}.add-responsibility-form label{display:grid;grid-gap:6px;gap:6px;font-weight:700}.add-responsibility-form input{border:1px solid #aaa;border-radius:6px;padding:9px 10px;width:100%}#new-excluded-responsibility-cost,#new-excluded-responsibility-name,#new-responsibility-cost,#new-responsibility-name,.add-responsibility-cost-field>span{font-weight:400}.add-responsibility-fields{display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(0,1fr) minmax(150px,220px)}.add-responsibility-cost-field{align-items:center;display:flex;position:relative}.add-responsibility-cost-field>span{left:10px;position:absolute}.add-responsibility-cost-field input{padding-left:24px}.add-responsibility-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start}@media (max-width:720px){.add-responsibility-fields{grid-template-columns:1fr}}.excluded-item .scope-amount-actions{align-items:center;display:flex;gap:6px}.scope-amount-actions small{color:#805b00;font-size:11px;font-weight:700;white-space:nowrap}.scope-amount-edit{align-items:center;background:transparent;border:1px solid transparent;border-radius:5px;color:#555;cursor:pointer;display:inline-flex;font-size:17px;height:28px;justify-content:center;padding:0;width:28px}.scope-amount-edit:focus-visible,.scope-amount-edit:hover{background:#fff;border-color:#999;color:var(--red)}.excluded-item .scope-amount-editor{align-items:flex-end;background:#fff;border:1px solid #aaa;border-radius:7px;display:flex;gap:6px;padding:8px}.scope-amount-editor label{display:grid;grid-gap:3px;gap:3px}.scope-amount-editor label span{color:#555;font-size:11px;font-weight:700}.scope-amount-editor input{border:1px solid #999;border-radius:5px;font:inherit;padding:6px 7px;width:120px}.scope-amount-editor button{background:#222;border:0;border-radius:5px;color:#fff;cursor:pointer;font-weight:700;padding:7px 9px}.scope-amount-editor .scope-amount-reset{background:#eee;color:#333}.payment-adjustments{border:1px solid var(--line);border-radius:9px;grid-column:1/-1;padding:14px}.payment-adjustments h3{font-size:17px;font-weight:800;margin:0}.out-of-pocket-list,.payment-options{display:grid;grid-gap:12px;gap:12px;margin-top:18px}.out-of-pocket-section{border:1px solid var(--line);border-radius:9px;grid-column:1/-1;margin-top:0;overflow:hidden}.out-of-pocket-section-title{border-radius:0}.out-of-pocket-content{display:grid;font-family:Arial,Helvetica,sans-serif;grid-gap:12px;gap:12px;padding:14px}.out-of-pocket-help{font-size:15px;line-height:1.4;margin:0}.payment-options label{align-items:center;display:flex;gap:9px}.out-of-pocket-heading,.out-of-pocket-total{align-items:center;display:flex;justify-content:space-between}.out-of-pocket-heading{justify-content:flex-end}.out-of-pocket-row{align-items:end;background:#fafafa;border:1px solid #ddd;border-radius:9px;display:grid;grid-gap:10px;gap:10px;grid-template-columns:minmax(180px,1fr) minmax(160px,220px) auto;padding:14px}.out-of-pocket-row>input{border:1px solid #bbb;border-radius:7px;padding:11px 12px}.out-of-pocket-actions{align-items:center;display:flex;gap:2px;padding-bottom:5px}.out-of-pocket-amount,.out-of-pocket-description{align-self:center;font-weight:700;padding:11px 12px}.out-of-pocket-amount{text-align:right}.out-of-pocket-edit-value{background:transparent;border:0;color:inherit;cursor:pointer;font:inherit}.out-of-pocket-description.out-of-pocket-edit-value{text-align:left}.out-of-pocket-edit-value:focus-visible,.out-of-pocket-edit-value:hover{background:#f1f1f1;border-radius:6px;outline:1px solid #aaa}.out-of-pocket-actions .out-of-pocket-done{background:#222;border:0;border-radius:5px;color:#fff;cursor:pointer;font-weight:700;padding:7px 9px}.out-of-pocket-total{border-top:1px solid #aaa;font-size:17px;padding-top:10px}.out-of-pocket-footer-action{display:flex;justify-content:flex-end}@media (max-width:720px){.upload-dropzone{min-height:260px;padding:24px 16px}.review-header{align-items:stretch;flex-direction:column}.financial-summary{grid-template-columns:1fr}}.contract-line-selector{margin-bottom:24px;padding:20px;border:1px solid #e5d5d5;border-radius:10px;background:#fcf8f8}.contract-line-selector-heading strong{color:#3b2424;font-size:16px}.contract-line-selector-heading p{margin:6px 0 16px;color:#655858;font-size:13px;line-height:1.5}.contract-line-selector-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:8px 12px;gap:8px 12px;align-items:center}.contract-line-selector-controls label{grid-column:1/-1;font-size:12px;font-weight:700;color:#4b3b3b}.contract-line-selector-controls input{width:100%;min-width:0;min-height:44px;padding:10px 12px;border:1px solid #cbbcbc;border-radius:6px;background:#fff;color:#292323;font-size:14px}.contract-line-selector-controls input::placeholder{color:#857777}.contract-line-selector-apply{min-height:44px;padding:10px 18px;border:1px solid #9d0b0b;border-radius:6px;background:#9d0b0b;color:#fff;font-size:13px;font-weight:700;cursor:pointer}.contract-line-selector-apply:hover{background:#7f0909}.contract-line-selector-apply:focus-visible,.contract-line-selector-controls input:focus-visible{outline:3px solid #c47171;outline-offset:3px}.contract-line-selector-help{margin:10px 0 0;color:#726363;font-size:12px;line-height:1.6}.contract-line-selector-status{margin-top:14px;padding:12px;border-left:3px solid #47745b;border-radius:4px;background:#edf4ef;color:#314e3d;font-size:13px}.contract-line-selector-status p{margin:5px 0 0;line-height:1.5}.contract-line-selector-error{margin:12px 0 0;color:#9d0b0b;font-size:13px}@media (max-width:600px){.contract-line-selector{padding:16px}.contract-line-selector-controls{grid-template-columns:minmax(0,1fr)}.contract-line-selector-apply{width:100%}}