html{--mat-sys-background: light-dark(#fff8f8, #171213);--mat-sys-error: light-dark(#ba1a1a, #ffb4ab);--mat-sys-error-container: light-dark(#ffdad6, #93000a);--mat-sys-inverse-on-surface: light-dark(#faeeef, #352f30);--mat-sys-inverse-primary: light-dark(#ffb1c5, #ba005c);--mat-sys-inverse-surface: light-dark(#352f30, #ece0e1);--mat-sys-on-background: light-dark(#201a1b, #ece0e1);--mat-sys-on-error: light-dark(#ffffff, #690005);--mat-sys-on-error-container: light-dark(#93000a, #ffdad6);--mat-sys-on-primary: light-dark(#ffffff, #65002f);--mat-sys-on-primary-container: light-dark(#8f0045, #ffd9e1);--mat-sys-on-primary-fixed: light-dark(#3f001b, #3f001b);--mat-sys-on-primary-fixed-variant: light-dark(#8f0045, #8f0045);--mat-sys-on-secondary: light-dark(#ffffff, #422930);--mat-sys-on-secondary-container: light-dark(#5b3f46, #ffd9e1);--mat-sys-on-secondary-fixed: light-dark(#2b151b, #2b151b);--mat-sys-on-secondary-fixed-variant: light-dark(#5b3f46, #5b3f46);--mat-sys-on-surface: light-dark(#201a1b, #ece0e1);--mat-sys-on-surface-variant: light-dark(#514346, #f3dde1);--mat-sys-on-tertiary: light-dark(#ffffff, #690100);--mat-sys-on-tertiary-container: light-dark(#930100, #ffdad4);--mat-sys-on-tertiary-fixed: light-dark(#410000, #410000);--mat-sys-on-tertiary-fixed-variant: light-dark(#930100, #930100);--mat-sys-outline: light-dark(#847376, #9e8c90);--mat-sys-outline-variant: light-dark(#d6c2c5, #514346);--mat-sys-primary: light-dark(#ba005c, #ffb1c5);--mat-sys-primary-container: light-dark(#ffd9e1, #8f0045);--mat-sys-primary-fixed: light-dark(#ffd9e1, #ffd9e1);--mat-sys-primary-fixed-dim: light-dark(#ffb1c5, #ffb1c5);--mat-sys-scrim: light-dark(#000000, #000000);--mat-sys-secondary: light-dark(#74565d, #e3bdc5);--mat-sys-secondary-container: light-dark(#ffd9e1, #5b3f46);--mat-sys-secondary-fixed: light-dark(#ffd9e1, #ffd9e1);--mat-sys-secondary-fixed-dim: light-dark(#e3bdc5, #e3bdc5);--mat-sys-shadow: light-dark(#000000, #000000);--mat-sys-surface: light-dark(#fff8f8, #171213);--mat-sys-surface-bright: light-dark(#fff8f8, #3e3738);--mat-sys-surface-container: light-dark(#f7ebec, #241e1f);--mat-sys-surface-container-high: light-dark(#f1e5e6, #2f2829);--mat-sys-surface-container-highest: light-dark(#ece0e1, #3a3334);--mat-sys-surface-container-low: light-dark(#fdf1f2, #201a1b);--mat-sys-surface-container-lowest: light-dark(#ffffff, #120d0e);--mat-sys-surface-dim: light-dark(#e3d7d8, #171213);--mat-sys-surface-tint: light-dark(#ba005c, #ffb1c5);--mat-sys-surface-variant: light-dark(#f3dde1, #514346);--mat-sys-tertiary: light-dark(#c00100, #ffb4a8);--mat-sys-tertiary-container: light-dark(#ffdad4, #930100);--mat-sys-tertiary-fixed: light-dark(#ffdad4, #ffdad4);--mat-sys-tertiary-fixed-dim: light-dark(#ffb4a8, #ffb4a8);--mat-sys-neutral-variant20: #3a2d30;--mat-sys-neutral10: #201a1b;--mat-sys-level0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-body-large: 400 1rem / 1.5rem Roboto;--mat-sys-body-large-font: Roboto;--mat-sys-body-large-line-height: 1.5rem;--mat-sys-body-large-size: 1rem;--mat-sys-body-large-tracking: .031rem;--mat-sys-body-large-weight: 400;--mat-sys-body-medium: 400 .875rem / 1.25rem Roboto;--mat-sys-body-medium-font: Roboto;--mat-sys-body-medium-line-height: 1.25rem;--mat-sys-body-medium-size: .875rem;--mat-sys-body-medium-tracking: .016rem;--mat-sys-body-medium-weight: 400;--mat-sys-body-small: 400 .75rem / 1rem Roboto;--mat-sys-body-small-font: Roboto;--mat-sys-body-small-line-height: 1rem;--mat-sys-body-small-size: .75rem;--mat-sys-body-small-tracking: .025rem;--mat-sys-body-small-weight: 400;--mat-sys-display-large: 400 3.562rem / 4rem Roboto;--mat-sys-display-large-font: Roboto;--mat-sys-display-large-line-height: 4rem;--mat-sys-display-large-size: 3.562rem;--mat-sys-display-large-tracking: -.016rem;--mat-sys-display-large-weight: 400;--mat-sys-display-medium: 400 2.812rem / 3.25rem Roboto;--mat-sys-display-medium-font: Roboto;--mat-sys-display-medium-line-height: 3.25rem;--mat-sys-display-medium-size: 2.812rem;--mat-sys-display-medium-tracking: 0;--mat-sys-display-medium-weight: 400;--mat-sys-display-small: 400 2.25rem / 2.75rem Roboto;--mat-sys-display-small-font: Roboto;--mat-sys-display-small-line-height: 2.75rem;--mat-sys-display-small-size: 2.25rem;--mat-sys-display-small-tracking: 0;--mat-sys-display-small-weight: 400;--mat-sys-headline-large: 400 2rem / 2.5rem Roboto;--mat-sys-headline-large-font: Roboto;--mat-sys-headline-large-line-height: 2.5rem;--mat-sys-headline-large-size: 2rem;--mat-sys-headline-large-tracking: 0;--mat-sys-headline-large-weight: 400;--mat-sys-headline-medium: 400 1.75rem / 2.25rem Roboto;--mat-sys-headline-medium-font: Roboto;--mat-sys-headline-medium-line-height: 2.25rem;--mat-sys-headline-medium-size: 1.75rem;--mat-sys-headline-medium-tracking: 0;--mat-sys-headline-medium-weight: 400;--mat-sys-headline-small: 400 1.5rem / 2rem Roboto;--mat-sys-headline-small-font: Roboto;--mat-sys-headline-small-line-height: 2rem;--mat-sys-headline-small-size: 1.5rem;--mat-sys-headline-small-tracking: 0;--mat-sys-headline-small-weight: 400;--mat-sys-label-large: 500 .875rem / 1.25rem Roboto;--mat-sys-label-large-font: Roboto;--mat-sys-label-large-line-height: 1.25rem;--mat-sys-label-large-size: .875rem;--mat-sys-label-large-tracking: .006rem;--mat-sys-label-large-weight: 500;--mat-sys-label-large-weight-prominent: 700;--mat-sys-label-medium: 500 .75rem / 1rem Roboto;--mat-sys-label-medium-font: Roboto;--mat-sys-label-medium-line-height: 1rem;--mat-sys-label-medium-size: .75rem;--mat-sys-label-medium-tracking: .031rem;--mat-sys-label-medium-weight: 500;--mat-sys-label-medium-weight-prominent: 700;--mat-sys-label-small: 500 .688rem / 1rem Roboto;--mat-sys-label-small-font: Roboto;--mat-sys-label-small-line-height: 1rem;--mat-sys-label-small-size: .688rem;--mat-sys-label-small-tracking: .031rem;--mat-sys-label-small-weight: 500;--mat-sys-title-large: 400 1.375rem / 1.75rem Roboto;--mat-sys-title-large-font: Roboto;--mat-sys-title-large-line-height: 1.75rem;--mat-sys-title-large-size: 1.375rem;--mat-sys-title-large-tracking: 0;--mat-sys-title-large-weight: 400;--mat-sys-title-medium: 500 1rem / 1.5rem Roboto;--mat-sys-title-medium-font: Roboto;--mat-sys-title-medium-line-height: 1.5rem;--mat-sys-title-medium-size: 1rem;--mat-sys-title-medium-tracking: .009rem;--mat-sys-title-medium-weight: 500;--mat-sys-title-small: 500 .875rem / 1.25rem Roboto;--mat-sys-title-small-font: Roboto;--mat-sys-title-small-line-height: 1.25rem;--mat-sys-title-small-size: .875rem;--mat-sys-title-small-tracking: .006rem;--mat-sys-title-small-weight: 500;--mat-sys-corner-extra-large: 28px;--mat-sys-corner-extra-large-top: 28px 28px 0 0;--mat-sys-corner-extra-small: 4px;--mat-sys-corner-extra-small-top: 4px 4px 0 0;--mat-sys-corner-full: 9999px;--mat-sys-corner-large: 16px;--mat-sys-corner-large-end: 0 16px 16px 0;--mat-sys-corner-large-start: 16px 0 0 16px;--mat-sys-corner-large-top: 16px 16px 0 0;--mat-sys-corner-medium: 12px;--mat-sys-corner-none: 0;--mat-sys-corner-small: 8px;--mat-sys-dragged-state-layer-opacity: .16;--mat-sys-focus-state-layer-opacity: .12;--mat-sys-hover-state-layer-opacity: .08;--mat-sys-pressed-state-layer-opacity: .12;color-scheme:light;background-color:var(--mat-sys-surface);color:var(--mat-sys-on-surface);font:var(--mat-sys-body-medium)}body{margin:0}app-customer-job-page{display:block;min-height:100vh;background:linear-gradient(180deg,#ffffffb8,#faf7f2f5),#f7f3ee}.portal-page{width:min(100%,1240px);margin:0 auto;padding:20px 18px 36px}.portal-card{overflow:hidden}.portal-hero{min-height:260px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:0 0 28px;padding:28px;border-radius:8px;background-image:linear-gradient(90deg,#181c18c7,#181c187a 45%,#181c180d),url(/assets/portal-hero-backyard.png);background-position:center;background-size:cover;color:#fff}.portal-hero__content{max-width:680px}.portal-hero__content h1{margin:0;max-width:18ch;font-size:2.35rem;line-height:1.08;font-weight:750;text-wrap:balance}.portal-hero__content p{margin:14px 0 0;max-width:54ch;color:#ffffffeb;font-size:1rem;line-height:1.55}.portal-kicker{display:inline-flex;align-items:center;margin-bottom:12px;padding:5px 10px;border:1px solid rgba(255,255,255,.36);border-radius:999px;background:#ffffff29;color:#ffffffeb;font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.portal-hero__status{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;align-self:flex-start;padding:9px 12px;border-radius:999px;background:#ffffffeb;color:#28362d;font-weight:700;box-shadow:0 10px 24px #0000001f}.portal-hero__status mat-icon{color:#2e7d53}.job-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin:0 0 24px;padding:14px;border:1px solid #e6ddd2;border-radius:8px;background:#faf7f2}.job-meta-item{display:grid;grid-template-columns:auto 1fr;gap:11px;align-items:flex-start;min-width:0;padding:6px 4px}.job-meta-item mat-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;background:#efe6db;color:#b7412c;font-size:20px;line-height:32px}.job-meta-item span{display:block;margin-bottom:2px;color:#6b6259;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.job-meta-item strong,.job-meta-item small{display:block;color:#2f2b28;font-size:.95rem;line-height:1.45;word-break:break-word}.job-meta-item small{color:#5f574f}.portal-workflow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:0 0 24px}.portal-workflow-step{min-width:0;display:flex;align-items:center;justify-content:center;gap:7px;padding:10px 8px;border:1px solid #e6ddd2;border-radius:8px;background:#fffdf9;color:#655d55;font-weight:700;font-size:.88rem}.portal-workflow-step mat-icon{color:#998d80;font-size:19px;width:19px;height:19px}.portal-workflow-step.is-active{border-color:#b7412c;background:#fff4ed;color:#2f2b28;box-shadow:0 8px 18px #b7412c14}.portal-workflow-step.is-complete{border-color:#bed7c8;background:#f3faf5;color:#275a3d}.portal-workflow-step.is-active mat-icon{color:#b7412c}.portal-workflow-step.is-complete mat-icon{color:#2e7d53}.step-intro{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.step-intro h3{margin:0 0 4px;color:#2f2b28}.step-intro p{margin:0;color:#655d55}.step-intro button{flex:0 0 auto;margin-top:0}.review-status-panel{display:flex;align-items:flex-start;gap:12px;margin:0 0 18px;padding:14px 16px;border:1px solid #e6d2be;border-radius:8px;background:#fff5e9;color:#3c332d}.review-status-panel mat-icon{color:#b7412c}.review-status-panel strong,.review-status-panel span{display:block}.review-status-panel span{margin-top:2px;color:#655d55}.payment-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:12px}.payment-summary>div{padding:14px 16px;border:1px solid #e6ddd2;border-radius:8px;background:#faf7f2}.payment-summary span{display:block;margin-bottom:4px;color:#6b6259;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.payment-summary strong{display:block;color:#2f2b28;font-size:1.22rem;line-height:1.2}.payment-context{margin:0 0 18px;color:#655d55}.completion-panel{text-align:center}.completion-panel h2{margin-top:0}@media (max-width: 760px){.portal-page{padding:10px 10px 24px}.portal-hero{min-height:300px;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:22px;background-image:linear-gradient(180deg,#181c181f,#181c18d1),url(/assets/portal-hero-backyard.png)}.portal-hero__content h1{max-width:100%;font-size:1.75rem}.portal-hero__status{align-self:flex-start;order:-1}.letterhead{flex-direction:column;align-items:flex-start}.company-info{text-align:left}.portal-workflow{grid-template-columns:1fr}.portal-workflow-step{justify-content:flex-start}.step-intro{flex-direction:column}.step-intro button{width:100%}}.mock-header-logo{width:150px;height:auto;flex:0 0 auto}.mock-signing-summary{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(150px,.55fr) minmax(150px,.55fr) minmax(180px,.65fr) auto;gap:12px;align-items:stretch;margin-bottom:18px;padding:14px;border:1px solid #d9d9dd;border-top:5px solid var(--fdc-navy, #292936);border-radius:6px;background:linear-gradient(90deg,#2929360b,#fff0 42%),#fff;box-shadow:0 14px 30px #2929360d}.mock-signing-summary>div{min-width:0;padding:10px 12px;border-right:1px solid #dedee3}.mock-signing-summary>div:last-of-type{border-right:0}.mock-signing-summary span{display:block;color:#6b6b73;font-size:.72rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.mock-signing-summary strong{display:block;margin-top:3px;color:var(--fdc-navy, #292936);font-size:1.12rem}.mock-summary-total strong{font-size:1.32rem}.mock-signing-summary p{margin:4px 0 0;color:#5f5f66}.mock-summary-action{align-self:center;min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:6px;padding:0 18px;background:var(--fdc-red, #d71920);color:#fff;font:inherit;font-weight:900;box-shadow:0 10px 18px #d7192029}.mock-summary-action[disabled]{background:#e2e2e6;color:#777780;box-shadow:none}.mock-signing-pad{display:grid;grid-template-columns:minmax(210px,1fr) minmax(220px,300px) minmax(210px,280px);gap:14px;align-items:center;padding:16px;border:1px solid #d9d9dd;border-left:4px solid #e7e7eb;border-radius:6px;background:#fff;box-shadow:0 14px 30px #2929360d}.mock-signing-copy span,.mock-signature-input span,.mock-signature-preview span{display:block;color:#6b6b73;font-size:.72rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.mock-signing-copy strong{display:block;margin-top:3px;font-size:1.1rem}.mock-signing-copy p{margin:4px 0 0;color:#5f5f66}.mock-signature-input{display:grid;gap:6px}.mock-signature-entry{display:grid;gap:8px;min-width:0}.mock-signature-input input{min-height:42px;width:100%;border:1px solid #cfcfd5;border-radius:4px;padding:0 11px;background:#fff;color:#171719;font:inherit;font-weight:800}.mock-signature-mode{display:grid;grid-template-columns:1fr 1fr;gap:2px;padding:3px;border:1px solid #cfcfd5;border-radius:4px;background:#f3f3f5}.mock-signature-mode button{min-height:30px;border:0;border-radius:3px;background:transparent;color:#5f5f66;font:inherit;font-size:.82rem;font-weight:900}.mock-signature-mode button.active{background:var(--fdc-red, #d71920);color:#fff;box-shadow:0 5px 14px #d7192029}.mock-signature-preview{min-height:70px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;align-items:center;padding:10px 12px;border:1px dashed #c3c3ca;border-radius:4px;background:#f8f8f9}.mock-signature-preview span{grid-column:1/-1}.mock-signature-preview strong{min-width:0;overflow:hidden;color:#171719;font-family:Brush Script MT,Segoe Script,cursive;font-size:1.45rem;font-weight:500;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.mock-drawn-preview{min-width:0;max-width:100%;max-height:40px;object-fit:contain;object-position:left center}.mock-signature-preview small{display:grid;place-items:center;min-width:34px;height:34px;border-radius:999px;background:#2f7d53;color:#fff;font-weight:900}.mock-draw-panel{grid-column:2/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}.mock-draw-canvas-wrap{display:grid;gap:6px}.mock-draw-canvas-wrap span{color:#6b6b73;font-size:.72rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.mock-signature-canvas{width:100%;height:108px;border:1px solid #cfcfd5;border-radius:4px;background:linear-gradient(transparent 70%,rgba(65,65,72,.42) 70%,rgba(65,65,72,.42) calc(70% + 1px),transparent calc(70% + 1px)),#fff;touch-action:none}.mock-clear-signature{min-height:32px;border:1px solid #cfcfd5;border-radius:4px;background:#fff;color:#171719;font:inherit;font-weight:900}.mock-clear-signature[disabled]{color:#8b8b94;background:#f2f2f4}.mock-signature-consent{grid-column:1/-1;display:flex;align-items:flex-start;gap:9px;min-height:42px;padding:10px 12px;border:1px solid #dedee3;border-radius:6px;background:#f8f8f9;color:#3e3e45;font-weight:700}.mock-signature-consent input{flex:0 0 auto;width:18px;height:18px;margin-top:1px;accent-color:#2f7d53}.mock-signature-consent span,.mock-signature-consent small{display:block}.mock-signature-consent small{margin-top:2px;color:#6b6b73;font-size:.78rem;font-weight:700}.mock-signature-consent.complete{border-color:#cbded0;background:#f4faf5}.mock-signing-requirement{grid-column:1/-1;min-height:34px;display:flex;align-items:center;margin:-2px 0 0;padding:6px 10px;border:1px solid transparent;border-radius:6px;color:#5f5f66;font-weight:800;opacity:0;transform:translateY(-2px);transition:opacity .16s ease,transform .16s ease}.mock-signing-requirement.is-visible{border-color:#dedee3;background:#fff;opacity:1;transform:none}.mock-signing-requirement span{display:block}.mock-draft-actions{grid-column:1/-1;display:block;align-items:center;padding-top:10px;border-top:1px solid #dedee3}.mock-draft-actions span{color:#5f5f66;font-weight:800}.mock-signature-summary{display:flex;flex-wrap:wrap;gap:8px}.mock-signature-summary span,.mock-status-pill{display:inline-flex;align-items:center;gap:6px;border:1px solid #e0c0bd;border-radius:999px;background:#fff7f7;color:var(--fdc-red-dark, #a90f16);font-weight:900}.mock-signature-summary span{padding:7px 11px}.mock-signature-summary span:first-child,.mock-status-pill.signed{border-color:#cbded0;background:#f4faf5;color:#2f7d53}.mock-signature-summary mat-icon,.mock-status-pill mat-icon{width:17px;height:17px;font-size:17px}.mock-applied-stamp,.mock-inline-stamp{border:1px solid #cbded0;background:#f4faf5;color:#2f7d53;font-weight:900}.mock-applied-stamp{min-width:180px;padding:10px 12px;border-radius:8px}.mock-applied-stamp span,.mock-applied-stamp small,.mock-applied-stamp strong{display:block}.mock-applied-stamp img{display:block;max-width:150px;max-height:42px;margin:4px 0;object-fit:contain;object-position:left center}.mock-applied-stamp span,.mock-applied-stamp small{font-size:.75rem}.mock-applied-stamp strong{margin:2px 0;color:#226541;font-family:Brush Script MT,Segoe Script,cursive;font-size:1.35rem;font-weight:500}.mock-inline-stamp{flex:0 0 auto;border-radius:999px;padding:8px 11px}.mock-contract-map{display:flex;flex-wrap:wrap;gap:7px;margin:16px 0 18px;padding:10px;border:1px solid #d9d9dd;border-radius:6px;background:#f7f7f8}.mock-contract-map span{display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border:1px solid #e0c0bd;border-radius:999px;background:#fff7f7;color:var(--fdc-red-dark, #a90f16);font-size:.82rem;font-weight:800}.mock-contract-map span.complete{border-color:#cbded0;background:#f4faf5;color:#2f7d53}.mock-contract-map mat-icon{width:16px;height:16px;font-size:16px}.mock-loading-screen{position:relative;isolation:isolate;box-sizing:border-box;width:100%;min-height:100vh;display:grid;place-items:center;overflow:hidden;padding:clamp(34px,5vw,64px) 24px;background:linear-gradient(90deg,#16181fe0,#16181fb8 42%,#16181f3d),linear-gradient(0deg,#16181f3d,#16181f1a),url(/assets/portal-hero-backyard.png);background-position:center;background-size:cover;color:#fff}.mock-loading-screen:after{content:"";position:absolute;inset:auto 0 0;z-index:-1;height:36%;background:linear-gradient(0deg,#16181f94,#16181f00)}.mock-loading-copy{width:min(100%,660px);justify-self:center;display:grid;gap:14px;margin-left:0;transform:translate(-8vw)}.mock-loading-brand{width:fit-content;display:inline-flex;align-items:center;gap:12px;padding:9px 12px;border-radius:8px;background:#fffffff0;box-shadow:0 18px 36px #0000002e}.mock-loading-brand img{width:clamp(145px,13vw,188px);height:auto}.mock-loading-spinner{display:block;width:24px;height:24px;border:3px solid #dddde1;border-top-color:var(--fdc-red, #d71920);border-radius:50%;animation:mock-spin 1s linear infinite}.mock-loading-eyebrow{width:fit-content;display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:#ffffff1f;color:#ffffffe6;font-size:.74rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.mock-loading-screen h1{margin:0;max-width:14ch;color:#fff;font-size:clamp(2.45rem,4vw,4.6rem);font-weight:950;line-height:.98;text-wrap:balance;text-shadow:0 18px 38px rgba(0,0,0,.34)}.mock-loading-screen p{margin:0;max-width:58ch;color:#ffffffe0;font-size:clamp(1rem,1.45vw,1.16rem);line-height:1.55}.mock-loading-proof{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;width:min(100%,620px);margin-top:8px;overflow:hidden;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:#ffffff29;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.mock-loading-proof span{display:grid;gap:3px;padding:12px 14px;background:#ffffff14}.mock-loading-proof strong,.mock-loading-proof small{display:block}.mock-loading-proof strong{color:#fff;font-size:clamp(1rem,1.35vw,1.25rem);font-weight:950}.mock-loading-proof small{color:#ffffffc2;font-size:.72rem;font-weight:800;line-height:1.25}.mock-loading-track{position:relative;width:min(100%,620px);height:4px;margin-top:6px;overflow:hidden;border-radius:999px;background:#ffffff38}.mock-loading-track span{position:absolute;inset:0 auto 0 0;width:42%;border-radius:inherit;background:var(--fdc-red, #d71920);box-shadow:0 0 18px #d719208c;animation:mock-loading-track 1.7s ease-in-out infinite}.mock-loading-grid{width:min(100%,620px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:2px}.mock-loading-grid span{position:relative;min-height:56px;display:grid;align-content:center;gap:2px;padding:10px 12px;border:1px solid rgba(255,255,255,.24);border-radius:8px;background:#ffffff1f;color:#fff}.mock-shell.mock-shell-loading{width:100%;max-width:none;border-right:0;border-left:0;background:transparent}.mock-shell.mock-shell-loading .mock-main{min-height:100vh;display:grid;place-items:center;padding:clamp(28px,5vw,56px) 20px}app-customer-portal-v2 .mock-shell.mock-shell-loading{width:100%!important;max-width:none!important;border-right:0!important;border-left:0!important;background:transparent!important}app-customer-portal-v2 .mock-shell.mock-shell-loading .mock-main{min-height:100vh!important;display:grid!important;place-items:center!important;padding:0!important}.mock-loading-grid strong,.mock-loading-grid small{display:block}.mock-loading-grid strong{color:#fff;font-size:.84rem;font-weight:950}.mock-loading-grid small{color:#ffffffbd;font-size:.72rem;font-weight:800}.mock-load-state.subtle{border-color:#dedee3;background:#f7f7f8;color:#5f5f66}.mock-load-state.warning{border-color:#eed0a7;background:#fff8eb;color:#80521c}.mock-footer{display:flex;justify-content:space-between;gap:18px;margin-top:30px;padding:18px 0 0;border-top:1px solid #e1e1e6;color:var(--fdc-muted, #5f5f66)}.mock-footer div{display:grid;gap:3px}.mock-footer div:last-child{text-align:right}.mock-footer span,.mock-footer small{color:var(--fdc-muted, #5f5f66)}.mock-footer span{font-size:.74rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.mock-footer strong,.mock-footer a{color:var(--fdc-navy, #292936);font-weight:900;text-decoration:none}.mock-long-check.inline{margin-top:12px}.mock-inline-check{display:flex;align-items:center;gap:10px;min-width:0;color:#3c352f;font-weight:800}.mock-inline-check input{flex:0 0 auto;width:18px;height:18px;accent-color:var(--fdc-red, #d71920)}.mock-review-note{margin:12px 0 0;padding:11px 13px;border:1px solid #ead8ca;border-radius:8px;background:#fbf7f1;color:#625a52;font-weight:700}.mock-sketch-review{padding:12px;border:1px solid #dedee3;border-radius:8px;background:#fafafa}.mock-sketch-review img{background:#fff}.mock-task-panel{overflow:hidden;max-height:2400px;transform-origin:top center;animation:mock-panel-in var(--mock-step-motion, .3s) ease-out;will-change:opacity,transform,max-height}.mock-task-panel.completing{pointer-events:none;animation:mock-panel-complete-out var(--mock-step-motion, .3s) ease-in-out forwards}.mock-task-row,.mock-task-panel,.mock-alert,.mock-signature-card,.mock-review-stamp{transition:background-color var(--mock-step-motion, .3s) ease,border-color var(--mock-step-motion, .3s) ease,box-shadow var(--mock-step-motion, .3s) ease,transform var(--mock-step-motion, .3s) ease}.mock-task-row.just-signed{border-color:#bcd8c5;background:#f3faf5;box-shadow:0 8px 22px #2f7d5314}.mock-section-complete-banner{display:grid;grid-template-columns:auto minmax(0,1fr);gap:11px;align-items:center;margin-bottom:14px;padding:12px 14px;border:1px solid #c4ddca;border-radius:8px;background:#f2faf4;color:#245b3b;animation:mock-complete-in var(--mock-step-motion, .3s) ease-out}.mock-section-complete-banner mat-icon{color:#2f7d53;animation:mock-check-pop var(--mock-step-motion, .3s) ease-out}.mock-section-complete-banner strong,.mock-section-complete-banner span{display:block}.mock-section-complete-banner span{margin-top:2px;color:#4d6a57}.mock-required-check{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px 12px;align-items:flex-start;border-color:#dcae9b;background:#fff7f1}.mock-required-check.complete{border-color:#cbded0;background:#f5fbf6}.mock-required-check span strong{display:block;margin-bottom:3px;color:var(--fdc-red-dark, #a90f16);font-size:.76rem;letter-spacing:.05em;text-transform:uppercase}.mock-required-check.complete span strong{color:#2f7d53}.mock-required-check em{align-self:center;justify-self:end;white-space:nowrap;border:1px solid #e0c0bd;border-radius:6px;padding:6px 9px;background:#fff7f7;color:var(--fdc-red-dark, #a90f16);font-style:normal;font-weight:900}.mock-required-check.complete em{border-color:#cbded0;background:#f4faf5;color:#2f7d53}.mock-legal-box span strong{display:block;min-height:22px;color:#2d2925;font-family:Brush Script MT,Segoe Script,cursive;font-size:1.18rem;font-weight:500;line-height:1.1}.mock-legal-box span:last-child strong{font-family:inherit;font-size:.95rem;font-weight:900}body.mock-document-viewer-active{overflow:hidden}.mock-contract-preview.document-viewer-open{position:fixed;inset:24px;z-index:1000;display:flex;flex-direction:column;overflow:auto;border-color:#c9b7a8;background:#f7f2eb;box-shadow:0 24px 70px #2d221847;animation:mock-viewer-in .18s ease-out}.mock-contract-preview.document-viewer-open .mock-document-toolbar{position:sticky;top:0;z-index:2;box-shadow:0 8px 18px #2d221814}.mock-contract-preview.document-viewer-open .mock-document-outline{position:sticky;top:56px;z-index:2;width:min(100% - 32px,900px);background:#fffffff0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.mock-contract-preview.document-viewer-open .mock-document{display:grid;width:min(100% - 32px,900px);max-width:900px;gap:28px;margin:24px auto 36px!important;padding:0!important;transform:none!important;box-shadow:none}.mock-contract-preview.document-viewer-open .mock-document-page{min-height:min(1080px,100vh - 170px);padding:44px 50px 56px}.mock-contract-preview.document-viewer-open .mock-open-doc{border-color:var(--fdc-red, #d71920);background:#fff7f7;color:var(--fdc-red-dark, #a90f16)}@keyframes mock-panel-in{0%{opacity:0;transform:translateY(-4px);max-height:0}to{opacity:1;transform:translateY(0);max-height:2400px}}@keyframes mock-panel-complete-out{0%{opacity:1;max-height:2400px;transform:translateY(0)}45%{opacity:1;background:#f3faf5}to{opacity:0;max-height:0;transform:translateY(-6px)}}@keyframes mock-complete-in{0%{opacity:0;transform:translateY(-8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes mock-check-pop{0%{transform:scale(.72)}70%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes mock-viewer-in{0%{opacity:0;transform:translateY(10px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}.mock-contract-section.fine-print{background:#fffefa}.mock-contract-section.fine-print article+article{margin-top:12px;padding-top:12px;border-top:1px solid #eadfd4}.mock-contract-section.fine-print strong{display:block;color:#2d2925;font-size:.82rem;letter-spacing:.02em;text-transform:uppercase}.mock-contract-section.fine-print p{margin-top:5px;color:#4f463f;font-size:.82rem;line-height:1.5}.mock-contract-section.cancellation-preview{background:#fff8f4}@keyframes mock-spin{to{transform:rotate(360deg)}}@keyframes mock-shimmer{0%{background-position:180% 0}to{background-position:-80% 0}}@keyframes mock-loading-track{0%{transform:translate(-110%)}48%,58%{transform:translate(68%)}to{transform:translate(238%)}}@media (max-width: 980px){.mock-signing-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.mock-summary-action{grid-column:1/-1}.mock-signing-pad{grid-template-columns:minmax(0,1fr) minmax(190px,260px)}.mock-signing-copy,.mock-signature-consent,.mock-draw-panel{grid-column:1/-1}}@media (max-width: 760px){.mock-header-logo{width:118px}.mock-signing-summary{grid-template-columns:1fr;padding:12px}.mock-signing-summary>div{border-right:0;border-bottom:1px solid #eadfd4}.mock-signing-summary>div:last-of-type{border-bottom:0}.mock-signing-pad{grid-template-columns:1fr;padding:12px}.mock-signature-input,.mock-signature-entry,.mock-signature-preview,.mock-signature-consent,.mock-draw-panel{grid-column:auto}.mock-draw-panel{grid-template-columns:1fr}.mock-draft-actions span{text-align:center}.mock-required-check{grid-template-columns:auto minmax(0,1fr)}.mock-required-check em{grid-column:1/-1;justify-self:stretch;text-align:center}.mock-footer{display:grid}.mock-footer div:last-child{text-align:left}.mock-contract-preview.document-viewer-open{inset:0;border-radius:0}.mock-contract-preview.document-viewer-open .mock-document-mobile{display:none}.mock-contract-preview.document-viewer-open .mock-document-outline{top:52px;width:auto;grid-template-columns:repeat(2,minmax(0,1fr));margin:12px;-webkit-backdrop-filter:none;backdrop-filter:none}.mock-contract-preview.document-viewer-open .mock-document{display:grid;width:auto;max-width:none;gap:16px;margin:12px!important;padding:0!important}.mock-contract-preview.document-viewer-open .mock-document-page{min-height:auto;padding:22px 18px 38px}app-customer-portal-v2 button{-webkit-tap-highlight-color:transparent}app-customer-portal-v2 .mock-shell .mock-main{padding:12px}app-customer-portal-v2 .mock-shell.mock-shell-loading .mock-main{min-height:100svh;padding:0}app-customer-portal-v2 .mock-loading-screen{width:100%;min-height:100svh;margin:0;padding:28px 18px 30px;background:linear-gradient(180deg,#16181f7a,#16181fe6 62%,#16181feb),url(/assets/portal-hero-backyard.png);background-position:center top;background-size:cover}app-customer-portal-v2 .mock-loading-copy{justify-self:stretch;gap:12px;margin-left:0;transform:none}app-customer-portal-v2 .mock-loading-brand{justify-self:start;padding:8px 10px}app-customer-portal-v2 .mock-loading-brand img{width:132px}app-customer-portal-v2 .mock-loading-screen h1{max-width:12ch;font-size:2.25rem}app-customer-portal-v2 .mock-loading-screen p{max-width:32ch;font-size:.94rem}app-customer-portal-v2 .mock-loading-proof{grid-template-columns:1fr;max-width:360px}app-customer-portal-v2 .mock-loading-proof span{grid-template-columns:72px minmax(0,1fr);align-items:baseline;padding:9px 11px}app-customer-portal-v2 .mock-loading-grid{grid-template-columns:1fr;gap:8px;margin-top:12px;max-width:360px}app-customer-portal-v2 .mock-loading-grid span{min-height:48px}app-customer-portal-v2 .mock-signing-summary{gap:0;border-radius:8px}app-customer-portal-v2 .mock-signing-summary>div{padding:10px 4px}app-customer-portal-v2 .mock-summary-action{min-height:46px;width:100%}app-customer-portal-v2 .mock-signing-pad{gap:12px;border-left-width:1px;border-radius:8px}app-customer-portal-v2 .mock-signature-consent{align-items:center;min-height:54px;padding:12px}app-customer-portal-v2 .mock-draft-actions{padding-top:12px}app-customer-portal-v2 .mock-task-list{gap:7px}app-customer-portal-v2 .mock-task-list .mock-task-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:center;padding:10px 12px;border-color:#dedee3;border-radius:7px;background:#fff;box-shadow:none}app-customer-portal-v2 .mock-task-list .mock-task-row.expanded{border-color:var(--fdc-navy, #292936);background:#fff}app-customer-portal-v2 .mock-task-list .mock-task-row.complete{border-color:#cbded0;background:#f8fcf8}app-customer-portal-v2 .mock-task-list .mock-task-main{grid-column:1;grid-row:1;width:auto;min-height:34px;padding:0;gap:9px}app-customer-portal-v2 .mock-task-list .mock-task-main mat-icon{width:22px;height:22px;display:grid;place-items:center;border:2px solid #9a7a44;border-radius:50%;color:transparent;font-size:0}app-customer-portal-v2 .mock-task-list .mock-task-row.complete .mock-task-main mat-icon{border-color:#2f7d53;background:#2f7d53;color:#fff;font-size:17px}app-customer-portal-v2 .mock-task-list .mock-task-main span{min-width:0}app-customer-portal-v2 .mock-task-list .mock-task-main strong{font-size:.95rem;line-height:1.15}app-customer-portal-v2 .mock-task-list .mock-task-main small{margin-top:2px;color:#6b6259;font-size:.76rem;line-height:1.22}app-customer-portal-v2 .mock-task-list .mock-status-pill{grid-column:1;grid-row:2;justify-self:start;width:auto;max-width:100%;min-height:0;margin:0 0 0 31px;padding:0;border:0;border-radius:0;background:transparent;color:#80521c;font-size:.72rem;line-height:1.2;text-align:left}app-customer-portal-v2 .mock-task-list .mock-status-pill.signed,app-customer-portal-v2 .mock-task-list .mock-status-pill.reviewed-only{background:transparent;color:#2f7d53}app-customer-portal-v2 .mock-task-list .mock-task-action{grid-column:2;grid-row:1/span 2;align-self:center;justify-self:end;width:auto;min-width:76px;min-height:36px;margin:0;padding:0 12px;border-radius:6px;border-color:#c8cbd2;background:#fff;color:var(--fdc-navy, #292936);font-size:.86rem}app-customer-portal-v2 .mock-task-list .mock-task-row.expanded .mock-task-action{border-color:var(--fdc-navy, #292936);color:var(--fdc-navy, #292936)}app-customer-portal-v2 .mock-task-list .mock-task-panel{margin:-2px 0 10px;border-radius:0 0 10px 10px}}@media (prefers-reduced-motion: reduce){.mock-task-panel,.mock-section-complete-banner,.mock-section-complete-banner mat-icon,.mock-contract-preview.document-viewer-open,.mock-loading-spinner,.mock-loading-grid span,.mock-loading-track span{animation:none!important}.mock-task-row,.mock-task-panel,.mock-alert,.mock-signature-card,.mock-review-stamp{transition:none!important}}
