
html.v940-lock,
html.v940-lock body{
  overflow:hidden!important;
}

/* 原“我的”页面声音按钮隐藏 */
.v940-adoption-ready .v930-voice-entry{
  display:none!important;
}


/* ===============================
   全屏领养层
================================ */

.v940-root{
  position:fixed;
  inset:0;
  z-index:22000;

  display:grid;
  align-items:end;
  justify-items:center;

  pointer-events:none;
  opacity:0;

  transition:opacity .22s ease;
}

.v940-root.open{
  pointer-events:auto;
  opacity:1;
}

.v940-backdrop{
  position:absolute;
  inset:0;

  background:
    rgba(29,39,34,.34);

  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
}

.v940-sheet{
  position:relative;

  width:min(100%,480px);
  max-height:94dvh;

  overflow:hidden;

  border-radius:
    32px 32px 0 0;

  background:
    linear-gradient(
      180deg,
      #f8fbf8 0%,
      #f1f6f2 100%
    );

  box-shadow:
    0 -18px 60px
    rgba(34,53,43,.18);

  transform:
    translateY(105%);

  transition:
    transform .34s
    cubic-bezier(.18,.86,.25,1);
}

.v940-root.open .v940-sheet{
  transform:translateY(0);
}

.v940-sheet-inner{
  max-height:94dvh;
  overflow:auto;

  padding:
    22px 18px
    calc(
      24px +
      env(safe-area-inset-bottom)
    );

  -webkit-overflow-scrolling:touch;
}


/* ===============================
   标题
================================ */

.v940-head{
  display:grid;
  grid-template-columns:
    40px 1fr 44px;

  gap:9px;
  align-items:start;

  margin-bottom:16px;
}

.v940-head h2{
  margin:3px 0 4px;

  font-size:23px;
  line-height:1.16;

  color:#2f4037;
}

.v940-head p{
  margin:0;

  color:#89958f;

  font-size:12px;
  line-height:1.55;
}

.v940-eyebrow{
  font-size:9px;
  letter-spacing:.17em;

  font-weight:900;

  color:#77a689;
}

.v940-head-spacer{
  width:40px;
}

.v940-head-paw{
  width:42px;
  height:42px;

  display:grid;
  place-items:center;

  border-radius:15px;

  background:#e7f4eb;

  font-size:20px;

  animation:
    v940Float
    2.6s
    ease-in-out
    infinite;
}

.v940-icon-btn{
  width:38px;
  height:38px;

  border:0;
  border-radius:50%;

  background:#e9eeea;

  color:#66736c;

  font-size:24px;
}


/* ===============================
   宠物卡
================================ */

.v940-pet-grid{
  display:grid;

  grid-template-columns:
    1fr 1fr;

  gap:11px;
}

.v940-pet-card{
  position:relative;

  min-height:196px;

  padding:13px;

  border:0;
  border-radius:23px;

  background:
    rgba(255,255,255,.94);

  box-shadow:
    0 9px 25px
    rgba(53,74,63,.07);

  text-align:left;

  overflow:hidden;

  transition:
    transform .18s ease,
    box-shadow .18s ease;
}

.v940-pet-card:not(.disabled):active{
  transform:scale(.975);
}

.v940-pet-card.owned{
  box-shadow:
    inset 0 0 0 1.5px
    rgba(100,174,132,.33),
    0 10px 26px
    rgba(53,74,63,.08);
}

.v940-pet-card.disabled:not(.owned):not(.pending){
  opacity:.5;
}

.v940-card-badge{
  position:absolute;
  z-index:2;

  top:11px;
  right:10px;

  padding:5px 8px;

  border-radius:999px;

  background:
    rgba(238,246,241,.92);

  color:#678574;

  font-size:9px;
  font-weight:850;
}

.v940-pet-card.pending
.v940-card-badge{
  background:#fff4dc;

  color:#a9803f;
}

