.travel-card-actions{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:18px}
.travel-card-actions .map-action{flex:0 0 58px;width:58px!important;min-width:58px;height:58px;min-height:58px;margin:0!important;padding:0!important;border:3px solid #251c13;border-radius:50%;background:#b9dfec;align-items:center;justify-content:center;box-shadow:0 5px 0 #251c13;color:#251c13}
.travel-card-actions .map-action svg{width:28px;height:28px;display:block;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.travel-checkin-button{flex:1;max-width:210px;height:58px;padding:0 22px;border:3px solid #251c13;border-radius:999px;background:#ff735f;box-shadow:0 5px 0 #251c13;color:#fff8e8;font:900 18px/1 inherit;cursor:pointer}
.travel-checkin-button.is-done{background:#cfe6b8;color:#251c13}
.travel-card-has-checkin{outline:0}
.travel-card-has-checkin.is-checked-in:after{content:'已打卡';position:absolute;right:18px;top:18px;padding:6px 11px;border:2px solid #251c13;border-radius:999px;background:#cfe6b8;color:#251c13;font-size:12px;font-weight:900;transform:rotate(3deg)}
.travel-daily-slide{position:relative}
.checkin-layer{position:fixed;z-index:2147483600;inset:0;margin:auto;width:min(100%,440px);background:rgba(37,28,19,.58);display:flex;align-items:flex-end;justify-content:center}
.checkin-sheet{width:100%;box-sizing:border-box;padding:22px 20px calc(22px + env(safe-area-inset-bottom));border:3px solid #251c13;border-bottom:0;border-radius:28px 28px 0 0;background:#fff7df;box-shadow:0 -8px 0 rgba(37,28,19,.18);color:#251c13;animation:checkin-rise .28s cubic-bezier(.2,.8,.2,1)}
.checkin-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.checkin-head strong{font-size:24px;font-weight:950}.checkin-close{width:42px;height:42px;padding:0;border:2px solid #251c13;border-radius:50%;background:#f7cf4b;color:#251c13;font-size:26px;line-height:36px;cursor:pointer}
.checkin-photo-label{min-height:116px;padding:12px;border:3px dashed #8b6845;border-radius:20px;background:#ffe59a;display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer;text-align:center;font-weight:900}.checkin-photo-label input{position:absolute;width:1px;height:1px;opacity:0}.checkin-photo-label img{display:block;width:100%;height:190px;object-fit:contain}.checkin-photo-empty{display:flex;flex-direction:column;gap:7px;align-items:center}.checkin-photo-empty b{font-size:30px}.checkin-photo-empty span{font-size:15px}
.checkin-note{width:100%;height:112px;margin-top:14px;padding:14px;box-sizing:border-box;resize:none;border:3px solid #251c13;border-radius:18px;background:#fff;color:#251c13;font:800 16px/1.55 inherit;outline:none}.checkin-note:focus{box-shadow:0 0 0 4px rgba(247,207,75,.7)}
.checkin-save{width:100%;height:58px;margin-top:14px;border:3px solid #251c13;border-radius:999px;background:#251c13;box-shadow:0 6px 0 #ff735f;color:#fff8e8;font:950 18px/1 inherit;cursor:pointer}.checkin-save:disabled{opacity:.5}
@keyframes checkin-rise{from{transform:translateY(35px);opacity:0}to{transform:translateY(0);opacity:1}}
@media (max-width:360px){.travel-card-actions{gap:9px}.travel-card-actions .map-action{flex-basis:52px;width:52px!important;min-width:52px;height:52px;min-height:52px}.travel-checkin-button{height:52px}.checkin-sheet{padding-left:14px;padding-right:14px}}
.youth-checkin-card{cursor:pointer}
.youth-checkin-card:focus-visible{outline:4px solid #ef6b55;outline-offset:-4px}
.youth-checkin-card .task-visual{position:relative}
.youth-checkin-card .task-card-sticker.is-user-photo{object-fit:cover;object-position:center;filter:none}
.youth-checkin-badge{position:absolute;z-index:3;right:12px;bottom:12px;padding:7px 10px;border:2px solid #251c13;border-radius:999px;background:#cfe6b8;color:#251c13;font-size:12px;font-weight:900;line-height:1.2;box-shadow:0 4px 0 #251c13;pointer-events:none}
.is-youth-checked-in .task-visual{border-color:#251c13;box-shadow:inset 0 0 0 3px rgba(207,230,184,.8)}
.youth-checkin-sheet .checkin-head strong{max-width:calc(100% - 54px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#checkinPhotoPreview:not([src]),#checkinPhotoPreview[src=""]{display:none}
.task-checkin-note{margin:14px 0 0;padding:13px 15px;border:2px solid rgba(37,28,19,.72);border-radius:16px;background:rgba(255,250,235,.72);color:#251c13;font-size:15px;font-weight:700;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}
.task-checkin-note[hidden]{display:none}
.travel-card-has-checkin.is-checked-in:after{display:none!important}
.travel-vehicle-removed{display:none!important}
.travel-daily-slide .result-stack{min-height:0!important}
.travel-daily-slide .result-card,.travel-daily-slide .travel-card,.travel-daily-slide .destination-card{min-height:calc(100dvh - 112px);box-sizing:border-box}
.travel-daily-slide .result-sticker{display:none!important}
.travel-place-visual{position:relative;width:100%;margin:0 0 24px;overflow:hidden;border:3px solid #251c13;border-radius:28px;background:#ead7a6;box-shadow:0 9px 0 #251c13}
.travel-place-photo{display:block;width:100%;height:clamp(210px,54vw,290px);object-fit:cover;object-position:center}
.travel-place-photo.is-loading{opacity:0}.travel-place-photo{transition:opacity .22s ease}
.travel-place-photo-caption{position:absolute;left:14px;bottom:12px;max-width:calc(100% - 28px);padding:7px 12px;border:2px solid #251c13;border-radius:999px;background:rgba(255,248,225,.92);color:#251c13;font-size:14px;font-weight:900;line-height:1.2;box-shadow:0 4px 0 rgba(37,28,19,.9)}
@media(max-width:520px){.travel-place-visual{margin-bottom:20px;border-radius:22px}.travel-place-photo{height:52vw;min-height:200px;max-height:250px}}
.travel-results-scroll{height:100dvh!important;overflow-x:hidden!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch}
.travel-results-page{height:auto!important;min-height:100%!important;overflow:visible!important;padding-bottom:calc(28px + env(safe-area-inset-bottom))!important}
.travel-results-page .travel-daily-swiper{height:auto!important;min-height:0!important;padding-top:calc(min(100vw,440px)*28/750)!important;overflow-x:auto!important;overflow-y:visible!important;align-items:flex-start!important}
.travel-results-page .travel-daily-slide,.travel-results-page .result-stack{height:auto!important;min-height:0!important;align-self:flex-start!important}
.travel-results-page .result-card{height:auto!important;min-height:0!important;margin-top:0!important}

.travel-checkin-button.is-done{display:flex;align-items:center;justify-content:center;gap:7px;padding-inline:12px;font-size:16px;white-space:nowrap}
.checkin-button-time{font-size:11px;font-weight:850;opacity:.72}
.checkin-time-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 2px 0;color:#76533a;font-size:12px;font-weight:850}
.checkin-time-row time{text-align:right}

/* Exercise check-ins are tracked by calendar day instead of a permanent card state. */
.strength-calendar{width:calc(100% - 32px);max-width:408px;margin:22px auto 92px;padding:16px 16px 14px;box-sizing:border-box;border:3px solid #251c13;border-radius:24px;background:#fff7df;box-shadow:0 7px 0 #251c13;color:#251c13}
.strength-calendar-head{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:10px}
.strength-calendar-head button{width:42px;height:42px;padding:0;border:2px solid #251c13;border-radius:50%;background:#bfe4ee;color:#251c13;font:900 30px/1 Georgia,serif;box-shadow:0 3px 0 #251c13;cursor:pointer}
.strength-calendar-head button:active{transform:translateY(2px);box-shadow:0 1px 0 #251c13}
.strength-calendar-head div{text-align:center}
.strength-calendar-head strong{display:block;font-size:20px;line-height:1.2}
.strength-calendar-head span{display:block;margin-top:4px;color:#76533a;font-size:12px;font-weight:850}
.strength-weekdays,.strength-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.strength-weekdays{margin:16px 0 7px;color:#76533a;font-size:11px;font-weight:900;text-align:center}
.strength-cal-day{position:relative;display:grid;place-items:center;aspect-ratio:1;border:2px solid transparent;border-radius:50%;font-size:13px;font-weight:850}
.strength-cal-day i{font-style:normal}
.strength-cal-day.is-empty{visibility:hidden}
.strength-cal-day.is-today{border-color:#251c13;background:#ffe69a}
.strength-cal-day.is-done{border-color:#d95b45;background:#fff;color:#d95b45;box-shadow:inset 0 0 0 2px #ffd0c8}
.strength-cal-day.is-done b{position:absolute;right:-2px;bottom:-3px;display:grid;place-items:center;width:17px;height:17px;border:2px solid #fff;border-radius:50%;background:#d95b45;color:#fff;font-size:10px;line-height:1}
.strength-calendar-note{margin-top:13px;padding-top:11px;border-top:2px dashed rgba(37,28,19,.36);color:#76533a;font-size:12px;font-weight:850;text-align:left}
.strength-record-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}.strength-record-meta span{font-size:11px}.strength-record-meta strong{flex:none;padding:3px 8px;border:1.5px solid #251c13;border-radius:999px;background:#ffe69a;color:#251c13;font-size:11px}
.strength-calendar-note p{max-height:96px;margin:8px 0 0;padding:9px 10px;overflow-y:auto;border-radius:10px;background:#fff;color:#251c13;font-size:13px;font-weight:800;line-height:1.55;overflow-wrap:anywhere;white-space:normal}
.strength-checkin.is-today-done{background:#cfe6b8!important;color:#251c13!important}
.strength-library-button{position:absolute;z-index:4;top:50%;right:14px;display:grid;place-items:center;width:42px;height:42px;padding:0;border:2px solid #251c13;border-radius:50%;background:#bfe4ee;color:#251c13;box-shadow:0 3px 0 #251c13;transform:translateY(-55%);cursor:pointer}
.strength-library-button svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.strength-library-button:active{transform:translateY(-48%);box-shadow:0 1px 0 #251c13}
.strength-calendar .strength-checkin{position:static!important;display:block;width:100%!important;max-width:none!important;min-height:48px!important;margin:14px 0 0!important;transform:none!important;border-radius:16px!important}
.strength-calendar .strength-checkin:disabled{opacity:1;cursor:default}
.strength-library-scene .strength-card{background-image:none!important}
.strength-library-scene .strength-card::after{display:none!important}
.strength-reference-heading{text-align:center;color:#251c13}
.strength-reference-heading strong{display:block;font-size:22px;line-height:1.2}
.strength-reference-heading span{display:block;margin-top:5px;color:#76533a;font-size:12px;font-weight:800}
.strength-reference-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;width:100%;margin-top:18px}
.strength-reference-item{display:flex;min-width:0;height:92px;padding:9px 5px;box-sizing:border-box;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:2px solid #251c13;border-radius:16px;background:#fff7df;color:#251c13;box-shadow:0 4px 0 #251c13;cursor:pointer}
.strength-reference-item:nth-child(5n+2),.strength-reference-item:nth-child(5n+4){background:#bfe4ee}
.strength-reference-item:nth-child(5n+3){background:#ffe69a}
.strength-reference-item span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#ef6b55;color:#fff;font-size:10px;font-weight:950}
.strength-reference-item strong{display:-webkit-box;overflow:hidden;font-size:12px;font-weight:900;line-height:1.25;text-align:center;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.strength-reference-item:active{transform:translateY(2px);box-shadow:0 2px 0 #251c13}
.strength-library-scene{width:calc(100% + 30px)!important;margin-left:-15px!important}
.strength-reference-carousel{display:flex;width:100%;min-height:0;flex:1;align-items:center;gap:8px!important;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-y:none;padding:0 12% 8px;box-sizing:border-box}
.strength-reference-carousel::-webkit-scrollbar{display:none}
.strength-reference-carousel.latest-horizontal>.strength-reference-slide{display:flex;height:100%;min-height:0;min-width:0!important;width:calc(100% - 20px)!important;max-width:calc(100% - 20px)!important;flex:0 0 calc(100% - 20px)!important;align-items:center;scroll-snap-align:center}
.strength-reference-carousel .strength-reference-slide:not(.is-active) .strength-card{opacity:.68}
.strength-reference-card{width:100%!important;min-width:0!important;max-width:100%!important;height:100%;max-height:720px;min-height:0;margin:0;box-sizing:border-box;overflow:hidden;cursor:pointer}
[aria-label$="锻炼打卡月历"] button:disabled{display:none!important}
.strength-weight-trend{margin-top:12px;padding:10px 12px 8px;border:2px solid #251c13;border-radius:16px;background:#bfe4ee;color:#251c13}
.strength-weight-head,.strength-weight-range{display:flex;align-items:center;justify-content:space-between;gap:10px}
.strength-weight-head strong{font-size:15px}.strength-weight-head span,.strength-weight-range{color:#76533a;font-size:10px;font-weight:850}
.strength-weight-trend svg{display:block;width:100%;height:82px;margin-top:3px;overflow:visible}
.strength-weight-trend .strength-weight-grid{fill:none;stroke:rgba(37,28,19,.18);stroke-width:1;stroke-dasharray:4 4}
.strength-weight-trend polyline{fill:none;stroke:#e45f4b;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.strength-weight-trend circle{fill:#fff7df;stroke:#e45f4b;stroke-width:3}
.strength-weight-trend.is-empty{padding-bottom:12px}.strength-weight-trend.is-empty p{margin:10px 0 0;color:#76533a;font-size:11px;font-weight:800;text-align:center}
.strength-entry-modal[hidden]{display:none!important}.strength-entry-modal{position:fixed;z-index:30;inset:0;display:flex;align-items:flex-end;justify-content:center;padding:20px;background:rgba(37,28,19,.55);box-sizing:border-box}
.strength-entry-sheet{width:min(100%,408px);padding:22px 20px calc(18px + env(safe-area-inset-bottom));border:3px solid #251c13;border-radius:26px 26px 18px 18px;background:#fff7df;box-shadow:0 8px 0 #251c13;box-sizing:border-box}
.strength-entry-heading span{display:block;color:#76533a;font-size:12px;font-weight:850}.strength-entry-heading strong{display:block;margin-top:3px;font-size:25px}
.strength-entry-sheet label{display:block;margin-top:16px;font-size:13px;font-weight:900}.strength-entry-sheet textarea,.strength-entry-sheet input{width:100%;margin-top:7px;border:2px solid #251c13;border-radius:14px;background:#fff;color:#251c13;font:800 16px/1.45 inherit;box-sizing:border-box;outline:none}.strength-entry-sheet textarea{min-height:86px;padding:11px 12px;resize:none}.strength-entry-sheet input{height:50px;padding:0 52px 0 12px}
.strength-entry-sheet textarea:focus,.strength-entry-sheet input:focus{box-shadow:0 0 0 3px #bfe4ee}
.strength-weight-input{position:relative}.strength-weight-input span{position:absolute;right:14px;top:22px;color:#76533a;font-size:14px;font-weight:900}
.strength-entry-error{min-height:18px;margin:7px 0 0;color:#d95b45;font-size:11px;font-weight:850}
.strength-entry-actions{display:grid;grid-template-columns:1fr 1.6fr;gap:10px;margin-top:8px}.strength-entry-actions button{min-height:48px;border:2px solid #251c13;border-radius:999px;background:#fff7df;color:#251c13;font-size:14px;font-weight:900;box-shadow:0 4px 0 #251c13}.strength-entry-actions button:last-child{background:#ff7262;color:#fff}
.strength-entry-sheet textarea{min-height:138px!important;max-height:220px!important}
.bored-scroll:has(.strength-calendar-scene){height:calc(100dvh - var(--nav-height))!important;min-height:0!important;overflow:hidden!important;overscroll-behavior:none!important}
.bored-page:has(.strength-calendar-scene){height:100%!important;min-height:0!important;overflow:hidden!important}
.strength-calendar-scene{height:100%!important;min-height:0!important;overflow:hidden!important;padding:clamp(8px,2dvh,18px) 0 calc(10px + var(--safe-bottom))!important;box-sizing:border-box!important}
.strength-calendar-scene .strength-calendar{max-height:100%!important;margin:0 auto!important;overflow:hidden!important}

/* Completion stamps are real overlay nodes on the outer card layer. */
.travel-card-has-checkin.is-checked-in,
.youth-checkin-card.is-checked-in,
.youth-checkin-card.is-youth-checked-in,
.strength-card.is-checked-in{background-image:none!important;position:relative!important}
.travel-card-has-checkin.is-checked-in::after,
.youth-checkin-card.is-checked-in::after,
.youth-checkin-card.is-youth-checked-in::after,
.strength-card.is-checked-in::after{display:none!important}
.travel-card-has-checkin.is-checked-in>img.checkin-stamp,
.youth-checkin-card.is-checked-in>img.checkin-stamp,
.youth-checkin-card.is-youth-checked-in>img.checkin-stamp,
.strength-card.is-checked-in>img.checkin-stamp{
  display:block!important;
  position:absolute!important;
  z-index:2147483000!important;
  top:auto!important;
  right:14px!important;
  bottom:14px!important;
  left:auto!important;
  width:104px!important;
  height:auto!important;
  opacity:1!important;
  pointer-events:none!important;
  transform:none!important;
  filter:drop-shadow(0 3px 0 rgba(37,28,19,.16))!important
}
.travel-card-has-checkin.is-checked-in>img.checkin-stamp{bottom:82px!important}
@media(max-width:360px){
  .travel-card-has-checkin.is-checked-in>img.checkin-stamp,
  .youth-checkin-card.is-checked-in>img.checkin-stamp,
  .youth-checkin-card.is-youth-checked-in>img.checkin-stamp,
  .strength-card.is-checked-in>img.checkin-stamp{right:10px!important;bottom:10px!important;width:88px!important}
  .travel-card-has-checkin.is-checked-in>img.checkin-stamp{bottom:72px!important}
}
.strength-detail-card{background-image:none!important}
.strength-detail-card::after{display:none!important}

/* A single, visible completion stamp across every check-in card. */
.travel-card-has-checkin.is-checked-in,
.strength-card.is-checked-in{position:relative}
.travel-card-has-checkin.is-checked-in:after,
.strength-card.is-checked-in:after,
.youth-checkin-badge{
  content:'已打卡';
  position:absolute;
  z-index:12;
  top:14px;
  right:14px;
  left:auto!important;
  bottom:auto;
  width:72px;
  height:72px;
  box-sizing:border-box;
  padding:0;
  border:4px double #c94837;
  border-radius:50%;
  background:rgba(255,247,223,.9);
  box-shadow:inset 0 0 0 3px rgba(201,72,55,.16),0 3px 0 rgba(37,28,19,.18);
  color:#c94837;
  display:flex!important;
  align-items:center;
  justify-content:center;
  font-size:15px;
  font-weight:950;
  line-height:1;
  letter-spacing:1px;
  white-space:nowrap;
  transform:rotate(-12deg);
  animation:none!important;
  pointer-events:none;
}
.travel-card-has-checkin.is-checked-in:after{display:flex!important}
.strength-card.is-checked-in:after{content:'已打卡'}
.youth-checkin-badge{left:auto}
@media(max-width:360px){
  .travel-card-has-checkin.is-checked-in:after,
  .strength-card.is-checked-in:after,
  .youth-checkin-badge{top:10px;right:10px;width:64px;height:64px;font-size:14px}
}

/* Real stamp nodes stay independent from the quick-shine pseudo element. */
.travel-card-has-checkin.is-checked-in:after,
.strength-card.is-checked-in:after{display:none!important}
.checkin-stamp{
  position:absolute!important;
  z-index:40!important;
  top:14px!important;
  right:14px!important;
  left:auto!important;
  bottom:auto!important;
  width:72px!important;
  height:72px!important;
  box-sizing:border-box!important;
  padding:0!important;
  border:4px double #c94837!important;
  border-radius:50%!important;
  background:rgba(255,247,223,.92)!important;
  box-shadow:inset 0 0 0 3px rgba(201,72,55,.16),0 3px 0 rgba(37,28,19,.18)!important;
  color:#c94837!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:15px!important;
  font-weight:950!important;
  line-height:1!important;
  letter-spacing:1px!important;
  white-space:nowrap!important;
  transform:rotate(-12deg)!important;
  animation:none!important;
  pointer-events:none!important;
}
.checkin-stamp[hidden]{display:none!important}
@media(max-width:360px){.checkin-stamp{top:10px!important;right:10px!important;width:64px!important;height:64px!important;font-size:14px!important}}

/* Image stamp placement. */
.youth-checkin-card{position:relative}
.checkin-stamp{
  top:auto!important;
  right:14px!important;
  bottom:14px!important;
  left:auto!important;
  width:104px!important;
  height:auto!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  object-fit:contain!important;
  display:block!important;
  transform:none!important;
  filter:drop-shadow(0 3px 0 rgba(37,28,19,.16));
}
.travel-card-has-checkin>.checkin-stamp{bottom:82px!important}
@media(max-width:360px){.checkin-stamp{right:10px!important;bottom:10px!important;width:88px!important;height:auto!important}.travel-card-has-checkin>.checkin-stamp{bottom:72px!important}}
