/* Login-only visual correction; no behavior changes. */
.avp-login .login-card input[type="text"],.avp-login .login-card input[type="password"]{height:var(--ds-control-h)!important;min-height:var(--ds-control-h)!important;border-radius:var(--ds-r-control)!important;corner-shape:squircle}
.avp-login .login-card .btn-primary{min-height:var(--ds-action-h)!important;border-radius:var(--ds-r-action)!important;corner-shape:squircle}


/* MMD login FormField parity · same icon primitive as internal forms */
.avp-login .login-card .login-field-control{display:block!important;position:relative!important;width:100%!important}
.avp-login .login-card .login-field-control>.avp-field-prefix{
  position:absolute!important;z-index:2!important;left:0!important;top:50%!important;bottom:auto!important;width:44px!important;height:var(--ds-control-h)!important;
  transform:translateY(-50%)!important;display:grid!important;place-items:center!important;color:#74817d!important;pointer-events:none!important
}
.avp-login .login-card .login-field-control>.avp-field-prefix>.avp-icon{
  width:18px!important;height:18px!important;display:block!important;margin:0!important
}
.avp-login .login-card .login-field-control>input{
  width:100%!important;padding-left:44px!important;box-sizing:border-box!important
}
.avp-login .login-card .login-field-control:focus-within>.avp-field-prefix{color:#096d67!important}
.avp-login .login-card .login-submit{
  width:100%!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important
}
.avp-login .login-card .login-submit>.avp-icon{width:18px!important;height:18px!important}


/* MMD invariant · mobile login = single visual viewport + institutional footer · 2026-09-28 */
.login-mobile-footer{display:none}

@media (max-width:820px){
  html:has(body.avp-login){
    height:100%;
    overflow:hidden!important
  }

  body.avp-body.avp-login{
    width:100%!important;
    height:100dvh!important;
    min-height:100dvh!important;
    max-height:100dvh!important;
    overflow:hidden!important;
    padding:0!important;
    margin:0!important;
    background:#fff!important
  }

  .avp-login .login-shell{
    display:flex!important;
    flex-direction:column!important;
    width:100%!important;
    height:100dvh!important;
    min-height:100dvh!important;
    max-height:100dvh!important;
    overflow:hidden!important;
    background:#fff!important
  }

  .avp-login .login-brand-panel{display:none!important}

  .avp-login .login-form-panel{
    flex:1 1 auto!important;
    min-height:0!important;
    height:auto!important;
    padding:clamp(18px,3.25dvh,30px) 24px 14px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    overflow:hidden!important;
    background:#fff!important
  }

  .avp-login .login-card{
    width:min(100%,390px)!important;
    max-width:390px!important;
    margin:0 auto!important
  }

  .avp-login .login-card .login-logo-mobile{
    display:block!important;
    width:105px!important;
    height:auto!important;
    margin:0 0 clamp(20px,3dvh,28px)!important
  }

  .avp-login .login-card .avp-eyebrow{
    margin-bottom:8px!important
  }

  .avp-login .login-card h2{
    font-size:clamp(27px,7.1vw,32px)!important;
    line-height:1.08!important;
    margin:0 0 8px!important
  }

  .avp-login .login-card>p{
    font-size:15px!important;
    line-height:1.4!important;
    margin:0 0 clamp(18px,2.6dvh,24px)!important
  }

  .avp-login .login-field{
    margin-bottom:clamp(12px,1.8dvh,16px)!important
  }

  .avp-login .login-status{
    min-height:16px!important;
    margin-top:8px!important;
    line-height:1.3!important
  }

  .avp-login .login-mobile-footer{
    flex:0 0 auto!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:4px!important;
    width:100%!important;
    padding:12px 20px max(14px,env(safe-area-inset-bottom))!important;
    border-top:1px solid var(--ds-line)!important;
    background:var(--ds-surface,#fff)!important;
    color:var(--ds-muted,#6f7a77)!important;
    font-size:10px!important;
    line-height:1.35!important
  }

  .avp-login .login-mobile-footer-brand{
    display:flex!important;
    align-items:baseline!important;
    gap:7px!important;
    min-width:0!important
  }

  .avp-login .login-mobile-footer-brand strong{
    flex:0 0 auto!important;
    color:var(--ds-ink,#1f2423)!important;
    font-size:10.5px!important;
    font-weight:760!important
  }

  .avp-login .login-mobile-footer-brand>span{
    min-width:0!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important
  }

  .avp-login .login-mobile-footer-meta{
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    gap:2px 10px!important
  }
}

/* Compact-height guard: still one viewport; remove ornamental spacing before hiding any function. */
@media (max-width:820px) and (max-height:680px){
  .avp-login .login-form-panel{
    padding:12px 22px 8px!important
  }
  .avp-login .login-card .login-logo-mobile{
    width:105px!important;
    margin-bottom:14px!important
  }
  .avp-login .login-card .avp-eyebrow{
    margin-bottom:5px!important
  }
  .avp-login .login-card h2{
    font-size:26px!important;
    margin-bottom:5px!important
  }
  .avp-login .login-card>p{
    font-size:13px!important;
    margin-bottom:12px!important
  }
  .avp-login .login-field{
    margin-bottom:9px!important
  }
  .avp-login .login-field label{
    margin-bottom:4px!important
  }
  .avp-login .login-status{
    min-height:12px!important;
    margin-top:4px!important;
    font-size:10px!important
  }
  .avp-login .login-mobile-footer{
    padding:8px 16px max(9px,env(safe-area-inset-bottom))!important
  }
  .avp-login .login-mobile-footer-brand>span{
    display:none!important
  }
}

/* MMD invariant · CEMHS proprietary desktop login gateway · 2026-09-29 */
@media (min-width:821px){
  html:has(body.avp-login){
    min-height:100%;
    background:#fbfcfb!important;
  }
  body.avp-body.avp-login{
    min-height:100vh!important;
    margin:0!important;
    background:#fbfcfb!important;
    overflow:hidden!important;
  }
  .avp-login .login-shell{
    width:100%!important;
    min-height:100vh!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    background:#fbfcfb!important;
  }
  .avp-login .login-brand-panel{
    position:relative!important;
    overflow:hidden!important;
    min-width:0!important;
    padding:56px clamp(48px,5vw,76px)!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:space-between!important;
    background:#104844!important;
    color:#fff!important;
    isolation:isolate!important;
  }
  .avp-login .login-brand-panel>img{
    position:relative!important;
    z-index:2!important;
    width:190px!important;
    height:auto!important;
  }
  .avp-login .login-brand-copy{
    position:relative!important;
    z-index:2!important;
    width:min(100%,520px)!important;
    margin:auto 0!important;
  }
  .avp-login .login-brand-copy h1{
    display:grid!important;
    gap:2px!important;
    margin:0 0 24px!important;
    color:#fff!important;
    font-size:clamp(42px,4.4vw,66px)!important;
    line-height:.98!important;
    font-weight:720!important;
    letter-spacing:-.045em!important;
  }
  .avp-login .login-brand-copy h1>span:last-child{
    color:#8ed8d1!important;
  }
  .avp-login .login-brand-copy p{
    width:min(100%,470px)!important;
    margin:0!important;
    color:#d0dfdc!important;
    font-size:16px!important;
    line-height:1.55!important;
  }
  .avp-login .login-brand-panel>small{
    position:relative!important;
    z-index:2!important;
    display:flex!important;
    align-items:center!important;
    gap:12px!important;
    color:#a8c5c1!important;
    font-size:12px!important;
  }
  .avp-login .login-brand-panel>small::before{
    content:""!important;
    display:block!important;
    width:34px!important;
    height:1px!important;
    background:#70c8c0!important;
  }
  .avp-login .login-brand-geometry{
    position:absolute!important;
    z-index:1!important;
    inset:0!important;
    pointer-events:none!important;
  }
  .avp-login .login-brand-geometry>span{
    position:absolute!important;
    display:block!important;
    border:1px solid rgba(132,218,210,.34)!important;
    background:transparent!important;
    transform:skewY(-28deg)!important;
    transform-origin:center!important;
  }
  .avp-login .login-brand-geometry>span:nth-child(1){
    width:360px!important;height:620px!important;right:-115px!important;top:115px!important;
  }
  .avp-login .login-brand-geometry>span:nth-child(2){
    width:260px!important;height:440px!important;right:42px!important;bottom:-150px!important;
  }
  .avp-login .login-brand-geometry>span:nth-child(3){
    width:150px!important;height:520px!important;right:112px!important;top:235px!important;
    border-color:rgba(132,218,210,.20)!important;
  }
  .avp-login .login-brand-geometry>span:nth-child(4){
    width:420px!important;height:180px!important;left:48px!important;bottom:-86px!important;
    border-color:rgba(132,218,210,.17)!important;
  }
  .avp-login .login-form-panel{
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:56px clamp(54px,7vw,104px)!important;
    background:#fbfcfb!important;
  }
  .avp-login .login-card{
    width:100%!important;
    max-width:460px!important;
    margin:0!important;
  }
  .avp-login .login-card .avp-eyebrow{
    margin-bottom:10px!important;
    color:var(--ds-brand-strong)!important;
    font-size:11px!important;
    letter-spacing:.12em!important;
  }
  .avp-login .login-card h2{
    margin:0 0 10px!important;
    font-size:36px!important;
    line-height:1.06!important;
    letter-spacing:-.035em!important;
    font-weight:720!important;
  }
  .avp-login .login-card>p{
    margin:0 0 34px!important;
    font-size:15px!important;
    color:var(--ds-muted)!important;
  }
  .avp-login .login-field{
    margin-bottom:18px!important;
  }
  .avp-login .login-field label{
    margin-bottom:7px!important;
    color:#3e4744!important;
    font-size:12px!important;
    font-weight:700!important;
  }
  .avp-login .login-card .login-field-control>input{
    min-height:54px!important;
    height:54px!important;
    border:1px solid #cbd7d3!important;
    background:#fff!important;
    color:var(--ds-ink)!important;
    box-shadow:none!important;
  }
  .avp-login .login-card .login-field-control>.avp-field-prefix{
    height:54px!important;
    width:48px!important;
  }
  .avp-login .login-card .login-field-control>input{
    padding-left:48px!important;
  }
  .avp-login .login-card .login-submit{
    min-height:54px!important;
    margin-top:2px!important;
    background:#167a76!important;
    border-color:#167a76!important;
    color:#fff!important;
    box-shadow:none!important;
  }
  .avp-login .login-card .login-submit:hover,
  .avp-login .login-card .login-submit:focus{
    background:#117874!important;
    border-color:#117874!important;
    color:#fff!important;
  }
  .avp-login .login-status{
    margin-top:12px!important;
    min-height:18px!important;
  }
  .avp-login .login-mobile-footer{
    display:none!important;
  }
}

/* Store compliance links · 2026-09-30 */
.login-mobile-footer-meta a{color:inherit;text-decoration:none}
.login-mobile-footer-meta a:hover{color:#096d67;text-decoration:underline}


/* AVP2026_PUBLIC_LEGAL_INLINE · restored after official promotion */
.avp-login .avp-public-legal-sheet{position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:auto!important;width:min(620px,100vw)!important;max-width:100%!important;z-index:1200!important;background:#fff!important;border-left:1px solid #d8e1de!important;display:none!important;flex-direction:column!important;overflow:hidden!important;transform:none!important}
.avp-login .avp-public-legal-sheet.avp-sheet-open{display:flex!important}
.avp-login .avp-public-legal-sheet .avp-sheet-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px;border-bottom:1px solid #d8e1de;background:#fff}
.avp-login .avp-public-legal-sheet .avp-sheet-body{padding:22px 22px calc(30px + env(safe-area-inset-bottom));overflow:auto}
.avp-login .avp-public-legal-sheet .avp-sheet-close{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid #ccd8d4;background:#fff;color:#303634;cursor:pointer}
.avp-login .avp-public-legal-sheet .avp-legal-section{margin:0 0 22px}
.avp-login .avp-public-legal-sheet .avp-legal-section h3{margin:0 0 8px;font-size:13px;line-height:1.35;color:#303634}
.avp-login .avp-public-legal-sheet .avp-legal-section p,.avp-login .avp-public-legal-sheet .avp-legal-section li{font-size:13px;line-height:1.55;color:#53605c}
.avp-login .avp-public-legal-sheet .avp-legal-section ul{margin:8px 0 0;padding-left:20px}
.avp-login .avp-public-legal-sheet .avp-legal-intro{display:flex;gap:12px;padding:14px;border:1px solid #cfe1de;background:#f5faf9;margin-bottom:22px}
.avp-login .avp-public-legal-sheet .avp-legal-intro-danger{border-color:#e6c7c3;background:#fff8f7}
.avp-login .avp-public-legal-sheet .avp-legal-icon{display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center;flex:0 0 auto;color:#126d6a}
.avp-login .avp-public-legal-sheet .avp-legal-warning{padding:12px 14px;border:1px solid #e3d2b1;background:#fffaf0;color:#66512d;font-size:12px;line-height:1.5}
.avp-login .avp-public-legal-sheet .avp-field{margin:0 0 14px}
.avp-login .avp-public-legal-sheet .avp-field label{display:block;margin:0 0 6px;font-size:12px;font-weight:650;color:#303634}
.avp-login .avp-public-legal-sheet .avp-field input,.avp-login .avp-public-legal-sheet .avp-field textarea{box-sizing:border-box;width:100%;min-height:44px;padding:10px 12px;border:1px solid #cbd7d3;background:#fff;color:#303634}
.avp-login .avp-public-legal-sheet .avp-field textarea{min-height:96px;resize:vertical}
.avp-login .avp-public-legal-sheet .avp-legal-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
@media(max-width:700px){.avp-login .avp-public-legal-sheet{width:100vw!important;border-left:0!important}}


/* AVP2026_GOOGLE_A11Y_CONTRAST */
.avp-login .login-card .login-submit{background:#167a76!important;border-color:#167a76!important;color:#fff!important}