.v940-card-art{
  height:112px;

  display:grid;
  place-items:center;

  font-size:60px;
}

.v940-card-art img{
  display:block;

  max-width:100%;
  max-height:108px;

  object-fit:contain;

  filter:
    drop-shadow(
      0 10px 10px
      rgba(39,61,49,.10)
    );

  animation:
    v940PetBreath
    3.1s
    ease-in-out
    infinite;
}

.v940-card-copy{
  display:block;
}

.v940-card-copy b{
  display:block;

  color:#35473d;

  font-size:16px;
}

.v940-card-copy small{
  display:-webkit-box;

  margin-top:4px;

  color:#929c97;

  font-size:10px;
  line-height:1.45;

  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;

  overflow:hidden;
}

.v940-soft-note,
.v940-bottom-note{
  margin-top:12px;

  padding:11px 13px;

  border-radius:15px;

  background:#edf5ef;

  color:#738279;

  font-size:10px;
  line-height:1.5;
}

.v940-bottom-note{
  background:transparent;

  text-align:center;

  color:#9aa39e;
}


/* ===============================
   领养资料
================================ */

.v940-profile-hero{
  display:flex;
  align-items:center;

  gap:14px;

  padding:14px;
  margin-bottom:12px;

  border-radius:23px;

  background:
    linear-gradient(
      135deg,
      #e7f4ea,
      #f9fcfa
    );
}

.v940-profile-art{
  width:90px;
  height:90px;

  flex:none;

  display:grid;
  place-items:center;

  font-size:48px;
}

.v940-profile-art img{
  max-width:100%;
  max-height:88px;

  object-fit:contain;

  filter:
    drop-shadow(
      0 9px 10px
      rgba(49,73,60,.12)
    );

  animation:
    v940PetBreath
    3s
    ease-in-out
    infinite;
}

.v940-profile-hero b{
  display:block;

  font-size:18px;

  color:#35463d;
}

.v940-profile-hero small{
  display:block;

  margin-top:5px;

  color:#819087;

  font-size:10px;
  line-height:1.55;
}

.v940-form-card{
  padding:16px;

  border-radius:24px;

  background:#fff;

  box-shadow:
    0 10px 28px
    rgba(50,72,60,.07);
}

.v940-field{
  display:block;

  margin-bottom:13px;
}

.v940-field>span{
  display:block;

  margin-bottom:7px;

  color:#68766e;

  font-size:11px;
  font-weight:850;
}

.v940-field input{
  width:100%;
  height:50px;

  padding:0 14px;

  border:
    1px solid #e2e9e5;

  border-radius:16px;

  outline:none;

  background:#f8faf8;

  color:#2f3f36;

  font:inherit;
  font-size:14px;
}

.v940-field input:focus{
  border-color:#8ac0a0;

  box-shadow:
    0 0 0 3px
    rgba(112,179,143,.10);
}

.v940-form-tip{
  margin:
    2px 0 14px;

  color:#8b9790;

  font-size:10px;
}

.v940-primary{
  width:100%;
  height:52px;

  border:0;
  border-radius:17px;

  background:
    linear-gradient(
      135deg,
      #74b792,
      #67a985
    );

  color:#fff;

  font-size:14px;
  font-weight:900;

  box-shadow:
    0 10px 22px
    rgba(79,143,109,.20);
}

.v940-primary:active{
  transform:scale(.985);
}


/* ===============================
   等待 / 成功
================================ */

.v940-state-screen,
.v940-success{
  min-height:430px;

  display:flex;
  flex-direction:column;

  align-items:center;
  justify-content:center;

  text-align:center;

  padding:18px 8px;
}

.v940-state-orb{
  width:72px;
  height:72px;

  display:grid;
  place-items:center;

  border-radius:25px;

  background:#fff5de;

  font-size:34px;

  box-shadow:
    0 12px 30px
    rgba(101,84,48,.10);

  animation:
    v940Float
    2.2s
    ease-in-out
    infinite;
}

