.portal-body{background:#fbfcfa;color:#122d20;min-height:100vh}.portal-body svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.portal-site-header{background:rgba(255,255,255,.97);border-bottom:1px solid #e5ebe4}.portal-site-header .brand-mark svg{fill:currentColor;stroke:none}.portal-nav-current{color:#0b8c3d!important;position:relative}.portal-nav-current:after{content:"";position:absolute;left:10px;right:10px;bottom:-16px;height:2px;background:#11a64b;border-radius:5px}.portal-main{overflow:hidden}.portal-auth-section{position:relative;padding:38px 26px 28px;background:linear-gradient(180deg,#fff 0%,#fbfdf9 78%,#f4f8f2 100%)}.portal-auth-section:before,.portal-auth-section:after{content:"";position:absolute;pointer-events:none;opacity:.3}.portal-auth-section:before{width:270px;height:220px;right:-90px;top:290px;background:radial-gradient(ellipse at center,rgba(66,160,82,.16),transparent 68%);filter:blur(1px)}.portal-auth-section:after{left:-40px;bottom:125px;width:300px;height:90px;background:repeating-linear-gradient(80deg,transparent 0 13px,rgba(35,138,59,.08) 14px 15px);transform:skewX(-25deg);mask-image:linear-gradient(90deg,#000,transparent)}.portal-auth-layout{max-width:1310px;margin:0 auto;display:grid;grid-template-columns:340px minmax(0,1fr);gap:48px;align-items:start}.portal-intro{padding-top:17px}.portal-eyebrow{display:flex;align-items:center;gap:10px;color:#159747;font-size:.75rem;font-weight:900;letter-spacing:.16em}.portal-eyebrow span{width:24px;height:2px;background:#169c49}.portal-intro h1,.portal-top h1{font-size:clamp(3.8rem,5vw,5.65rem);line-height:.92;letter-spacing:-.055em;margin:31px 0 22px;color:#0e3d27}.portal-intro-copy{font-size:1.02rem;line-height:1.72;color:#2c4336;max-width:330px}.portal-benefits{display:grid;gap:30px;margin-top:47px}.portal-benefit{display:grid;grid-template-columns:52px 1fr;gap:17px;align-items:center}.portal-icon-box,.portal-card-icon{display:grid;place-items:center;background:#e8f5e9;color:#14893f;border-radius:16px}.portal-icon-box{width:50px;height:50px}.portal-icon-box svg{width:25px;height:25px}.portal-benefit strong{display:block;font-size:1rem;margin-bottom:5px}.portal-benefit p{margin:0;color:#52665a;font-size:.88rem;line-height:1.45}.portal-auth-panels{display:grid;grid-template-columns:1fr 1fr;gap:24px}.portal-auth-card{background:#fff;border:1px solid #e1e7e0;border-radius:21px;padding:28px 28px 24px;box-shadow:0 18px 50px rgba(16,57,31,.065);min-width:0}.portal-card-heading{display:grid;grid-template-columns:58px 1fr;gap:17px;align-items:center;margin-bottom:27px}.portal-card-icon{width:58px;height:58px;border-radius:50%}.portal-card-icon svg{width:27px;height:27px}.portal-card-heading h2{font-size:1.45rem;letter-spacing:-.02em;margin:0 0 5px;color:#102e21}.portal-card-heading p{margin:0;color:#617167;font-size:.9rem;line-height:1.4}.portal-form{display:grid;gap:18px}.portal-form label{display:grid;gap:8px;font-size:.78rem;font-weight:900;color:#183328}.portal-input-wrap{position:relative;display:block}.portal-input-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:#586b61;z-index:2}.portal-input-icon svg{width:18px;height:18px}.portal-form input,.portal-form select,.portal-form textarea{width:100%;box-sizing:border-box;border:1px solid #ccd6cf;border-radius:9px;padding:13px 14px;font:inherit;background:#fff;color:#173225;outline:none;transition:border-color .18s,box-shadow .18s}.portal-input-wrap input{padding-left:44px}.portal-form input:focus,.portal-form select:focus,.portal-form textarea:focus{border-color:#4ab46e;box-shadow:0 0 0 3px rgba(37,161,76,.09)}.portal-form input::placeholder,.portal-form textarea::placeholder{color:#8a9690}.portal-form-options{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:-2px}.portal-check{display:flex!important;grid-template-columns:none!important;flex-direction:row;align-items:center;gap:9px!important;font-weight:500!important;font-size:.78rem!important;color:#263c31!important;cursor:pointer}.portal-check input{appearance:none;width:17px;height:17px;padding:0;border-radius:4px;margin:0;display:grid;place-content:center}.portal-check input:checked{background:#159a46;border-color:#159a46}.portal-check input:checked:after{content:"✓";font-size:11px;line-height:1;color:white;font-weight:900}.portal-help-link{font-size:.78rem;font-weight:700;color:#129443;text-decoration:none}.portal-help-link:hover{text-decoration:underline}.portal-primary-btn{width:100%;justify-content:center;min-height:49px;border-radius:9px;background:linear-gradient(135deg,#28bb59,#159743);box-shadow:0 10px 20px rgba(20,151,67,.18)}.portal-switch-prompt{border-top:1px solid #e5eae6;margin-top:21px;padding-top:18px;text-align:center;display:grid;gap:5px;font-size:.8rem}.portal-switch-prompt button{border:0;background:none;color:#129443;font:inherit;font-weight:900;cursor:pointer}.portal-security-note{display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:center;margin-top:21px;background:#f4f7f5;border-radius:12px;padding:14px}.portal-security-note>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#178f44;color:white}.portal-security-note svg{width:19px;height:19px}.portal-security-note strong{font-size:.8rem}.portal-security-note p{margin:3px 0 0;color:#65766c;font-size:.72rem;line-height:1.35}.portal-activation-check{margin-top:-3px}.portal-expiry-note{margin-top:17px;display:flex;align-items:center;justify-content:center;gap:7px;font-size:.73rem;color:#52675b}.portal-expiry-note svg{width:17px;height:17px;color:#158b40}.portal-msg{min-height:17px;margin:10px 0 0;font-size:.78rem;font-weight:800;color:#a02c2c}.portal-feature-strip{position:relative;z-index:1;max-width:1260px;margin:34px auto 0;border:1px solid #dfe6df;border-radius:15px;background:rgba(255,255,255,.9);display:grid;grid-template-columns:repeat(4,1fr);box-shadow:0 7px 30px rgba(18,58,32,.025)}.portal-feature-strip>div{display:grid;grid-template-columns:48px 1fr;gap:14px;align-items:center;padding:23px 28px}.portal-feature-strip>div+div{border-left:1px solid #e3e8e3}.portal-strip-icon{width:44px;height:44px;display:grid;place-items:center;color:#168c40}.portal-strip-icon svg{width:26px;height:26px}.portal-feature-strip p{display:grid;gap:4px;margin:0}.portal-feature-strip strong{font-size:.82rem}.portal-feature-strip span{color:#586b60;font-size:.72rem;line-height:1.4}.portal-support{text-align:center;color:#687970;font-size:.84rem;margin:24px 0 0}.portal-support a{color:#138c41;font-weight:900;text-decoration:none}.portal-app{padding:48px 22px 80px;background:#f4f7f2;min-height:calc(100vh - 90px)}.portal-app-shell{max-width:1020px;margin:0 auto}.portal-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.portal-top h1{font-size:clamp(2.8rem,6vw,4.8rem);margin:12px 0 10px}.portal-top p{margin:0;color:#66786d}.portal-link-btn{border:0;background:#fff;border:1px solid #d6dfd6;border-radius:10px;font-weight:800;padding:10px 14px;cursor:pointer}.portal-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.portal-card{background:#fff;border:1px solid #dfe8dd;border-radius:20px;box-shadow:0 14px 40px rgba(18,54,33,.06);padding:24px;margin-bottom:18px}.next-card{background:#173f29;color:white}.next-card .portal-eyebrow{color:#bfe6b8}.next-card .portal-eyebrow span{background:#bfe6b8}.next-date{font-size:2rem;font-weight:900;margin:8px 0}.portal-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.portal-kpi{padding:18px;border-radius:16px;background:#f3f7f1}.portal-kpi span{display:block;font-size:.8rem;color:#607367}.portal-kpi strong{display:block;font-size:1.25rem;margin-top:5px}.history-row,.request-row{display:grid;grid-template-columns:1fr auto;gap:12px;padding:14px 0;border-top:1px solid #e5ebe3}.history-row:first-child,.request-row:first-child{border-top:0}.history-row small,.request-row small{display:block;color:#6b7d70;margin-top:4px}.status-chip{font-size:.78rem;font-weight:800;background:#edf4eb;padding:6px 9px;border-radius:99px;height:max-content}.request-card{margin-top:18px}.request-card>div{margin-bottom:18px}
@media(max-width:1050px){.portal-auth-layout{grid-template-columns:1fr;gap:28px}.portal-intro{max-width:800px}.portal-intro h1{font-size:4.5rem}.portal-intro-copy{max-width:600px}.portal-benefits{grid-template-columns:repeat(3,1fr);gap:20px;margin-top:28px}.portal-feature-strip{grid-template-columns:1fr 1fr}.portal-feature-strip>div:nth-child(3){border-left:0;border-top:1px solid #e3e8e3}.portal-feature-strip>div:nth-child(4){border-top:1px solid #e3e8e3}.portal-nav-current:after{display:none}}
@media(max-width:760px){.portal-auth-section{padding:28px 16px 34px}.portal-intro{padding-top:4px}.portal-intro h1{font-size:3.7rem;margin:22px 0 16px}.portal-intro-copy{font-size:.95rem}.portal-benefits{grid-template-columns:1fr;gap:17px}.portal-auth-panels{grid-template-columns:1fr}.portal-auth-card{padding:22px 18px}.portal-card-heading{grid-template-columns:50px 1fr}.portal-card-icon{width:50px;height:50px}.portal-login-card{order:1}.portal-activation-card{order:2}.portal-feature-strip{grid-template-columns:1fr;margin-top:24px}.portal-feature-strip>div{padding:17px 20px}.portal-feature-strip>div+div{border-left:0;border-top:1px solid #e3e8e3}.portal-form-options{align-items:flex-start;flex-direction:column}.portal-security-note{margin-top:18px}.portal-support{font-size:.8rem}.portal-grid{grid-template-columns:1fr}.portal-kpis{grid-template-columns:1fr}.portal-top{align-items:center}.portal-card{padding:19px}.portal-site-header .nav-wrap{padding-inline:16px}.portal-site-header .nav-links{z-index:20}.portal-site-header .nav-links.portal-open{display:flex}.portal-site-header .menu-btn{display:block}}
@media(min-width:761px){.portal-switch-prompt [data-show-activation]{pointer-events:none;opacity:.75}}

/* V38 — simplified premium My Lawn entrance */
.portal-auth-v38{position:relative;overflow:hidden;min-height:calc(100vh - 78px);padding:58px 24px 30px;background:linear-gradient(180deg,#fbfcf9 0%,#f7faf4 72%,#f3f7ef 100%)}
.portal-auth-v38:before,.portal-auth-v38:after{content:"";position:absolute;left:-8%;right:-8%;bottom:0;height:250px;pointer-events:none;opacity:.42;background:repeating-linear-gradient(78deg,transparent 0 15px,rgba(65,139,72,.2) 16px 17px,transparent 18px 26px);clip-path:polygon(0 70%,5% 55%,10% 72%,15% 44%,20% 69%,25% 36%,30% 68%,36% 52%,42% 70%,48% 38%,54% 70%,60% 47%,67% 72%,74% 40%,80% 68%,87% 50%,93% 72%,100% 56%,100% 100%,0 100%)}
.portal-auth-v38:after{height:160px;opacity:.18;filter:blur(6px);transform:scaleX(1.06)}
.portal-hero-lines{position:absolute;inset:90px 0 230px;opacity:.34;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='900' height='520' viewBox='0 0 900 520'%3E%3Cg fill='none' stroke='%23a9b6aa' stroke-width='1'%3E%3Cpath d='M-40 140 L130 30 L250 160 L120 280 Z'/%3E%3Cpath d='M72 148 L130 100 L190 162 L126 223 Z'/%3E%3Cpath d='M690 60 L910 210 L760 390 L610 255 Z'/%3E%3Cpath d='M705 160 L795 115 L850 210 L770 262 Z'/%3E%3Cpath stroke-dasharray='5 8' d='M10 350 C120 260 160 410 270 300 S430 230 520 350 S700 430 850 320'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:min(1100px,92vw) auto}
.portal-login-shell{position:relative;z-index:2;max-width:620px;margin:0 auto;text-align:center}
.portal-login-heading{margin-bottom:26px}.portal-login-heading h1{margin:9px 0 5px;font-size:clamp(3.4rem,6vw,5.4rem);letter-spacing:-.06em;line-height:.95;color:#0c3d25}.portal-login-heading>p{margin:15px 0 0;font-size:1.05rem;color:#53685b}.portal-eyebrow-center{justify-content:center;gap:10px;font-size:.68rem;letter-spacing:.14em}.portal-eyebrow-center span{width:28px}
.portal-login-focus{max-width:520px;margin:0 auto;padding:34px 38px 30px;border-radius:25px;background:rgba(255,255,255,.96);box-shadow:0 24px 70px rgba(18,62,36,.13);border:1px solid rgba(204,218,204,.95);text-align:left}.portal-login-focus h2{text-align:center;font-size:1.9rem;margin:14px 0 6px;color:#102e20}.portal-login-sub{text-align:center;color:#63766b;margin:0 auto 28px;font-size:.94rem;line-height:1.55}.portal-login-icon{width:58px;height:58px;border-radius:50%;background:#e5f4e5;color:#138b40;display:grid;place-items:center;margin:0 auto}.portal-login-icon.small{width:52px;height:52px}.portal-login-icon svg{width:26px;height:26px}.portal-login-form{gap:20px}.portal-login-form label{font-size:.82rem}.portal-login-form .portal-input-wrap{margin-top:8px}.portal-login-focus .portal-input-wrap input{height:58px;font-size:.98rem}.portal-login-options{margin-top:-5px}.portal-login-options .portal-check{font-size:.8rem}.portal-open-btn{height:58px;font-size:1rem;margin-top:2px;box-shadow:0 14px 25px rgba(32,162,69,.18)}.portal-forgot-link{display:block;width:max-content;margin:20px auto 0;color:#138b40;font-size:.84rem;font-weight:900;text-decoration:none}.portal-login-divider{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;margin:25px 0 17px;color:#62736a}.portal-login-divider span{height:1px;background:#dfe6df}.portal-login-divider em{font-style:normal;font-size:.86rem}.portal-activate-link{border:0;background:transparent;color:#138b40;font-weight:900;font-size:.92rem;display:flex;gap:8px;align-items:center;margin:0 auto;cursor:pointer}.portal-activate-link b{font-size:1.2rem}.portal-eye-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:38px;height:38px;border:0;background:transparent;color:#68786f;display:grid;place-items:center;cursor:pointer}.portal-eye-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7}.portal-login-focus .portal-input-wrap:has(.portal-eye-btn) input{padding-right:48px}
.portal-feature-strip-v38{z-index:2;max-width:1120px;margin-top:54px;background:rgba(255,255,255,.9);box-shadow:none}.portal-feature-strip-v38>div{padding:20px 25px}.portal-feature-strip-v38 .portal-strip-icon{border-radius:50%;background:#e8f5e7;width:48px;height:48px}.portal-feature-strip-v38 strong{font-size:.85rem}.portal-feature-strip-v38 span{font-size:.73rem}.portal-auth-v38 .portal-support{position:relative;z-index:2;margin-top:24px}
.portal-modal[hidden]{display:none}.portal-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:22px}.portal-modal-backdrop{position:absolute;inset:0;border:0;background:rgba(8,30,18,.48);backdrop-filter:blur(5px);cursor:pointer}.portal-modal-card{position:relative;z-index:1;width:min(500px,100%);max-height:min(760px,92vh);overflow:auto;border-radius:25px;background:#fff;border:1px solid #dce5dc;box-shadow:0 30px 90px rgba(7,34,19,.25);padding:36px}.portal-modal-card h2{text-align:center;font-size:1.9rem;margin:14px 0 7px}.portal-modal-close{position:absolute;right:18px;top:15px;width:40px;height:40px;border-radius:50%;border:0;background:#f0f4ef;font-size:1.6rem;line-height:1;color:#486052;cursor:pointer}.portal-activation-progress{display:flex;gap:8px;justify-content:center;margin-bottom:10px}.portal-activation-progress span{width:36px;height:4px;border-radius:99px;background:#dce5dc}.portal-activation-progress span.active{background:#1ca34a}.portal-activation-step-form{margin-top:22px}.portal-back-link{display:block;margin:17px auto 0;border:0;background:transparent;color:#138b40;font-weight:850;cursor:pointer}.portal-expiry-note{font-size:.75rem;color:#67796e;text-align:center;margin:17px 0 0}
@media(max-width:760px){.portal-auth-v38{padding:34px 16px 26px;min-height:auto}.portal-login-heading h1{font-size:3.7rem}.portal-login-heading>p{font-size:.96rem}.portal-login-focus{padding:27px 19px 24px;border-radius:21px}.portal-login-focus h2{font-size:1.65rem}.portal-login-sub{margin-bottom:22px}.portal-login-focus .portal-input-wrap input{height:54px}.portal-feature-strip-v38{margin-top:34px}.portal-modal{padding:12px}.portal-modal-card{padding:30px 18px 24px;border-radius:22px}.portal-hero-lines{opacity:.2}.portal-auth-v38:before{height:145px;opacity:.24}}

/* V39 — closer visual match to approved My Lawn concept */
.portal-site-header .container.nav-wrap{width:min(1600px,calc(100% - 72px));}
.portal-auth-v38{padding-top:72px;padding-bottom:42px;}
.portal-login-shell{max-width:860px;}
.portal-login-heading{margin-bottom:34px;}
.portal-login-heading h1{font-size:clamp(4.5rem,5.5vw,7.1rem);line-height:.9;}
.portal-login-heading>p{font-size:clamp(1.02rem,1.15vw,1.28rem);}
.portal-login-focus{width:min(720px,92vw);max-width:none;padding:46px 54px 42px;border-radius:30px;}
.portal-login-focus h2{font-size:2.25rem;margin-top:18px;}
.portal-login-sub{font-size:1.03rem;margin-bottom:34px;}
.portal-login-icon{width:70px;height:70px;}
.portal-login-icon svg{width:31px;height:31px;}
.portal-login-form{gap:24px;}
.portal-login-form label{font-size:.92rem;}
.portal-login-focus .portal-input-wrap input{height:66px;font-size:1.05rem;border-radius:12px;}
.portal-input-icon{left:18px;width:21px;height:21px;}
.portal-input-icon svg{width:21px;height:21px;}
.portal-input-wrap input{padding-left:54px;}
.portal-open-btn{height:66px;font-size:1.08rem;border-radius:11px;}
.portal-login-options .portal-check{font-size:.9rem!important;}
.portal-forgot-link{font-size:.94rem;margin-top:22px;}
.portal-login-divider{margin:29px 0 20px;}
.portal-login-divider em{font-size:.95rem;}
.portal-activate-link{font-size:1.02rem;}
.portal-feature-strip-v38{max-width:1480px;margin-top:62px;border-radius:18px;}
.portal-feature-strip-v38>div{padding:25px 32px;}
.portal-feature-strip-v38 .portal-strip-icon{width:58px;height:58px;}
.portal-feature-strip-v38 .portal-strip-icon svg{width:30px;height:30px;}
.portal-feature-strip-v38 strong{font-size:.98rem;}
.portal-feature-strip-v38 span{font-size:.82rem;}
.portal-auth-v38 .portal-support{font-size:.93rem;margin-top:28px;}
.portal-hero-lines{inset:110px 0 245px;background-size:min(1600px,94vw) auto;opacity:.25;}
.portal-auth-v38:before{height:330px;opacity:.34;}
.portal-auth-v38:after{height:220px;}

@media(min-width:1800px){
  .portal-auth-v38{min-height:calc(100vh - 78px);padding-top:82px;}
  .portal-login-focus{width:760px;padding:50px 58px 46px;}
  .portal-login-heading h1{font-size:7rem;}
  .portal-login-heading>p{font-size:1.2rem;}
  .portal-feature-strip-v38{max-width:1550px;}
}

@media(max-width:760px){
  .portal-site-header .container.nav-wrap{width:min(100% - 26px,1180px);}
  .portal-auth-v38{padding-top:38px;}
  .portal-login-shell{max-width:620px;}
  .portal-login-heading{margin-bottom:24px;}
  .portal-login-heading h1{font-size:3.8rem;}
  .portal-login-heading>p{font-size:.96rem;}
  .portal-login-focus{width:100%;padding:27px 19px 24px;border-radius:22px;}
  .portal-login-focus h2{font-size:1.65rem;}
  .portal-login-icon{width:58px;height:58px;}
  .portal-login-icon svg{width:26px;height:26px;}
  .portal-login-form{gap:20px;}
  .portal-login-form label{font-size:.82rem;}
  .portal-login-focus .portal-input-wrap input{height:54px;font-size:.98rem;}
  .portal-input-icon{left:14px;width:18px;height:18px;}
  .portal-input-icon svg{width:18px;height:18px;}
  .portal-input-wrap input{padding-left:44px;}
  .portal-open-btn{height:56px;font-size:1rem;}
  .portal-feature-strip-v38>div{padding:17px 20px;}
}

/* V40 — reference-match pass for the approved My Lawn mockup */
@media (min-width: 761px){
  .portal-site-header{height:92px;display:flex;align-items:center;}
  .portal-site-header .container.nav-wrap{width:min(1420px,calc(100% - 64px));}
  .portal-site-header .brand{transform:scale(1.08);transform-origin:left center;}
  .portal-site-header .nav-links{gap:30px;}
  .portal-site-header .nav-links a{font-size:.92rem;}
  .portal-site-header .nav-cta{padding:14px 22px;border-radius:12px;font-size:.92rem;}

  .portal-auth-v38{
    min-height:calc(100vh - 92px);
    padding:54px 24px 0;
    background:
      radial-gradient(circle at 50% 46%,rgba(255,255,255,.98) 0 33%,rgba(250,252,248,.92) 56%,rgba(245,249,241,.96) 100%);
  }
  .portal-login-shell{max-width:900px;}
  .portal-login-heading{margin-bottom:31px;}
  .portal-eyebrow-center{font-size:.76rem;letter-spacing:.16em;}
  .portal-login-heading h1{font-size:clamp(5rem,6vw,6.8rem);margin:18px 0 13px;line-height:.86;}
  .portal-login-heading>p{font-size:1.18rem;margin-top:0;}

  .portal-login-focus{
    width:min(650px,90vw);
    padding:38px 46px 42px;
    border-radius:26px;
    border-color:#d9e2d8;
    box-shadow:0 30px 75px rgba(27,68,41,.14);
  }
  .portal-login-icon{width:62px;height:62px;}
  .portal-login-icon svg{width:29px;height:29px;}
  .portal-login-focus h2{font-size:2.05rem;margin:16px 0 8px;}
  .portal-login-sub{font-size:1rem;margin-bottom:29px;}
  .portal-login-form{gap:22px;}
  .portal-login-form label{font-size:.9rem;}
  .portal-login-focus .portal-input-wrap input{height:60px;font-size:1rem;border-radius:11px;}
  .portal-open-btn{height:60px;font-size:1.05rem;}
  .portal-forgot-link{font-size:.9rem;margin-top:18px;}
  .portal-login-divider{margin:25px 0 16px;}
  .portal-activate-link{font-size:.97rem;}

  .portal-hero-lines{
    inset:130px 0 250px;
    opacity:.16;
    background-size:min(1450px,92vw) auto;
  }

  /* Layered CSS/SVG grass, like the approved concept — decorative only. */
  .portal-auth-v38:before{
    left:0;right:0;bottom:0;height:270px;opacity:.82;clip-path:none;filter:none;transform:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1200' height='260' viewBox='0 0 1200 260'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='1' x2='0' y2='0'%3E%3Cstop offset='0' stop-color='%237da65e' stop-opacity='.60'/%3E%3Cstop offset='1' stop-color='%239cbc73' stop-opacity='.06'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg fill='none' stroke='url(%23g)' stroke-linecap='round'%3E%3Cpath stroke-width='5' d='M0 255Q35 165 45 252M18 255Q40 135 62 252M46 255Q70 150 78 252M74 255Q92 170 110 252M96 255Q125 125 140 252M126 255Q150 160 170 252M155 255Q190 120 198 252M185 255Q220 150 228 252M212 255Q245 135 260 252M242 255Q278 170 290 252M910 255Q930 165 948 252M938 255Q970 130 980 252M965 255Q995 158 1010 252M994 255Q1025 115 1040 252M1024 255Q1052 155 1072 252M1053 255Q1090 125 1100 252M1082 255Q1115 155 1130 252M1112 255Q1148 120 1162 252M1140 255Q1175 165 1195 252'/%3E%3C/g%3E%3C/svg%3E"),linear-gradient(180deg,transparent 0%,rgba(233,241,225,.12) 38%,rgba(226,236,216,.72) 100%);
    background-repeat:no-repeat,no-repeat;
    background-position:center bottom,center bottom;
    background-size:100% 100%,100% 100%;
    pointer-events:none;
  }
  .portal-auth-v38:after{
    left:0;right:0;bottom:0;height:125px;opacity:1;clip-path:none;filter:blur(9px);transform:none;
    background:linear-gradient(180deg,rgba(250,252,248,0),rgba(245,249,241,.96));
  }

  .portal-feature-strip-v38{
    position:relative;
    max-width:1280px;
    margin-top:70px;
    border-radius:16px;
    background:rgba(255,255,255,.94);
    box-shadow:0 10px 35px rgba(28,61,38,.035);
  }
  .portal-feature-strip-v38>div{padding:22px 24px;}
  .portal-feature-strip-v38 .portal-strip-icon{width:52px;height:52px;}
  .portal-feature-strip-v38 strong{font-size:.94rem;}
  .portal-feature-strip-v38 span{font-size:.79rem;}
  .portal-auth-v38 .portal-support{font-size:.9rem;margin:28px 0 38px;}
}

@media (min-width: 1500px) and (min-height: 900px){
  .portal-auth-v38{padding-top:58px;}
  .portal-login-heading h1{font-size:6.55rem;}
  .portal-login-focus{width:690px;padding:42px 50px 44px;}
  .portal-feature-strip-v38{margin-top:76px;}
}

/* V41 — grass reference match + customer portal preview + richer account UI */
.portal-auth-v38{isolation:isolate;min-height:calc(100vh - 78px);padding-top:58px;background:linear-gradient(180deg,#fffefb 0%,#fbfcf8 52%,#f5f8f1 100%)}
.portal-auth-v38:before,.portal-auth-v38:after{display:none!important}
.portal-hero-lines{z-index:0;inset:0;opacity:.2;background-size:min(1720px,100vw) auto;background-position:center 40px}
.portal-grass-art{position:absolute;z-index:1;bottom:58px;width:min(44vw,690px);height:min(58vh,650px);background-repeat:no-repeat;background-size:contain;background-position:bottom;pointer-events:none;filter:saturate(.93) contrast(.98)}
.portal-grass-left{left:0;background-image:url('./portal-grass-left.webp');background-position:left bottom}
.portal-grass-right{right:0;background-image:url('./portal-grass-right.webp');background-position:right bottom}
.portal-preview-btn{position:absolute;z-index:4;top:38px;right:max(28px,calc((100vw - 1500px)/2));display:flex;align-items:center;gap:12px;border:1.5px solid #1c8d48;border-radius:12px;background:rgba(244,250,243,.95);color:#135f33;padding:12px 16px;box-shadow:0 8px 28px rgba(30,93,52,.06);cursor:pointer;text-align:left;transition:transform .18s,box-shadow .18s,background .18s}
.portal-preview-btn:hover{transform:translateY(-2px);box-shadow:0 13px 32px rgba(30,93,52,.11);background:#fff}
.portal-preview-btn strong{display:block;font-size:.82rem;line-height:1.15}.portal-preview-btn small{display:block;color:#66776d;font-size:.68rem;margin-top:3px}.portal-preview-eye{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;border:1px solid #8fc7a2;background:#fff;font-size:.75rem}
.portal-login-shell{max-width:790px}.portal-login-heading h1{font-size:clamp(4.7rem,6vw,7.25rem)}
.portal-login-focus{width:min(610px,92vw);padding:38px 43px 34px;border-radius:25px;box-shadow:0 28px 70px rgba(24,67,39,.12)}
.portal-login-focus h2{font-size:2rem}.portal-login-focus .portal-input-wrap input{height:61px}.portal-open-btn{height:61px}
.portal-feature-strip-v38{max-width:1080px;margin-top:34px;box-shadow:0 12px 36px rgba(24,67,39,.06);backdrop-filter:blur(10px)}
.portal-auth-v38 .portal-support{margin-top:18px;margin-bottom:12px}

/* Logged-in customer experience */
.portal-app{background:linear-gradient(180deg,#f7faf5,#eef4eb);padding-top:34px}
.portal-app-shell{max-width:1120px}
.portal-preview-banner{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 0 24px;padding:12px 16px;border:1px solid #b7d9be;border-radius:14px;background:#eef8ee;color:#295c36;font-size:.83rem}.portal-preview-banner strong{font-size:.72rem;letter-spacing:.14em;background:#1a9147;color:#fff;border-radius:999px;padding:6px 10px}.portal-preview-banner[hidden]{display:none}
.portal-top{align-items:center;margin-bottom:26px}.portal-top h1{font-size:clamp(3.2rem,5vw,5rem)}
.portal-dashboard-hero{display:grid;grid-template-columns:1.35fr .65fr;gap:18px;margin-bottom:18px}.portal-dashboard-next,.portal-dashboard-side{border-radius:24px;padding:28px;box-shadow:0 16px 46px rgba(19,56,32,.08)}.portal-dashboard-next{background:linear-gradient(135deg,#123f28,#1f6038);color:#fff;min-height:220px;display:flex;flex-direction:column;justify-content:flex-end}.portal-dashboard-side{background:#fff;border:1px solid #dfe8dd}.portal-card-label{font-size:.69rem;font-weight:950;letter-spacing:.14em;color:#299452}.portal-dashboard-next .portal-card-label{color:#b8e9c2}.portal-next-date{font-size:clamp(2rem,4vw,3.35rem);line-height:1.03;font-weight:950;letter-spacing:-.045em;margin:12px 0 7px}.portal-dashboard-next p{margin:0;color:#dcebe1}.portal-next-meta{display:flex;gap:10px;margin-top:22px}.portal-next-meta span{border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);border-radius:999px;padding:7px 11px;font-size:.78rem;font-weight:850}.portal-dashboard-side h2{margin:12px 0 7px;font-size:1.55rem}.portal-dashboard-side p{margin:0;color:#697b70}.portal-plan-line{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #e5ece4;margin-top:25px;padding-top:18px;color:#63746a}.portal-plan-line strong{font-size:1.15rem;color:#123b25}
.portal-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.portal-stat-grid article{background:#fff;border:1px solid #dfe8dd;border-radius:18px;padding:20px 22px;box-shadow:0 10px 30px rgba(19,56,32,.04)}.portal-stat-grid span,.portal-stat-grid small{display:block;color:#687a70}.portal-stat-grid span{font-size:.78rem;font-weight:800}.portal-stat-grid strong{display:block;font-size:1.65rem;margin:6px 0 3px;color:#153d27}.portal-stat-grid small{font-size:.72rem}
.portal-dashboard-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:18px}.portal-dashboard-grid .portal-card,.portal-requests-card{margin-bottom:18px}.portal-card-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}.portal-card-head h2,.portal-account-card h2{margin:7px 0 0}.portal-card-head>span{color:#7b8a81;font-size:.72rem}.portal-history-list{display:grid}.portal-history-item{display:grid;grid-template-columns:38px 1fr auto;gap:12px;align-items:center;padding:15px 0;border-top:1px solid #e7ede6}.portal-history-item:first-child{border-top:0}.portal-history-dot{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e9f6e9;color:#188d43;font-weight:950}.portal-history-item strong{font-size:.87rem}.portal-history-item small{display:block;color:#6b7d72;margin-top:4px;font-size:.74rem}.portal-history-item>b{font-size:.92rem}.portal-account-row{display:flex;justify-content:space-between;gap:14px;padding:14px 0;border-top:1px solid #e6ece5;color:#687a70;font-size:.83rem}.portal-account-row strong{color:#183b27}.portal-referral-box{margin-top:14px;padding:18px;border-radius:16px;background:linear-gradient(135deg,#eaf7e8,#f6fbf3)}.portal-referral-box span,.portal-referral-box small{display:block}.portal-referral-box span{color:#568064;font-size:.73rem}.portal-referral-box strong{display:block;font-size:1.25rem;color:#168a41;margin:4px 0}.portal-referral-box small{font-size:.7rem;color:#66796d}.portal-request-list{display:grid}.portal-request-item{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:14px 0;border-top:1px solid #e7ede6}.portal-request-item:first-child{border-top:0}.portal-request-item small{display:block;color:#6c7d72;margin-top:4px}.portal-empty{color:#6f7e75;padding:8px 0 2px;font-size:.86rem}.request-card{display:grid;grid-template-columns:.7fr 1.3fr;gap:28px;align-items:start}.request-card>div{margin:0}.request-card h2{font-size:1.55rem;margin:8px 0}.request-card p{color:#6a7b71;line-height:1.55}.request-card .portal-form{grid-template-columns:1fr 1fr;align-items:end}.request-card .portal-form label:nth-child(2){grid-column:1/-1}.request-card .portal-primary-btn{width:max-content;min-width:160px}.request-card .portal-msg{align-self:center;margin:0}

@media(max-width:1050px){.portal-preview-btn{top:28px;right:22px}.portal-grass-art{width:49vw;opacity:.78}.portal-dashboard-hero,.portal-dashboard-grid{grid-template-columns:1fr}.request-card{grid-template-columns:1fr}}
@media(max-width:760px){.portal-auth-v38{padding-top:30px}.portal-preview-btn{position:relative;top:auto;right:auto;margin:0 auto 16px;width:min(100%,390px);justify-content:center}.portal-grass-art{height:300px;width:70vw;bottom:100px;opacity:.55}.portal-grass-left{left:-90px}.portal-grass-right{right:-90px}.portal-login-heading h1{font-size:4rem}.portal-login-focus{padding:27px 19px 24px}.portal-feature-strip-v38{margin-top:30px}.portal-preview-banner{align-items:flex-start;flex-direction:column}.portal-stat-grid{grid-template-columns:1fr}.portal-dashboard-next,.portal-dashboard-side{padding:22px}.request-card .portal-form{grid-template-columns:1fr}.request-card .portal-form label:nth-child(2){grid-column:auto}.request-card .portal-primary-btn{width:100%}}

/* V42 — customer home redesign + demo login */
.portal-app{padding:38px 20px 72px;background:linear-gradient(180deg,#f8fbf6 0%,#eef5ea 100%)}
.portal-app-shell{max-width:1180px;margin:0 auto}
.portal-top{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:26px}.portal-top h1{font-size:clamp(3.3rem,5.4vw,5.6rem);line-height:.94;letter-spacing:-.055em;margin:8px 0}.portal-top p{font-size:1rem;margin:0;color:#64766b}
.portal-customer-hero{margin-bottom:18px}.portal-customer-next{position:relative;overflow:hidden;min-height:300px;padding:34px 38px;border-radius:28px;background:linear-gradient(135deg,#123f28 0%,#1b5b35 58%,#257043 100%);color:#fff;box-shadow:0 24px 60px rgba(20,67,37,.16)}.portal-customer-next:after{content:"";position:absolute;right:-80px;bottom:-115px;width:420px;height:310px;border:1px solid rgba(255,255,255,.1);border-radius:50%;box-shadow:-65px -25px 0 -64px rgba(255,255,255,.13),-130px -50px 0 -128px rgba(255,255,255,.12)}.portal-customer-next .portal-card-label{color:#b8ebc3}.portal-customer-next .portal-next-date{position:relative;z-index:1;font-size:clamp(2.6rem,5vw,4.65rem);max-width:830px;margin:12px 0 8px}.portal-customer-next>p{position:relative;z-index:1;font-size:1.05rem;color:#d9eadf;margin:0}
.portal-service-timeline{position:relative;z-index:1;display:grid;grid-template-columns:auto 1fr auto 1fr auto;align-items:center;max-width:660px;margin-top:42px}.portal-service-timeline>div{display:flex;align-items:center;gap:9px;color:#9ab6a4;font-size:.75rem;font-weight:850}.portal-service-timeline i{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.28);font-style:normal;background:rgba(255,255,255,.06);color:#c5d8cb}.portal-service-timeline b{height:2px;background:rgba(255,255,255,.16);margin:0 10px}.portal-service-timeline .active{color:#fff}.portal-service-timeline div.active i{background:#fff;color:#17603a;border-color:#fff}.portal-service-timeline b.active{background:#b9ebc4}.portal-next-footer{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;margin-top:26px;padding-top:22px;border-top:1px solid rgba(255,255,255,.15)}.portal-next-footer span{font-size:.75rem;font-weight:900;padding:7px 11px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18)}.portal-next-footer strong{font-size:1.8rem}
.portal-quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}.portal-quick-actions button{appearance:none;text-align:left;border:1px solid #dce7da;background:#fff;border-radius:18px;padding:18px 19px;display:grid;grid-template-columns:42px 1fr;column-gap:12px;row-gap:2px;cursor:pointer;box-shadow:0 8px 28px rgba(22,64,35,.045);transition:.18s}.portal-quick-actions button:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(22,64,35,.08);border-color:#bcd8c0}.portal-quick-actions button>span{grid-row:1/3;width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#eaf6e9;color:#168c42;font-size:1.25rem;font-weight:900}.portal-quick-actions strong{font-size:.91rem;color:#173c27}.portal-quick-actions small{font-size:.72rem;color:#74837a}
.portal-service-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.portal-summary-card{background:#fff;border:1px solid #dce7da;border-radius:22px;padding:25px 27px;box-shadow:0 10px 32px rgba(22,64,35,.045)}.portal-summary-card h2{font-size:1.65rem;margin:9px 0 6px}.portal-summary-card>p{color:#6b7c72;margin:0 0 17px}.portal-summary-row{display:flex;justify-content:space-between;padding:12px 0;border-top:1px solid #e7ede6;color:#697a70}.portal-summary-row strong{color:#173d28}.portal-credit-card{background:linear-gradient(135deg,#f7fbf5,#edf8eb)}.portal-credit-amount{font-size:3rem;font-weight:950;line-height:1;color:#168b42;margin:13px 0 8px}.portal-inline-btn,.portal-text-action,.portal-mini-btn{appearance:none;border:0;background:none;color:#148640;font-weight:900;cursor:pointer;padding:0}.portal-inline-btn{margin-top:5px}.portal-text-action{margin-top:13px;font-size:.8rem}.portal-mini-btn{font-size:.76rem;border:1px solid #b9d8be;border-radius:999px;padding:8px 11px;background:#f8fcf7}
.portal-customer-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}.portal-customer-grid>.portal-card{margin:0;min-height:100%}.portal-history-item{padding:17px 0}.portal-history-item small{font-size:.76rem}.portal-requests-home .portal-request-item{padding:18px 0}
.portal-action-modal[hidden]{display:none}.portal-action-modal{position:fixed;z-index:2000;inset:0;display:grid;place-items:center;padding:20px}.portal-action-backdrop{position:absolute;inset:0;border:0;background:rgba(7,25,15,.46);backdrop-filter:blur(5px)}.portal-action-card{position:relative;z-index:1;width:min(520px,100%);background:#fff;border-radius:24px;padding:30px;box-shadow:0 35px 90px rgba(7,25,15,.25)}.portal-action-card h2{font-size:2rem;margin:8px 0}.portal-action-card>p{color:#687a70;margin:0 0 22px;line-height:1.5}.portal-action-close{position:absolute;right:16px;top:14px;width:36px;height:36px;border:0;border-radius:50%;background:#f1f5f0;font-size:1.5rem;cursor:pointer}.portal-request-modal-form{gap:16px}.portal-request-modal-form .portal-primary-btn{width:100%}
.portal-preview-banner{margin-bottom:18px;background:#f0f7ee;border-color:#cadfc9}.portal-preview-banner strong{background:#183f29}
@media(max-width:900px){.portal-customer-grid,.portal-service-summary-grid{grid-template-columns:1fr}.portal-quick-actions{grid-template-columns:1fr}.portal-customer-next{padding:28px 25px}.portal-service-timeline{grid-template-columns:1fr;gap:10px}.portal-service-timeline b{display:none}.portal-service-timeline>div{gap:10px}.portal-top{align-items:flex-start}.portal-next-footer{align-items:flex-end}}
@media(max-width:640px){.portal-app{padding:24px 14px 52px}.portal-top{display:block}.portal-top h1{font-size:3.4rem}.portal-top .portal-link-btn{margin-top:16px}.portal-customer-next{min-height:0;border-radius:22px}.portal-customer-next .portal-next-date{font-size:2.65rem}.portal-quick-actions button{padding:16px}.portal-summary-card{padding:21px}.portal-action-card{padding:26px 20px}}


/* V43 — live connected service status */
.portal-service-timeline-four{grid-template-columns:auto 1fr auto 1fr auto 1fr auto;max-width:820px}
.portal-next-footer span{transition:.2s ease}
@media(max-width:900px){.portal-service-timeline-four{grid-template-columns:1fr;max-width:none}.portal-service-timeline-four b{display:none}}

/* V44 — desktop fit + heading spacing fix */
@media (min-width: 761px){
  .portal-auth-v38{
    box-sizing:border-box;
    height:calc(100svh - 92px);
    min-height:720px;
    padding:24px 24px 16px;
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
  }
  .portal-login-shell{max-width:760px;flex:0 0 auto;}
  .portal-login-heading{margin-bottom:18px;}
  .portal-eyebrow-center{margin-bottom:8px;}
  .portal-login-heading h1{
    font-size:clamp(4rem,5vw,5.35rem);
    line-height:1;
    margin:0;
    padding:0;
  }
  .portal-login-heading>p{
    display:block;
    clear:both;
    font-size:1rem;
    line-height:1.45;
    margin:8px 0 0;
    padding:0;
  }
  .portal-login-focus{
    width:min(570px,88vw);
    padding:26px 34px 26px;
    border-radius:24px;
  }
  .portal-login-icon{width:50px;height:50px;}
  .portal-login-icon svg{width:24px;height:24px;}
  .portal-login-focus h2{font-size:1.72rem;margin:10px 0 4px;}
  .portal-login-sub{font-size:.9rem;margin-bottom:18px;}
  .portal-login-form{gap:14px;}
  .portal-login-form label{font-size:.8rem;}
  .portal-login-form .portal-input-wrap{margin-top:5px;}
  .portal-login-focus .portal-input-wrap input{height:48px;font-size:.92rem;border-radius:10px;}
  .portal-open-btn{height:49px;min-height:49px;font-size:.94rem;margin-top:0;}
  .portal-login-options{margin-top:-1px;}
  .portal-login-options .portal-check{font-size:.76rem!important;}
  .portal-forgot-link{font-size:.79rem;margin-top:12px;}
  .portal-login-divider{margin:15px 0 10px;gap:12px;}
  .portal-login-divider em{font-size:.79rem;}
  .portal-activate-link{font-size:.84rem;}
  .portal-feature-strip-v38{
    flex:0 0 auto;
    width:min(1040px,calc(100% - 64px));
    margin:20px auto 0;
    border-radius:14px;
  }
  .portal-feature-strip-v38>div{padding:12px 16px;grid-template-columns:36px 1fr;gap:10px;}
  .portal-feature-strip-v38 .portal-strip-icon{width:34px;height:34px;}
  .portal-feature-strip-v38 .portal-strip-icon svg{width:20px;height:20px;}
  .portal-feature-strip-v38 strong{font-size:.76rem;}
  .portal-feature-strip-v38 span{font-size:.66rem;line-height:1.28;}
  .portal-auth-v38 .portal-support{flex:0 0 auto;font-size:.76rem;margin:10px 0 0;}
  .portal-hero-lines{inset:70px 0 120px;background-size:min(1480px,94vw) auto;}
  .portal-grass-art{bottom:0;height:min(43vh,420px);width:min(40vw,620px);opacity:.9;}
}

@media (min-width: 761px) and (max-height: 820px){
  .portal-auth-v38{min-height:650px;padding-top:16px;}
  .portal-login-heading{margin-bottom:12px;}
  .portal-eyebrow-center{display:none;}
  .portal-login-heading h1{font-size:3.6rem;}
  .portal-login-heading>p{margin-top:4px;font-size:.9rem;}
  .portal-login-focus{padding:20px 30px 20px;width:min(540px,86vw);}
  .portal-login-icon{width:42px;height:42px;}
  .portal-login-icon svg{width:20px;height:20px;}
  .portal-login-focus h2{font-size:1.55rem;margin:7px 0 3px;}
  .portal-login-sub{margin-bottom:13px;font-size:.84rem;}
  .portal-login-form{gap:11px;}
  .portal-login-focus .portal-input-wrap input{height:44px;}
  .portal-open-btn{height:45px;min-height:45px;}
  .portal-forgot-link{margin-top:8px;}
  .portal-login-divider{margin:10px 0 7px;}
  .portal-feature-strip-v38{margin-top:12px;}
  .portal-feature-strip-v38>div{padding:9px 13px;}
  .portal-auth-v38 .portal-support{margin-top:6px;}
}


/* V45 — clean portal grass assets + polished customer-home nav */
.portal-grass-left{background-image:url('./portal-grass-clean-left.png')!important;background-position:left bottom!important;}
.portal-grass-right{background-image:url('./portal-grass-clean-right.png')!important;background-position:right bottom!important;}
.portal-grass-art{background-size:contain!important;opacity:.96!important;filter:saturate(1.02) contrast(1.01)!important;}

@media (min-width:761px){
  .portal-auth-v38{overflow:hidden!important;}
  .portal-grass-art{bottom:-6px!important;height:min(39vh,360px)!important;width:min(35vw,560px)!important;}
  .portal-feature-strip-v38{z-index:5!important;}
  .portal-support{position:relative;z-index:5;}
  .portal-site-header .portal-nav-current{
    display:grid!important;
    grid-template-columns:24px auto!important;
    grid-template-rows:auto auto!important;
    column-gap:8px!important;
    align-items:center!important;
    padding:8px 12px!important;
    border-radius:12px!important;
    background:#eff8ef!important;
    color:#145d34!important;
    border:1px solid #d5ead7!important;
    line-height:1.05!important;
    text-decoration:none!important;
  }
  .portal-site-header .portal-nav-current::before{
    content:'⌂';
    grid-row:1 / 3;
    width:24px;height:24px;border-radius:8px;
    display:grid;place-items:center;
    background:#dff2e2;color:#168b43;
    font-size:15px;font-weight:900;
  }
  .portal-site-header .portal-nav-current::after{
    content:'Customer Home';
    display:block;
    font-size:.58rem;
    font-weight:750;
    color:#6f8176;
    margin-top:2px;
    letter-spacing:.01em;
  }
  .portal-site-header .portal-nav-current{font-weight:900!important;font-size:.82rem!important;}
  .portal-site-header .portal-nav-current:focus-visible{outline:2px solid #1ea654;outline-offset:2px;}
}

@media (max-width:760px){
  .portal-grass-art{height:240px!important;width:55vw!important;bottom:-8px!important;}
  .portal-site-header .portal-nav-current::after{content:' · Customer Home';font-size:.72rem;color:#65806e;}
}

/* V46 — auth/app state isolation fix */
#portalAuth[hidden],
#portalApp[hidden]{
  display:none !important;
}

body.portal-session-open #portalAuth{
  display:none !important;
}
body.portal-session-open #portalApp{
  display:block !important;
}
body:not(.portal-session-open) #portalApp{
  display:none !important;
}


/* V47 — consistent My Lawn customer-home control across the entire site */
.site-header .customer-home-nav,
.portal-site-header .customer-home-nav{
  display:inline-flex!important;
  align-items:center!important;
  gap:8px!important;
  min-height:42px!important;
  padding:6px 11px 6px 7px!important;
  border:1px solid #d5ead9!important;
  border-radius:12px!important;
  background:linear-gradient(180deg,#f5fbf5,#edf8ef)!important;
  color:#145d34!important;
  text-decoration:none!important;
  box-shadow:0 4px 14px rgba(22,111,55,.06)!important;
  line-height:1!important;
  position:relative!important;
  white-space:nowrap!important;
}
.site-header .customer-home-nav:hover,
.portal-site-header .customer-home-nav:hover{
  color:#0d7137!important;
  border-color:#bfe1c5!important;
  background:#eaf7ed!important;
  transform:translateY(-1px);
}
.customer-home-nav-icon{
  width:28px;height:28px;flex:0 0 28px;
  display:grid;place-items:center;
  border-radius:9px;
  background:#d9f1df;
  color:#168c43;
  font-size:16px;
  font-weight:900;
}
.customer-home-nav-copy{display:grid;gap:3px;align-items:center;line-height:1!important;}
.customer-home-nav-copy strong{font-size:.82rem;line-height:1;font-weight:900;color:#145d34;}
.customer-home-nav-copy small{font-size:.55rem;line-height:1;font-weight:800;letter-spacing:.025em;color:#718378;}
/* Kill legacy active-link decoration so nothing renders below the header control. */
.site-header .customer-home-nav::before,.site-header .customer-home-nav::after,
.portal-site-header .customer-home-nav::before,.portal-site-header .customer-home-nav::after{content:none!important;display:none!important;}
@media(max-width:980px){
  .customer-home-nav-copy small{display:none;}
  .site-header .customer-home-nav,.portal-site-header .customer-home-nav{min-height:38px!important;padding:5px 10px 5px 6px!important;}
  .customer-home-nav-icon{width:26px;height:26px;flex-basis:26px;}
}
@media(max-width:650px){
  .nav-links.open .customer-home-nav{display:flex!important;width:100%;box-sizing:border-box;justify-content:flex-start!important;margin:2px 0;}
  .nav-links.open .customer-home-nav-copy small{display:block;}
}

/* V48 — Dark Green My Lawn account button */
.site-header .customer-home-nav,
.portal-site-header .customer-home-nav{
  display:inline-flex!important;align-items:center!important;gap:8px!important;
  min-height:40px!important;padding:7px 14px!important;
  border:1px solid #0c4f2d!important;border-radius:11px!important;
  background:linear-gradient(180deg,#125f38 0%,#0b4a2b 100%)!important;
  color:#fff!important;text-decoration:none!important;
  box-shadow:0 7px 18px rgba(5,67,36,.18)!important;
  line-height:1!important;white-space:nowrap!important;
}
.site-header .customer-home-nav:hover,
.portal-site-header .customer-home-nav:hover{
  background:linear-gradient(180deg,#177044 0%,#0d5732 100%)!important;
  border-color:#0b4729!important;color:#fff!important;transform:translateY(-1px);
}
.customer-home-nav-icon{
  width:auto!important;height:auto!important;flex:0 0 auto!important;display:inline!important;
  border-radius:0!important;background:transparent!important;color:#fff!important;
  font-size:18px!important;font-weight:900!important;line-height:1!important;
}
.customer-home-nav-copy{display:block!important;line-height:1!important;}
.customer-home-nav-copy strong{font-size:.84rem!important;line-height:1!important;font-weight:900!important;color:#fff!important;}
.customer-home-nav-copy small{display:none!important;}
.site-header .customer-home-nav::before,.site-header .customer-home-nav::after,
.portal-site-header .customer-home-nav::before,.portal-site-header .customer-home-nav::after{content:none!important;display:none!important;}
@media(max-width:980px){
 .site-header .customer-home-nav,.portal-site-header .customer-home-nav{min-height:38px!important;padding:7px 11px!important;}
 .customer-home-nav-icon{font-size:17px!important;}
}
@media(max-width:650px){
 .nav-links.open .customer-home-nav{display:flex!important;width:100%;box-sizing:border-box;justify-content:flex-start!important;margin:2px 0;}
}

/* V53 customer-experience polish */
.portal-next-callout{display:flex;align-items:center;gap:18px;margin:14px 0 16px;padding:15px 20px;border:1px solid #cfe3d4;border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(16,57,31,.045)}
.portal-next-callout>span{font-size:.68rem;font-weight:900;letter-spacing:.14em;color:#168b42;background:#eaf7ed;padding:7px 9px;border-radius:999px;white-space:nowrap}
.portal-next-callout strong{font-size:1.15rem;line-height:1.15;color:#123d27;letter-spacing:-.02em}
.portal-next-callout small{margin-left:auto;color:#63756a;font-size:.82rem}
.portal-next-visit-row{background:#f2f9f3;margin:6px -8px -4px;padding:13px 10px;border-radius:12px;border-top:0!important}
.portal-next-visit-row span{font-weight:800;color:#365746}
.portal-next-visit-row strong{font-size:1.08rem;color:#0c7134}
.portal-request-success{text-align:center;padding:10px 4px 16px;display:grid;justify-items:center;gap:10px}
.portal-request-success-icon{width:54px;height:54px;display:grid;place-items:center;border-radius:50%;background:#e7f7eb;color:#12833c;font-size:1.65rem;font-weight:900}
.portal-request-success h3{margin:0;color:#123d27;font-size:1.55rem;letter-spacing:-.03em}
.portal-request-success p{margin:0;max-width:330px;color:#617167;line-height:1.5;font-size:.92rem}
.portal-request-success-status{margin-top:4px;display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border-radius:999px;background:#f5f7f5;border:1px solid #dfe7e0;font-weight:800;color:#4a5d51;font-size:.82rem}
.portal-request-success-status span{width:8px;height:8px;border-radius:50%;background:#e7a62c}
@media(max-width:700px){
  .portal-next-callout{margin:10px 0 12px;padding:13px 14px;gap:10px;flex-wrap:wrap}
  .portal-next-callout strong{font-size:1.05rem;flex:1;min-width:150px}
  .portal-next-callout small{width:100%;margin-left:0;padding-left:2px}
  .portal-next-visit-row{padding:14px 12px}
  .portal-next-visit-row strong{font-size:1.16rem}
}

/* V55 mobile scroll stability: keep iOS momentum scrolling native and avoid scroll chaining glitches. */
.portal-body{touch-action:pan-y;-webkit-overflow-scrolling:touch;overscroll-behavior-y:auto}
.portal-app,.portal-main{touch-action:pan-y}
@media(max-width:700px){.portal-body{overflow-x:hidden}.portal-app{overflow:visible}.portal-card,.portal-request-list,.portal-history-list{touch-action:pan-y}}

/* V64 desktop header: My Lawn sits immediately left of Request Free Estimate. */
@media(min-width:981px){.portal-site-header .desktop-mylawn-cta{margin-left:8px!important;flex:0 0 auto!important}.portal-site-header .nav-cta{margin-left:0!important}}
@media(max-width:980px){.portal-site-header .desktop-mylawn-cta{display:none!important}}

/* V69 audit: an unavailable quick action should read as unavailable, not clickable. */
.portal-quick-actions button.portal-action-disabled,
.portal-quick-actions button:disabled{cursor:not-allowed;opacity:.58;box-shadow:none;transform:none!important}
.portal-quick-actions button.portal-action-disabled:hover,
.portal-quick-actions button:disabled:hover{transform:none!important;box-shadow:none}

/* V70 — compact My Lawn mobile dashboard. Desktop intentionally unchanged. */
@media(max-width:640px){
  .portal-app{padding:18px 14px 34px}
  .portal-app-shell{max-width:none}
  .portal-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:14px}
  .portal-top>div{min-width:0}
  .portal-top .portal-eyebrow{margin-bottom:4px;font-size:.65rem}
  .portal-top h1{font-size:2.65rem;line-height:.94;margin:5px 0 7px;letter-spacing:-.055em}
  .portal-top p{font-size:.88rem;line-height:1.35;max-width:310px}
  .portal-top .portal-link-btn{margin:2px 0 0;padding:8px 10px;font-size:.72rem;border-radius:10px;white-space:nowrap}

  .portal-customer-hero{margin-bottom:12px}
  .portal-customer-next{padding:21px 20px;min-height:0;border-radius:22px;box-shadow:0 14px 36px rgba(20,67,37,.13)}
  .portal-customer-next .portal-card-label{font-size:.62rem}
  .portal-customer-next .portal-next-date{font-size:2.18rem;line-height:1;margin:8px 0 7px;max-width:100%}
  .portal-customer-next>p{font-size:.9rem;line-height:1.4;max-width:315px}
  .portal-customer-next:after{width:230px;height:190px;right:-85px;bottom:-105px}
  .portal-service-timeline-four{display:flex!important;align-items:flex-start;justify-content:space-between;gap:4px;margin-top:20px;max-width:none}
  .portal-service-timeline-four b{display:block!important;height:2px;flex:1;margin:13px 1px 0;min-width:9px}
  .portal-service-timeline-four>div{display:grid;justify-items:center;gap:5px;min-width:48px;text-align:center;font-size:.57rem;line-height:1.12}
  .portal-service-timeline i{width:27px;height:27px}
  .portal-next-footer{margin-top:18px;padding-top:13px;align-items:center}
  .portal-next-footer span{font-size:.68rem;padding:6px 9px}
  .portal-next-footer strong{font-size:1.2rem;text-align:right}

  .portal-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px;margin:12px 0}
  .portal-quick-actions button{min-height:112px;padding:13px 10px!important;border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:5px;box-shadow:0 6px 20px rgba(22,64,35,.04)}
  .portal-quick-actions button>span{grid-row:auto;width:38px;height:38px;flex:0 0 38px;border-radius:12px;font-size:1.15rem}
  .portal-quick-actions strong{font-size:.86rem;line-height:1.15}
  .portal-quick-actions small{font-size:.66rem;line-height:1.28;max-width:130px}

  /* Make service + referral read as one compact account card on mobile. */
  .portal-service-summary-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:0;margin:0 0 12px;border:1px solid #dce7da;border-radius:22px;background:#fff;overflow:hidden;box-shadow:0 8px 28px rgba(22,64,35,.045)}
  .portal-service-summary-grid>.portal-summary-card{min-width:0;margin:0!important;padding:18px 15px!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:transparent!important}
  .portal-service-summary-grid>.portal-summary-card+ .portal-summary-card{border-left:1px solid #e4ece3!important}
  .portal-summary-card .portal-card-label{font-size:.57rem;letter-spacing:.12em}
  .portal-summary-card h2{font-size:1.28rem;margin:9px 0 4px;line-height:1.05}
  .portal-summary-card>p{font-size:.72rem;line-height:1.32;margin:0 0 9px;color:#687a70}
  .portal-summary-row{padding:9px 0;font-size:.7rem;gap:7px}
  .portal-summary-row strong{font-size:.74rem;text-align:right;line-height:1.25}
  .portal-next-visit-row{margin:5px -5px -2px;padding:9px 7px;border-radius:10px}
  .portal-next-visit-row strong{font-size:.76rem}
  .portal-credit-amount{font-size:2rem!important;line-height:1;margin:8px 0 5px}
  .portal-credit-card>p{min-height:0}
  .portal-inline-btn{font-size:.72rem;padding:0;margin-top:5px}

  /* History + Requests collapse to compact summary rows until tapped. */
  .portal-customer-grid{display:grid!important;grid-template-columns:1fr!important;gap:10px}
  .portal-customer-grid>.portal-card{padding:14px 15px!important;border-radius:18px;min-height:0!important;margin:0!important;cursor:pointer;position:relative}
  .portal-customer-grid>.portal-card::after{content:'›';position:absolute;right:15px;top:50%;transform:translateY(-50%);font-size:1.7rem;line-height:1;color:#148743;font-weight:400}
  .portal-customer-grid>.portal-card.mobile-expanded::after{content:'⌃';font-size:1.1rem}
  .portal-customer-grid .portal-card-head{margin:0;padding-right:25px;align-items:center}
  .portal-customer-grid .portal-card-head>div{min-width:0}
  .portal-customer-grid .portal-card-label{font-size:.55rem}
  .portal-customer-grid .portal-card-head h2{font-size:1rem;margin:3px 0 0;line-height:1.15}
  .portal-customer-grid .portal-card-head>span{font-size:.64rem;white-space:nowrap}
  .portal-customer-grid .portal-mini-btn{padding:6px 9px;font-size:.64rem;margin-right:22px}
  .portal-customer-grid #historyContent,
  .portal-customer-grid #requestsContent{display:none;margin-top:10px;border-top:1px solid #e6ece5;padding-top:5px}
  .portal-customer-grid>.portal-card.mobile-expanded #historyContent,
  .portal-customer-grid>.portal-card.mobile-expanded #requestsContent{display:block}
  .portal-customer-grid>.portal-card.mobile-expanded{cursor:default}
  .portal-history-item,.portal-requests-home .portal-request-item{padding:10px 0}
  .portal-empty{font-size:.76rem;padding:5px 0}
  .portal-text-action{font-size:.72rem}
}

/* V72 — desktop My Lawn grid alignment.
   Keep the two lower cards on the same 50/50 column grid as the quick actions
   and service/referral row so all vertical card edges line up. */
@media(min-width:901px){
  .portal-customer-grid{grid-template-columns:1fr 1fr}
}
/* Temporary: source grass PNGs were unavailable/broken in the recovered deployment. */
.portal-grass-art{display:none!important;}


/* V72 — customer notifications + install UI */
.portal-notifications-card{grid-column:1/-1}
.portal-notification-intro{margin:0 0 16px;color:#64746b;line-height:1.55}
.portal-notification-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.portal-primary-mini{border:0;border-radius:12px;background:#13834f;color:#fff;font-weight:900;padding:12px 15px;cursor:pointer}
.portal-primary-mini:disabled{opacity:.6;cursor:default}
.portal-notification-off{margin:0!important}
.portal-notification-state{margin:0 0 18px;padding:10px 12px;border-radius:12px;background:#f3f6f4;color:#67766d;font-size:.82rem;font-weight:750}
.portal-notification-state.is-on{background:#e9f7ee;color:#146a3d}
.portal-notification-toggles{display:grid;gap:0;border:1px solid #e0e7e2;border-radius:16px;overflow:hidden}
.portal-notification-toggles label{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 15px;background:#fff;border-bottom:1px solid #e7ece8;cursor:pointer}
.portal-notification-toggles label:last-child{border-bottom:0}
.portal-notification-toggles span{display:flex;flex-direction:column;gap:3px}
.portal-notification-toggles strong{font-size:.88rem;color:#193b2d}
.portal-notification-toggles small{font-size:.73rem;color:#718077;line-height:1.4}
.portal-notification-toggles input{width:22px;height:22px;accent-color:#13834f;flex:0 0 auto}
.portal-install-box{margin-top:15px;padding:14px 15px;border-radius:15px;background:#f3f8f4;display:flex;align-items:center;justify-content:space-between;gap:14px}
.portal-install-box>div{display:flex;flex-direction:column;gap:3px}
.portal-install-box strong{font-size:.84rem;color:#17382a}
.portal-install-box small{font-size:.72rem;color:#6c7b72;line-height:1.45}
@media(max-width:640px){.portal-install-box{align-items:flex-start;flex-direction:column}.portal-install-box .portal-mini-btn{width:100%}.portal-notification-actions{align-items:stretch;flex-direction:column}.portal-notification-actions>*{width:100%}}
/* V73 — guided Add to Home Screen walkthrough */
.kash-install-guide [hidden]{display:none!important}
.kash-install-guide .kash-install-card{width:min(560px,calc(100vw - 22px));max-height:88vh;overflow:auto;padding:20px;border-radius:24px}
.install-guide-brand{display:flex;gap:13px;align-items:center;padding-right:34px}.install-guide-brand img{width:54px;height:54px;border-radius:14px}.install-guide-brand h2{margin:0 0 3px;font-size:1.28rem;color:#0c3525}.install-guide-brand p{margin:0;color:#66776d;line-height:1.35;font-size:.8rem}
.install-device-picker{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:15px 0 12px}.install-device-picker button{border:1px solid #d9e3dc;background:#fff;color:#17382a;border-radius:12px;padding:10px;font-weight:800;font-size:.88rem}.install-device-picker button.active{background:#0e5b35;color:#fff;border-color:#0e5b35}
.install-steps{display:grid;gap:7px}.install-step{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:9px;align-items:center;border:1px solid #e1e9e3;background:#fbfdfb;border-radius:13px;padding:9px 10px}.install-step>b{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#0e5b35;color:#fff;font-size:.8rem}.install-step>span:nth-child(2){display:flex;flex-direction:column;gap:1px}.install-step strong{color:#17382a;font-size:.82rem}.install-step small{color:#708078;font-size:.68rem;line-height:1.25}.install-visual,.install-symbol,.install-menu{border:0;background:#eef5f0;border-radius:8px;padding:6px 8px;color:#24372e;font-size:.68rem;box-shadow:none;white-space:nowrap}.install-symbol{font-size:1.05rem;font-weight:700}.install-menu em{color:#1470d2;font-style:normal}.install-mini-icon{width:34px;height:34px;border-radius:9px}
.install-done{margin-top:9px;border:1px solid #cfe3d4;background:#f1f9f3;border-radius:12px;padding:9px 11px;display:flex;gap:7px;align-items:center}.install-done strong{color:#176538;font-size:.78rem}.install-done span,.install-trouble span{font-size:.67rem;color:#68786f;line-height:1.3}.install-trouble{margin-top:7px;background:#fff8e8;border:1px solid #f0dfb2;border-radius:12px;padding:8px 11px;display:flex;gap:7px;align-items:center}.install-trouble strong{color:#624b13;font-size:.72rem;white-space:nowrap}
@media(max-width:640px){.kash-install-guide .kash-install-card{padding:17px 14px 14px;border-radius:22px;max-height:90vh}.install-guide-brand img{width:48px;height:48px}.install-guide-brand h2{font-size:1.12rem}.install-guide-brand p{font-size:.72rem}.install-device-picker{margin:12px 0 10px}.install-step{grid-template-columns:27px minmax(0,1fr) auto;padding:8px 9px}.install-step>.install-visual,.install-step>.install-symbol,.install-step>.install-menu,.install-step>.install-mini-icon{grid-column:3;justify-self:end;text-align:center}.install-step small{font-size:.64rem}.install-step strong{font-size:.78rem}.install-done,.install-trouble{flex-direction:column;align-items:flex-start;gap:2px}}

/* V75 — accurate, compact device-specific install guide */
.kash-install-guide .kash-install-card{width:min(520px,calc(100vw - 18px));max-height:90vh;overflow:auto;padding:18px;border-radius:24px}
.install-detected{display:flex;align-items:center;gap:8px;background:#eef8f2;border:1px solid #d9eadf;color:#17442f;border-radius:12px;padding:8px 10px;margin:12px 0 10px;font-size:.76rem}
.install-detected-dot{width:8px;height:8px;border-radius:50%;background:#16834c;box-shadow:0 0 0 4px rgba(22,131,76,.10)}
.install-device-picker{margin:0 0 12px}.install-device-picker button{padding:9px 10px}
.install-steps-visual{display:grid;gap:10px}
.install-guide-step{border:1px solid #e0e8e2;background:#fbfdfb;border-radius:15px;padding:11px}
.install-step-copy{display:grid;grid-template-columns:28px 1fr;gap:9px;align-items:start}
.install-step-copy>b{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#0d653b;color:#fff;font-size:.78rem}
.install-step-copy strong{display:block;color:#143728;font-size:.84rem;line-height:1.2;margin:1px 0 2px}
.install-step-copy small{display:block;color:#687a71;font-size:.69rem;line-height:1.3}
.ios-toolbar-demo{height:45px;margin:10px 0 0 37px;border:1px solid #dce3de;border-radius:12px;background:#fff;display:grid;grid-template-columns:repeat(4,1fr);align-items:center;text-align:center;font-size:1.1rem;box-shadow:0 2px 7px rgba(17,54,37,.06)}
.ios-toolbar-demo span{color:#4f675b}.ios-share-icon{position:relative;color:#0879ff!important;font-size:1.2rem}.ios-share-icon:before{content:'□';font-weight:600}.ios-share-icon:after{content:'↑';position:absolute;left:50%;top:2px;transform:translateX(-50%);font-size:1rem;font-weight:700}
.install-guide-step-image img{display:block;width:calc(100% - 37px);max-height:210px;object-fit:contain;object-position:center;border-radius:12px;border:1px solid #d7ded9;margin:10px 0 0 37px;background:#1c1c1e}
.install-guide-step-image:nth-of-type(3) img{max-height:210px;object-fit:contain;object-position:center}
.install-finish-row{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:center;background:#eff8f2;border:1px solid #d8eade;border-radius:14px;padding:10px}
.install-finish-row img{width:42px;height:42px;border-radius:11px}.install-finish-row strong{display:block;color:#0f4d2e;font-size:.82rem}.install-finish-row span{display:block;color:#61746a;font-size:.69rem;line-height:1.3;margin-top:2px}
.install-trouble-line{font-size:.67rem;color:#708078;text-align:center;margin:10px 2px 0}
.android-browser-demo{margin:10px 0 0 37px;border:1px solid #dce3de;border-radius:11px;background:#fff;padding:9px 11px;display:flex;align-items:center;justify-content:space-between;font-size:.7rem;color:#4a5a52}.android-browser-demo b{font-size:1.25rem;color:#1d2e25}
.android-menu-demo{margin:10px 0 0 37px;border:1px solid #dce3de;border-radius:11px;background:#fff;padding:6px;display:grid;gap:3px;font-size:.67rem}.android-menu-demo span,.android-menu-demo strong{padding:7px 8px;border-radius:7px}.android-menu-demo strong{background:#eef7f1;color:#0d653b}
.android-install-demo{margin:10px 0 0 37px;border:1px solid #dce3de;border-radius:11px;background:#fff;padding:9px;display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:9px}.android-install-demo img{width:34px;height:34px;border-radius:8px}.android-install-demo span{font-size:.72rem;font-weight:700;color:#24392e}.android-install-demo button{border:0;background:#1670e8;color:#fff;border-radius:8px;padding:7px 10px;font-weight:700;font-size:.67rem}
@media(max-width:640px){
  .kash-install-guide .kash-install-card{padding:15px 13px 13px;max-height:91vh}
  .install-guide-brand{gap:10px}.install-guide-brand img{width:46px;height:46px}.install-guide-brand h2{font-size:1.05rem}.install-guide-brand p{font-size:.7rem}
  .install-guide-step{padding:10px}.install-guide-step-image img{max-height:190px}.install-guide-step-image:nth-of-type(3) img{max-height:190px}
  .install-step-copy strong{font-size:.8rem}.install-step-copy small{font-size:.66rem}
}

/* V78 — clearer notification install/off feedback */
.portal-notification-state.is-off{background:#f6f4ee;color:#725f2e}
.portal-notification-off.is-confirmed-off{opacity:.7;cursor:default;text-decoration:none!important}
.portal-notification-off:disabled{pointer-events:none}

/* V79 — notification master-off state */
.portal-notification-toggles.is-disabled{opacity:.55}
.portal-notification-toggles.is-disabled label{cursor:default}
.portal-notification-toggles input:disabled{cursor:not-allowed}

/* V83 — keep install guide header visible on mobile Safari */
@media(max-width:640px){
  .kash-install-guide.portal-action-modal{
    place-items:start center;
    padding:calc(env(safe-area-inset-top) + 10px) 9px calc(env(safe-area-inset-bottom) + 10px);
    overflow:hidden;
  }
  .kash-install-guide .kash-install-card{
    margin:0;
    width:100%;
    max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 20px);
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    scroll-padding-top:12px;
  }
  .kash-install-guide .install-guide-brand{
    position:sticky;
    top:-15px;
    z-index:4;
    margin:-15px -13px 0;
    padding:15px 52px 12px 13px;
    background:#fff;
    border-radius:22px 22px 0 0;
  }
  .kash-install-guide .portal-action-close{
    position:sticky;
    float:right;
    top:8px;
    z-index:6;
    margin:0 0 -36px auto;
    display:grid;
    place-items:center;
  }
}

/* V84 — customer balance visibility */
.portal-balance-card{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fff;border:1px solid #dce7da;border-radius:22px;padding:20px 24px;margin:0 0 18px;box-shadow:0 10px 32px rgba(22,64,35,.045)}
.portal-balance-card.has-balance{border-color:#e7d4a9;background:linear-gradient(135deg,#fffdf8,#fff9ea)}
.portal-balance-card.is-clear{background:linear-gradient(135deg,#f8fcf7,#eef8ee)}
.portal-balance-main{display:flex;align-items:baseline;gap:14px;margin-top:5px}
.portal-balance-main strong{font-size:2rem;line-height:1;color:#173d28;letter-spacing:-.04em}
.portal-balance-main span{font-size:.84rem;color:#6f7e75;font-weight:750}
.portal-balance-details-btn{border:1px solid #b9d8be;background:#fff;color:#147c3b;border-radius:999px;padding:10px 14px;font-weight:900;cursor:pointer}
.portal-balance-clear-mark{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#168b42;color:#fff;font-weight:950;font-size:1.15rem}
.portal-balance-details{background:#fff;border:1px solid #dce7da;border-radius:22px;padding:20px 24px;margin:-6px 0 18px}
.portal-balance-details[hidden]{display:none!important}
.portal-balance-details .portal-card-head>strong{font-size:1.25rem;color:#8b5d09}
.portal-balance-row{display:flex;justify-content:space-between;gap:18px;padding:14px 0;border-top:1px solid #edf1ee}
.portal-balance-row:first-child{border-top:0}
.portal-balance-row>div{display:grid;gap:3px}
.portal-balance-row>div:last-child{text-align:right}
.portal-balance-row strong{font-size:.9rem;color:#173d28}
.portal-balance-row small,.portal-balance-row span{font-size:.73rem;color:#75847a}
@media(max-width:640px){
  .portal-balance-card{padding:16px 17px;border-radius:18px;gap:12px}
  .portal-balance-main{display:grid;gap:4px}
  .portal-balance-main strong{font-size:1.65rem}
  .portal-balance-details{padding:15px 16px;border-radius:18px}
  .portal-balance-row{align-items:flex-start}
}

/* V97 — iPhone form usability: prevent Safari focus zoom + keep field icons clear */
@media (max-width: 760px){
  /* iOS Safari zooms the page when a focused form control renders below 16px. */
  .portal-form input:not([type="checkbox"]):not([type="radio"]),
  .portal-form select,
  .portal-form textarea,
  .portal-login-focus input:not([type="checkbox"]):not([type="radio"]),
  .portal-action-card input:not([type="checkbox"]):not([type="radio"]),
  .portal-action-card select,
  .portal-action-card textarea{
    font-size:16px!important;
    line-height:1.35!important;
  }

  .portal-input-wrap{
    position:relative!important;
    display:block!important;
  }
  .portal-input-icon{
    left:16px!important;
    top:50%!important;
    width:19px!important;
    height:19px!important;
    transform:translateY(-50%)!important;
    pointer-events:none!important;
    z-index:1!important;
  }
  .portal-input-icon svg{
    width:19px!important;
    height:19px!important;
  }
  .portal-input-wrap input:not([type="hidden"]){
    padding-left:52px!important;
    padding-right:15px!important;
  }
  .portal-input-wrap input::placeholder{
    opacity:1!important;
  }

  /* Activation sheet: give fields breathing room and prevent icon/placeholder collisions. */
  #activationModal .portal-modal-card{
    width:100%!important;
    max-width:520px!important;
    box-sizing:border-box!important;
  }
  #activationModal .portal-activation-step-form{
    gap:20px!important;
  }
  #activationModal .portal-activation-step-form label{
    gap:10px!important;
  }
}

/* V100 — balance payment handoff through Messages */
.portal-balance-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.portal-pay-text-btn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:10px 15px;border-radius:999px;background:#168b42;color:#fff!important;text-decoration:none;font-size:.82rem;font-weight:900;box-shadow:0 7px 18px rgba(22,139,66,.16)}
.portal-pay-text-btn:hover{background:#107536}
.portal-payment-help{margin:2px 0 10px;padding:11px 13px;border-radius:13px;background:#f4faf4;color:#627268;font-size:.78rem;line-height:1.45}
.portal-pay-visit-link{display:inline-flex;justify-content:flex-end;margin-top:4px;color:#168b42!important;text-decoration:none;font-size:.72rem;font-weight:900}
@media(max-width:640px){
  .portal-balance-card.has-balance{align-items:flex-start}
  .portal-balance-card.has-balance .portal-balance-actions{display:grid;justify-items:stretch;width:min(148px,44%);gap:7px}
  .portal-balance-card.has-balance .portal-pay-text-btn,.portal-balance-card.has-balance .portal-balance-details-btn{width:100%;box-sizing:border-box;text-align:center;padding:9px 8px;font-size:.74rem}
  .portal-balance-row{gap:10px}
}
\n\n/* V101 — mobile My Lawn header menu fix.\n   portal-open is retained as a defensive alias for any stale cached portal.js. */\n@media (max-width:650px){\n  .portal-site-header .nav-links.portal-open{\n    display:flex!important;\n    position:absolute!important;\n    left:13px!important;\n    right:13px!important;\n    top:68px!important;\n    width:auto!important;\n    margin:0!important;\n    background:#fff!important;\n    border:1px solid var(--line)!important;\n    border-radius:16px!important;\n    padding:16px!important;\n    flex-direction:column!important;\n    gap:4px!important;\n    box-shadow:var(--shadow)!important;\n    z-index:100!important;\n  }\n  .portal-site-header .nav-links.portal-open a{padding:10px!important;}\n}\n

/* V109 — polished My Lawn feedback entry points */
.portal-feedback-nudge{
  position:relative;
  display:grid;
  grid-template-columns:44px minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
  margin:14px 0 16px;
  padding:14px 15px;
  border:1px solid #d7e6d8;
  border-radius:18px;
  background:#fff;
  box-shadow:0 8px 24px rgba(22,64,35,.045);
  overflow:hidden;
}
.portal-feedback-nudge:after{
  content:"";
  position:absolute;
  right:-42px;
  top:-60px;
  width:150px;
  height:150px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(40,173,79,.08),transparent 68%);
  pointer-events:none;
}
.portal-feedback-icon{
  position:relative;
  z-index:1;
  width:44px;
  height:44px;
  border-radius:13px;
  display:grid;
  place-items:center;
  background:#eaf6e9;
  color:#178c42;
  font-size:1.05rem;
  line-height:1;
}
.portal-feedback-copy{
  position:relative;
  z-index:1;
  min-width:0;
  display:grid;
  gap:2px;
}
.portal-feedback-copy .portal-card-label{
  margin:0 0 1px;
  font-size:.61rem;
  letter-spacing:.12em;
}
.portal-feedback-copy strong{
  color:#163b27;
  font-size:.94rem;
  line-height:1.25;
}
.portal-feedback-copy small{
  color:#6d7d73;
  font-size:.72rem;
  line-height:1.35;
}
.portal-feedback-btn{
  position:relative;
  z-index:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:40px;
  padding:0 14px;
  border-radius:11px;
  text-decoration:none;
  white-space:nowrap;
  background:#178c42;
  color:#fff!important;
  font-size:.78rem;
  font-weight:900;
  box-shadow:0 6px 16px rgba(23,140,66,.16);
  transition:transform .16s ease,box-shadow .16s ease,background .16s ease;
}
.portal-feedback-btn:hover{
  transform:translateY(-1px);
  background:#127737;
  box-shadow:0 9px 20px rgba(23,140,66,.2);
}
.portal-history-head-actions{
  display:flex;
  align-items:flex-end;
  gap:4px;
  flex-direction:column;
}
.portal-feedback-text-link{
  color:#267447!important;
  text-decoration:none;
  font-size:.72rem;
  line-height:1.2;
  font-weight:850;
}
.portal-feedback-text-link:hover{text-decoration:underline}

@media(max-width:640px){
  .portal-feedback-nudge{
    grid-template-columns:40px minmax(0,1fr);
    gap:11px;
    margin:12px 0;
    padding:13px;
    border-radius:16px;
  }
  .portal-feedback-icon{
    width:40px;
    height:40px;
    border-radius:12px;
  }
  .portal-feedback-copy strong{font-size:.9rem}
  .portal-feedback-copy small{font-size:.68rem}
  .portal-feedback-btn{
    grid-column:1/-1;
    width:100%;
    min-height:42px;
    margin-top:1px;
    box-sizing:border-box;
  }
  .portal-history-head-actions{
    gap:3px;
    align-items:flex-end;
  }
  .portal-feedback-text-link{
    font-size:.69rem;
  }
}

/* V114: next service first; explicit history and compact preferences. */
.portal-body #historyContent[hidden]{display:none!important}
.portal-body #historyContent:not([hidden]),.portal-body #requestsContent{display:block!important}
.portal-body .portal-customer-grid>.portal-card{cursor:default}
.portal-body .portal-customer-grid>.portal-card::after{content:none!important}
.portal-body .portal-customer-grid .portal-card-head{padding-right:0}
.portal-body #notificationPreferences summary{cursor:pointer;padding:14px 0;min-height:48px;font-size:15px;font-weight:700;color:#17603a}
.portal-body #notificationPreferences:not([open])>.portal-notification-toggles{display:none!important}
.portal-body .portal-quick-actions>button:only-child{grid-column:1/-1}
.portal-body .portal-text-action,.portal-body .portal-mini-btn,.portal-body .portal-inline-btn,.portal-body .portal-request-item>a{min-height:44px;display:inline-flex;align-items:center;font-size:14px!important}
.portal-body .portal-request-item{flex-wrap:wrap;gap:12px}
.portal-body .portal-request-item>a{color:#17603a;text-decoration:underline;font-weight:700}
.portal-body :is(button,a,summary):focus-visible{outline:3px solid #17603a;outline-offset:3px}
@media(max-width:640px){
 .portal-body .portal-customer-next{padding:20px!important}
 .portal-body .portal-next-date{font-size:28px!important;line-height:1.15!important}
 .portal-body .portal-service-timeline span{font-size:11px!important}
 .portal-body .portal-quick-actions button{padding:14px!important;min-height:92px!important}
 .portal-body .portal-quick-actions small{font-size:12px!important;max-width:none}
 .portal-body .portal-service-summary-grid>.portal-summary-card{padding:14px!important}
 .portal-body .portal-notification-intro{font-size:14px!important;line-height:1.5}
 .portal-body #notificationSettingsCard{padding:18px!important}
}
