/* 由小程序组件和页面的 WXSS 转换：rpx → rem，页面样式加 .p-<页面> 前缀 */

/* ===== custom-tab-bar/index.wxss ===== */
.tabbar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  height: calc(1.12rem + env(safe-area-inset-bottom));
  padding-bottom: env(safe-area-inset-bottom);
  box-sizing: border-box;
  background: #ffffff;
  border-top: 0.02rem solid #ededed;
  display: flex;
  z-index: 50;
}
.tab {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #a6a6a6;
}
.tab-cn { font-size: 0.28rem; font-weight: 700; line-height: 1.2;
}
.tab-en {
  font-family: "SF Mono", Menlo, "Roboto Mono", monospace;
  font-size: 0.16rem;
  letter-spacing: 0.03rem;
  margin-top: 0.06rem;
  padding: 0 0.08rem;
  border-radius: 0.04rem;
}
.tab.on { color: #111111;
}
.tab.on .tab-cn { font-size: 0.3rem; font-weight: 900;
}
.tab.on .tab-en { background: #d6ff3c;
}

/* ===== components/seg-progress/index.wxss ===== */
.seg { display: flex; margin: 0 -0.06rem;
}
.seg-i {
  flex: 1;
  height: 0.1rem;
  border-radius: 0.1rem;
  background: #ebebeb;
  margin: 0 0.06rem;
  transition: background 0.25s;
}
.seg-i.on { background: #111111;
}

/* ===== components/weight-sheet/index.wxss ===== */
.ws-head { display: flex; align-items: center;
}
.ws-img { width: 1.7rem; height: 2.6rem; flex-shrink: 0;
}
.ws-info { margin-left: 0.28rem;
}
.ws-value { font-size: 0.96rem; line-height: 1.1; margin-top: 0.08rem;
}