.v940-state-screen h2,
.v940-success h2{
  margin:10px 0 6px;

  color:#32443a;

  font-size:22px;
}

.v940-state-screen>p{
  margin:0 0 16px;

  color:#849088;

  font-size:12px;
}

.v940-mini-profile{
  width:100%;

  display:flex;
  align-items:center;

  gap:10px;

  margin:4px 0 18px;
  padding:12px;

  border-radius:18px;

  background:#fff;

  text-align:left;
}

.v940-mini-profile>span{
  width:42px;
  height:42px;

  display:grid;
  place-items:center;

  border-radius:14px;

  background:#edf6ef;

  font-size:22px;
}

.v940-mini-profile b,
.v940-mini-profile small{
  display:block;
}

.v940-mini-profile small{
  margin-top:2px;

  color:#929c97;

  font-size:10px;
}


/* 成功 */

.v940-success{
  position:relative;

  overflow:hidden;
}

.v940-success-art{
  width:190px;
  height:190px;

  display:grid;
  place-items:center;

  margin:8px 0 2px;

  font-size:86px;
}

.v940-success-art img{
  max-width:100%;
  max-height:185px;

  object-fit:contain;

  filter:
    drop-shadow(
      0 16px 16px
      rgba(48,70,58,.13)
    );

  animation:
    v940Welcome
    .72s
    cubic-bezier(.2,.9,.25,1)
    both;
}

.v940-success>strong{
  font-size:26px;

  color:#304239;
}

.v940-success>small{
  margin:4px 0 19px;

  color:#8c9791;

  font-size:11px;
}

.v940-confetti{
  position:absolute;

  inset:
    40px 10% auto;

  height:100px;

  pointer-events:none;
}

.v940-confetti i{
  position:absolute;

  width:8px;
  height:8px;

  border-radius:3px;

  background:#92c6a7;

  animation:
    v940Confetti
    1.4s
    ease-out
    infinite;
}

.v940-confetti i:nth-child(1){left:5%;animation-delay:.05s}
.v940-confetti i:nth-child(2){left:22%;animation-delay:.28s}
.v940-confetti i:nth-child(3){left:43%;animation-delay:.12s}
.v940-confetti i:nth-child(4){left:62%;animation-delay:.36s}
.v940-confetti i:nth-child(5){left:79%;animation-delay:.18s}
.v940-confetti i:nth-child(6){left:94%;animation-delay:.42s}


/* ===============================
   选择伙伴
================================ */

.v940-picker-actions{
  display:grid;

  grid-template-columns:
    1fr 1fr;

  gap:9px;

  margin-top:12px;
}

.v940-picker-btn{
  min-height:48px;

  border:0;
  border-radius:16px;

  background:#72b48f;

  color:#fff;

  font-size:12px;
  font-weight:850;
}

.v940-picker-btn.soft{
  background:#edf5ef;

  color:#5e806d;
}

.v940-owned-grid
.pet-choice small{
  display:block;

  margin-top:2px;

  color:#98a19c;

  font-size:9px;
}


/* ===============================
   家长领养管理
================================ */

.v940-parent-tool{
  position:relative;
}

.v940-parent-tool i{
  position:absolute;

  top:7px;
  right:9px;

  min-width:18px;
  height:18px;

  padding:0 5px;

  display:grid;
  place-items:center;

  border-radius:99px;

  background:#e07b70;

  color:#fff;

  font-size:9px;
  font-style:normal;
}

.v940-parent-settings>h3{
  margin-bottom:4px;
}

.v940-parent-settings>p{
  margin-top:0;

  color:#8d9791;

  font-size:11px;
  line-height:1.5;
}

.v940-setting-section{
  margin-top:13px;
  padding:13px;

  border-radius:18px;

  background:#f7faf8;
}

