/* me 页面组（me / coins / my-results / orders / profile / about）的专用样式。
 * 只用 app.css 的 var(--token)，不写十六进制色值；兼容 iOS Safari 14
 *（不用 inset / flex gap / aspect-ratio / :is() / dvh / color-mix）；深色模式靠 token 自动适配。
 */

/* ---------------------------------------------------------------- 我的（tab）：资料卡 + 余额卡 */
.prof { display: flex; align-items: center; }
.prof__avatar {
  flex: 0 0 auto;
  width: 64px;
  height: 64px;
  margin-right: var(--sp-3);
  padding: 0;
  border: 0;
  border-radius: 50%;
  overflow: hidden;
  background: var(--fill);
  -webkit-appearance: none;
  appearance: none;
}
.prof__avatar:active { opacity: 0.85; }
.prof__pic {
  display: block;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  object-fit: cover;
}
.prof__ph {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--fill);
  color: var(--label-2);
}
.prof__main { flex: 1 1 auto; min-width: 0; }
.prof__nick {
  display: block;
  width: 100%;
  min-height: 44px; /* 触控热区不小于 44px；字号由 t-title3 提供（20px，避免 iOS 聚焦自动放大） */
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--label);
  -webkit-appearance: none;
  appearance: none;
}
.prof__nick::placeholder { color: var(--label-3); }
.prof__meta { display: flex; align-items: center; flex-wrap: wrap; margin-top: 2px; }
.prof__no { margin-left: var(--sp-2); }

.me-balance { display: flex; align-items: center; justify-content: space-between; }
.me-coins-actions > div { display: flex; gap: var(--sp-2); margin-top: var(--sp-3); }
.me-coins-actions .btn { flex: 1 1 0; min-width: 0; }

/* ---------------------------------------------------------------- 我的：小程序式頭圖、協會橫卡與兩列主目錄 */
.me-hero {
  position: relative;
  margin: 0;
  padding: var(--sp-4) var(--gutter) calc(var(--sp-5) * 2 + var(--sp-4));
  background: linear-gradient(160deg, var(--hero-a) 0%, var(--hero-b) 100%);
  color: var(--hero-ink);
  overflow: hidden;
  border-bottom: var(--hairline) solid var(--glass-stroke);
  -webkit-backdrop-filter: saturate(160%) blur(24px);
  backdrop-filter: saturate(160%) blur(24px);
}
.me-hero::after {
  /* 右上角一圈淡淡的同心弧，作裝飾，不承載信息 */
  content: "";
  position: absolute;
  right: -60px;
  top: -60px;
  width: 220px;
  height: 220px;
  border-radius: 50%;
  border: 28px solid rgba(255, 255, 255, 0.08);
  pointer-events: none;
}
.me-hero__who { position: relative; display: flex; align-items: center; }
.me-hero__avatar {
  flex: 0 0 auto;
  width: 64px;
  height: 64px;
  padding: 0;
  border: 2px solid rgba(255, 255, 255, 0.85);
  border-radius: 50%;
  background: var(--bg-elevated);
  overflow: hidden;
}
.me-hero__avatar:active { opacity: 0.85; }
.me-hero__pic { display: block; width: 100%; height: 100%; object-fit: cover; }
.me-hero__ph {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--label-2);
  background: var(--fill);
}
.me-hero__main { flex: 1 1 auto; min-width: 0; margin-left: var(--sp-3); }
.me-hero__nick {
  min-height: var(--tap);
  display: block;
  width: 100%;
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--hero-ink);
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
}
.me-hero__nick::placeholder { color: rgba(255, 255, 255, 0.6); }
.me-hero__meta { display: flex; align-items: center; flex-wrap: wrap; margin-top: var(--sp-1); }
.me-hero__meta .tag { background: rgba(255, 255, 255, 0.22); color: var(--hero-ink); font-weight: 600; }
.me-hero__no { margin-left: var(--sp-2); opacity: 0.85; }
.me-hero__stats {
  position: relative;
  display: flex;
  margin-top: var(--sp-5);
}
.me-hero__stat { flex: 1 1 0; min-width: 0; text-align: center; color: var(--hero-ink); padding: 0 var(--sp-1); }
.me-hero__stat + .me-hero__stat { border-left: 1px solid rgba(255, 255, 255, 0.35); }
.me-hero__num { display: block; color: var(--hero-ink); font-size: clamp(16px, 5vw, 22px); font-variant-numeric: tabular-nums; overflow: hidden; text-overflow: ellipsis; }
.me-hero__label { display: block; margin-top: 2px; opacity: 0.95; }

