:root {
  --bg: #f3f7f2;
  --card: #ffffff;
  --ink: #14221b;
  --muted: #6f7d75;
  --line: #e3ebe5;
  --green: #1f7a5c;
  --green-2: #30a46c;
  --mint: #dff6ea;
  --amber: #f5a524;
  --red: #e5484d;
  --shadow: 0 18px 45px rgba(20, 34, 27, 0.12);
}
* { box-sizing: border-box; }
html { background: #dbe9df; }
body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  color: var(--ink);
  background: radial-gradient(circle at top, #eaf8ef 0, var(--bg) 42%, #eef3f1 100%);
}
button, input { font: inherit; }
button { border: 0; cursor: pointer; }
.app-shell {
  width: min(100%, 430px);
  min-height: 100vh;
  margin: 0 auto;
  padding: env(safe-area-inset-top) 14px 96px;
  background: var(--bg);
  position: relative;
  overflow-x: hidden;
}
.hero {
  margin: 0 -14px;
  padding: 18px 14px 22px;
  border-radius: 0 0 30px 30px;
  background: linear-gradient(150deg, #123e31 0%, #1f7a5c 58%, #75d49e 100%);
  color: white;
  box-shadow: var(--shadow);
}
.hero-top { display: flex; align-items: center; gap: 12px; }
.eyebrow, .section-title p { margin: 0; color: rgba(255,255,255,.72); font-size: 12px; letter-spacing: .04em; text-transform: uppercase; }
.hero h1 { margin: 2px 0 0; font-size: 28px; letter-spacing: -0.04em; }
.icon-button, .avatar {
  width: 42px; height: 42px; border-radius: 50%;
  background: rgba(255,255,255,.18); color: white;
  backdrop-filter: blur(12px);
}
.avatar { margin-left: auto; font-weight: 800; background: rgba(255,255,255,.92); color: var(--green); }
.search-card {
  margin-top: 16px;
  height: 48px;
  display: flex; align-items: center; gap: 10px;
  padding: 0 12px;
  border-radius: 18px;
  background: rgba(255,255,255,.94);
  color: #7e8a83;
}
.search-card input { flex: 1; border: 0; outline: 0; background: transparent; color: var(--ink); min-width: 0; }
.search-card button { background: #edf3ef; color: var(--muted); width: 28px; height: 28px; border-radius: 50%; }
.today-panel {
  margin-top: 16px;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
}
.today-panel div {
  padding: 10px 6px;
  text-align: center;
  background: rgba(255,255,255,.16);
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 18px;
}
.today-panel strong { display: block; font-size: 19px; }
.today-panel span { display: block; margin-top: 2px; color: rgba(255,255,255,.76); font-size: 11px; }
.quick-filters {
  display: flex; gap: 8px;
  margin: 16px -14px 0;
  padding: 0 14px 2px;
  overflow-x: auto;
  scrollbar-width: none;
}
.quick-filters::-webkit-scrollbar { display: none; }
.chip {
  flex: 0 0 auto;
  padding: 9px 13px;
  border-radius: 999px;
  background: #fff;
  color: var(--muted);
  box-shadow: 0 8px 20px rgba(20,34,27,.06);
}
.chip.active { background: var(--green); color: #fff; }
.calendar-card, .ops-section, .agenda-section { margin-top: 16px; }
.calendar-card, .ops-grid article, .game-card {
  background: var(--card);
  border: 1px solid rgba(227,235,229,.9);
  box-shadow: 0 10px 28px rgba(20,34,27,.07);
}
.calendar-card {
  padding: 16px;
  border-radius: 26px;
}
.section-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.section-title p { color: var(--green); font-weight: 700; }
.section-title h2 { margin: 2px 0 0; font-size: 20px; letter-spacing: -0.03em; }
.calendar-actions { display: flex; align-items: center; gap: 6px; }
.calendar-actions button, .text-button {
  height: 34px;
  padding: 0 10px;
  border-radius: 999px;
  background: #edf5ef;
  color: var(--green);
  font-weight: 700;
}
.calendar-actions button:first-child, .calendar-actions button:last-child { width: 34px; padding: 0; font-size: 21px; }
.weekday-row, .calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.weekday-row { margin-top: 14px; color: var(--muted); font-size: 12px; text-align: center; }
.calendar-grid { margin-top: 8px; }
.day-cell {
  min-height: 48px;
  border-radius: 16px;
  background: #f7faf8;
  color: #26342e;
  position: relative;
  padding: 7px 4px 5px;
  text-align: center;
  border: 1px solid transparent;
}
.day-cell .num { display: block; font-weight: 800; font-size: 15px; }
.day-cell .count { display: block; margin-top: 2px; font-size: 10px; color: var(--muted); }
.day-cell.out-month { opacity: .32; }
.day-cell.selected { background: #173f31; color: #fff; box-shadow: 0 10px 22px rgba(31,122,92,.28); }
.day-cell.selected .count { color: rgba(255,255,255,.72); }
.day-cell.today { border-color: var(--green); }
.day-cell::after {
  content: "";
  width: 6px; height: 6px;
  border-radius: 50%;
  position: absolute; left: 50%; bottom: 5px; transform: translateX(-50%);
  background: transparent;
}
.day-cell.has-open::after { background: var(--green-2); }
.day-cell.has-tight::after { background: var(--amber); }
.day-cell.has-full::after { background: #9ba6a0; }
.calendar-legend { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 12px; color: var(--muted); font-size: 12px; }
.dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 5px; }
.dot.green { background: var(--green-2); }
.dot.amber { background: var(--amber); }
.dot.gray { background: #9ba6a0; }
.sticky-title {
  position: sticky;
  top: 0;
  z-index: 3;
  padding: 10px 0 8px;
  background: linear-gradient(var(--bg) 80%, rgba(243,247,242,0));
}
.agenda-list { display: grid; gap: 12px; }
.empty-state {
  padding: 26px 20px;
  text-align: center;
  border-radius: 22px;
  background: #fff;
  color: var(--muted);
  border: 1px dashed #cbd9cf;
}
.game-card {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 8px;
  padding: 12px;
  border-radius: 24px;
}
.game-time {
  display: flex; align-items: center; justify-content: center;
  border-radius: 18px;
  background: #eef8f1;
  color: var(--green);
  font-weight: 900;
  line-height: 1.1;
  text-align: center;
  white-space: pre-line;
}
.game-body { min-width: 0; }
.game-header { display: flex; justify-content: space-between; gap: 8px; align-items: flex-start; }
.game-header h3 { margin: 0; font-size: 17px; letter-spacing: -0.02em; }
.venue { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.status-pill { flex: 0 0 auto; padding: 5px 8px; border-radius: 999px; font-size: 11px; font-weight: 800; }
.status-pill.open { background: var(--mint); color: var(--green); }
.status-pill.tight { background: #fff4dc; color: #9a5a00; }
.status-pill.full { background: #edf0ee; color: #6f7d75; }
.tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 8px; }
.tags span { padding: 5px 7px; border-radius: 999px; background: #f3f6f4; color: #587067; font-size: 11px; }
.progress-wrap { margin-top: 10px; }
.progress-meta { display: flex; justify-content: space-between; color: var(--muted); font-size: 12px; }
.progress { height: 7px; margin-top: 5px; border-radius: 999px; background: #e8efe9; overflow: hidden; }
.progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--green-2), var(--amber)); }
.game-footer { display: flex; align-items: center; justify-content: space-between; margin-top: 10px; }
.price { font-weight: 900; color: #17251d; }
.price small { color: var(--muted); font-weight: 500; }
.join-button {
  padding: 9px 13px;
  border-radius: 999px;
  background: var(--green);
  color: #fff;
  font-weight: 800;
}
.ops-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-top: 10px; }
.ops-grid article { border-radius: 22px; padding: 13px; }
.ops-grid span { color: var(--green); font-weight: 900; }
.ops-grid b { display: block; margin-top: 4px; }
.ops-grid p { margin: 6px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.fab {
  position: fixed;
  left: 50%;
  bottom: calc(72px + env(safe-area-inset-bottom));
  transform: translateX(96px);
  z-index: 9;
  padding: 13px 16px;
  border-radius: 999px;
  background: linear-gradient(135deg, #ffcf5a, #ff8c3a);
  color: #44250c;
  font-weight: 900;
  box-shadow: 0 14px 32px rgba(255,140,58,.36);
}
.bottom-nav {
  position: fixed;
  left: 50%; bottom: 0;
  transform: translateX(-50%);
  width: min(100%, 430px);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  padding: 8px 8px calc(8px + env(safe-area-inset-bottom));
  background: rgba(255,255,255,.92);
  border-top: 1px solid var(--line);
  backdrop-filter: blur(18px);
  z-index: 8;
}
.bottom-nav button { background: transparent; color: var(--muted); font-size: 12px; }
.bottom-nav span { display: block; font-size: 19px; }
.bottom-nav .active { color: var(--green); font-weight: 800; }
.sheet-mask {
  position: fixed; inset: 0;
  background: rgba(7,18,12,.38);
  z-index: 20;
}
.bottom-sheet {
  position: fixed;
  left: 50%; bottom: 0;
  transform: translateX(-50%);
  width: min(100%, 430px);
  max-height: 86vh;
  overflow: auto;
  padding: 10px 18px calc(22px + env(safe-area-inset-bottom));
  border-radius: 28px 28px 0 0;
  background: #fff;
  z-index: 21;
  box-shadow: 0 -16px 42px rgba(0,0,0,.18);
}
.sheet-handle { width: 42px; height: 5px; border-radius: 999px; background: #d9e2dc; margin: 0 auto 14px; }
.sheet-title { margin: 0; font-size: 22px; letter-spacing: -0.03em; }
.sheet-subtitle { margin: 6px 0 14px; color: var(--muted); }
.sheet-list { display: grid; gap: 10px; margin: 14px 0; }
.sheet-list div { padding: 12px; border-radius: 16px; background: #f6faf7; }
.sheet-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 16px; }
.sheet-actions button { padding: 13px; border-radius: 16px; font-weight: 900; }
.primary-action { background: var(--green); color: white; }
.secondary-action { background: #edf5ef; color: var(--green); }
@media (max-width: 360px) {
  .game-card { grid-template-columns: 54px 1fr; }
  .today-panel span { font-size: 10px; }
  .fab { transform: translateX(82px); }
}
.publish-form { display: grid; gap: 12px; }
.template-row { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 2px; scrollbar-width: none; }
.template-row::-webkit-scrollbar { display: none; }
.template-row button {
  flex: 0 0 auto;
  padding: 9px 12px;
  border-radius: 999px;
  background: #edf5ef;
  color: var(--green);
  font-weight: 800;
}
.form-grid { display: grid; gap: 10px; }
.form-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.field { display: grid; gap: 6px; }
.field span { color: #40564b; font-size: 12px; font-weight: 800; }
.field input,
.field select,
.field textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid #dce7e0;
  outline: 0;
  border-radius: 15px;
  background: #f8fbf9;
  color: var(--ink);
  padding: 11px 12px;
  font-size: 14px;
}
.field textarea { resize: vertical; line-height: 1.45; }
.field input:focus,
.field select:focus,
.field textarea:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(31,122,92,.12); background: #fff; }
.switch-row {
  display: grid;
  grid-template-columns: 24px 1fr;
  gap: 10px;
  align-items: center;
  padding: 12px;
  border-radius: 16px;
  background: #f4faf6;
  border: 1px solid #dcebe2;
}
.switch-row input { width: 20px; height: 20px; accent-color: var(--green); }
.switch-row span { display: grid; gap: 3px; color: var(--ink); }
.switch-row small { color: var(--muted); line-height: 1.35; }
.form-hint { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.form-error {
  padding: 10px 12px;
  border-radius: 14px;
  background: #fff1f0;
  color: #b42318;
  border: 1px solid #ffd7d4;
  font-size: 13px;
  font-weight: 700;
}
.success-card {
  text-align: center;
  padding: 18px 12px 10px;
}
.success-card span {
  display: inline-grid;
  place-items: center;
  width: 54px;
  height: 54px;
  margin-bottom: 10px;
  border-radius: 50%;
  background: var(--mint);
  color: var(--green);
  font-size: 28px;
  font-weight: 900;
}
.success-card p { margin: 8px 0 0; color: var(--muted); line-height: 1.45; }
@media (max-width: 360px) {
  .form-grid.three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.social-section,
.circle-section,
.feed-section { margin-top: 16px; }
.social-strip {
  display: flex;
  gap: 10px;
  margin: 10px -14px 0;
  padding: 0 14px 2px;
  overflow-x: auto;
  scrollbar-width: none;
}
.social-strip::-webkit-scrollbar { display: none; }
.partner-card,
.circle-card,
.feed-card {
  background: #fff;
  border: 1px solid rgba(227,235,229,.9);
  box-shadow: 0 10px 24px rgba(20,34,27,.07);
}
.partner-card { flex: 0 0 154px; padding: 13px; border-radius: 22px; }
.partner-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.partner-top span { padding: 5px 7px; border-radius: 999px; background: #fff3d8; color: #9a5a00; font-size: 11px; font-weight: 900; }
.partner-card h3 { margin: 9px 0 3px; font-size: 16px; }
.partner-card p { margin: 0; color: var(--muted); font-size: 12px; }
.big-avatar,
.profile-avatar,
.avatar-chip {
  display: inline-grid;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(135deg, #dff6ea, #9be0b8);
  color: var(--green);
  font-weight: 900;
  border: 2px solid #fff;
}
.big-avatar { width: 44px; height: 44px; font-size: 18px; }
.avatar-chip { width: 30px; height: 30px; font-size: 12px; margin-left: -6px; box-shadow: 0 3px 9px rgba(20,34,27,.12); }
.avatar-stack { display: flex; align-items: center; padding-left: 6px; }
.avatar-more { display: inline-grid; place-items: center; width: 30px; height: 30px; margin-left: -6px; border-radius: 50%; background: #e8efe9; color: var(--muted); font-size: 11px; font-weight: 900; border: 2px solid #fff; }
.mini-tags, .tag-cloud { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.mini-tags i,
.tag-cloud span { padding: 5px 7px; border-radius: 999px; background: #f3f6f4; color: #587067; font-size: 11px; font-style: normal; }
.inline-action { margin-top: 10px; padding: 8px 10px; border-radius: 999px; background: #edf5ef; color: var(--green); font-size: 12px; font-weight: 900; }
.circle-list, .feed-list { display: grid; gap: 10px; margin-top: 10px; }
.circle-card { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: center; padding: 13px; border-radius: 22px; }
.circle-card h3, .feed-card h3 { margin: 0; font-size: 16px; }
.circle-card p, .feed-card p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.circle-meta { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; }
.circle-meta span { padding: 5px 7px; border-radius: 999px; background: #f3f6f4; color: #587067; font-size: 11px; font-weight: 800; }
.feed-card { padding: 13px; border-radius: 22px; }
.feed-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.feed-head span { padding: 5px 7px; border-radius: 999px; background: #eef8f1; color: var(--green); font-size: 11px; font-weight: 900; }
.mini-attendees { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 9px; color: var(--muted); font-size: 12px; }
.attendee-wall { padding: 13px; border-radius: 18px; background: #f4faf6; border: 1px solid #dcebe2; }
.attendee-wall p { margin: 9px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.social-actions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 12px; }
.social-actions button { padding: 10px 6px; border-radius: 14px; background: #edf5ef; color: var(--green); font-size: 12px; font-weight: 900; }
.profile-hero { display: flex; align-items: center; gap: 12px; }
.profile-avatar { width: 58px; height: 58px; font-size: 24px; flex: 0 0 auto; }
.profile-avatar.captain { background: linear-gradient(135deg, #ffe6a3, #ffc25a); color: #7b4300; }
.profile-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 14px 0; }
.profile-stats div { padding: 11px 6px; border-radius: 16px; background: #f6faf7; text-align: center; }
.profile-stats b { display: block; color: var(--green); font-size: 18px; }
.profile-stats span { color: var(--muted); font-size: 11px; }
.invite-list { display: grid; gap: 9px; margin: 14px 0; }
.invite-list article { display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 9px; padding: 10px; border-radius: 16px; background: #f6faf7; }
.invite-list b { display: block; font-size: 14px; }
.invite-list span { display: block; color: var(--muted); font-size: 11px; margin-top: 2px; }
.tag-cloud.selectable span { background: #edf5ef; color: var(--green); font-weight: 800; }
.three-actions { grid-template-columns: 1fr; }
@media (max-width: 360px) {
  .partner-card { flex-basis: 142px; }
  .social-actions { grid-template-columns: 1fr; }
}

.bottom-nav .nav-publish {
  position: relative;
  transform: translateY(-14px);
  color: #44250c;
  font-weight: 900;
}
.bottom-nav .nav-publish span {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  margin: -12px auto 2px;
  border-radius: 50%;
  background: linear-gradient(135deg, #ffcf5a, #ff8c3a);
  color: #44250c;
  font-size: 30px;
  box-shadow: 0 12px 26px rgba(255,140,58,.36);
}
.bottom-nav #openSocialNav span,
.bottom-nav #openMoreNav span,
.bottom-nav #openMineNav span,
.bottom-nav #navCalendar span { font-size: 19px; }

/* v=circle_profiles_clubs_20260627_1814: align 5-tab bottom nav */
.bottom-nav {
  align-items: center;
  min-height: 70px;
  padding: 7px 8px calc(7px + env(safe-area-inset-bottom));
}
.bottom-nav button {
  display: grid;
  place-items: center;
  gap: 3px;
  min-height: 50px;
  line-height: 1.05;
}
.bottom-nav .nav-publish {
  transform: none;
  color: #44250c;
}
.bottom-nav .nav-publish span {
  width: 42px;
  height: 34px;
  margin: 0 auto 1px;
  border-radius: 18px;
  font-size: 25px;
  line-height: 1;
  box-shadow: 0 8px 18px rgba(255,140,58,.26);
}

/* v=circle_profiles_clubs_20260627_1814: force 5 equal columns */
.bottom-nav {
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  column-gap: 0;
}
.bottom-nav button {
  width: 100%;
  min-width: 0;
}

/* v=circle_profiles_clubs_20260627_1814: publish hub + circle activities */
.publish-hub-grid { display: grid; gap: 10px; margin-top: 14px; }
.publish-hub-grid button {
  display: grid;
  grid-template-columns: 46px 1fr;
  grid-template-areas: "icon title" "icon sub";
  align-items: center;
  gap: 2px 10px;
  padding: 13px;
  border-radius: 18px;
  background: #f6faf7;
  border: 1px solid #dfece4;
  text-align: left;
}
.publish-hub-grid span { grid-area: icon; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 15px; background: #fff; font-size: 22px; }
.publish-hub-grid b { grid-area: title; font-size: 15px; color: var(--text); }
.publish-hub-grid small { grid-area: sub; color: var(--muted); font-size: 12px; }
.activity-circle-panel { display: grid; gap: 10px; margin-top: 12px; }
.circle-subtitle { display: flex; align-items: center; justify-content: space-between; color: var(--text); font-size: 14px; }
.circle-subtitle button { padding: 6px 9px; border-radius: 999px; background: #edf5ef; color: var(--green); font-size: 12px; font-weight: 900; }
.activity-post-list { display: grid; gap: 10px; }
.activity-post-card { display: grid; grid-template-columns: 68px 1fr; gap: 10px; padding: 11px; border-radius: 20px; background: #fff; border: 1px solid rgba(227,235,229,.9); box-shadow: 0 10px 22px rgba(20,34,27,.06); }
.activity-cover { border-radius: 16px; min-height: 68px; background: linear-gradient(135deg, #e4f4ff, #7db7ff); }
.activity-cover.meal { background: linear-gradient(135deg, #fff0c2, #ffb55f, #f26f4c); }
.activity-cover.travel { background: linear-gradient(135deg, #dcecff, #7db7ff, #4d73d9); }
.activity-cover.other { background: linear-gradient(135deg, #f1e4ff, #b58cff, #6b4bd8); }
.activity-post-card h3 { margin: 2px 0 3px; font-size: 15px; }
.activity-post-card p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.4; }
.activity-type { display: inline-flex; width: fit-content; padding: 4px 7px; border-radius: 999px; background: #eef8f1; color: var(--green); font-size: 11px; font-weight: 900; }
.activity-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 7px; }
.activity-meta span { padding: 4px 7px; border-radius: 999px; background: #f3f6f4; color: #587067; font-size: 11px; font-weight: 800; }
.circle-photo-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.circle-photo-card { overflow: hidden; border-radius: 20px; background: #fff; border: 1px solid rgba(227,235,229,.9); box-shadow: 0 10px 22px rgba(20,34,27,.06); }
.circle-photo { min-height: 118px; background-size: cover; background-position: center; display: grid; place-items: center; color: #fff; font-size: 32px; }
.circle-photo-info { padding: 9px; }
.circle-photo-info b { display: block; font-size: 13px; }
.circle-photo-info p { margin: 4px 0; color: var(--muted); font-size: 11px; line-height: 1.35; }
.circle-photo-info small { color: #7b8f86; font-size: 10px; }
.photo-preview-placeholder { display: grid; place-items: center; min-height: 150px; padding: 12px; border: 1px dashed #b8cbbf; border-radius: 18px; background: #f7fbf8; color: var(--muted); text-align: center; font-size: 12px; }
.photo-preview-placeholder.has-image { padding: 0; overflow: hidden; border-style: solid; }
.photo-preview-placeholder img { width: 100%; height: 220px; object-fit: cover; display: block; }

/* v=circle_profiles_clubs_20260627_1814: unified bottom nav geometry */
.bottom-nav {
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  align-items: center !important;
  min-height: 72px !important;
  padding: 7px 8px calc(7px + env(safe-area-inset-bottom)) !important;
  column-gap: 0 !important;
}
.bottom-nav button {
  width: 100% !important;
  min-width: 0 !important;
  height: 54px !important;
  min-height: 54px !important;
  display: grid !important;
  grid-template-rows: 28px 16px !important;
  place-items: center !important;
  gap: 2px !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  font-size: 11px !important;
}
.bottom-nav button > span {
  width: 28px !important;
  height: 28px !important;
  display: grid !important;
  place-items: center !important;
  margin: 0 auto !important;
  font-size: 19px !important;
  line-height: 1 !important;
}
.bottom-nav .nav-publish {
  transform: none !important;
  color: #44250c !important;
  font-weight: 900 !important;
}
.bottom-nav .nav-publish > span {
  width: 42px !important;
  height: 32px !important;
  border-radius: 17px !important;
  background: linear-gradient(135deg, #ffcf5a, #ff8c3a) !important;
  color: #44250c !important;
  font-size: 24px !important;
  box-shadow: 0 8px 18px rgba(255,140,58,.24) !important;
}

/* v=circle_profiles_clubs_20260627_1814: mine center polish */
.feed-section { display: none !important; }
.mine-hero-card { display: flex; align-items: center; gap: 12px; padding: 12px; border-radius: 20px; background: linear-gradient(135deg, #f5fbf7, #fff7e5); border: 1px solid #e1eddf; }
.mine-avatar { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 50%; background: linear-gradient(135deg, #dff6ea, #9be0b8); color: var(--green); font-size: 24px; font-weight: 900; }
.mine-stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 12px 0; }
.mine-stats-grid div { padding: 11px 6px; border-radius: 16px; background: #f6faf7; text-align: center; }
.mine-stats-grid b { display: block; color: var(--green); font-size: 18px; }
.mine-stats-grid span { color: var(--muted); font-size: 11px; }
.mine-menu-list { display: grid; gap: 9px; }
.mine-menu-list button { display: grid; grid-template-columns: 38px 1fr 16px; align-items: center; gap: 10px; padding: 11px; border-radius: 16px; background: #fff; border: 1px solid #e4ede7; text-align: left; }
.mine-menu-list button > span { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 13px; background: #edf5ef; }
.mine-menu-list b { display: block; font-size: 14px; color: var(--text); }
.mine-menu-list small { display: block; margin-top: 2px; color: var(--muted); font-size: 11px; }
.mine-menu-list i { color: var(--muted); font-style: normal; font-size: 18px; }


/* v=circle_profiles_clubs_20260627_1814: more section cards */
.more-feature-grid { display: grid; gap: 10px; }
.more-feature-card { display: grid; grid-template-columns: 42px 1fr 18px; align-items: center; gap: 11px; width: 100%; padding: 13px; border-radius: 20px; background: #fff; border: 1px solid rgba(227,235,229,.95); box-shadow: 0 10px 22px rgba(20,34,27,.06); text-align: left; }
.more-feature-card > span { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 14px; background: #edf5ef; font-size: 21px; }
.more-feature-card b { display: block; color: var(--text); font-size: 15px; }
.more-feature-card p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.35; }
.more-feature-card i { color: var(--muted); font-style: normal; font-size: 20px; }
.more-feature-sheet-list div { border-left: 3px solid #9be0b8; }


/* v=circle_profiles_clubs_20260627_1814: calendar activity/tournament cards */
.calendar-extra-card.activity-card { border-color: rgba(255, 184, 88, .42); }
.calendar-extra-card.tournament-card { border-color: rgba(102, 126, 234, .38); }
.calendar-extra-card.activity-card .game-time { background: #fff4da; color: #ad6a00; }
.calendar-extra-card.tournament-card .game-time { background: #eef1ff; color: #4f5fc8; }
.status-pill.event-activity { background: #fff2cd; color: #9b6100; }
.status-pill.event-tournament { background: #e9edff; color: #4f5fc8; }
.calendar-extra-card .progress i { background: linear-gradient(90deg, #8fd7b0, #667eea); }


/* v=circle_profiles_clubs_20260627_1814: create fixed circle */
.created-circle-card { border-color: rgba(47,143,91,.32); background: linear-gradient(180deg, #ffffff 0%, #f3fbf6 100%); }


/* v=circle_profiles_clubs_20260627_1814: upgraded publish/circle/activity UI */
.publish-hub-hero, .publish-form-hero { display: flex; align-items: center; gap: 12px; padding: 13px; border-radius: 22px; background: linear-gradient(135deg, #f5fbf7, #fff6df); border: 1px solid #e1eddf; }
.publish-hub-hero > span, .publish-form-hero > span { display: grid; place-items: center; flex: 0 0 52px; width: 52px; height: 52px; border-radius: 18px; background: #fff; font-size: 28px; box-shadow: 0 10px 22px rgba(20,34,27,.08); }
.publish-hub-grid.upgraded { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.publish-hub-grid.upgraded button { min-height: 116px; grid-template-columns: 1fr; grid-template-areas: "icon" "title" "sub" "badge"; align-content: start; gap: 6px; padding: 14px; border-radius: 22px; background: #fff; box-shadow: 0 12px 26px rgba(20,34,27,.07); }
.publish-hub-grid.upgraded button span { width: 44px; height: 44px; border-radius: 16px; background: #edf5ef; }
.publish-hub-grid.upgraded button i { grid-area: badge; width: fit-content; margin-top: 2px; padding: 4px 7px; border-radius: 999px; background: #eef8f1; color: var(--green); font-size: 10px; font-style: normal; font-weight: 900; }
.publish-hub-grid.upgraded .circle-create { background: linear-gradient(180deg, #fff 0%, #f0fbf4 100%); border-color: rgba(47,143,91,.28); }
.publish-hub-tip { margin-top: 10px; padding: 10px 12px; border-radius: 16px; background: #f7fbf8; color: #587067; font-size: 12px; line-height: 1.45; }
.polished-form { gap: 10px; }
.form-card-block { display: grid; gap: 9px; padding: 12px; border-radius: 20px; background: #fff; border: 1px solid #e4ede7; box-shadow: 0 10px 22px rgba(20,34,27,.045); }
.form-card-block > b { color: var(--green); font-size: 13px; }
.form-card-block label { margin: 0; }
.form-preview-strip { display: flex; flex-wrap: wrap; gap: 7px; }
.form-preview-strip span { padding: 6px 9px; border-radius: 999px; background: #eef8f1; color: var(--green); font-size: 11px; font-weight: 900; }
.circle-hero { background: linear-gradient(135deg, #effaf3, #fff6df); }
.activity-hero { background: linear-gradient(135deg, #fff7df, #f1e9ff); }
@media (max-width: 390px) { .publish-hub-grid.upgraded { grid-template-columns: 1fr; } }


/* v=circle_profiles_clubs_20260627_1814: richer tappable user profile */
.avatar, .big-avatar, .avatar-chip, .profile-avatar { cursor: pointer; }
.avatar:active, .big-avatar:active, .avatar-chip:active, .profile-avatar:active { transform: scale(.96); }
.rich-profile-hero { padding: 13px; border-radius: 22px; background: linear-gradient(135deg, #f5fbf7, #fff7e5); border: 1px solid #e1eddf; }
.tappable-avatar { width: 64px; height: 64px; font-size: 26px; box-shadow: 0 12px 24px rgba(20,34,27,.10); }
.rich-profile-stats { grid-template-columns: repeat(4, 1fr); }
.profile-info-card { margin-top: 10px; padding: 12px; border-radius: 18px; background: #fff; border: 1px solid #e4ede7; box-shadow: 0 8px 18px rgba(20,34,27,.045); }
.profile-info-card b { color: var(--green); font-size: 13px; }
.profile-info-card p { margin: 6px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.profile-badges span { background: #eef8f1; color: var(--green); font-weight: 900; }
@media (max-width: 370px) { .rich-profile-stats { grid-template-columns: repeat(2, 1fr); } }


/* v=circle_profiles_clubs_20260627_1814: gender distinction */
.gender-badge { display: inline-flex; align-items: center; justify-content: center; padding: 3px 7px; border-radius: 999px; font-size: 10px; font-style: normal; font-weight: 900; vertical-align: middle; }
.gender-badge.male { background: #e8f1ff; color: #3467d6; }
.gender-badge.female { background: #ffe9f2; color: #d9487f; }
.gender-badge.unknown { background: #eef2ef; color: #6d7b73; }
.avatar-chip.male, .big-avatar.male, .profile-avatar.male { background: linear-gradient(135deg, #dcecff, #91bfff); color: #2356b8; }
.avatar-chip.female, .big-avatar.female, .profile-avatar.female { background: linear-gradient(135deg, #ffe5f0, #ff9cc2); color: #a3215d; }
.partner-card h3 .gender-badge { margin-left: 4px; }
.gender-info p { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }


/* v=circle_profiles_clubs_20260627_1814: photos in user profile */
.profile-photo-section { margin-top: 12px; padding: 12px; border-radius: 20px; background: #fff; border: 1px solid #e4ede7; box-shadow: 0 8px 18px rgba(20,34,27,.045); }
.profile-section-title { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 10px; }
.profile-section-title b { color: var(--text); font-size: 14px; }
.profile-section-title span { padding: 4px 8px; border-radius: 999px; background: #eef8f1; color: var(--green); font-size: 11px; font-weight: 900; }
.profile-photo-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.profile-photo-card { overflow: hidden; border-radius: 16px; background: #f7fbf8; border: 1px solid #e7f0ea; }
.profile-photo-thumb { min-height: 92px; background-size: cover; background-position: center; display: grid; place-items: center; color: #fff; font-size: 28px; }
.profile-photo-card div:last-child { padding: 8px; }
.profile-photo-card b { display: block; font-size: 12px; color: var(--text); }
.profile-photo-card p { margin: 4px 0; color: var(--muted); font-size: 10px; line-height: 1.35; }
.profile-photo-card small { color: #7b8f86; font-size: 10px; }
.profile-empty-photo { padding: 12px; border-radius: 16px; background: #f7fbf8; color: var(--muted); font-size: 12px; line-height: 1.45; }


/* v=circle_profiles_clubs_20260627_1814: club logo + random activities */
.club-logo-preview { display: grid; place-items: center; gap: 6px; min-height: 122px; padding: 12px; border-radius: 20px; border: 1px dashed #b8cbbf; background: #f7fbf8; color: var(--muted); text-align: center; }
.club-logo-preview span { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 18px; background: linear-gradient(135deg, #dff6ea, #9be0b8); color: var(--green); font-size: 24px; font-weight: 900; }
.club-logo-preview small { font-size: 12px; }
.club-logo-preview.has-image { border-style: solid; }
.club-logo-preview img { width: 74px; height: 74px; border-radius: 20px; object-fit: cover; box-shadow: 0 10px 22px rgba(20,34,27,.12); }
.club-logo-thumb { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 16px; overflow: hidden; background: linear-gradient(135deg, #dff6ea, #9be0b8); color: var(--green); font-size: 18px; font-weight: 900; }
.club-logo-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.created-circle-card { grid-template-columns: 48px 1fr auto; }
.created-circle-card .circle-meta { grid-column: 1 / -1; }
.club-detail-hero { display: flex; align-items: center; gap: 12px; padding: 12px; border-radius: 22px; background: linear-gradient(135deg, #f5fbf7, #fff7e5); border: 1px solid #e1eddf; }
.club-detail-logo { display: grid; place-items: center; flex: 0 0 64px; width: 64px; height: 64px; border-radius: 20px; overflow: hidden; background: linear-gradient(135deg, #dff6ea, #9be0b8); color: var(--green); font-size: 24px; font-weight: 900; }
.club-detail-logo img { width: 100%; height: 100%; object-fit: cover; display: block; }


/* v=circle_profiles_clubs_20260627_1814: larger club description editor */
.form-card-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.form-card-title b { color: var(--green); font-size: 13px; }
.form-card-title span { color: #7b8f86; font-size: 11px; line-height: 1.35; text-align: right; max-width: 150px; }
.club-desc-block { padding: 14px; background: linear-gradient(180deg, #ffffff 0%, #f8fcfa 100%); }
.club-desc-textarea { min-height: 138px; padding: 13px 14px; border-radius: 18px; border: 1px solid #dce9e1; background: #fbfefc; font-size: 14px; line-height: 1.55; resize: vertical; }
.club-desc-textarea:focus { outline: none; border-color: var(--green); box-shadow: 0 0 0 3px rgba(31,122,92,.12); background: #fff; }


/* v=circle_profiles_clubs_20260627_1814: mine center club list */
.mine-club-list { display: grid; gap: 10px; margin-top: 12px; }
.mine-club-card { display: grid; grid-template-columns: 46px 1fr auto; align-items: center; gap: 10px; padding: 11px; border-radius: 18px; background: #fff; border: 1px solid #e4ede7; text-align: left; box-shadow: 0 8px 18px rgba(20,34,27,.045); }
.mine-club-card b { display: block; color: var(--text); font-size: 14px; }
.mine-club-card small { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; line-height: 1.35; }
.mine-club-card i { color: var(--green); font-size: 11px; font-style: normal; font-weight: 900; white-space: nowrap; }
.mine-club-logo { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 16px; overflow: hidden; background: linear-gradient(135deg, #dff6ea, #9be0b8); color: var(--green); font-size: 18px; font-weight: 900; }
.mine-club-logo img { width: 100%; height: 100%; object-fit: cover; display: block; }


/* v=circle_profiles_clubs_20260627_1814: club points and sponsors */
.club-points-card { margin: 12px 0; padding: 13px; border-radius: 20px; background: linear-gradient(135deg, #f0fff6 0%, #fff8df 100%); border: 1px solid #dcefe3; box-shadow: 0 10px 22px rgba(20,34,27,.055); }
.club-points-card > div:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.club-points-card p { margin: 0; color: #7b8f86; font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.club-points-card b { color: var(--green); font-size: 24px; }
.club-points-card span { color: var(--muted); font-size: 11px; }
.club-point-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.club-point-grid span { padding: 8px; border-radius: 14px; background: rgba(255,255,255,.72); color: #5f7168; font-size: 11px; }
.club-point-grid span b { display: block; margin-top: 2px; font-size: 15px; color: var(--text); }
.club-sponsor-card { margin: 12px 0; padding: 12px; border-radius: 20px; background: #fff; border: 1px solid #e4ede7; box-shadow: 0 8px 18px rgba(20,34,27,.045); }
.club-card-title { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 9px; }
.club-card-title b { color: var(--text); font-size: 14px; }
.club-card-title span { color: var(--green); font-size: 11px; font-weight: 900; }
.club-sponsor-list { display: grid; gap: 8px; }
.club-sponsor-list article { display: grid; grid-template-columns: 34px 1fr; gap: 9px; align-items: center; padding: 9px; border-radius: 15px; background: #f7fbf8; }
.club-sponsor-list article > div { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 12px; background: linear-gradient(135deg, #ffe7a8, #ffc765); color: #7b4300; font-weight: 900; }
.club-sponsor-list b { display: block; color: var(--text); font-size: 13px; }
.club-sponsor-list p { margin: 3px 0 0; color: var(--muted); font-size: 11px; line-height: 1.35; }

/* v=mine_drilldown_20260630: actionable mine center */
.preference-summary { display: grid; gap: 4px; margin: 10px 0 12px; padding: 11px 12px; border-radius: 16px; background: #f7fbf8; border: 1px solid #e1eddf; }
.preference-summary b { color: var(--green); font-size: 13px; }
.preference-summary span { color: var(--muted); font-size: 12px; line-height: 1.45; }
.mine-record-list { display: grid; gap: 9px; margin: 14px 0; }
.mine-record-card { display: grid; grid-template-columns: 58px 1fr auto; align-items: center; gap: 10px; width: 100%; padding: 11px; border-radius: 17px; background: #fff; border: 1px solid #e4ede7; text-align: left; box-shadow: 0 8px 18px rgba(20,34,27,.05); }
.mine-record-card b { display: block; color: var(--text); font-size: 14px; }
.mine-record-card small { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; line-height: 1.35; }
.mine-record-card i { color: var(--green); font-style: normal; font-weight: 900; font-size: 12px; }
.mine-mini-status { display: inline-flex; justify-content: center; align-items: center; min-height: 28px; padding: 4px 7px; border-radius: 999px; background: #eef8f1; color: var(--green); font-size: 11px; font-weight: 900; }
.mine-photo-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 14px 0; }
.mine-photo-card { overflow: hidden; border-radius: 18px; background: #fff; border: 1px solid #e4ede7; box-shadow: 0 8px 18px rgba(20,34,27,.05); }
.mine-photo-thumb { min-height: 112px; display: grid; place-items: center; background-size: cover; background-position: center; color: #fff; font-size: 28px; }
.mine-photo-card b { display: block; padding: 9px 9px 0; font-size: 13px; color: var(--text); }
.mine-photo-card small { display: block; padding: 4px 9px 10px; color: var(--muted); font-size: 11px; line-height: 1.35; }
.mine-record-card .inline-action { margin-top: 0; white-space: nowrap; }


/* v=ai_motion_review_20260701: AI motion review entry */
.ai-review-entry { margin-top: 14px; }
.ai-review-card {
  width: 100%;
  display: grid;
  grid-template-columns: 52px 1fr auto;
  align-items: center;
  gap: 11px;
  padding: 13px;
  border-radius: 24px;
  background: linear-gradient(135deg, #142b3d 0%, #1f7a5c 52%, #8fe1b2 100%);
  color: #fff;
  box-shadow: 0 16px 34px rgba(20, 43, 61, .18);
  text-align: left;
}
.ai-review-card:active { transform: translateY(1px); }
.ai-review-icon {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 18px;
  background: rgba(255,255,255,.18);
  border: 1px solid rgba(255,255,255,.18);
  font-size: 25px;
}
.ai-review-copy { display: grid; gap: 2px; min-width: 0; }
.ai-review-copy small { color: rgba(255,255,255,.74); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; font-weight: 900; }
.ai-review-copy b { font-size: 18px; line-height: 1.15; }
.ai-review-copy em { color: rgba(255,255,255,.86); font-size: 12px; font-style: normal; line-height: 1.35; }
.ai-review-card i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  padding: 8px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.94);
  color: var(--green);
  font-size: 12px;
  font-style: normal;
  font-weight: 900;
}
.ai-review-hero {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px;
  border-radius: 22px;
  background: linear-gradient(135deg, #eff8ff 0%, #f0fff6 55%, #fff6df 100%);
  border: 1px solid #dcefe3;
}
.ai-review-hero > span {
  display: grid;
  place-items: center;
  flex: 0 0 54px;
  width: 54px;
  height: 54px;
  border-radius: 18px;
  background: #fff;
  font-size: 28px;
  box-shadow: 0 10px 22px rgba(20,34,27,.08);
}
.ai-upload-panel { border-color: rgba(31,122,92,.22); background: linear-gradient(180deg, #ffffff 0%, #f7fcf9 100%); }
.ai-video-preview {
  display: grid;
  place-items: center;
  min-height: 164px;
  padding: 12px;
  border: 1px dashed #b8cbbf;
  border-radius: 20px;
  background: #f7fbf8;
  color: var(--muted);
  text-align: center;
  font-size: 12px;
  line-height: 1.45;
  overflow: hidden;
}
.ai-video-preview.has-video { padding: 0; border-style: solid; background: #101d18; }
.ai-video-preview video { display: block; width: 100%; max-height: 260px; object-fit: contain; background: #101d18; }
.ai-upload-meta { padding: 9px 10px; color: #587067; font-size: 12px; line-height: 1.45; }
.ai-processing-card,
.ai-result-card,
.ai-history-card {
  margin-top: 12px;
  padding: 13px;
  border-radius: 20px;
  background: #fff;
  border: 1px solid #e4ede7;
  box-shadow: 0 10px 22px rgba(20,34,27,.055);
}
.ai-processing-card { display: grid; grid-template-columns: 42px 1fr; gap: 10px; align-items: center; }
.ai-processing-spinner {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 4px solid #e4f3eb;
  border-top-color: var(--green);
  animation: aiReviewSpin .9s linear infinite;
}
@keyframes aiReviewSpin { to { transform: rotate(360deg); } }
.ai-result-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.ai-result-head h3 { margin: 0; font-size: 18px; letter-spacing: -.02em; }
.ai-result-head p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.4; }
.ai-score-ring {
  display: grid;
  place-items: center;
  flex: 0 0 68px;
  width: 68px;
  height: 68px;
  border-radius: 50%;
  background: conic-gradient(var(--green) calc(var(--score, 80) * 1%), #e7f0ea 0);
  position: relative;
}
.ai-score-ring::before { content: ""; position: absolute; inset: 7px; border-radius: 50%; background: #fff; }
.ai-score-ring b { position: relative; color: var(--green); font-size: 20px; }
.ai-score-ring small { position: relative; margin-left: 1px; color: var(--muted); font-size: 10px; }
.ai-metric-list { display: grid; gap: 9px; margin-top: 12px; }
.ai-metric-row { display: grid; grid-template-columns: 74px 1fr 38px; gap: 8px; align-items: center; }
.ai-metric-row span { color: #40564b; font-size: 12px; font-weight: 900; }
.ai-metric-bar { height: 8px; border-radius: 999px; background: #edf5ef; overflow: hidden; }
.ai-metric-bar i { display: block; height: 100%; width: calc(var(--metric, 80) * 1%); border-radius: inherit; background: linear-gradient(90deg, #30a46c, #ffcf5a); }
.ai-metric-row b { color: var(--green); font-size: 12px; text-align: right; }
.ai-review-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-top: 12px; }
.ai-review-note {
  padding: 10px;
  border-radius: 16px;
  background: #f7fbf8;
  border: 1px solid #e1eddf;
}
.ai-review-note b { display: block; color: var(--green); font-size: 13px; }
.ai-review-note ul { margin: 7px 0 0; padding-left: 18px; color: var(--muted); font-size: 12px; line-height: 1.55; }
.ai-review-note li { margin: 2px 0; }
.ai-history-card h3 { margin: 0 0 8px; font-size: 15px; }
.ai-history-list { display: grid; gap: 8px; }
.ai-history-item { display: grid; grid-template-columns: 42px 1fr auto; gap: 9px; align-items: center; padding: 9px; border-radius: 15px; background: #f7fbf8; }
.ai-history-item b { color: var(--green); font-size: 16px; }
.ai-history-item span { display: block; color: var(--ink); font-size: 13px; font-weight: 800; }
.ai-history-item small { color: var(--muted); font-size: 11px; }
.ai-history-item i { color: var(--muted); font-style: normal; font-size: 11px; }
@media (max-width: 380px) {
  .ai-review-card { grid-template-columns: 44px 1fr; }
  .ai-review-card i { grid-column: 2; justify-self: start; }
  .ai-review-icon { width: 42px; height: 42px; border-radius: 16px; }
  .ai-review-columns { grid-template-columns: 1fr; }
  .ai-metric-row { grid-template-columns: 66px 1fr 34px; }
}


/* v=auth_login_register_20260701: login/register entry on calendar */
.hero-top .auth-entry-button {
  margin-left: auto;
  height: 34px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.18);
  color: #fff;
  border: 1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(12px);
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}
.hero-top .auth-entry-button + .avatar { margin-left: 0; }
.hero-top .auth-entry-button.authed { background: rgba(255,255,255,.92); color: var(--green); }
@media (max-width: 360px) {
  .hero-top .auth-entry-button { padding: 0 8px; font-size: 11px; }
}


/* v=ai_float_entry_20260701: always-visible AI review shortcut */
.ai-review-float {
  position: fixed;
  left: 50%;
  bottom: calc(78px + env(safe-area-inset-bottom));
  transform: translateX(-50%);
  z-index: 19;
  display: grid;
  grid-template-columns: 30px auto auto;
  align-items: center;
  gap: 7px;
  min-height: 46px;
  padding: 8px 15px 8px 10px;
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(135deg, #172554 0%, #1f7a5c 58%, #22c55e 100%);
  box-shadow: 0 16px 36px rgba(23, 37, 84, .30), 0 0 0 1px rgba(255,255,255,.16) inset;
  font-weight: 900;
}
.ai-review-float span {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: rgba(255,255,255,.18);
}
.ai-review-float b { font-size: 14px; }
.ai-review-float small { color: rgba(255,255,255,.82); font-size: 11px; font-weight: 800; }
@media (max-width: 360px) {
  .ai-review-float { right: 14px; left: auto; transform: none; grid-template-columns: 30px auto; }
  .ai-review-float small { display: none; }
}


/* v=create_venue_listing_20260701: offline venue showcase */
.venue-showcase {
  margin-top: 16px;
  padding: 16px;
  border-radius: 26px;
  background: #fff;
  border: 1px solid rgba(227,235,229,.9);
  box-shadow: 0 10px 28px rgba(20,34,27,.07);
}
.venue-showcase-desc { margin: 8px 0 12px; color: var(--muted); font-size: 13px; line-height: 1.5; }
.venue-list { display: grid; gap: 10px; }
.venue-card { display: grid; grid-template-columns: 76px 1fr; gap: 10px; padding: 10px; border-radius: 20px; background: #f8fbf9; border: 1px solid #e2ece5; }
.venue-photo { display: grid; place-items: center; min-height: 76px; border-radius: 17px; background: linear-gradient(135deg, #dff6ea, #8fd7b0); font-size: 28px; overflow: hidden; }
.venue-photo img { width: 100%; height: 100%; object-fit: cover; }
.venue-body { min-width: 0; }
.venue-card-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.venue-card-head b { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.venue-status { flex: 0 0 auto; padding: 4px 8px; border-radius: 999px; font-size: 11px; font-weight: 900; background: #edf5ef; color: var(--green); }
.venue-status.pending { color: #9a5b00; background: #fff4d6; }
.venue-status.info { color: #516070; background: #eef2f6; }
.venue-body p { margin: 5px 0; color: #506157; font-size: 12px; line-height: 1.35; }
.venue-meta { display: flex; gap: 6px; flex-wrap: wrap; color: var(--muted); font-size: 11px; }
.venue-meta span { padding: 3px 7px; border-radius: 999px; background: #fff; border: 1px solid #e5eee8; }
.venue-tags { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 7px; }
.venue-tags i { font-style: normal; padding: 3px 7px; border-radius: 999px; background: #ebf8ef; color: var(--green); font-size: 11px; font-weight: 800; }
.venue-body small { display: block; margin-top: 7px; color: var(--muted); font-size: 11px; }
.venue-hero span { background: linear-gradient(135deg, #1f7a5c, #62d98c); }
.venue-photo-preview { display: grid; place-items: center; min-height: 118px; border-radius: 18px; background: #f4faf6; border: 1px dashed #c7d8ce; color: var(--muted); overflow: hidden; text-align: center; }
.venue-photo-preview span { font-size: 30px; }
.venue-photo-preview img { width: 100%; max-height: 180px; object-fit: cover; }
.venue-photo-preview.has-image small { display: block; padding: 8px; }
@media (max-width: 360px) { .venue-card { grid-template-columns: 1fr; } .venue-photo { min-height: 120px; } }


/* v=polish_venue_activity_no_fee_20260701: polished venue/activity sheets */
.refined-form-hero { position: relative; overflow: hidden; border-color: rgba(47,143,91,.20); box-shadow: 0 12px 28px rgba(20,34,27,.06); }
.refined-form-hero::after { content: ""; position: absolute; right: -22px; top: -28px; width: 110px; height: 110px; border-radius: 999px; background: rgba(47,143,91,.08); }
.venue-form-v2, .activity-form-v2 { gap: 12px; }
.form-card-highlight { background: linear-gradient(180deg, #ffffff 0%, #f5fbf7 100%); border-color: rgba(47,143,91,.18); }
.venue-form-v2 .form-card-block, .activity-form-v2 .form-card-block { padding: 14px; }
.venue-form-v2 .field, .activity-form-v2 .field, .venue-form-v2 label.field, .activity-form-v2 label.field { gap: 7px; color: #40564b; font-size: 12px; font-weight: 800; }
.venue-form-v2 input, .venue-form-v2 select, .venue-form-v2 textarea, .activity-form-v2 input, .activity-form-v2 select, .activity-form-v2 textarea { min-height: 44px; border-radius: 16px; background: #fbfefc; }
.venue-form-v2 textarea, .activity-form-v2 textarea { min-height: 104px; }
.venue-form-v2 .form-hint, .activity-form-v2 .form-hint { padding: 10px 12px; border-radius: 16px; background: #f7fbf8; border: 1px solid #e4ede7; }


/* v=remove_remaining_fee_fields_20260701: remove fee fields from publish/venue/activity UI */


/* v=role_based_launch_no_payment_20260701: role-based launch UI */
.game-launch-hero { background: linear-gradient(135deg, #eef8ff, #f5fbf7); }
.game-launch-hero > span, .publish-hub-grid.upgraded .game-launch span { background: linear-gradient(135deg, #dcecff, #8fd7b0); }
.game-launch-form .form-hint { margin: 4px 0 0; }
.publish-hub-grid.upgraded .game-launch { border-color: rgba(47,143,91,.32); background: linear-gradient(180deg, #ffffff 0%, #f2fbf6 100%); }


/* v=calendar_all_activity_types_20260701: daily all-activity summary */
.agenda-summary { padding: 13px; border-radius: 20px; background: linear-gradient(135deg, #f5fbf7, #fff8e7); border: 1px solid #e2ece5; box-shadow: 0 10px 24px rgba(20,34,27,.055); }
.agenda-summary-title { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.agenda-summary-title b { font-size: 15px; color: var(--ink); }
.agenda-summary-title span { color: var(--green); font-size: 12px; font-weight: 900; }
.agenda-summary-tags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.agenda-summary-tags span { padding: 6px 9px; border-radius: 999px; background: #fff; border: 1px solid #e5eee8; color: #587067; font-size: 11px; font-weight: 900; }


/* v=calendar_all_activity_types_fix_20260701: syntax fix and default club activity sample */


/* v=split_club_venue_games_20260701: club game vs venue game */
.publish-hub-grid.upgraded .club-game-launch { border-color: rgba(47,143,91,.30); background: linear-gradient(180deg, #ffffff 0%, #f0fbf4 100%); }
.publish-hub-grid.upgraded .venue-game-launch { border-color: rgba(82,133,255,.26); background: linear-gradient(180deg, #ffffff 0%, #f2f6ff 100%); }
.publish-hub-grid.upgraded .club-game-launch span, .club-game-hero > span { background: linear-gradient(135deg, #dcfce7, #86efac); }
.publish-hub-grid.upgraded .venue-game-launch span, .venue-game-hero > span { background: linear-gradient(135deg, #dbeafe, #93c5fd); }
.club-game-form .form-card-highlight { background: linear-gradient(180deg, #ffffff 0%, #f4fbf6 100%); }
.venue-game-form .form-card-highlight { background: linear-gradient(180deg, #ffffff 0%, #f4f7ff 100%); }


/* v=split_game_launchers_fix_20260701: actual split launcher implementations wired */


/* v=fixed_identity_launchers_20260701: locked club/venue identity cards */
.locked-identity-card { display: grid; gap: 5px; padding: 12px; border-radius: 18px; background: #fff; border: 1px solid #e3ede7; box-shadow: inset 0 0 0 1px rgba(255,255,255,.55); }
.locked-identity-card span { color: #688177; font-size: 11px; font-weight: 900; letter-spacing: .02em; }
.locked-identity-card b { color: var(--ink); font-size: 15px; }
.locked-identity-card small { color: #7a8d85; font-size: 11px; line-height: 1.5; }
.locked-identity-card.club-identity { background: linear-gradient(180deg, #ffffff 0%, #f3fbf6 100%); border-color: rgba(47,143,91,.20); }
.locked-identity-card.venue-identity { background: linear-gradient(180deg, #ffffff 0%, #f3f7ff 100%); border-color: rgba(82,133,255,.20); }


/* v=end_time_for_games_20260701: club and venue games include required end time */


/* v=end_time_detail_fix_20260701: detail sheet shows start/end time */


/* v=bottom_nav_fix_20260701: bottom nav routes pinned to same build version */


/* v=remove_ecommerce_20260701: hide badminton ecommerce from Other page */


/* v=remove_ecommerce_fix_20260701: badminton ecommerce removed from Other */


/* v=nav_consistency_20260701: venue and mine bottom-nav routes unified */


/* v=nav_consistency_fix_20260701: My intent now uses home-page My center */


/* v=unified_mine_nav_20260701: Mine nav uses home unified center from all pages */


/* v=mine_points_reports_20260701: personal points and AI review reports in Mine */
.mine-points-card { display: grid; gap: 10px; margin: 10px 0 12px; padding: 13px; border-radius: 20px; background: linear-gradient(135deg,#f7fbf8,#ecf8f1); border: 1px solid #dcebdd; box-shadow: 0 10px 22px rgba(23,88,52,.08); }
.mine-points-card.compact { margin-top: 12px; }
.mine-points-main { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 6px; }
.mine-points-main span { color: var(--muted); font-size: 12px; font-weight: 800; }
.mine-points-main b { grid-row: span 2; color: var(--green); font-size: 32px; line-height: .95; }
.mine-points-main small { color: var(--muted); font-size: 11px; line-height: 1.35; }
.mine-points-breakdown { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.mine-points-breakdown span { padding: 9px; border-radius: 14px; background: #fff; color: var(--muted); font-size: 11px; }
.mine-points-breakdown b { display: block; margin-top: 3px; color: var(--text); font-size: 16px; }
.mine-report-preview { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 8px; margin: 10px 0 12px; padding: 11px 12px; border-radius: 17px; background: #fff; border: 1px solid #e4ede7; }
.mine-report-preview b { color: var(--text); font-size: 13px; }
.mine-report-preview span { color: var(--muted); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mine-report-preview button { padding: 6px 10px; border-radius: 999px; background: #eaf6ee; color: var(--green); font-size: 12px; font-weight: 900; }
.mine-review-report-list { display: grid; gap: 9px; margin-top: 12px; }
.mine-review-report-card { display: grid; grid-template-columns: 58px 1fr; gap: 10px; padding: 11px; border-radius: 18px; background: #fff; border: 1px solid #e4ede7; }
.mine-review-score { display: grid; place-items: center; align-content: center; width: 54px; height: 54px; border-radius: 50%; background: #edf5ef; }
.mine-review-score b { color: var(--green); font-size: 20px; line-height: 1; }
.mine-review-score span { color: var(--muted); font-size: 10px; }
.mine-review-report-card strong { display: block; color: var(--text); font-size: 14px; }
.mine-review-report-card small { display: block; margin: 2px 0 6px; color: var(--muted); font-size: 11px; }
.mine-review-report-card p { margin: 3px 0 0; color: var(--muted); font-size: 11px; line-height: 1.4; }
.mine-review-report-card p b { color: var(--text); }


/* v=avatar_profile_plus_20260701: richer user avatar profile popover */
.profile-points-card { display: grid; gap: 10px; margin: 12px 0; padding: 13px; border-radius: 20px; background: linear-gradient(135deg,#f7fbf8,#edf8f1); border: 1px solid #dcebdd; box-shadow: 0 10px 22px rgba(23,88,52,.08); }
.profile-points-main { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 6px; }
.profile-points-main span { color: var(--muted); font-size: 12px; font-weight: 900; }
.profile-points-main b { grid-row: span 2; color: var(--green); font-size: 30px; line-height: .95; }
.profile-points-main small { color: var(--muted); font-size: 11px; line-height: 1.35; }
.profile-points-breakdown { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.profile-points-breakdown span { padding: 9px; border-radius: 14px; background: #fff; color: var(--muted); font-size: 11px; }
.profile-points-breakdown b { display: block; margin-top: 3px; color: var(--text); font-size: 16px; }
.profile-review-card, .profile-activity-card { margin-top: 10px; padding: 12px; border-radius: 18px; background: #fff; border: 1px solid #e4ede7; box-shadow: 0 8px 18px rgba(20,34,27,.045); }
.profile-card-title { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.profile-card-title b { color: var(--text); font-size: 14px; }
.profile-card-title span { padding: 4px 8px; border-radius: 999px; background: #eef8f1; color: var(--green); font-size: 11px; font-weight: 900; }
.profile-review-main { display: grid; gap: 3px; margin-bottom: 8px; }
.profile-review-main strong { color: var(--text); font-size: 14px; }
.profile-review-main em { color: var(--green); font-style: normal; font-size: 12px; font-weight: 900; }
.profile-review-main small { color: var(--muted); font-size: 11px; }
.profile-review-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.profile-review-grid p, .profile-activity-card p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.45; }
.profile-review-grid b { display: block; margin-bottom: 3px; color: var(--text); }
.profile-activity-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 8px; }
.profile-activity-grid span { padding: 9px 6px; border-radius: 14px; background: #f7fbf8; color: var(--muted); font-size: 11px; text-align: center; }
.profile-activity-grid b { display: block; margin-top: 3px; color: var(--green); font-size: 16px; }
@media (max-width: 370px) { .profile-review-grid, .profile-points-breakdown { grid-template-columns: 1fr; } }


/* v=venue_join_rank_20260701: joinable venues with member avatars and points ranking */
.venue-card.tappable { cursor: pointer; transition: transform .16s ease, box-shadow .16s ease; }
.venue-card.tappable:active { transform: scale(.985); }
.venue-join-preview { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 8px; padding: 7px 8px; border-radius: 15px; background: #fff; border: 1px solid #e5eee8; }
.venue-join-preview small { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.25; }
.venue-member-avatar-stack { display: flex; align-items: center; min-width: 0; padding-left: 5px; }
.venue-member-avatar { display: grid; place-items: center; width: 28px; height: 28px; margin-left: -5px; border-radius: 50%; background: linear-gradient(135deg,#e8f6ef,#9ed9b5); color: #1f513b; border: 2px solid #fff; font-size: 12px; font-weight: 900; box-shadow: 0 4px 10px rgba(20,34,27,.08); }
.venue-member-avatar.male { background: linear-gradient(135deg,#dcecff,#91bfff); color: #2356b8; }
.venue-member-avatar.female { background: linear-gradient(135deg,#ffe5f0,#ff9cc2); color: #a3215d; }
.venue-member-more { display: grid; place-items: center; width: 28px; height: 28px; margin-left: -5px; border-radius: 50%; background: #f1f5f3; border: 2px solid #fff; color: var(--muted); font-size: 10px; font-weight: 900; }
.venue-detail-hero { display: grid; grid-template-columns: 82px 1fr; gap: 12px; align-items: center; padding: 12px; border-radius: 22px; background: linear-gradient(135deg,#f5fbf7,#fff7e5); border: 1px solid #e1eddf; }
.venue-photo.large { min-height: 82px; width: 82px; }
.venue-members-card, .venue-ranking-card { margin-top: 12px; padding: 12px; border-radius: 18px; background: #fff; border: 1px solid #e4ede7; box-shadow: 0 8px 18px rgba(20,34,27,.045); }
.venue-members-card .venue-member-avatar-stack { margin-top: 8px; }
.venue-members-card .venue-member-avatar { width: 34px; height: 34px; font-size: 13px; }
.venue-ranking-list { display: grid; gap: 8px; margin-top: 9px; }
.venue-ranking-row { display: grid; grid-template-columns: 26px 32px 1fr auto; gap: 8px; align-items: center; padding: 9px; border-radius: 15px; background: #f8fbf9; border: 1px solid #e7f0ea; }
.venue-rank-no { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: #eaf6ee; color: var(--green); font-weight: 900; font-size: 12px; }
.venue-ranking-row b { display: block; color: var(--text); font-size: 13px; }
.venue-ranking-row small { display: block; margin-top: 2px; color: var(--muted); font-size: 11px; }
.venue-ranking-row strong { color: var(--green); font-size: 13px; white-space: nowrap; }
@media (max-width: 360px) { .venue-detail-hero { grid-template-columns: 1fr; } .venue-photo.large { width: 100%; } .venue-ranking-row { grid-template-columns: 24px 30px 1fr; } .venue-ranking-row strong { grid-column: 3; } }


/* v=venue_join_rank_fix_20260701: default venues start joinable and member avatars open profiles */
.venue-member-avatar[data-partner-profile] { cursor: pointer; }


/* v=club_user_rank_20260701: club member points ranking */
.club-member-preview { margin-top: 8px; }
.club-member-ranking-card .venue-member-avatar-stack { margin: 8px 0 9px; }
.club-member-ranking-card .venue-member-avatar { cursor: pointer; }
.club-member-ranking-card .avatar-chip { width: 30px; height: 30px; }


/* v=calendar_extra_avatars_20260701: activity/tournament participant avatars */
.calendar-extra-card .extra-mini-attendees { padding: 7px 8px; border-radius: 15px; background: #fff; border: 1px solid #e5eee8; }
.calendar-extra-card.tournament-card .extra-mini-attendees { background: #f7f8ff; border-color: rgba(102,126,234,.18); }
.extra-attendee-wall { margin: 12px 0; }
.extra-attendee-wall .avatar-stack { margin-bottom: 6px; }


/* v=calendar_detail_avatars_20260701: participant avatars in every calendar detail sheet */
.detail-participant-wall { margin: 12px 0; background: linear-gradient(180deg, #f8fdf9 0%, #f2faf5 100%); }
.detail-participant-wall .avatar-stack { margin-bottom: 6px; }
.detail-participant-wall .avatar-chip { width: 34px; height: 34px; font-size: 13px; }


/* v=calendar_role_share_20260701: club/venue calendar detail uses WeChat share */
.role-game-share-actions { grid-template-columns: 1fr 1fr; }
.wechat-share-action { border-color: rgba(31,122,92,.22); background: #eef8f1; color: var(--green); font-weight: 900; }
.wechat-share-hint { margin: -4px 0 0; padding: 0 2px; color: var(--muted); font-size: 11px; line-height: 1.45; }
@media (max-width: 370px) { .role-game-share-actions { grid-template-columns: 1fr; } }


/* v=tournament_wechat_share_20260701: tournament detail replaces peek with WeChat share */
.tournament-share-actions { grid-template-columns: 1fr 1fr; }
@media (max-width: 370px) { .tournament-share-actions { grid-template-columns: 1fr; } }


/* v=activity_wechat_confirm_20260701: activity detail replaces peek/view with WeChat share + confirm */
.extra-share-actions, .activity-share-actions { grid-template-columns: 1fr 1fr; }
@media (max-width: 370px) { .extra-share-actions, .activity-share-actions { grid-template-columns: 1fr; } }


/* v=role_card_colors_20260701: visually separate club and venue game cards */
.game-card.club-game-card {
  border-color: rgba(35, 130, 75, .32);
  background: linear-gradient(180deg, #ffffff 0%, #f2fbf5 100%);
  box-shadow: 0 12px 28px rgba(35, 130, 75, .09);
}
.game-card.venue-game-card {
  border-color: rgba(72, 111, 232, .30);
  background: linear-gradient(180deg, #ffffff 0%, #f3f7ff 100%);
  box-shadow: 0 12px 28px rgba(72, 111, 232, .09);
}
.game-card.club-game-card .game-time { background: #e9f8ef; color: #1f7a4a; }
.game-card.venue-game-card .game-time { background: #edf4ff; color: #365bc9; }
.game-card.club-game-card .role-tag { background: #e7f7ed; color: #207b4a; font-weight: 900; }
.game-card.venue-game-card .role-tag { background: #e9f0ff; color: #365bc9; font-weight: 900; }
.game-card.club-game-card .progress i { background: linear-gradient(90deg, #58c882, #f4c95d); }
.game-card.venue-game-card .progress i { background: linear-gradient(90deg, #6ea7ff, #8cc4ff); }
.game-card.club-game-card .join-button { background: #23824b; }
.game-card.venue-game-card .join-button { background: #486fe8; }
.game-card.club-game-card .price { color: #1f7a4a; }
.game-card.venue-game-card .price { color: #365bc9; }


/* v=calendar_four_card_colors_20260701: four calendar activity types use clearly distinct card colors */
.game-card.club-game-card {
  border-color: rgba(35,130,75,.36);
  background: linear-gradient(180deg, #ffffff 0%, #f0fbf4 100%);
  box-shadow: 0 12px 28px rgba(35,130,75,.10);
}
.game-card.venue-game-card {
  border-color: rgba(72,111,232,.34);
  background: linear-gradient(180deg, #ffffff 0%, #f2f6ff 100%);
  box-shadow: 0 12px 28px rgba(72,111,232,.10);
}
.calendar-extra-card.activity-card {
  border-color: rgba(236,151,52,.40);
  background: linear-gradient(180deg, #ffffff 0%, #fff8ec 100%);
  box-shadow: 0 12px 28px rgba(236,151,52,.10);
}
.calendar-extra-card.tournament-card {
  border-color: rgba(130,82,210,.36);
  background: linear-gradient(180deg, #ffffff 0%, #f7f2ff 100%);
  box-shadow: 0 12px 28px rgba(130,82,210,.10);
}
.game-card.club-game-card .game-time { background: #e8f8ef; color: #1f7a4a; }
.game-card.venue-game-card .game-time { background: #edf4ff; color: #365bc9; }
.calendar-extra-card.activity-card .game-time { background: #fff0d6; color: #ad6500; }
.calendar-extra-card.tournament-card .game-time { background: #f0e9ff; color: #6b46c1; }
.game-card.club-game-card .role-tag { background: #e7f7ed; color: #207b4a; font-weight: 900; }
.game-card.venue-game-card .role-tag { background: #e9f0ff; color: #365bc9; font-weight: 900; }
.calendar-extra-card.activity-card .role-tag { background: #fff0d6; color: #a85f00; font-weight: 900; }
.calendar-extra-card.tournament-card .role-tag { background: #f0e9ff; color: #6b46c1; font-weight: 900; }
.game-card.club-game-card .progress i { background: linear-gradient(90deg, #58c882, #f4c95d); }
.game-card.venue-game-card .progress i { background: linear-gradient(90deg, #6ea7ff, #8cc4ff); }
.calendar-extra-card.activity-card .progress i { background: linear-gradient(90deg, #ffb45f, #ffd166); }
.calendar-extra-card.tournament-card .progress i { background: linear-gradient(90deg, #8f7cf6, #c084fc); }
.game-card.club-game-card .join-button { background: #23824b; }
.game-card.venue-game-card .join-button { background: #486fe8; }
.calendar-extra-card.activity-card .join-button { background: #d97706; }
.calendar-extra-card.tournament-card .join-button { background: #7c3aed; }
.game-card.club-game-card .price { color: #1f7a4a; }
.game-card.venue-game-card .price { color: #365bc9; }
.calendar-extra-card.activity-card .price { color: #ad6500; }
.calendar-extra-card.tournament-card .price { color: #6b46c1; }
.calendar-extra-card.activity-card .extra-mini-attendees { background: #fffaf0; border-color: rgba(236,151,52,.22); }
.calendar-extra-card.tournament-card .extra-mini-attendees { background: #fbf7ff; border-color: rgba(130,82,210,.22); }
.status-pill.event-activity { background: #fff0d6; color: #a85f00; }
.status-pill.event-tournament { background: #f0e9ff; color: #6b46c1; }


/* v=mine_logout_20260701: logout entry in unified Mine center */
.mine-menu-list button.mine-logout-button {
  background: linear-gradient(180deg, #fff 0%, #fff8f8 100%);
  border-color: rgba(220, 72, 72, .18);
}
.mine-menu-list button.mine-logout-button > span {
  background: #fff0f0;
  color: #c24135;
}
.mine-menu-list button.mine-logout-button b { color: #a93226; }
.mine-menu-list button.mine-logout-button small { color: #9b6b66; }
.mine-logout-card {
  display: grid;
  justify-items: center;
  gap: 8px;
  padding: 18px 14px;
  border-radius: 22px;
  background: linear-gradient(180deg, #fff 0%, #fff8f8 100%);
  border: 1px solid rgba(220,72,72,.16);
  text-align: center;
}
.mine-logout-card > span {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 18px;
  background: #fff0f0;
  color: #c24135;
  font-size: 24px;
  font-weight: 900;
}
.danger-action { background: #c24135 !important; color: #fff !important; }


/* v=activity_points_rule_20260701: user activity points formula */
.mine-activity-rule-card {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 0 0 12px;
}
.mine-activity-rule-card span {
  padding: 9px;
  border-radius: 14px;
  background: #fff;
  border: 1px solid #e4ede7;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.35;
}
.mine-activity-rule-card b { display: block; margin-top: 3px; color: var(--green); font-size: 15px; }
@media (max-width: 360px) { .mine-activity-rule-card { grid-template-columns: 1fr; } }


/* v=venue_club_wechat_share_20260701_1923: uploaded auth avatar display */
.avatar.with-image { background-size: cover; background-position: center; color: transparent; border: 2px solid rgba(255,255,255,.95); }


/* v=venue_club_wechat_share_20260701_1923: Mine points rule explanation */
.mine-point-rule-card {
  display: grid;
  gap: 10px;
  margin: 10px 0 12px;
  padding: 13px;
  border-radius: 20px;
  background: linear-gradient(135deg,#fffdf2,#f1fbf5);
  border: 1px solid #e6ebcf;
  box-shadow: 0 10px 22px rgba(122,91,0,.07);
}
.mine-point-rule-card.compact { margin-top: 0; }
.mine-point-rule-head b { display: block; color: var(--text); font-size: 15px; }
.mine-point-rule-head span { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; line-height: 1.4; }
.mine-point-rule-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.mine-point-rule-list span { padding: 10px; border-radius: 15px; background: #fff; border: 1px solid #edf0dc; }
.mine-point-rule-list em { display: block; color: var(--muted); font-size: 11px; font-style: normal; font-weight: 900; }
.mine-point-rule-list b { display: block; margin-top: 3px; color: var(--green); font-size: 16px; }
.mine-point-rule-list small { display: block; margin-top: 2px; color: #7b8b83; font-size: 10px; line-height: 1.3; }
.mine-point-rule-card p, .mine-rule-note p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.mine-rule-note { margin: 10px 0 12px; padding: 12px; border-radius: 18px; background: #fff; border: 1px solid #e4ede7; }
.mine-rule-note b { display: block; margin-bottom: 5px; color: var(--green); font-size: 13px; }
@media (max-width: 360px) { .mine-point-rule-list { grid-template-columns: 1fr; } }


/* v=venue_club_wechat_share_20260701_1923: WeChat privacy in user profile */
.wechat-privacy-card { border-color: #dcebdd; background: #fffef7; }
.wechat-privacy-card.locked { background: #f8faf9; border-style: dashed; }
.wechat-privacy-card small { display: block; margin-top: 5px; color: var(--muted); font-size: 11px; line-height: 1.35; }
.wechat-privacy-card:not(.locked) p { color: var(--green); font-weight: 900; }


/* v=venue_club_wechat_share_20260701_1923: small v badge for users with AI review report */
.has-review-badge { position: relative; overflow: visible; }
.review-v-badge { position: absolute; right: -3px; bottom: -3px; z-index: 3; display: grid; place-items: center; width: 14px; height: 14px; border-radius: 50%; border: 2px solid #fff; background: linear-gradient(135deg, #6d7cff, #8b5cf6); color: #fff; font-size: 9px; font-weight: 1000; line-height: 1; box-shadow: 0 4px 10px rgba(75, 66, 180, .28); pointer-events: none; text-transform: uppercase; }
.big-avatar .review-v-badge, .profile-avatar .review-v-badge, .mine-avatar .review-v-badge, .partner-avatar .review-v-badge { width: 16px; height: 16px; right: 0; bottom: 0; font-size: 10px; }
.venue-member-avatar .review-v-badge, .avatar-chip .review-v-badge, .creator-avatar .review-v-badge { width: 13px; height: 13px; right: -4px; bottom: -4px; font-size: 8px; }


/* v=venue_club_wechat_share_20260701_1923: activity points rule table in Mine */
.mine-point-rule-table-wrap { overflow-x: auto; border-radius: 16px; border: 1px solid #e7edd8; background: rgba(255,255,255,.78); }
.mine-point-rule-table { width: 100%; border-collapse: collapse; min-width: 330px; font-size: 12px; }
.mine-point-rule-table th, .mine-point-rule-table td { padding: 9px 8px; text-align: left; border-bottom: 1px solid #edf1df; white-space: nowrap; }
.mine-point-rule-table th { color: #728072; font-size: 11px; font-weight: 900; background: #fbfdf2; }
.mine-point-rule-table td { color: var(--text); font-weight: 800; }
.mine-point-rule-table td:nth-child(2), .mine-point-rule-table td:nth-child(4) { color: var(--green); }
.mine-point-rule-table tfoot td { border-bottom: 0; background: #f6fbef; font-weight: 1000; }
.mine-point-rule-table tfoot td:last-child { color: var(--green); font-size: 14px; }


/* v=venue_club_wechat_share_20260701_1923: WeChat share button for venue/club detail sheets */
.circle-detail-share-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.circle-detail-share-actions .wechat-share-action { background: #eaf8ee; color: var(--green); }
@media (max-width: 380px) { .circle-detail-share-actions { grid-template-columns: 1fr; } }


/* v=home_rules_removed_20260703_1736: clean AI review entry card */
.ai-review-entry { margin-top: 12px; }
.ai-review-card {
  grid-template-columns: 48px 1fr auto;
  padding: 12px 13px;
  border-radius: 22px;
  background:
    radial-gradient(circle at 12% 18%, rgba(255,255,255,.85), transparent 30%),
    linear-gradient(135deg, #f5fff8 0%, #e8f7ef 48%, #dff2ff 100%);
  color: var(--text);
  border: 1px solid rgba(126, 170, 146, .28);
  box-shadow: 0 12px 28px rgba(25, 83, 61, .10);
}
.ai-review-icon {
  width: 44px;
  height: 44px;
  border-radius: 17px;
  background: linear-gradient(135deg, #dff8e9 0%, #cdeefe 100%);
  border: 1px solid rgba(126, 170, 146, .22);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.65);
  font-size: 23px;
}
.ai-review-copy { gap: 0; }
.ai-review-copy b { color: #20352d; font-size: 18px; letter-spacing: .02em; }
.ai-review-copy em { display: none; }
.ai-review-card i {
  background: #ffffff;
  color: var(--green);
  border: 1px solid rgba(126, 170, 146, .25);
  box-shadow: 0 8px 18px rgba(25, 83, 61, .08);
}
@media (max-width: 370px) {
  .ai-review-card { grid-template-columns: 44px 1fr auto; }
  .ai-review-icon { width: 40px; height: 40px; }
}


/* v=home_rules_removed_20260703_1736: activity cards show start-end time */
.game-card { grid-template-columns: 76px 1fr; }
.game-time {
  min-height: 66px;
  padding: 7px 5px;
  font-size: 13px;
  letter-spacing: -0.01em;
  line-height: 1.08;
}
@media (max-width: 370px) {
  .game-card { grid-template-columns: 72px 1fr; }
  .game-time { font-size: 12px; }
}
