* {
      box-sizing: border-box;
      margin: 0;
      padding: 0
    }

    body {
      font-family: Arial, "Microsoft YaHei", sans-serif;
      background: #f3f4f8;
      color: #0f172a;
    }

    .container {
      max-width: 430px;
      margin: 0 auto;
      padding: 14px;
    }

    /* 轮播图 */
    .banner {
      width: 100%;
      height: 150px;
      border-radius: 18px;
      overflow: hidden;
      background: #fff;
      box-shadow: 0 10px 25px rgba(0, 0, 0, .08);
      margin-bottom: 14px;
      position: relative;
    }

    .banner img {
      width: 100%;
      height: 100%;
      /*object-fit:cover;*/
      display: none;
    }

    .banner img.active {
      display: block;
    }

    .dots {
      position: absolute;
      bottom: 10px;
      left: 0;
      right: 0;
      display: flex;
      justify-content: center;
      gap: 6px;
    }

    .dots span {
      width: 7px;
      height: 7px;
      border-radius: 50%;
      background: rgba(255, 255, 255, .5);
    }

    .dots span.active {
      width: 18px;
      border-radius: 10px;
      background: #fff;
    }

    /* 签到卡片 */
    .box {
      background: #fff;
      border-radius: 18px;
      padding: 10px;
      text-align: center;
      box-shadow: 0 10px 25px rgba(0, 0, 0, .08);
    }

    .title {
      font-size: 20px;
      font-weight: 700;
    }

    .sub {
      font-size: 13px;
      color: #64748b;
      margin-top: 6px;
    }

    .money {
      font-size: 24px;
      font-weight: 700;
      color: #e11d48;
      margin: 14px 0 8px;
    }

    .total {
      font-size: 15px;
      color: #16a34a;
      font-weight: 700;
      margin-bottom: 12px;
    }

    .btn {
      background: #22c55e;
      color: #fff;
      border: none;
      padding: 12px 32px;
      border-radius: 25px;
      font-size: 15px;
      font-weight: 700;
      cursor: pointer;
    }

    .btn:disabled {
      background: #cbd5e1;
    }

    .msg {
      margin-top: 10px;
      color: #e11d48;
      font-weight: 700;
    }

    /* 日历 */
    .calendar {
      margin-top: 15px;
      background: #fff;
      border-radius: 18px;
      padding: 15px;
      box-shadow: 0 10px 25px rgba(0, 0, 0, .08);
    }

    .cal-title {
      text-align: center;
      font-size: 16px;
      font-weight: 700;
      margin-bottom: 12px;
    }

    .week-header {
      display: grid;
      grid-template-columns: repeat(7, 1fr);
      margin-bottom: 8px;
    }

    .week-header div {
      text-align: center;
      font-size: 13px;
      font-weight: 700;
      color: #64748b;
    }

    .grid {
      display: grid;
      grid-template-columns: repeat(6, 1fr);
      gap: 6px;
    }

    .empty-day {
      height: 58px;
    }

    .day {
      background: #f3f4f8;
      border-radius: 10px;
      min-height: 58px;
      padding: 6px 2px;
      text-align: center;
      transition: .2s;
    }

    .day .num {
      font-size: 14px;
      font-weight: 700;
    }

    .day .amt {
      font-size: 11px;
      margin-top: 5px;
      color: #64748b;
    }

    .day.today {
      border: 2px solid #22c55e;
    }

    .day.signed {
      background: #22c55e;
      color: #fff;
    }

    .day.signed .amt {
      color: #fff;
    }