/* Final summary popup - matched to the selected clean option */
.summary-clean{
  background:#fff!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  padding:0!important;
  margin:0!important;
  color:#122c3f!important;
}
.summary-clean .summary-header{
  text-align:center;
  margin:0 0 13px;
}
.summary-clean .summary-title{
  font-size:24px;
  font-weight:950;
  line-height:1.2;
  letter-spacing:-.035em;
  color:#122c3f;
}
.summary-clean .summary-subtitle{
  margin-top:5px;
  color:#6f818e;
  line-height:1.45;
  font-size:14px;
  font-weight:650;
}
.summary-clean .summary-section{
  margin:0;
}
.summary-clean .summary-row{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
  padding:6px 0;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.summary-clean .summary-label{
  color:#7c8b96;
  font-weight:700;
  font-size:15px;
  white-space:nowrap;
}
.summary-clean .summary-value{
  font-weight:900;
  font-size:15px;
  color:#122c3f;
  text-align:left;
  direction:rtl;
  line-height:1.35;
}
.summary-clean .summary-price{
  direction:ltr;
  unicode-bidi:isolate;
  white-space:nowrap;
}
.summary-clean .summary-sep{
  height:1px;
  background:#e7eef4;
  margin:9px 0;
}
.summary-clean .summary-total{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:18px;
}
.summary-clean .summary-total span{
  color:#122c3f;
  font-weight:850;
  font-size:16px;
}
.summary-clean .summary-total b{
  color:#122c3f;
  font-size:36px;
  line-height:1;
  font-weight:950;
  letter-spacing:-.04em;
  direction:ltr;
  unicode-bidi:isolate;
}
.summary-final-card{
  margin-bottom:0!important;
}
.summary-coupon{
  margin-top:5px;
}
.summary-coupon-toggle{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 0;
  border:0;
  background:transparent;
  color:#287bd8;
  font:inherit;
  font-size:13px;
  font-weight:850;
  cursor:pointer;
}
.summary-coupon-plus{
  font-size:17px;
  line-height:1;
  transition:transform .18s ease;
}
.summary-coupon-toggle[aria-expanded="true"] .summary-coupon-plus{
  transform:rotate(45deg);
}
.summary-coupon-form{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  margin-top:7px;
}
.summary-coupon-form[hidden]{
  display:none!important;
}
.summary-coupon-input.field{
  height:42px!important;
  border-radius:13px!important;
}
.summary-coupon-apply{
  min-width:70px;
  height:42px;
  padding:0 15px;
  border:0;
  border-radius:13px;
  background:#102033;
  color:#fff;
  font:inherit;
  font-size:14px;
  font-weight:850;
  cursor:pointer;
}
.summary-coupon-applied{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:5px;
  padding:5px 0;
  color:#536776;
  font-size:13px;
  font-weight:750;
}
.summary-clean-actions{
  margin-top:12px!important;
  gap:8px!important;
}
.summary-clean-actions .btn.primary{
  border:0!important;
  width:100%!important;
  margin:0 auto!important;
  display:block!important;
  border-radius:18px!important;
  padding:0 17px!important;
  height:50px!important;
  font-size:17px!important;
  font-weight:900!important;
  color:#fff!important;
  background:linear-gradient(135deg,#2fa8f7,#77ceff)!important;
  box-shadow:0 13px 24px rgba(47,168,247,.20)!important;
}

/* Address step only - option 1 visual skin. Logic, IDs and function calls stay unchanged. */
.pickup-clean-step{
  padding:0 2px;
}
.pickup-clean-step .modal h2,
.pickup-clean-step h2{
  margin:0!important;
  font-size:24px!important;
  line-height:1.2!important;
  text-align:center!important;
  font-weight:950!important;
  letter-spacing:-.035em!important;
  color:#102033!important;
}
.pickup-clean-divider{
  height:1px;
  background:#e3eaf0;
  margin:18px 0 0;
}
.pickup-clean-options{
  gap:0!important;
  margin:0!important;
}
.pickup-action-row.option,
.pickup-action-row{
  min-height:54px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  padding:0!important;
  border:0!important;
  border-bottom:1px solid #e3eaf0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  text-align:right!important;
  color:#102033!important;
}
.pickup-action-row i{
  width:48px!important;
  height:48px!important;
  min-width:48px!important;
  border-radius:16px!important;
  display:grid!important;
  place-items:center!important;
  background:#f2f8fd!important;
  color:#102033!important;
  font-style:normal!important;
  font-size:22px!important;
  order:2;
}
.pickup-action-row span{
  order:1;
  flex:1;
}
.pickup-action-row strong{
  display:block!important;
  font-size:18px!important;
  font-weight:900!important;
  line-height:1.25!important;
  color:#102033!important;
}
.pickup-action-row small{
  display:block!important;
  font-size:13px!important;
  color:#7f8b96!important;
  font-weight:800!important;
  margin-top:3px!important;
}
.pickup-action-row.address-search-option.searching{
  align-items:flex-start!important;
  padding:12px 0!important;
}
.pickup-action-row.address-search-option.searching .inline-address-search{
  display:block!important;
  width:100%!important;
  margin-top:0!important;
  height:30px!important;
  font-size:16px!important;
  font-weight:800!important;
  color:#102033!important;
  text-align:right!important;
}
.pickup-action-row.address-search-option.searching small{
  display:none!important;
}
.pickup-address-fields{
  margin:0!important;
  gap:0!important;
  display:grid!important;
  justify-items:center!important;
}
.pickup-selected-address{
  width:100%;
  text-align:center;
  margin:18px 0 12px;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.pickup-selected-label{
  display:block;
  color:#7f8b96;
  font-weight:900;
  font-size:13px;
  margin-bottom:8px;
}
.pickup-selected-address strong{
  display:block;
  color:#102033;
  font-size:20px;
  line-height:1.25;
  font-weight:950;
  margin-bottom:4px;
}
.pickup-selected-address span{
  display:block;
  color:#7f8b96;
  font-size:14px;
  line-height:1.35;
  font-weight:800;
}
.pickup-house-input.field{
  width:112px!important;
  height:42px!important;
  min-height:42px!important;
  padding:0 12px!important;
  margin:0 auto!important;
  border-radius:14px!important;
  background:#eaf3ff!important;
  border:1px solid #d4e3f1!important;
  color:#102033!important;
  text-align:center!important;
  direction:ltr!important;
  font-size:18px!important;
  font-weight:900!important;
  box-shadow:none!important;
}
.pickup-house-input.field::placeholder{
  color:rgba(16,32,51,.42)!important;
  font-size:14px!important;
  font-weight:800!important;
}
.pickup-confirm-btn.btn.primary{
  width:100%!important;
  height:52px!important;
  margin-top:14px!important;
  border-radius:17px!important;
  background:linear-gradient(135deg,#4BA3FF,#78C4FF)!important;
  color:#fff!important;
  font-size:17px!important;
  font-weight:950!important;
  border:0!important;
  box-shadow:0 13px 24px rgba(47,168,247,.20)!important;
}
.pickup-address-fields .back-link-btn{
  margin-top:10px!important;
}

/* Clean success screen Lottie replacement - visual only */
.success-card{
  width:min(100%,420px);
  margin:auto;
}
.success-lottie-wrap{
  width:188px;
  height:188px;
  margin:0 auto 4px;
  display:flex;
  align-items:center;
  justify-content:center;
}
#successAnim{
  width:188px;
  height:188px;
  display:block;
}
.success-fallback-check{
  width:132px;
  height:132px;
  border-radius:50%;
  background:#2cd994;
  display:none;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:72px;
  font-weight:900;
  line-height:1;
  animation:successFallbackPop .55s cubic-bezier(.2,1.4,.35,1) both;
}
.success-fallback-check:after{
  content:"✓";
  transform:translateY(-4px);
}
.success-screen h2{
  margin-top:8px !important;
}
.success-screen .actions{
  margin-top:28px;
}
.success-screen .actions .btn{
  width:100%;
}
@keyframes successFallbackPop{
  0%{transform:scale(.72);opacity:0}
  70%{transform:scale(1.06);opacity:1}
  100%{transform:scale(1);opacity:1}
}

.brand-loader-overlay{
  position:fixed;
  inset:0;
  width:100vw;
  height:100vh;
  z-index:9999999;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    radial-gradient(circle at 50% 42%, rgba(90,185,255,.08) 0%, transparent 38%),
    linear-gradient(180deg, #FFFFFF 0%, #FCFEFF 45%, #F2F9FC 100%);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .34s ease, visibility .34s ease;
}
.brand-loader-overlay.show{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.brand-loader-mark{
  position:relative;
  width:340px;
  height:340px;
  display:grid;
  place-items:center;
  filter:drop-shadow(0 20px 18px rgba(30,65,90,.16));
}
.brand-loader-mark:before{
  content:"";
  position:absolute;
  inset:6px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(90,185,255,.08),rgba(34,199,182,.05),transparent 68%);
  animation:brandLoaderHalo 3.7s ease-in-out infinite;
}
.brand-loader-logo{
  position:relative;
  z-index:2;
  width:220px;
  max-width:none;
  height:auto;
  display:none;
}
.brand-loader-lottie{
  position:relative;
  z-index:2;
  width:154px;
  height:154px;
  display:none;
}
.brand-loader-fallback{
  position:relative;
  z-index:2;
  width:64px;
  height:64px;
  border-radius:50%;
  border:5px solid rgba(75,163,255,.18);
  border-top-color:#4BA3FF;
  display:none;
  animation:brandLoaderFallbackSpin .85s linear infinite;
}
.brand-loader-overlay.logo-mode .brand-loader-mark{
  animation:brandLogoBreath 3.7s ease-in-out infinite;
}
.brand-loader-overlay.logo-mode .brand-loader-logo{
  display:block;
}
.brand-loader-overlay.logo-mode .brand-loader-lottie,
.brand-loader-overlay.logo-mode .brand-loader-fallback{
  display:none!important;
}
.brand-loader-overlay.lottie-mode .brand-loader-mark{
  animation:none;
}
.brand-loader-overlay.lottie-mode .brand-loader-logo{
  display:none!important;
}
.brand-loader-overlay.lottie-mode .brand-loader-lottie{
  display:block;
}
.brand-loader-overlay.lottie-mode.fallback-mode .brand-loader-lottie{
  display:none!important;
}
.brand-loader-overlay.lottie-mode.fallback-mode .brand-loader-fallback{
  display:flex;
}
@keyframes brandLogoBreath{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.035)}
}
@keyframes brandLoaderFallbackSpin{
  to{transform:rotate(360deg)}
}
@keyframes brandLoaderHalo{
  0%,100%{transform:scale(.92);opacity:.48}
  50%{transform:scale(1.06);opacity:.78}
}

/* Upload rows final fix: remove right icon after upload, keep one check on the left with inner spacing */
.upload.done{
  position:relative!important;
  background:rgba(25,169,108,.12)!important;
  border-color:rgba(25,169,108,.26)!important;
  border-radius:18px!important;
  padding-left:46px!important;
  padding-right:16px!important;
}
.upload.done .uicon{
  display:none!important;
}
.upload.done:after{
  content:"✓"!important;
  position:absolute!important;
  left:18px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  margin:0!important;
  color:#15966f!important;
  font-weight:950!important;
  font-size:19px!important;
  line-height:1!important;
}
.upload.done strong{
  color:#102033!important;
}
.upload.done small{
  display:none!important;
}

.success-screen .actions .btn.primary{
  width:20%!important;
  margin:0 auto!important;
  display:block!important;
}

/* Supplement document upload page - clean option 4 */
.supplement-upload-home{
  align-items:center!important;
  justify-content:center!important;
  padding:22px!important;
  min-height:100svh;
}
.supplement-upload-wrap{
  width:min(100%,430px)!important;
  margin-top:0!important;
}
.supplement-soft-card{
  background:rgba(255,255,255,.78);
  backdrop-filter:blur(18px);
  border:1px solid rgba(255,255,255,.9);
  border-radius:30px;
  padding:24px 18px 20px;
  box-shadow:0 18px 55px rgba(30,90,130,.13);
  color:#102033;
  text-align:center;
}
.supplement-soft-card.success{
  padding:30px 20px 24px;
}
.supplement-doc-icon{
  width:58px;
  height:58px;
  margin:0 auto 18px;
  border-radius:20px;
  display:grid;
  place-items:center;
  background:#fff;
  box-shadow:0 12px 28px rgba(40,110,150,.12);
  font-size:28px;
}
.supplement-soft-card h2{
  margin:0;
  text-align:center;
  font-size:34px;
  line-height:1.1;
  letter-spacing:-.8px;
  color:#102033;
  font-weight:950;
}
.supplement-sub{
  text-align:center;
  color:#71808c;
  font-weight:800;
  margin:10px auto 28px;
  font-size:16px;
  line-height:1.45;
}
.supplement-file-pill{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-top:8px;
  padding:16px;
  border-radius:22px;
  background:#f7fbfd;
  border:1px dashed #bdd6e5;
  text-align:right;
  cursor:pointer;
}
.supplement-file-pill input{
  position:absolute;
  inset:0;
  opacity:0;
  cursor:pointer;
}
.supplement-file-pill b{
  display:block;
  font-size:17px;
  color:#102033;
  font-weight:900;
  line-height:1.25;
  word-break:break-word;
}
.supplement-file-pill small{
  display:block;
  color:#71808c;
  margin-top:4px;
  font-weight:800;
  font-size:13px;
}
.supplement-paperclip{
  width:42px;
  height:42px;
  border-radius:16px;
  display:grid;
  place-items:center;
  background:#f4f9fc;
  color:#71808c;
  font-size:23px;
  flex:0 0 auto;
}
.supplement-file-pill.done{
  border-style:solid;
  border-color:rgba(35,183,126,.45);
  background:rgba(35,183,126,.08);
}
.supplement-file-pill.done .supplement-paperclip{
  background:rgba(35,183,126,.14);
  color:#19a96c;
}
.supplement-upload-actions{
  margin-top:18px;
}
.supplement-upload-btn{
  width:100%;
  height:62px!important;
  border:0!important;
  border-radius:22px!important;
  color:#fff!important;
  font-size:20px!important;
  font-weight:900!important;
  background:linear-gradient(135deg,#47a7f5,#73c9f7)!important;
  box-shadow:0 16px 30px rgba(71,167,245,.22)!important;
}
.supplement-note{
  margin-top:14px;
  color:#8795a0;
  font-size:12px;
  text-align:center;
  line-height:1.6;
  font-weight:700;
}
.supplement-state-card{
  padding:30px 20px 24px;
}
.supplement-state-message{
  margin:14px auto 0;
  max-width:340px;
  color:#60727f;
  font-size:16px;
  line-height:1.65;
  font-weight:750;
  text-align:center;
}
.supplement-state-actions,
.supplement-exit-actions{
  display:grid;
  gap:10px;
  margin-top:22px;
}
.supplement-exit-actions{
  margin-top:14px;
}
.supplement-nav-primary,
.supplement-nav-secondary{
  width:100%;
  height:54px;
  border-radius:17px;
  font-size:16px;
  font-weight:900;
}
.supplement-nav-primary{
  border:0;
  color:#fff;
  background:linear-gradient(135deg,#47a7f5,#73c9f7);
  box-shadow:0 12px 24px rgba(71,167,245,.20);
}
.supplement-nav-secondary{
  border:1px solid #dce8ef;
  color:#17313b;
  background:#f7fbfd;
  box-shadow:none;
}
.supplement-home-link{
  width:auto;
  min-height:32px;
  margin:0 auto;
  padding:6px 12px;
  border:0;
  background:transparent;
  color:#6f808c;
  font-size:14px;
  font-weight:850;
  text-decoration:underline;
  text-underline-offset:3px;
}
.supplement-loading-spinner{
  width:44px;
  height:44px;
  margin:0 auto 20px;
  border:4px solid #dcecf5;
  border-top-color:#47a7f5;
  border-radius:50%;
  animation:supplementSpin .8s linear infinite;
}
@keyframes supplementSpin{to{transform:rotate(360deg)}}
.supplement-success-check{
  width:72px;
  height:72px;
  border-radius:50%;
  margin:0 auto 18px;
  display:grid;
  place-items:center;
  background:rgba(25,169,108,.12);
  color:#19a96c;
  border:1px solid rgba(25,169,108,.28);
  font-size:38px;
  font-weight:950;
}
@media(max-width:390px){
  .supplement-soft-card{padding:22px 16px 18px;border-radius:28px;}
  .supplement-soft-card h2{font-size:31px;}
  .supplement-upload-btn{height:58px!important;font-size:19px!important;}
}

/* Exact center fix for supplemental document upload flow only */
body.supplement-upload-mode,
body:has(.supplement-upload-home){
  height:100vh !important;
  min-height:100vh !important;
  overflow:hidden !important;
}
body.supplement-upload-mode .app,
body:has(.supplement-upload-home) .app{
  height:100vh !important;
  min-height:100vh !important;
  overflow:hidden !important;
}
body.supplement-upload-mode .home-inner,
body:has(.supplement-upload-home) .home-inner{
  margin-top:0 !important;
}
.supplement-upload-home{
  position:fixed !important;
  inset:0 !important;
  width:100vw !important;
  height:100vh !important;
  min-height:100vh !important;
  margin:0 !important;
  padding:22px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:hidden !important;
}
.supplement-upload-home .supplement-upload-card,
#supplementUploadCard,
#supplementUploadCard.success{
  position:relative !important;
  margin:0 auto !important;
  top:auto !important;
  bottom:auto !important;
  left:auto !important;
  right:auto !important;
  transform:none !important;
}
@supports (height:100dvh){
  body.supplement-upload-mode,
  body:has(.supplement-upload-home),
  body.supplement-upload-mode .app,
  body:has(.supplement-upload-home) .app,
  .supplement-upload-home{
    height:100dvh !important;
    min-height:100dvh !important;
  }
}

.terms-popup-shell{
  position:fixed;
  inset:0;
  z-index:1000005;
  display:none;
  align-items:center;
  justify-content:center;
  padding:12px;
  background:rgba(238,248,251,.68);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}
.terms-popup-shell.active{display:flex;animation:termsPopupFade .22s ease both;}
.terms-popup-window{
  position:relative;
  width:min(100%,480px);
  height:min(92vh,820px);
  height:min(92dvh,820px);
  overflow:hidden;
  border-radius:28px;
  background:#eef8fb;
  border:1px solid rgba(16,32,51,.12);
  box-shadow:0 30px 90px rgba(30,65,90,.25);
  animation:termsPopupIn .28s cubic-bezier(.2,.85,.25,1) both;
}
.terms-popup-frame{display:block;width:100%;height:100%;border:0;background:#eef8fb;}
@keyframes termsPopupFade{from{opacity:0}to{opacity:1}}
@keyframes termsPopupIn{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}
.summary-terms-consent{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:0;
  padding:10px 12px;
  border:1px solid rgba(16,32,51,.10);
  border-radius:16px;
  background:#f8fbfc;
  color:#102033;
  font-size:14px;
  font-weight:750;
  line-height:1.45;
  text-align:right;
  cursor:pointer;
}
.summary-clean-actions .back-link-btn{
  height:30px!important;
  margin-top:0!important;
  padding:3px 0!important;
}
.summary-terms-consent input{
  width:19px;
  height:19px;
  margin:1px 0 0;
  flex:0 0 19px;
  accent-color:#21bfae;
  cursor:pointer;
}
.summary-terms-link{
  padding:0;
  border:0;
  background:transparent;
  color:#287bd8;
  font:inherit;
  font-weight:900;
  text-decoration:underline;
  text-underline-offset:3px;
  cursor:pointer;
}
.summary-clean-actions .btn.primary:disabled{
  opacity:.42!important;
  cursor:not-allowed!important;
  box-shadow:none!important;
  filter:grayscale(.18)!important;
}
@media(max-width:390px){
  .terms-popup-shell{padding:7px;}
  .terms-popup-window{height:96vh;height:96dvh;border-radius:24px;}
  .summary-terms-consent{font-size:13.5px;padding:12px;}
}

/* Supplemental document upload: keep the card exactly centered in the viewport.
   This intentionally overrides the generic .home-inner bottom placement. */
body.supplement-upload-mode .supplement-upload-home .supplement-upload-wrap,
body:has(.supplement-upload-home) .supplement-upload-home .supplement-upload-wrap{
  position:static !important;
  left:auto !important;
  right:auto !important;
  top:auto !important;
  bottom:auto !important;
  transform:none !important;
  margin:0 auto !important;
  width:min(calc(100vw - 44px),430px) !important;
  max-width:430px !important;
}

/* Supplemental document upload: true viewport center. */
body.supplement-upload-mode .supplement-upload-home .supplement-upload-wrap,
body:has(.supplement-upload-home) .supplement-upload-home .supplement-upload-wrap{
  position:fixed !important;
  top:50% !important;
  left:50% !important;
  right:auto !important;
  bottom:auto !important;
  transform:translate(-50%,-50%) !important;
  margin:0 !important;
  width:min(calc(100vw - 44px),430px) !important;
  max-width:430px !important;
  max-height:calc(100vh - 28px) !important;
  max-height:calc(100dvh - 28px) !important;
  overflow-y:auto !important;
  overscroll-behavior:contain;
  scrollbar-width:thin;
}