.me-hubs { position: relative; z-index: 1; margin: calc(-1 * var(--sp-5) - var(--sp-2)) var(--gutter) 0; }
.me-hubs__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3); margin-top: var(--sp-3); }
.me-hub-card {
  display: flex;
  min-height: 138px;
  flex-direction: column;
  padding: var(--sp-4);
  border-radius: var(--radius);
  background: var(--glass);
  border: var(--hairline) solid var(--glass-stroke);
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: saturate(170%) blur(22px);
  backdrop-filter: saturate(170%) blur(22px);
  color: var(--label);
  text-decoration: none;
}
.me-hub-card:active { opacity: 0.75; }
.me-hub-card--featured { min-height: 88px; margin-top: var(--sp-5); flex-direction: row; align-items: center; background: linear-gradient(120deg, var(--hero-a), var(--hero-b)); color: var(--hero-ink); }
.me-hub-card--featured .me-hub-card__sub { color: var(--hero-ink); opacity: 0.82; }
.me-hub-card--featured .me-hub-card__arrow { border-color: var(--hero-ink); }
.me-hub-card--featured .me-hub-card__icon { background: transparent; width: 48px; height: 48px; flex: 0 0 48px; }
.me-hub-card__logo { display: block; flex: 0 0 48px; width: 48px; height: 48px; object-fit: contain; border-radius: 50%; }
.me-hub-card__icon {
  display: flex;
  flex: 0 0 auto;
  width: 42px;
  height: 42px;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: var(--me-accent-soft);
  color: var(--me-accent);
}
.me-hub-card__icon .me-tile__ic { width: 26px; height: 26px; color: inherit; }
.me-hub-card__copy { display: flex; min-width: 0; flex-direction: column; margin-top: var(--sp-3); }
.me-hub-card--featured .me-hub-card__copy { flex: 1 1 auto; margin: 0 0 0 var(--sp-3); }
.me-hub-card__title { font-size: 17px; line-height: 1.3; font-weight: 600; }
.me-hub-card__sub { margin-top: var(--sp-1); color: var(--label-2); font-size: 12px; line-height: 1.35; }
.me-hub-card__arrow { width: 9px; height: 9px; flex: 0 0 auto; margin: 0 var(--sp-2); border-top: 2px solid var(--label-3); border-right: 2px solid var(--label-3); transform: rotate(45deg); }
.me-home__extras { margin-top: var(--sp-5); }

.me-directory { padding: var(--sp-3) var(--gutter) var(--sp-5); }
.me-directory__intro { display: flex; align-items: center; padding: var(--sp-4); border-radius: var(--radius); background: var(--glass); border: var(--hairline) solid var(--glass-stroke); box-shadow: var(--glass-shadow); -webkit-backdrop-filter: saturate(170%) blur(22px); backdrop-filter: saturate(170%) blur(22px); }
.me-directory__intro-icon, .me-directory__icon { display: flex; align-items: center; justify-content: center; background: var(--me-accent-soft); color: var(--me-accent); }
.me-directory__intro-icon { flex: 0 0 auto; width: 48px; height: 48px; border-radius: 14px; }
.me-directory--association .me-directory__intro-icon { background: var(--hero-a); }
.me-directory__logo { display: block; width: 44px; height: 38px; object-fit: contain; }
.me-directory__membership { display: flex; align-items: center; gap: var(--sp-2); padding: var(--sp-3) var(--sp-1) 0; color: var(--label-2); font-size: 13px; }
.me-directory__intro-copy { display: flex; min-width: 0; flex-direction: column; margin-left: var(--sp-3); }
.me-directory__intro-copy strong { font-size: 18px; font-weight: 600; line-height: 1.3; }
.me-directory__intro-copy > span { margin-top: var(--sp-1); color: var(--label-2); font-size: 13px; line-height: 1.4; }
.me-directory__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-3); margin-top: var(--sp-3); }
.me-directory--wallet .me-directory__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.me-directory__tile { display: flex; min-height: 112px; flex-direction: column; align-items: center; padding: var(--sp-3) var(--sp-2); border-radius: var(--radius); background: var(--glass); border: var(--hairline) solid var(--glass-stroke); box-shadow: var(--glass-shadow); -webkit-backdrop-filter: saturate(170%) blur(22px); backdrop-filter: saturate(170%) blur(22px); color: var(--label); text-align: center; text-decoration: none; }
.me-directory__tile:active { opacity: 0.75; }
.me-directory__tile.is-disabled { opacity: 0.5; }
.me-directory__icon { width: 42px; height: 42px; border-radius: 12px; }
.me-directory__icon .me-tile__ic, .me-directory__intro-icon .me-tile__ic { width: 25px; height: 25px; color: inherit; }
.me-directory__label { margin-top: var(--sp-2); font-size: 13px; line-height: 1.35; font-weight: 600; overflow-wrap: anywhere; }
.me-directory__note { margin-top: 2px; color: var(--label-2); font-size: 11px; }