/* ===== pages/onboarding ===== */
.p-onboarding .ob { min-height: 100vh; padding-bottom: calc(2rem + env(safe-area-inset-bottom)); box-sizing: border-box;
}
.p-onboarding .ob-top { padding-top: 0.24rem;
}
.p-onboarding .stage { padding-top: 0.56rem;
}
.p-onboarding .hero { position: relative; height: 7rem; overflow: hidden;
}
.p-onboarding .hero-word {
  position: absolute;
  left: 0;
  right: 0;
  top: 1.2rem;
  text-align: center;
  font-size: 3rem;
  line-height: 1;
  font-weight: 900;
  font-style: italic;
  letter-spacing: -0.16rem;
  color: #d6ff3c;
}
.p-onboarding .hero-img { position: absolute; left: 50%; top: 0; width: 4.6rem; height: 6.9rem; margin-left: -2.3rem;
}
.p-onboarding .hero-sticker { position: absolute; right: 0.72rem; top: 0.96rem;
}
.p-onboarding .ticker { margin-top: 0.56rem; overflow: hidden; border-top: 0.03rem solid #111111; border-bottom: 0.03rem solid #111111; padding: 0.14rem 0;
}
.p-onboarding .ticker-track {
  display: inline-block;
  white-space: nowrap;
  font-family: var(--mono);
  font-size: 0.22rem;
  letter-spacing: 0.04rem;
  font-weight: 700;
  animation: marquee 16s linear infinite;
}
@keyframes marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
.p-onboarding .opts2 { display: flex; margin-top: 0.64rem;
}
.p-onboarding .opt {
  flex: 1;
  height: 3rem;
  border-radius: 0.4rem;
  background: var(--card);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 0.32rem;
  box-sizing: border-box;
}
.p-onboarding .opt-r { margin-left: 0.24rem;
}
.p-onboarding .opt-big { font-size: 0.48rem; font-weight: 900;
}
.p-onboarding .opt-en { font-family: var(--mono); font-size: 0.2rem; letter-spacing: 0.04rem; color: var(--grey); margin-top: 0.08rem;
}
.p-onboarding .opt.on { background: #111111; color: #ffffff;
}
.p-onboarding .opt.on .opt-en { color: #d6ff3c;
}
.p-onboarding .big-value { font-size: 1.28rem; line-height: 1.1; margin-top: 0.48rem;
}
.p-onboarding .big-value .unit { font-size: 0.36rem;
}
.p-onboarding .note { font-size: 0.26rem; color: var(--ink-2); background: var(--card); border-radius: 0.2rem; padding: 0.16rem 0.24rem; margin-top: 0.16rem; display: inline-block;
}
.p-onboarding .note-hot { color: var(--hot); background: #fff1eb;
}
.p-onboarding .opt-list { margin-top: 0.4rem;
}
.p-onboarding .opt-row {
  display: flex;
  align-items: center;
  background: var(--card);
  border-radius: 0.32rem;
  padding: 0.32rem 0.36rem;
  margin-bottom: 0.2rem;
}
.p-onboarding .opt-row-main { flex: 1; min-width: 0;
}
.p-onboarding .opt-row-title { font-size: 0.34rem; font-weight: 800;
}
.p-onboarding .opt-row-desc { font-size: 0.24rem; color: var(--grey); margin-top: 0.06rem;
}
.p-onboarding .opt-row-en { font-family: var(--mono); font-size: 0.2rem; letter-spacing: 0.03rem; color: var(--grey); font-weight: 400;
}
.p-onboarding .opt-row-flag { display: inline-block; margin-top: 0.1rem; font-size: 0.2rem; padding: 0.02rem 0.12rem; border-radius: 0.08rem; background: #fff1eb; color: var(--hot);
}
.p-onboarding .opt-row.on { background: #111111; color: #ffffff;
}
.p-onboarding .opt-row.on .opt-row-desc { color: #bdbdbd;
}
.p-onboarding .opt-row.on .opt-row-en { color: #d6ff3c;
}
.p-onboarding .pace-kcal { text-align: right; font-size: 0.44rem; line-height: 1.1;
}
.p-onboarding .pace-unit { display: block; font-size: 0.2rem; color: var(--grey); font-weight: 600; letter-spacing: 0;
}
.p-onboarding .opt-row.on .pace-unit { color: #bdbdbd;
}
.p-onboarding .result-num { font-size: 1.68rem; line-height: 1.05;
}
.p-onboarding .result-num .unit { font-size: 0.4rem;
}
.p-onboarding .result-grid { display: flex; padding: 0.28rem 0.12rem; margin-top: 0.32rem;
}
.p-onboarding .rg { flex: 1; text-align: center;
}
.p-onboarding .rg-v { font-size: 0.4rem; margin-top: 0.04rem;
}
.p-onboarding .macro-line { margin-top: 0.28rem; font-size: 0.28rem; color: var(--ink-2);
}
.p-onboarding .eta { margin-top: 0.2rem; font-size: 0.3rem;
}
.p-onboarding .ob-foot {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  padding-top: 0.24rem;
  padding-bottom: calc(0.32rem + env(safe-area-inset-bottom));
  background: linear-gradient(rgba(255, 255, 255, 0), #ffffff 30%);
}

/* ===== pages/today ===== */
.p-today .page { min-height: 100vh; padding-bottom: calc(3rem + env(safe-area-inset-bottom)); box-sizing: border-box;
}
.p-today .poke {
  margin: 0.2rem 0.56rem 0;
  background: var(--volt);
  border-radius: 0.24rem;
  padding: 0.18rem 0.24rem;
  display: flex;
  align-items: center;
}
.p-today .poke-text { font-size: 0.26rem; font-weight: 700; margin-left: 0.16rem;
}
.p-today .top { display: flex; align-items: flex-start; padding: 0.28rem 0 0 0.56rem;
}
.p-today .top-left { flex: 1; min-width: 0;
}
.p-today .date-line { font-size: 0.28rem; color: var(--grey);
}
.p-today .hero-num { font-size: 1.24rem; line-height: 1.05; margin-top: 0.06rem; white-space: nowrap;
}
.p-today .hero-unit { font-size: 0.3rem; font-weight: 800; margin-left: 0.08rem; letter-spacing: 0;
}
.p-today .hero-cap { font-size: 0.24rem; color: var(--ink-2); margin-top: 0.06rem;
}
.p-today .strip-box { position: relative; width: 3.04rem; flex-shrink: 0;
}
.p-today .strip { width: 3.04rem; white-space: nowrap;
}
.p-today .strip-inner { display: inline-flex; padding-right: 0.24rem;
}
.p-today .strip-fade {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 0.56rem;
  background: linear-gradient(90deg, #ffffff, rgba(255, 255, 255, 0));
  pointer-events: none;
}
.p-today .day { width: 0.76rem; display: inline-flex; flex-direction: column; align-items: center; flex-shrink: 0;
}
.p-today .day-w { font-size: 0.24rem; color: var(--grey);
}
.p-today .day-n {
  width: 0.68rem;
  height: 0.68rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.3rem;
  font-weight: 700;
  margin-top: 0.1rem;
  box-sizing: border-box;
}
.p-today .day.on .day-n { border: 0.04rem solid #111111;
}
.p-today .day-dot { width: 0.08rem; height: 0.08rem; border-radius: 50%; margin-top: 0.08rem;
}
.p-today .day-dot.show { background: #111111;
}
.p-today .bar-row { display: flex; align-items: center; margin-top: 0.44rem;
}
.p-today .meal-pill {
  height: 0.76rem;
  padding: 0 0.28rem;
  border-radius: 9.99rem;
  background: #111111;
  color: #ffffff;
  font-size: 0.28rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  flex-shrink: 0;
}
.p-today .chev { margin-left: 0.1rem; font-size: 0.26rem; margin-top: -0.1rem;
}
.p-today .bar { position: relative; flex: 1; height: 0.76rem; margin-left: 0.36rem; margin-right: 0.18rem;
}
.p-today .bar-track {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 0.2rem;
  margin-top: -0.1rem;
  border-radius: 0.2rem;
  background: #ececec;
  overflow: hidden;
  display: flex;
}
.p-today .bar-seg { height: 100%; border-right: 0.04rem solid #ffffff; box-sizing: border-box; flex-shrink: 0;
}
.p-today .bar-knob {
  position: absolute;
  top: 50%;
  width: 0.36rem;
  height: 0.36rem;
  margin: -0.18rem 0 0 -0.18rem;
  border-radius: 50%;
  background: #111111;
}
.p-today .bar-knob-hot { background: var(--hot);
}
.p-today .bar-label {
  position: absolute;
  top: -0.3rem;
  transform: translateX(-50%);
  font-family: var(--mono);
  font-size: 0.22rem;
  font-weight: 700;
  white-space: nowrap;
}
.p-today .bar-label-start { transform: translateX(-0.18rem);
}
.p-today .bar-label-end { transform: translateX(calc(-100% + 0.18rem));
}
.p-today .bar-marker { position: absolute; top: 0.12rem; bottom: 0.12rem; width: 0.04rem; margin-left: -0.02rem; background: var(--hot);
}
.p-today .macro-row { display: flex; align-items: center; margin-top: 0.28rem;
}
.p-today .macro { display: flex; align-items: center; margin-right: 0.4rem;
}
.p-today .macro-name { font-size: 0.24rem; color: var(--grey); margin-right: 0.12rem;
}
.p-today .dot-hot.on { background: var(--hot);
}
.p-today .main { display: flex; margin-top: 0.36rem;
}
.p-today .col-cards { width: 3.72rem; flex-shrink: 0;
}
.p-today .meal-card { display: flex; align-items: center; padding: 0.18rem; margin-bottom: 0.18rem; border-radius: 0.36rem;
}
.p-today .meal-thumb { width: 1.28rem; height: 1.28rem; flex-shrink: 0; display: flex; align-items: center; justify-content: center;
}
.p-today .meal-photo { width: 1.28rem; height: 1.28rem;
}
.p-today .meal-icon { width: 1.08rem; height: 1.08rem;
}
.p-today .meal-info { margin-left: 0.2rem; flex: 1; min-width: 0; height: 1.24rem; display: flex; flex-direction: column;
}
.p-today .meal-title { font-size: 0.3rem; font-weight: 800;
}
.p-today .meal-desc { font-size: 0.22rem; color: var(--ink-2); margin-top: 0.04rem;
}
.p-today .meal-kcal { margin-top: auto; font-family: var(--mono); font-size: 0.22rem; color: var(--grey);
}
.p-today .meal-card.is-empty { background: #f7f7f7;
}
.p-today .meal-card.is-empty .meal-icon { opacity: 0.45;
}
.p-today .meal-card.is-empty .meal-title { color: #b3b3b3;
}
.p-today .meal-card.is-empty .meal-desc { color: #c4c4c4;
}
.p-today .col-mascot { flex: 1; min-width: 0; margin-left: 0.16rem; display: flex; flex-direction: column; align-items: center;
}
.p-today .bubble {
  position: relative;
  background: #ffffff;
  border: 0.03rem solid #111111;
  border-radius: 0.24rem;
  padding: 0.16rem 0.18rem;
  font-size: 0.22rem;
  line-height: 1.5;
  font-weight: 600;
  margin-bottom: 0.22rem;
}
.p-today .bubble::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: -0.13rem;
  width: 0.2rem;
  height: 0.2rem;
  margin-left: -0.1rem;
  background: #ffffff;
  border-right: 0.03rem solid #111111;
  border-bottom: 0.03rem solid #111111;
  transform: rotate(45deg);
}
.p-today .mascot-wrap { position: relative; width: 2.5rem;
}
.p-today .mascot { width: 2.5rem; display: block;
}
.p-today .streak { position: absolute; right: -0.2rem; top: 42%;
}
.p-today .actions {
  position: fixed;
  left: 0;
  right: 0;
  bottom: calc(1.12rem + env(safe-area-inset-bottom));
  display: flex;
  align-items: center;
  padding-top: 0.24rem;
  padding-bottom: 0.2rem;
  background: linear-gradient(rgba(255, 255, 255, 0), #ffffff 32%);
  z-index: 40;
}
.p-today .act-main { flex: 1.4; margin-left: 0.16rem;
}
.p-today .act-side { flex: 1; margin-left: 0.16rem;
}
.p-today .sheet-head { display: flex; align-items: flex-end; justify-content: space-between;
}
.p-today .sheet-kcal { font-size: 0.6rem; line-height: 1;
}
.p-today .sheet-empty { margin: 0.36rem 0 0.08rem; color: var(--grey); font-size: 0.26rem;
}
.p-today .entry { display: flex; align-items: flex-start; padding: 0.26rem 0; border-bottom: 0.02rem solid var(--line);
}
.p-today .entry-photo { width: 1.12rem; height: 1.12rem; border-radius: 0.2rem; margin-right: 0.2rem; flex-shrink: 0;
}
.p-today .entry-body { flex: 1; min-width: 0;
}
.p-today .entry-item { display: flex; justify-content: space-between; align-items: baseline; line-height: 1.8;
}
.p-today .entry-name { font-size: 0.28rem; font-weight: 700;
}
.p-today .entry-meta { font-family: var(--mono); font-size: 0.22rem; color: var(--grey);
}
.p-today .entry-del { font-size: 0.24rem; color: var(--hot); margin-left: 0.24rem; padding: 0.06rem 0;
}
.p-today .sheet-actions { display: flex; margin-top: 0.36rem;
}
.p-today .sheet-actions .btn { padding: 0 0.12rem; font-size: 0.28rem;
}

/* ===== pages/log ===== */
.p-log .log { min-height: 100vh; padding: 0.24rem 0 calc(2.2rem + env(safe-area-inset-bottom)); box-sizing: border-box;
}
.p-log .meal-tabs { display: flex;
}
.p-log .mt {
  flex: 1;
  height: 0.72rem;
  line-height: 0.72rem;
  text-align: center;
  border-radius: 9.99rem;
  font-size: 0.28rem;
  font-weight: 700;
  color: var(--grey);
  margin-right: 0.12rem;
  background: var(--card);
}
.p-log .mt.on { background: #111111; color: #ffffff;
}
.p-log .photo-box { position: relative; margin-top: 0.28rem; height: 4.6rem; border-radius: 0.4rem; overflow: hidden; background: var(--card);
}
.p-log .photo { width: 100%; height: 100%;
}
.p-log .photo-retake {
  position: absolute;
  right: 0.24rem;
  bottom: 0.24rem;
  background: #111111;
  color: #ffffff;
  font-size: 0.24rem;
  font-weight: 700;
  padding: 0.12rem 0.28rem;
  border-radius: 9.99rem;
}
.p-log .scan { position: absolute; left: 0; right: 0; top: 0; bottom: 0; background: rgba(17, 17, 17, 0.18);
}
.p-log .scan-line {
  position: absolute;
  left: 0;
  right: 0;
  height: 0.08rem;
  background: #d6ff3c;
  box-shadow: 0 0 0.24rem #d6ff3c;
  animation: scan 1.6s ease-in-out infinite alternate;
}
@keyframes scan {
  from { top: 4%; }
  to { top: 92%; }
}
.p-log .say-box { margin-top: 0.28rem; background: var(--card); border-radius: 0.32rem; padding: 0.28rem 0.32rem;
}
.p-log .say-input { width: 100%; min-height: 1.2rem; font-size: 0.32rem; font-weight: 600; line-height: 1.5;
}
.p-log .say-ph { color: #b5b5b5; font-weight: 400;
}
.p-log .examples { margin-top: 0.2rem; display: flex; flex-wrap: wrap;
}
.p-log .ex { background: #ffffff; border: 0.02rem solid var(--line); font-weight: 500; color: var(--ink-2);
}
.p-log .thinking { display: flex; align-items: center; margin-top: 0.24rem;
}
.p-log .thinking-img { width: 1.4rem; height: 2.1rem;
}
.p-log .thinking-text { font-size: 0.3rem; font-weight: 800; margin-left: 0.2rem;
}
.p-log .note { font-size: 0.26rem; color: var(--ink-2); background: var(--card); border-radius: 0.2rem; padding: 0.16rem 0.24rem; margin-top: 0.24rem;
}
.p-log .note-hot { color: var(--hot); background: #fff1eb;
}
.p-log .note-mock { background: #f6ffd6;
}
.p-log .items { margin-top: 0.36rem;
}
.p-log .item { padding: 0.28rem; margin-top: 0.18rem;
}
.p-log .item-top { display: flex; align-items: center;
}
.p-log .item-name { font-size: 0.34rem; font-weight: 800;
}
.p-log .item-src { margin-left: 0.16rem;
}
.p-log .item-del { margin-left: auto; width: 0.56rem; height: 0.56rem; line-height: 0.52rem; text-align: center; font-size: 0.4rem; color: var(--grey);
}
.p-log .chips-row { display: flex; flex-wrap: wrap; margin-top: 0.2rem;
}
.p-log .item-bottom { display: flex; align-items: center; justify-content: space-between; margin-top: 0.04rem;
}
.p-log .stepper { display: flex; align-items: center; background: #ffffff; border-radius: 9.99rem; padding: 0.06rem;
}
.p-log .st-btn { width: 0.6rem; height: 0.6rem; line-height: 0.58rem; text-align: center; border-radius: 50%; background: var(--card); font-size: 0.34rem; font-weight: 700;
}
.p-log .st-val { min-width: 1.2rem; text-align: center; font-family: var(--mono); font-size: 0.26rem; font-weight: 700;
}
.p-log .item-kcal { font-size: 0.52rem; line-height: 1;
}
.p-log .add-row {
  margin-top: 0.24rem;
  height: 0.96rem;
  line-height: 0.92rem;
  text-align: center;
  border: 0.03rem dashed var(--grey-2);
  border-radius: 0.32rem;
  font-size: 0.28rem;
  font-weight: 700;
  color: var(--ink-2);
}
.p-log .search { margin-top: 0.32rem;
}
.p-log .search-box { display: flex; align-items: center; background: var(--card); border-radius: 9.99rem; padding: 0 0.32rem; height: 0.92rem;
}
.p-log .search-input { flex: 1; font-size: 0.3rem;
}
.p-log .search-close { font-size: 0.26rem; color: var(--grey); padding-left: 0.24rem;
}
.p-log .list { margin-top: 0.08rem;
}
.p-log .row { display: flex; align-items: center; padding: 0.26rem 0.04rem; border-bottom: 0.02rem solid var(--line);
}
.p-log .row-hover { background: #fafafa;
}
.p-log .row-main { flex: 1; min-width: 0;
}
.p-log .row-name { font-size: 0.3rem; font-weight: 700;
}
.p-log .row-sub { font-size: 0.22rem; color: var(--grey); margin-top: 0.04rem; font-family: var(--mono);
}
.p-log .row-tag { font-size: 0.18rem; font-weight: 700; background: #d6ff3c; padding: 0.02rem 0.1rem; border-radius: 0.06rem; margin-left: 0.12rem;
}
.p-log .row-add { width: 0.56rem; height: 0.56rem; line-height: 0.54rem; text-align: center; border-radius: 50%; background: #111111; color: #d6ff3c; font-weight: 800;
}
.p-log .manual { margin-top: 0.28rem;
}
.p-log .manual .btn { display: inline-flex;
}
.p-log .foot {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  padding: 0.2rem 0.56rem calc(0.28rem + env(safe-area-inset-bottom));
  background: #ffffff;
  border-top: 0.02rem solid #efefef;
  z-index: 20;
}
.p-log .foot-total { flex: 1;
}
.p-log .foot-num { font-size: 0.56rem; line-height: 1.1;
}
.p-log .foot-btn { width: 3rem;
}

/* ===== pages/progress ===== */
.p-progress .page { min-height: 100vh; box-sizing: border-box;
}
.p-progress .top { padding-top: 0.28rem;
}
.p-progress .hero { font-size: 1.4rem; line-height: 1.05; margin-top: 0.08rem;
}
.p-progress .hero .unit { font-size: 0.36rem;
}
.p-progress .hero-sub { font-size: 0.3rem; margin-top: 0.04rem;
}
.p-progress .chart-card { margin-top: 0.32rem; padding: 0.28rem 0.24rem 0.2rem 0.28rem; background: #f6f6f6;
}
.p-progress .chart-head { display: flex; align-items: center; justify-content: space-between;
}
.p-progress .legend { display: flex; align-items: center; font-size: 0.22rem; color: var(--grey);
}
.p-progress .lg-dot { width: 0.14rem; height: 0.14rem; border-radius: 50%; background: #c4c4c4; margin-right: 0.08rem;
}
.p-progress .lg-line { width: 0.32rem; height: 0.06rem; border-radius: 0.06rem; background: #111111; margin: 0 0.08rem 0 0.24rem;
}
.p-progress .ranges { display: flex; background: #ffffff; border-radius: 9.99rem; padding: 0.04rem;
}
.p-progress .rg { font-size: 0.22rem; font-weight: 700; color: var(--grey); padding: 0.08rem 0.18rem; border-radius: 9.99rem;
}
.p-progress .rg.on { background: #111111; color: #ffffff;
}
.p-progress .chart { width: 100%; height: 4rem; margin-top: 0.16rem;
}
.p-progress .chart-note { margin-top: 0.08rem;
}
.p-progress .sec-head { display: flex; align-items: baseline; margin-top: 0.64rem; margin-bottom: 0.2rem;
}
.p-progress .drops { white-space: nowrap;
}
.p-progress .drops-inner { display: inline-flex; padding: 0 0.56rem 0.08rem;
}
.p-progress .drop {
  position: relative;
  width: 2.4rem;
  flex-shrink: 0;
  margin-right: 0.2rem;
  padding: 0.26rem;
  border-radius: 0.32rem;
  border: 0.03rem dashed var(--grey-2);
  box-sizing: border-box;
  white-space: normal;
  overflow: hidden;
}
.p-progress .drop-label { font-family: var(--mono); font-size: 0.22rem; font-weight: 700; letter-spacing: 0.03rem; color: var(--grey);
}
.p-progress .drop-kg { font-size: 0.56rem; line-height: 1.1; margin-top: 0.08rem; color: var(--grey);
}
.p-progress .drop-bar { height: 0.08rem; border-radius: 0.08rem; background: #ececec; margin-top: 0.16rem; overflow: hidden;
}
.p-progress .drop-fill { height: 100%; background: #111111;
}
.p-progress .drop-reward { font-size: 0.22rem; color: var(--grey); margin-top: 0.16rem;
}
.p-progress .drop-stamp {
  position: absolute;
  right: -0.46rem;
  top: 0.22rem;
  transform: rotate(35deg);
  background: #d6ff3c;
  color: #111111;
  font-family: var(--mono);
  font-size: 0.16rem;
  font-weight: 800;
  letter-spacing: 0.02rem;
  padding: 0.04rem 0.48rem;
}
.p-progress .drop.on { background: #111111; border: 0.03rem solid #111111;
}
.p-progress .drop.on .drop-label { color: #d6ff3c;
}
.p-progress .drop.on .drop-kg { color: #ffffff;
}
.p-progress .drop.on .drop-bar { background: #3a3a3a;
}
.p-progress .drop.on .drop-fill { background: #d6ff3c;
}
.p-progress .drop.on .drop-reward { color: #d9d9d9;
}
.p-progress .week { padding: 0.32rem;
}
.p-progress .week-bars { display: flex; height: 2rem;
}
.p-progress .wb { flex: 1; display: flex; flex-direction: column; align-items: center;
}
.p-progress .wb-col { flex: 1; width: 0.36rem; display: flex; align-items: flex-end; background: #e9e9e9; border-radius: 0.12rem; overflow: hidden;
}
.p-progress .wb-fill { width: 100%; background: #9a9a9a; border-radius: 0.12rem 0.12rem 0 0;
}
.p-progress .wb-fill.today { background: #111111;
}
.p-progress .wb-fill.over { background: var(--hot);
}
.p-progress .wb-w { font-size: 0.22rem; color: var(--grey); margin-top: 0.1rem;
}
.p-progress .wb-w.b { color: #111111;
}
.p-progress .week-stats { display: flex; margin-top: 0.32rem;
}
.p-progress .wst { flex: 1;
}
.p-progress .wst-v { font-size: 0.44rem; line-height: 1.2; margin-top: 0.04rem;
}
.p-progress .calib { padding: 0.32rem; margin-bottom: 0.24rem;
}
.p-progress .calib-num { font-size: 0.8rem; line-height: 1.1;
}
.p-progress .calib-btn { display: inline-flex; margin-top: 0.24rem;
}
.p-progress .calib-track { height: 0.16rem; border-radius: 0.16rem; background: #e4e4e4; overflow: hidden;
}
.p-progress .calib-fill { height: 100%; background: #111111; border-radius: 0.16rem;
}

/* ===== pages/crew ===== */
.p-crew .page { min-height: 100vh; box-sizing: border-box;
}
.p-crew .empty { padding-top: 0.28rem;
}
.p-crew .empty-img { width: 100%; margin: 0.24rem 0 0.08rem; display: block;
}
.p-crew .head { padding-top: 0.28rem;
}
.p-crew .code {
  font-family: var(--mono);
  font-size: 0.24rem;
  font-weight: 800;
  letter-spacing: 0.04rem;
  background: #111111;
  color: #d6ff3c;
  padding: 0.08rem 0.2rem;
  border-radius: 0.1rem;
}
.p-crew .members { margin-top: 0.36rem;
}
.p-crew .member { display: flex; align-items: center; padding: 0.24rem 0.28rem; margin-bottom: 0.18rem;
}
.p-crew .avatar {
  width: 0.88rem;
  height: 0.88rem;
  border-radius: 50%;
  border: 0.03rem solid #111111;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.34rem;
  font-weight: 900;
  flex-shrink: 0;
  box-sizing: border-box;
}
.p-crew .m-info { flex: 1; min-width: 0; margin-left: 0.24rem;
}
.p-crew .m-name { font-size: 0.3rem; font-weight: 800; display: flex; align-items: center;
}
.p-crew .m-badge { font-size: 0.18rem; font-weight: 700; background: #111111; color: #ffffff; border-radius: 0.06rem; padding: 0.02rem 0.08rem; margin-left: 0.1rem;
}
.p-crew .m-owner { background: #d6ff3c; color: #111111;
}
.p-crew .m-stats { font-family: var(--mono); font-size: 0.22rem; color: var(--grey); margin-top: 0.06rem;
}
.p-crew .m-status { font-size: 0.24rem; font-weight: 700; color: var(--grey); padding: 0.1rem 0.2rem; border-radius: 9.99rem; background: #ffffff;
}
.p-crew .m-status.on { background: #d6ff3c; color: #111111;
}
.p-crew .m-poke { font-size: 0.24rem; font-weight: 800; color: #ffffff; background: #111111; padding: 0.12rem 0.26rem; border-radius: 9.99rem;
}
.p-crew button.share-btn {
  margin: 0.36rem 0 0;
  width: 100%;
  height: 1.04rem;
  line-height: 1.04rem;
  padding: 0;
  border-radius: 9.99rem;
  background: #111111;
  color: #ffffff;
  font-size: 0.32rem;
  font-weight: 800;
}
.p-crew button.share-btn::after { border: none;
}
.p-crew .tip { margin-top: 0.2rem; text-align: center;
}
.p-crew .leave { margin-top: 0.48rem; text-align: center; font-size: 0.24rem; color: var(--grey); text-decoration: underline;
}

/* ===== pages/me ===== */
.p-me .page { min-height: 100vh; box-sizing: border-box; padding-top: 0.28rem;
}
.p-me .member-card {
  position: relative;
  background: #111111;
  color: #ffffff;
  border-radius: 0.4rem;
  padding: 0.4rem 0.4rem 0.36rem;
  overflow: hidden;
}
.p-me .mc-top { display: flex; align-items: baseline; justify-content: space-between;
}
.p-me .mc-brand { font-size: 0.44rem; font-weight: 900; font-style: italic; color: #d6ff3c; letter-spacing: 0.02rem;
}
.p-me .mc-club { font-family: var(--mono); font-size: 0.18rem; letter-spacing: 0.04rem; color: #9a9a9a;
}
.p-me .mc-name { font-size: 0.52rem; font-weight: 900; margin-top: 0.36rem;
}
.p-me .mc-edit { font-size: 0.28rem; color: #6f6f6f; margin-left: 0.12rem; font-weight: 400;
}
.p-me .mc-stats { display: flex; margin-top: 0.32rem;
}
.p-me .mcs { flex: 1;
}
.p-me .mcs-v { font-size: 0.56rem; line-height: 1.1;
}
.p-me .mcs-k { font-size: 0.2rem; color: #9a9a9a; margin-top: 0.04rem;
}
.p-me .mc-bottom { margin-top: 0.4rem; padding-top: 0.28rem; border-top: 0.02rem dashed #3a3a3a;
}
.p-me .barcode { display: flex; height: 0.64rem; overflow: hidden;
}
.p-me .bar { height: 100%; background: #ffffff; flex-shrink: 0;
}
.p-me .mc-no { font-family: var(--mono); font-size: 0.24rem; letter-spacing: 0.06rem; margin-top: 0.14rem;
}
.p-me .mc-since { font-family: var(--mono); font-size: 0.18rem; letter-spacing: 0.02rem; color: #8a8a8a; margin-top: 0.06rem;
}
.p-me .list { margin-top: 0.32rem;
}
.p-me .item { display: flex; align-items: center; padding: 0.3rem 0.04rem; border-bottom: 0.02rem solid var(--line);
}
.p-me .item-hover { background: #fafafa;
}
.p-me .it-main { flex: 1; min-width: 0;
}
.p-me .it-title { font-size: 0.3rem; font-weight: 800;
}
.p-me .it-sub { font-size: 0.24rem; color: var(--grey); margin-top: 0.06rem;
}
.p-me .it-arrow { font-size: 0.4rem; color: var(--grey-2); margin-left: 0.16rem;
}
.p-me .item.danger .it-title { color: var(--hot);
}