.v940-setting-section>strong{
  display:block;

  margin-bottom:7px;

  color:#65746c;

  font-size:10px;
}

.v940-setting-row,
.v940-select-row{
  position:relative;

  min-height:54px;

  display:flex;
  align-items:center;

  gap:10px;

  border-bottom:
    1px solid #e9eeeb;
}

.v940-setting-row:last-child,
.v940-select-row:last-child{
  border-bottom:0;
}

.v940-setting-row>span,
.v940-select-row>span{
  flex:1;
}

.v940-setting-row b,
.v940-setting-row small,
.v940-select-row b,
.v940-select-row small{
  display:block;
}

.v940-setting-row b,
.v940-select-row b{
  font-size:12px;

  color:#415249;
}

.v940-setting-row small,
.v940-select-row small{
  margin-top:2px;

  font-size:9px;

  color:#969f9a;
}

.v940-setting-row input{
  position:absolute;

  opacity:0;
  pointer-events:none;
}

.v940-switch{
  width:42px;
  height:24px;

  flex:none;

  position:relative;

  border-radius:99px;

  background:#d9dfdb;

  transition:.2s;
}

.v940-switch:after{
  content:"";

  position:absolute;

  top:3px;
  left:3px;

  width:18px;
  height:18px;

  border-radius:50%;

  background:#fff;

  box-shadow:
    0 2px 5px
    rgba(0,0,0,.1);

  transition:.2s;
}

.v940-setting-row
input:checked+
.v940-switch{
  background:#74b792;
}

.v940-setting-row
input:checked+
.v940-switch:after{
  transform:
    translateX(18px);
}

.v940-select-row select{
  height:35px;

  padding:0 9px;

  border:
    1px solid #dfe6e2;

  border-radius:11px;

  background:#fff;

  color:#526158;
}

.v940-parent-save{
  width:100%;
  height:48px;

  margin-top:13px;

  border:0;
  border-radius:16px;

  background:#70b38f;

  color:#fff;

  font-weight:900;
}

.v940-request-card{
  padding:11px;
  margin-top:8px;

  border-radius:15px;

  background:#fff;
}

.v940-request-main{
  display:flex;
  align-items:center;

  gap:9px;
}

.v940-request-main>span{
  font-size:24px;
}

.v940-request-main b,
.v940-request-main small{
  display:block;
}

.v940-request-main small{
  margin-top:2px;

  color:#969f9a;

  font-size:9px;
}

.v940-request-actions{
  display:grid;

  grid-template-columns:
    1fr 1fr;

  gap:7px;

  margin-top:9px;
}

.v940-request-actions button{
  height:35px;

  border:0;
  border-radius:11px;

  background:#edf0ee;

  color:#67736c;

  font-size:10px;
  font-weight:800;
}

.v940-request-actions button.ok{
  background:#e6f4ea;

  color:#56836a;
}


/* ===============================
   动效
================================ */

@keyframes v940PetBreath{
  0%,100%{
    transform:
      translateY(0)
      scale(1);
  }

  50%{
    transform:
      translateY(-4px)
      scale(1.015);
  }
}

@keyframes v940Float{
  0%,100%{
    transform:
      translateY(0)
      rotate(-2deg);
  }

  50%{
    transform:
      translateY(-5px)
      rotate(2deg);
  }
}

@keyframes v940Welcome{
  0%{
    opacity:0;

    transform:
      translateY(28px)
      scale(.78);
  }

  70%{
    opacity:1;

    transform:
      translateY(-4px)
      scale(1.04);
  }

  100%{
    transform:
      translateY(0)
      scale(1);
  }
}

@keyframes v940Confetti{
  0%{
    opacity:0;

    transform:
      translateY(0)
      rotate(0);
  }

  20%{
    opacity:1;
  }

  100%{
    opacity:0;

    transform:
      translateY(100px)
      rotate(220deg);
  }
}