/* 白卡片：快捷入口（4 格）與服務格，壓在頭圖底邊上 */
.me-quick,
.me-grid {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  padding: var(--sp-3) 0;
}
.me-quick { margin-top: calc(-1 * var(--sp-5) * 2); }
.me-grid { margin-top: var(--sp-3); }
.me-tile {
  display: flex;
  flex: 0 0 25%;
  max-width: 25%;
  flex-direction: column;
  align-items: center;
  padding: var(--sp-2) 0;
  color: var(--label);
  text-decoration: none;
}
.me-tile:active { opacity: 0.6; }
.me-tile__ic { width: 28px; height: 28px; color: var(--tint); }
.row__icon .me-tile__ic { color: inherit; }
.me-tile__label { margin-top: var(--sp-2); font-size: 13px; line-height: 1.3; text-align: center; }

/* ---------------------------------------------------------------- 入会引导（join-guide） */
.me-guide-wrap { margin: var(--sp-4) 0 var(--sp-5); }
.me-guide { padding: var(--sp-5) var(--sp-4); text-align: center; }
.me-guide__text { margin-top: var(--sp-2); }
.me-guide__action { margin-top: var(--sp-4); }
.me-guide__action .btn { display: inline-flex; width: auto; min-width: 160px; }

/* 列表页首屏与顶栏之间留一点空隙 */
.me-top { margin-top: var(--sp-2); }

/* ---------------------------------------------------------------- {token}明细 */
.me-amt { display: flex; flex-direction: column; align-items: flex-end; margin-left: var(--sp-2); }
.me-amt__bal { margin-top: 2px; }
.me-foot { padding-bottom: var(--sp-5); text-align: center; }

/* ---------------------------------------------------------------- 我的成绩（score-card） */
/* 已撤销的成绩整体变淡，仍可点开看公式 */
.me-result.is-revoked { opacity: 0.6; }
.me-card { padding: var(--sp-3); }
.me-card.is-pressable:active { transform: none; background: var(--bg-elevated); opacity: 0.9; }
.me-card__top { display: flex; align-items: flex-start; }
.me-card__left { flex: 1 1 auto; min-width: 0; }
.me-card__meta { margin-top: 2px; }
.me-card__right { flex: 0 0 auto; margin-left: var(--sp-3); display: flex; flex-direction: column; align-items: flex-end; }
.me-card__score { margin-top: var(--sp-1); font-variant-numeric: tabular-nums; }
.me-card__formula {
  display: none;
  margin-top: var(--sp-3);
  padding: var(--sp-3);
  border-radius: var(--radius-sm);
  background: var(--fill);
}
.me-card.is-open .me-card__formula { display: block; }
.me-card__formula-text { margin-top: var(--sp-1); overflow-wrap: anywhere; }
.me-card__formula-text + .t-footnote { margin-top: var(--sp-1); }
.me-card__hint { display: flex; align-items: center; justify-content: space-between; margin-top: var(--sp-2); }
.me-card__chevron {
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  margin: 4px;
  border-right: 2px solid var(--label-3);
  border-bottom: 2px solid var(--label-3);
  transform: rotate(45deg);
  transition: transform 200ms var(--ease-out);
}
.me-card.is-open .me-card__chevron { transform: rotate(225deg); }
.me-result__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--sp-2) var(--sp-2) 0;
}

/* ---------------------------------------------------------------- 我的订单 */
.me-order__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--sp-2); }
.me-order__main { display: flex; align-items: baseline; justify-content: space-between; }
.me-order__name { flex: 1 1 auto; min-width: 0; margin-right: var(--sp-3); overflow-wrap: anywhere; }
.me-order__meta { margin-top: var(--sp-1); }
.me-order__reason { margin-top: var(--sp-1); }
.me-order__actions { display: flex; justify-content: flex-end; margin-top: var(--sp-3); }
.me-order__actions .btn { min-width: 88px; }

/* ---------------------------------------------------------------- 个人资料 */
.me-prof__title { margin-top: var(--sp-3); }
.me-prof__nomember { margin-top: var(--sp-3); }

/* ---------------------------------------------------------------- 关于 */
.me-about-wrap { margin-top: var(--sp-2); }
.me-about__title { margin-bottom: var(--sp-2); }
.me-about--version { display: flex; align-items: center; justify-content: space-between; }

/* ---------------------------------------------------------------- 减弱动效 */
@media (prefers-reduced-motion: reduce) {
  .me-card__chevron { transition: none !important; transform: rotate(45deg) !important; }
  .me-card.is-open .me-card__chevron { transform: rotate(225deg) !important; }
}

