.signInGreen[data-v-4df101c1] {
  --page-bg: #f4fbf7;
  --card-bg: rgba(255, 255, 255, 0.9);
  --green: #10b981;
  --green-deep: #00876a;
  --green-dark: #064c3f;
  --green-soft: #e7f8f0;
  --red: #ef4444;
  --text-main: #123b33;
  --text-sub: #66857a;
  --border: #dcefe7;
  width: 100%;
  min-height: 100vh;
  overflow-x: hidden;
  background: radial-gradient(circle at 20% 0%, rgba(16, 185, 129, 0.13) 0, rgba(16, 185, 129, 0) 30%), -webkit-gradient(linear, left top, left bottom, from(#edf9f3), color-stop(46%, #f8fcfa), to(#f4faf7));
  background: radial-gradient(circle at 20% 0%, rgba(16, 185, 129, 0.13) 0, rgba(16, 185, 129, 0) 30%), linear-gradient(180deg, #edf9f3 0%, #f8fcfa 46%, #f4faf7 100%);
  color: var(--text-main);
}
.pageBack[data-v-4df101c1] {
  position: fixed;
  left: 16px;
  top: 12px;
  z-index: 99;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  color: #111827 !important;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  font-size: 21px;
  background: rgba(255, 255, 255, 0.04);
}
.pageBack[data-v-4df101c1] .van-icon,
.pageBack[data-v-4df101c1] .van-icon-arrow-left,
.pageBack[data-v-4df101c1] .van-icon-arrow-left:before {
  color: #111827 !important;
}
.pageBack[data-v-4df101c1]:active {
  -webkit-transform: translateY(1px);
          transform: translateY(1px);
}
.content[data-v-4df101c1] {
  width: calc(100% - 32px);
  max-width: 390px;
  margin: 0 auto;
  padding: 12px 0 0;
}
.topWhole[data-v-4df101c1] {
  position: relative;
  width: 100%;
  height: 288px;
  overflow: visible;
}
.topBg[data-v-4df101c1] {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 232px;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 0;
  opacity: 1;
  pointer-events: none;
  z-index: 1;
}
.topTitleBox[data-v-4df101c1] {
  position: relative;
  z-index: 4;
  padding: 32px 22px 0;
}
.titleWave[data-v-4df101c1] {
  position: absolute;
  left: 0;
  top: 17px;
  width: 265px;
  height: 76px;
  -o-object-fit: fill;
     object-fit: fill;
  opacity: 0.48;
  pointer-events: none;
  z-index: 1;
}
.heroTitle[data-v-4df101c1] {
  position: relative;
  z-index: 2;
  font-size: 32px;
  line-height: 1.05;
  font-weight: 900;
  color: #0b3e33;
  letter-spacing: 1px;
}
.heroSub[data-v-4df101c1] {
  position: relative;
  z-index: 2;
  margin-top: 8px;
  font-size: 13px;
  color: #416c60;
  font-weight: 700;
}
.heroCalendarIcon[data-v-4df101c1] {
  position: absolute;
  z-index: 8;
  right: 19px;
  top: 36px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.74);
  border: 1px solid rgba(16, 185, 129, 0.16);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-shadow: 0 9px 20px rgba(0, 135, 106, 0.13);
          box-shadow: 0 9px 20px rgba(0, 135, 106, 0.13);
}
.heroCalendarIcon img[data-v-4df101c1] {
  width: 38px;
  height: 38px;
  -o-object-fit: contain;
     object-fit: contain;
}
.mainSignCard[data-v-4df101c1] {
  position: relative;
  z-index: 6;
  width: calc(100% - 30px);
  height: 120px;
  margin: 16px auto 0;
  border-radius: 15px;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(255, 255, 255, 0.82);
  -webkit-box-shadow: 0 14px 28px rgba(0, 135, 106, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.72);
          box-shadow: 0 14px 28px rgba(0, 135, 106, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.72);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: 0 18px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  overflow: hidden;
}
.mainSignCard[data-v-4df101c1]::before {
  content: "";
  position: absolute;
  left: -35px;
  bottom: -24px;
  width: 235px;
  height: 90px;
  background: rgba(16, 185, 129, 0.05);
  border-radius: 50%;
  pointer-events: none;
}
.mainSignLeft[data-v-4df101c1] {
  position: relative;
  z-index: 3;
}
.smallLabel[data-v-4df101c1] {
  font-size: 14px;
  color: #16473b;
  font-weight: 900;
}
.daysLineWrap[data-v-4df101c1] {
  position: relative;
  width: 130px;
  height: 54px;
  margin-top: 2px;
}
.signLaurel[data-v-4df101c1] {
  position: absolute;
  left: -8px;
  top: 1px;
  width: 113px;
  height: 52px;
  -o-object-fit: fill;
     object-fit: fill;
  opacity: 0.96;
  pointer-events: none;
  z-index: 1;
}
.daysLine[data-v-4df101c1] {
  position: relative;
  z-index: 2;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  padding-left: 31px;
}
.daysNum[data-v-4df101c1] {
  font-size: 48px;
  line-height: 1;
  color: var(--red);
  font-weight: 900;
  letter-spacing: -1px;
}
.daysUnit[data-v-4df101c1] {
  margin-left: 6px;
  margin-bottom: 7px;
  font-size: 14px;
  color: #0e8063;
  font-weight: 900;
}
.keepText[data-v-4df101c1] {
  margin-top: 3px;
  font-size: 12px;
  color: #638479;
  font-weight: 700;
}
.mainSignRight[data-v-4df101c1] {
  position: relative;
  z-index: 3;
  width: 104px;
  height: 104px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.badgeSpark[data-v-4df101c1] {
  position: absolute;
  left: -26px;
  top: -26px;
  width: 158px;
  height: 158px;
  -o-object-fit: cover;
     object-fit: cover;
  opacity: 0.55;
  pointer-events: none;
  z-index: 1;
}
.badgeMain[data-v-4df101c1] {
  position: relative;
  z-index: 2;
  width: 95px;
  height: 95px;
  -o-object-fit: contain;
     object-fit: contain;
}
.checkBtn[data-v-4df101c1] {
  position: relative;
  z-index: 8;
  width: calc(100% - 60px);
  height: 40px;
  margin: 11px auto 0;
  border-radius: 999px;
  background: -webkit-gradient(linear, left top, left bottom, from(#32dda2), color-stop(48%, #12bd83), to(#00876a));
  background: linear-gradient(180deg, #32dda2 0%, #12bd83 48%, #00876a 100%);
  -webkit-box-shadow: 0 12px 24px rgba(16, 185, 129, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.38);
          box-shadow: 0 12px 24px rgba(16, 185, 129, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.38);
  color: #ffffff;
  font-size: 16px;
  font-weight: 900;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.checkBtn.disabled[data-v-4df101c1] {
  background: -webkit-gradient(linear, left top, left bottom, from(#b8d9cc), to(#93c6b6));
  background: linear-gradient(180deg, #b8d9cc 0%, #93c6b6 100%);
  color: rgba(255, 255, 255, 0.95);
  -webkit-box-shadow: none;
          box-shadow: none;
}
.checkBtn[data-v-4df101c1]:active {
  -webkit-transform: translateY(1px);
          transform: translateY(1px);
}
.statsGrid[data-v-4df101c1] {
  width: 100%;
  margin-top: 2px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 10px;
}
.statCard[data-v-4df101c1] {
  position: relative;
  height: 158px;
  border-radius: 15px;
  padding: 14px 12px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid var(--border);
  -webkit-box-shadow: 0 10px 22px rgba(0, 135, 106, 0.08);
          box-shadow: 0 10px 22px rgba(0, 135, 106, 0.08);
}
.daysCard[data-v-4df101c1] {
  -webkit-box-flex: 1.12;
      -ms-flex: 1.12;
          flex: 1.12;
  min-width: 0;
}
.rateCard[data-v-4df101c1] {
  -webkit-box-flex: 0.88;
      -ms-flex: 0.88;
          flex: 0.88;
  min-width: 0;
}
.statHead[data-v-4df101c1] {
  height: 22px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.statHead span[data-v-4df101c1] {
  font-size: 15px;
  font-weight: 900;
  color: #1f463b;
}
.statHead img[data-v-4df101c1] {
  width: 25px;
  height: 25px;
  -o-object-fit: contain;
     object-fit: contain;
}
.daysBody[data-v-4df101c1] {
  margin-top: 16px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 11px;
}
.ringCircle[data-v-4df101c1] {
  width: 74px;
  height: 74px;
  border-radius: 50%;
  -webkit-box-shadow: inset 0 0 0 1px #e8f4ef;
          box-shadow: inset 0 0 0 1px #e8f4ef;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.ringCircle span[data-v-4df101c1] {
  font-size: 25px;
  font-weight: 900;
  color: var(--red);
  line-height: 1;
}
.ringCircle em[data-v-4df101c1] {
  margin-top: 3px;
  font-style: normal;
  font-size: 12px;
  color: #6b8a80;
  font-weight: 800;
}
.ringInfo[data-v-4df101c1] {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
}
.ringInfo div[data-v-4df101c1] {
  min-height: 25px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 11px;
  color: #648278;
  font-weight: 800;
  white-space: nowrap;
}
.ringInfo i[data-v-4df101c1] {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--green);
  margin-right: 5px;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.ringInfo span[data-v-4df101c1] {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ringInfo b[data-v-4df101c1] {
  color: #1d6d58;
  font-weight: 900;
  margin-left: 6px;
  font-size: 12px;
}
.rateLine[data-v-4df101c1] {
  margin-top: 17px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.rateLine > span[data-v-4df101c1] {
  font-size: 34px;
  line-height: 1;
  color: var(--green);
  font-weight: 900;
  letter-spacing: -1px;
}
.rateSub[data-v-4df101c1] {
  margin-top: 10px;
  color: #6b8a80;
  font-size: 12px;
  font-weight: 800;
}
.progressWrap[data-v-4df101c1] {
  margin-top: 12px;
  width: 100%;
  height: 8px;
  border-radius: 999px;
  background: #e2f3eb;
  overflow: hidden;
}
.progressInner[data-v-4df101c1] {
  height: 100%;
  border-radius: 999px;
  background: -webkit-gradient(linear, left top, right top, from(#58e3ad), to(#10b981));
  background: linear-gradient(90deg, #58e3ad 0%, #10b981 100%);
  -webkit-transition: width 0.25s ease;
  transition: width 0.25s ease;
}
.targetText[data-v-4df101c1] {
  margin-top: 11px;
  font-size: 10px;
  color: #769188;
  font-weight: 800;
  white-space: nowrap;
}
.targetText b[data-v-4df101c1] {
  color: var(--green-deep);
}
.calendarCard[data-v-4df101c1] {
  position: relative;
  width: 100%;
  height: 265px;
  margin-top: 10px;
  border-radius: 15px;
  padding: 14px 13px 16px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid var(--border);
  -webkit-box-shadow: 0 10px 22px rgba(0, 135, 106, 0.08);
          box-shadow: 0 10px 22px rgba(0, 135, 106, 0.08);
}
.calendarTitleRow[data-v-4df101c1] {
  position: relative;
  z-index: 2;
  height: 24px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.calendarTitle[data-v-4df101c1] {
  font-size: 16px;
  color: #1f463b;
  font-weight: 900;
}
.monthControl[data-v-4df101c1] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 8px;
}
.monthBtn[data-v-4df101c1] {
  width: 23px;
  height: 23px;
  border-radius: 50%;
  background: #f0faf5;
  color: #0d8a67;
  border: 1px solid #dcefe7;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  font-size: 18px;
  line-height: 1;
  font-weight: 900;
}
.monthText[data-v-4df101c1] {
  width: 88px;
  text-align: center;
  color: #435e55;
  font-size: 13px;
  font-weight: 900;
}
.weekRow[data-v-4df101c1] {
  position: relative;
  z-index: 2;
  margin-top: 13px;
  display: grid;
  grid-template-columns: repeat(7, 1fr);
}
.weekRow div[data-v-4df101c1] {
  text-align: center;
  color: #768b84;
  font-size: 12px;
  font-weight: 900;
}
.dateGrid[data-v-4df101c1] {
  position: relative;
  z-index: 2;
  margin-top: 10px;
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  row-gap: 7px;
}
.dateItem[data-v-4df101c1] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.dateItem span[data-v-4df101c1] {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  color: #6f8980;
  font-size: 13px;
  font-weight: 900;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.dateItem.out span[data-v-4df101c1] {
  color: #c2d2cb;
}
.dateItem.signed span[data-v-4df101c1] {
  color: #ffffff;
  background: -webkit-gradient(linear, left top, left bottom, from(#66ddb0), to(#10b981));
  background: linear-gradient(180deg, #66ddb0 0%, #10b981 100%);
  -webkit-box-shadow: 0 8px 15px rgba(16, 185, 129, 0.22);
          box-shadow: 0 8px 15px rgba(16, 185, 129, 0.22);
}
.dateItem.today span[data-v-4df101c1] {
  position: relative;
  width: 34px;
  height: 34px;
  border: 2px solid #10b981;
  background: #ffffff;
  color: #0b8b68;
  -webkit-box-shadow: 0 8px 18px rgba(16, 185, 129, 0.18);
          box-shadow: 0 8px 18px rgba(16, 185, 129, 0.18);
}
.dateItem.today.signed span[data-v-4df101c1] {
  background: -webkit-gradient(linear, left top, left bottom, from(#59e0aa), to(#10b981));
  background: linear-gradient(180deg, #59e0aa 0%, #10b981 100%);
  color: #ffffff;
  border-color: #ffffff;
}
.dateItem.today span[data-v-4df101c1]::after {
  content: "";
  position: absolute;
  bottom: -5px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #10b981;
}
.recordPanel[data-v-4df101c1] {
  width: 100%;
  margin-top: 12px;
}
.recordTitleRow[data-v-4df101c1] {
  padding: 0 2px 9px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.recordTitle[data-v-4df101c1] {
  font-size: 16px;
  color: #1f463b;
  font-weight: 900;
}
.recordSub[data-v-4df101c1] {
  font-size: 13px;
  color: #7c928a;
  font-weight: 800;
}
.logCard[data-v-4df101c1] {
  width: 100%;
  height: 68px;
  margin-bottom: 10px;
  padding: 12px;
  border-radius: 14px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  background: rgba(255, 255, 255, 0.93);
  border: 1px solid var(--border);
  -webkit-box-shadow: 0 8px 20px rgba(0, 135, 106, 0.07);
          box-shadow: 0 8px 20px rgba(0, 135, 106, 0.07);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.logLeft[data-v-4df101c1] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 10px;
  min-width: 0;
}
.logIcon[data-v-4df101c1] {
  width: 46px;
  height: 46px;
  border-radius: 15px;
  background: -webkit-gradient(linear, left top, left bottom, from(#f3fbf7), to(#e4f8ee));
  background: linear-gradient(180deg, #f3fbf7 0%, #e4f8ee 100%);
  border: 1px solid #d9f1e6;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.logIcon img[data-v-4df101c1] {
  width: 50px;
  height: 50px;
  -o-object-fit: contain;
     object-fit: contain;
}
.logText[data-v-4df101c1] {
  min-width: 0;
}
.logName[data-v-4df101c1] {
  font-size: 15px;
  color: #1e463a;
  font-weight: 900;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 7px;
}
.logName span[data-v-4df101c1] {
  padding: 2px 7px;
  border-radius: 999px;
  background: #effaf5;
  border: 1px solid #d8f2e6;
  color: #0d8a67;
  font-size: 12px;
  font-weight: 900;
}
.logTime[data-v-4df101c1] {
  margin-top: 4px;
  color: #7c928a;
  font-size: 12px;
  font-weight: 700;
}
.logAmount[data-v-4df101c1] {
  color: var(--green);
  font-size: 17px;
  font-weight: 900;
  white-space: nowrap;
}
.logAmount span[data-v-4df101c1] {
  margin-left: 3px;
  font-size: 10px;
  color: #0d8a67;
  font-weight: 900;
}
.recordPanel[data-v-4df101c1] .van-list__finished-text {
  background: transparent !important;
  color: #8ca098 !important;
  font-size: 12px;
}
.safeSpace[data-v-4df101c1] {
  height: 48px;
}
@media (min-width: 390px) {
.pageBack[data-v-4df101c1] {
    left: calc(50% - 186px);
}
}
@media (max-width: 370px) {
.content[data-v-4df101c1] {
    width: calc(100% - 24px);
}
.topTitleBox[data-v-4df101c1] {
    padding-left: 18px;
    padding-right: 18px;
}
.mainSignCard[data-v-4df101c1] {
    width: calc(100% - 24px);
    padding: 0 14px;
}
.checkBtn[data-v-4df101c1] {
    width: calc(100% - 48px);
}
.statCard[data-v-4df101c1] {
    padding-left: 10px;
    padding-right: 10px;
}
.ringCircle[data-v-4df101c1] {
    width: 66px;
    height: 66px;
}
.ringInfo div[data-v-4df101c1] {
    font-size: 10px;
}
.rateLine > span[data-v-4df101c1] {
    font-size: 30px;
}
}


/*# sourceMappingURL=chunk-f98a3816.bc28f6e0.css.map*/