/* ---------------------------------------------------------------- 協會專區卡片 / 評審員報名 / 會員證 */
.me-zone { margin-top: var(--sp-3); padding: var(--sp-3) 0; }
.me-zone__title { padding: 0 var(--sp-4) var(--sp-1); font-size: 15px; font-weight: 700; color: var(--label); }
.me-zone__grid { display: flex; flex-wrap: wrap; }

.zn-intro { margin-bottom: var(--sp-3); }
.zn-fee { margin-top: var(--sp-1); }
.zn-qual { padding: var(--sp-2) var(--sp-4); }
.zn-qual__check { display: flex; margin-bottom: var(--sp-1); }
.zn-cert { text-align: center; }
.zn-cert__img { display: block; width: 100%; height: auto; border-radius: var(--radius); box-shadow: var(--shadow-float); }
.zn-cert__hint { margin-top: var(--sp-3); }
.zn-cert__actions { display: flex; margin-top: var(--sp-3); }
.zn-cert__actions .btn { flex: 1 1 0; margin: 0 var(--sp-1); }

/* 我的頭圖右上角：客服 / 設置 */
.me-hero__tools { position: absolute; top: var(--sp-2); right: var(--gutter); display: flex; z-index: 1; }
.me-hero__tool { display: flex; align-items: center; justify-content: center; width: var(--tap); height: var(--tap); color: var(--hero-ink); }
.me-hero__tool:active { opacity: 0.6; }
.me-hero__tool .me-tile__ic { width: 24px; height: 24px; color: var(--hero-ink); }
.me-hero__who { margin-top: var(--sp-5); }
.zn-svc { padding: var(--sp-4); }
.zn-svc__text { margin-top: var(--sp-2); white-space: pre-wrap; overflow-wrap: anywhere; }
.zn-svc__hint { margin-top: var(--sp-3); padding: 0 var(--sp-2); }
.zn-svc__page, .zn-credentials { padding-top: var(--sp-3); }
.zn-svc__form { display: flex; flex-direction: column; }
.zn-svc__form h2, .zn-svc__heading { margin-bottom: var(--sp-3); font-size: 17px; font-weight: 600; }
.zn-svc__intro { margin: 0 0 var(--sp-3); line-height: 1.5; }
.portal-results { padding: 20px; }
.portal-results h2 { font-size: 18px; margin: 0 0 14px; }
.portal-results__item { padding: 12px 0; border-top: 1px solid var(--separator); }
.portal-results__item p { margin: 5px 0 0; }
.portal-results .btn { margin-top: 14px; }
.zn-svc__form textarea, .zn-svc__message textarea { width: 100%; padding: var(--sp-3); border: var(--hairline) solid var(--separator); border-radius: var(--radius-sm); background: var(--glass); resize: vertical; }
.zn-svc__form .btn, .zn-svc__message .btn { margin-top: var(--sp-3); }
.zn-svc__message p { margin: var(--sp-2) 0; white-space: pre-wrap; }
.zn-svc__date, .zn-svc__reply { color: var(--label-2); font-size: 13px; }
.zn-credentials__head { margin-bottom: var(--sp-4); }

/* November 6 association directory */
.me-directory--association .me-directory__intro-icon{border-radius:50%;width:60px;height:60px;flex:0 0 60px;background:#fff;overflow:hidden}
.me-directory--association .me-directory__logo{width:52px;height:52px;object-fit:contain;border-radius:50%}
.me-directory--association .me-directory__grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.me-directory--association .me-directory__tile{min-width:0;padding:20px 8px;text-align:center}
.community-actions,.association-shop-links{display:flex;justify-content:flex-end;gap:12px;margin-bottom:16px}
.assoc-layout{max-width:980px;margin:auto;padding:24px}.assoc-layout section{padding:24px;margin:16px 0;background:var(--card,#fff);border-radius:20px;box-shadow:0 8px 32px #00000008}
.assoc-layout label{display:block;margin:12px 0}.assoc-layout input:not([type=checkbox]),.assoc-layout textarea,.assoc-layout select{display:block;width:100%;box-sizing:border-box;padding:12px;border:1px solid #d9dfdc;border-radius:10px;background:transparent;color:inherit}
.assoc-layout .payment-qr{display:block;max-width:260px;width:100%;height:auto;margin:16px auto}.assoc-actions{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}
.assoc-layout .receipt-preview{max-width:500px;width:100%}.assoc-layout button{cursor:pointer}.exh-search{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.exh-search input{flex:1;min-width:180px;padding:12px}.exh-search select{padding:12px}
.community-actions .btn,.association-shop-links .btn{width:auto;flex:0 0 auto;min-width:76px;padding:10px 22px}.community-actions{align-items:center;min-height:46px}
