:root {
  color-scheme: light;
  --ink: #13201c;
  --muted: #61706b;
  --line: #d9e2dd;
  --court: #126b57;
  --clay: #c85f32;
  --lime: #c8f24a;
  --blue: #245fce;
  --paper: #fbfcf8;
  --panel: #ffffff;
  --sun: #ffcd3c;
  --mint: #6ee7b7;
}

/* Training loop v1: AI finds, coach decides, player trains and retests. */
.actionable-report { overflow: hidden; border: 1px solid rgba(26,55,47,.14); background: #fff; }
.actionable-report .report-hero-copy { display: grid; gap: 18px; }
.actionable-summary h2 { max-width: 24ch; margin: 0; font-size: clamp(28px,4vw,46px); line-height: 1.08; }
.actionable-strengths { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.actionable-strengths small { flex-basis: 100%; color: #69736f; font-weight: 800; }
.actionable-strengths span { padding: 7px 10px; border-radius: 999px; background: #edf6ef; color: #176448; font-weight: 800; }
.actionable-primary-issue,.actionable-task { padding: 18px; border-radius: 12px; background: #f5f1e7; }
.actionable-primary-issue { border-left: 4px solid #b88a3e; }
.actionable-primary-issue small,.actionable-task small,.actionable-coach-state small { display: block; margin-bottom: 7px; color: #806222; font-weight: 900; letter-spacing: .04em; }
.actionable-primary-issue strong,.actionable-task strong { display: block; font-size: clamp(20px,3vw,28px); line-height: 1.2; }
.actionable-primary-issue p,.actionable-task p { margin: 8px 0; color: #59615e; line-height: 1.55; }
.actionable-primary-issue a { color: #194f40; font-weight: 900; }
.actionable-task { background: #173d34; color: #fff; }
.actionable-task small,.actionable-task p { color: #d8e7e1; }
.actionable-task button,.student-plan-actions button,.student-plan-flow button { min-height: 44px; border: 0; border-radius: 9px; padding: 10px 14px; background: #d7b76f; color: #18372f; font-weight: 950; }
.actionable-evidence-warning { margin: 0; padding: 12px 14px; border-radius: 9px; background: #fff3d6; color: #755611; font-weight: 800; }
.actionable-coach-state { padding: 12px 14px; border: 1px solid rgba(26,55,47,.14); border-radius: 10px; }
.actionable-coach-state strong { display: block; }
.student-training-plan { margin: 16px 0; padding: clamp(16px,3vw,24px); border: 1px solid rgba(26,55,47,.14); border-radius: 14px; background: #fff; }
.student-training-plan>header { display: flex; justify-content: space-between; gap: 12px; align-items: start; }
.student-training-plan>header small,.student-plan-flow small { display: block; color: #7b6330; font-weight: 900; }
.student-training-plan>header strong { display: block; margin-top: 4px; font-size: 22px; }
.student-training-plan>header>span { padding: 6px 10px; border-radius: 999px; background: #f7f2e8; color: #785720; font-weight: 800; }
.student-plan-flow { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr); gap: 10px; align-items: stretch; margin-top: 18px; }
.student-plan-flow>article { min-width: 0; padding: 14px; border-radius: 10px; background: #f6f3eb; }
.student-plan-flow>.is-ai { border-top: 3px solid #7e8c87; }
.student-plan-flow>.is-coach { border-top: 3px solid #252b2d; }
.student-plan-flow>.is-task { border-top: 3px solid #d7b76f; }
.student-plan-flow>span { align-self: center; font-size: 20px; color: #988969; }
.student-plan-flow strong,.student-plan-flow p { display: block; overflow-wrap: anywhere; }
.student-plan-flow p { color: #626b67; line-height: 1.45; }
.student-plan-actions { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-top: 14px; }
.training-discussion { margin-top: 18px; padding-top: 16px; border-top: 1px solid rgba(26,55,47,.12); }
.training-discussion header small,.training-discussion header strong { display: block; }
.training-discussion-list { display: grid; gap: 8px; margin: 12px 0; }
.training-discussion-list article { max-width: 86%; padding: 10px 12px; border-radius: 10px; background: #f2efe7; }
.training-discussion-list article.is-coach { margin-left: auto; background: #ece9e1; }
.training-discussion-list p { margin: 4px 0; line-height: 1.45; }
.training-discussion-list button { min-height: 44px; border: 0; padding: 6px 0; background: transparent; color: #785720; font-weight: 800; }
.training-discussion form { display: grid; gap: 8px; }
.training-discussion textarea { min-height: 70px; resize: vertical; }
.training-discussion form>div { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.training-discussion form button { min-height: 44px; border: 0; border-radius: 8px; padding: 10px 14px; background: #252b2d; color: #fff; font-weight: 900; }
.coach-student-workspace { margin: 22px 0; padding: clamp(16px,3vw,24px); border: 1px solid rgba(26,55,47,.16); border-radius: 14px; background: #f6f3eb; }
.coach-student-bind-form { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; align-items: end; margin-bottom: 18px; }
.coach-student-bind-form label,.coach-plan-review label,.coach-lesson-note label { display: grid; gap: 6px; font-weight: 800; }
.coach-student-bind-form button,.coach-plan-review button,.coach-lesson-note button { min-height: 44px; border: 0; border-radius: 8px; padding: 9px 13px; background: #252b2d; color: #fff; font-weight: 900; }
.coach-student-bind-form p { grid-column: 1/-1; margin: 0; }
.coach-student-list { display: grid; gap: 16px; }
.coach-student-card { min-width: 0; padding: 18px; border-radius: 12px; background: #fff; }
.coach-student-card>header { display: flex; gap: 12px; align-items: center; }
.coach-student-card>header>div { width: 58px; height: 58px; overflow: hidden; border-radius: 50%; }
.coach-student-card>header p>* { display: block; }
.coach-student-snapshot { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin: 14px 0; }
.coach-student-snapshot>div { padding: 12px; border-radius: 9px; background: #f6f3eb; }
.coach-student-snapshot small,.coach-student-snapshot strong { display: block; overflow-wrap: anywhere; }
.coach-plan-lanes { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.coach-plan-lanes article { padding: 14px; border-radius: 10px; background: #eef1ef; }
.coach-plan-lanes .is-coach { background: #f7f2e8; }
.coach-plan-review form,.coach-lesson-note form { display: grid; gap: 10px; margin-top: 12px; }
.coach-plan-review form>div { display: grid; grid-template-columns: 1fr 140px; gap: 10px; }
.coach-plan-review footer { display: flex; flex-wrap: wrap; gap: 8px; }
.coach-plan-review footer button:last-child { background: #80504a; }
.coach-lesson-note { margin-top: 14px; }
.coach-lesson-note summary { cursor: pointer; font-weight: 900; }
.training-today-focus,.training-authorizations,.training-history { min-width: 0; color: #252b2d; }
.training-today-focus { margin: 0 0 20px; padding: 22px; border: 1px solid #d7c7a6; border-left: 4px solid #b88a3e; border-radius: 14px; background: #f7f2e8; }
.training-today-focus>small,.training-authorizations>header>small { color: #785720; font-size: 12px; font-weight: 800; letter-spacing: .04em; }
.training-today-focus h3 { margin: 9px 0; font-size: clamp(22px,3vw,30px); line-height: 1.4; overflow-wrap: anywhere; }
.training-today-focus>p,.training-authorizations p,.training-consent-card p,.training-evidence-note { color: #646b6b; line-height: 1.65; font-size: 14px; }
.training-today-focus button,.training-authorizations button,.training-history button,.student-training-plan button { min-height: 44px; max-width: 100%; padding: 11px 15px; border: 1px solid #252b2d; border-radius: 9px; background: #252b2d; color: #fff; font-weight: 750; line-height: 1.45; white-space: normal; cursor: pointer; }
.training-today-focus button.is-secondary,.training-authorizations button.is-secondary,.student-training-plan button.is-secondary { border-color: #c8c7c0; background: #fff; color: #252b2d; }
.training-today-focus .training-today-details { margin-top: 12px; padding-left: 0; padding-right: 0; border: 0; background: transparent; color: #785720; text-align: left; }
.training-today-focus button:disabled,.training-authorizations button:disabled,.student-training-plan button:disabled,.coach-student-workspace button:disabled,.training-discussion button:disabled { opacity: .5; cursor: wait; }
.training-authorizations { margin-top: 24px; padding: 20px; border: 1px solid #dcded9; border-radius: 14px; background: #fff; }
.training-authorizations h3 { margin: 6px 0; font-size: 22px; }
.training-consent-card { margin-top: 14px; padding: 16px; border: 1px solid #ddd7c9; border-radius: 10px; background: #fcfbf7; }
.training-consent-card>div:first-child { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; }
.training-consent-card strong { font-size: 18px; overflow-wrap: anywhere; }
.training-consent-card>div:first-child>span { font-size: 13px; color: #646b6b; }
.training-consent-card>div:first-child>small { margin-left: auto; color: #785720; font-weight: 800; }
.training-consent-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.training-consent-actions>span { color: #646b6b; font-size: 13px; line-height: 1.6; }
.training-action-status { margin: 12px 0 0; font-size: 14px; color: #785720; line-height: 1.6; overflow-wrap: anywhere; }
.training-action-status:empty { display: none; }
.training-action-status.is-error { padding: 10px 12px; border-left: 3px solid #a44435; background: #fff1ed; color: #8c3427; }
.training-history { margin-top: 20px; display: grid; gap: 12px; }
.training-history details { padding: 0 18px; border: 1px solid #dcded9; border-radius: 12px; background: #fff; }
.training-history summary { min-height: 52px; padding: 16px 0; cursor: pointer; font-weight: 800; }
.training-history article { padding: 16px 0; border-top: 1px solid #e6e6df; }
.training-history article header { display: grid; gap: 6px; }
.training-history article p { display: grid; gap: 5px; margin: 10px 0; line-height: 1.65; overflow-wrap: anywhere; }
.training-history article small,.training-history article header>span { color: #646b6b; font-size: 13px; }
.training-history article p>b { color: #785720; font-size: 13px; }
.coach-invitation-list { margin: 16px 0; }
.coach-invitation-list article { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; padding: 12px 0; border-top: 1px solid #dcded9; }
.coach-invitation-list article span { color: #785720; }
.student-plan-actions { flex-wrap: wrap; justify-content: flex-start; }
.training-authorizations button:focus-visible,.training-today-focus button:focus-visible,.student-training-plan button:focus-visible,.training-history summary:focus-visible { outline: 3px solid #b88a3e; outline-offset: 3px; }
.community-coach-badge { display: inline-flex!important; align-items: center; width: fit-content; margin-left: 5px; padding: 2px 6px; border-radius: 999px; background: #e5f2ec; color: #176448; font-size: 11px; font-style: normal; font-weight: 900; }
@media (max-width:720px) {
  .training-today-focus,.training-authorizations { padding: 17px; }
  .training-consent-actions>button { flex: 1 1 130px; }
  .training-consent-card>div:first-child>small { width: 100%; margin-left: 0; }
  .student-plan-flow { grid-template-columns: 1fr; }
  .student-plan-flow>span { transform: rotate(90deg); justify-self: center; }
  .student-plan-actions,.student-training-plan>header { align-items: stretch; flex-direction: column; }
  .coach-student-bind-form,.coach-plan-lanes,.coach-student-snapshot,.coach-plan-review form>div { grid-template-columns: 1fr; }
  .actionable-summary h2 { font-size: 28px; }
}

/* v295 — personal Court Card share flow. */
.match-card-dialog {
  width: min(1040px, calc(100vw - 28px));
  max-width: 1040px;
  max-height: min(920px, calc(100dvh - 24px));
  margin: auto;
  padding: 0;
  border: 0;
  border-radius: 26px;
  color: #252b2d;
  background: #f7f2e8;
  box-shadow: 0 30px 90px rgba(16, 25, 22, .28);
  overflow: hidden;
}

.match-card-dialog::backdrop {
  background: rgba(15, 23, 20, .64);
  backdrop-filter: blur(8px);
}

.match-card-shell {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  max-height: min(920px, calc(100dvh - 24px));
}

.match-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 22px 24px 18px;
  border-bottom: 1px solid rgba(37, 43, 45, .11);
}

.match-card-head > div { min-width: 0; }
.match-card-head small {
  display: block;
  color: #8b672e;
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .12em;
}
.match-card-head h2 {
  margin: 5px 0 3px;
  font-size: clamp(23px, 3vw, 34px);
  line-height: 1.08;
}
.match-card-head p { margin: 0; color: #6f7474; line-height: 1.5; }
.match-card-head > button {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border: 1px solid rgba(37, 43, 45, .14);
  border-radius: 50%;
  background: #fff;
  color: #252b2d;
  font-size: 24px;
}

.match-card-body {
  display: grid;
  grid-template-columns: minmax(280px, 410px) minmax(300px, 1fr);
  gap: 22px;
  padding: 22px 24px;
  overflow: auto;
  overscroll-behavior: contain;
}

.match-card-live-region {
  align-self: start;
  width: 100%;
  padding: 10px;
  border-radius: 22px;
  background: #e8dfcc;
  box-shadow: inset 0 0 0 1px rgba(37, 43, 45, .08);
}

.match-card-art {
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  border-radius: 17px;
  background: #173b32;
  color: #fff;
  box-shadow: 0 18px 40px rgba(24, 49, 42, .2);
}

.match-card-art-visual {
  position: absolute;
  inset: 0 0 38%;
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(215, 183, 111, .18), transparent 46%),
    #173b32;
}
.match-card-art-visual img { width: 100%; height: 100%; object-fit: cover; display: block; }
.match-card-art.is-soft .match-card-art-visual img { filter: blur(12px) saturate(.75); transform: scale(1.08); }
.match-card-art.is-hidden .match-card-art-visual img { display: none; }
.match-card-art-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10, 24, 20, .06) 28%, rgba(10, 24, 20, .88) 100%);
}
.match-card-art.is-hidden .match-card-art-visual::before {
  content: "";
  position: absolute;
  inset: 12% 10%;
  border: 2px solid rgba(215, 183, 111, .38);
  background:
    linear-gradient(90deg, transparent 49.7%, rgba(215, 183, 111, .38) 50%, transparent 50.3%),
    linear-gradient(transparent 49.7%, rgba(215, 183, 111, .38) 50%, transparent 50.3%);
  transform: perspective(480px) rotateX(56deg);
  transform-origin: center bottom;
}

.match-card-art-brand,
.match-card-art-title {
  position: absolute;
  z-index: 2;
  left: 7%;
  right: 7%;
}
.match-card-art-brand { top: 5%; display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.match-card-art-brand b { font-size: 12px; letter-spacing: .13em; }
.match-card-art-brand span { font-size: 10px; opacity: .82; }
.match-card-art-title { top: 37%; }
.match-card-art-title small { display: block; margin-bottom: 4px; color: #d7b76f; font-weight: 900; letter-spacing: .08em; }
.match-card-art-title strong { display: block; max-width: 92%; font-size: clamp(31px, 5.4vw, 54px); line-height: .96; letter-spacing: -.04em; overflow-wrap: anywhere; }

.match-card-art-copy {
  position: absolute;
  z-index: 3;
  inset: 62% 0 0;
  display: flex;
  flex-direction: column;
  padding: 7% 7% 5%;
  color: #252b2d;
  background: #f7f2e8;
}
.match-card-art-player { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.match-card-art-player strong { min-width: 0; font-size: clamp(17px, 3vw, 24px); overflow-wrap: anywhere; }
.match-card-art-player span { flex: 0 0 auto; color: #8b672e; font-weight: 900; }
.match-card-art-line { margin: 7% 0 5%; font-size: clamp(16px, 3.2vw, 25px); font-weight: 850; line-height: 1.28; overflow-wrap: anywhere; }
.match-card-art-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.match-card-art-badges span { padding: 6px 8px; border-radius: 999px; background: #e9dfca; color: #365247; font-size: 11px; font-weight: 850; }
.match-card-art-foot { margin-top: auto; display: flex; justify-content: space-between; gap: 10px; align-items: flex-end; color: #6f7474; font-size: 10px; }
.match-card-art-foot span { min-width: 0; }
.match-card-art-foot b { flex: 0 0 auto; color: #173b32; letter-spacing: .06em; }

.match-card-controls { display: grid; align-content: start; gap: 17px; min-width: 0; }
.match-card-controls fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.match-card-controls legend,
.match-card-line-field > span { display: block; margin-bottom: 8px; color: #365247; font-size: 13px; font-weight: 900; }
.match-card-frames { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.match-card-frames button {
  position: relative;
  aspect-ratio: 1;
  padding: 0;
  overflow: hidden;
  border: 2px solid transparent;
  border-radius: 13px;
  background: #e8dfcc;
}
.match-card-frames button.is-active { border-color: #b88a3e; box-shadow: 0 0 0 2px rgba(184, 138, 62, .17); }
.match-card-frames img { width: 100%; height: 100%; object-fit: cover; display: block; }
.match-card-frames span { position: absolute; inset: auto 4px 4px; padding: 3px 4px; border-radius: 6px; color: #fff; background: rgba(20, 34, 29, .75); font-size: 9px; font-weight: 900; }
.match-card-line-field textarea { width: 100%; min-height: 76px; resize: vertical; font-size: 16px; }
.match-card-photo-modes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.match-card-photo-modes label,
.match-card-toggles label { cursor: pointer; }
.match-card-photo-modes label { position: relative; }
.match-card-photo-modes input { position: absolute; opacity: 0; pointer-events: none; }
.match-card-photo-modes span { display: grid; min-height: 44px; place-items: center; padding: 8px; border: 1px solid rgba(37, 43, 45, .14); border-radius: 11px; background: #fff; text-align: center; font-size: 12px; font-weight: 850; }
.match-card-photo-modes input:checked + span { border-color: #b88a3e; color: #6f4f20; background: #f0e4cb; }
.match-card-toggles { display: grid; gap: 7px; }
.match-card-toggles label { display: flex; gap: 9px; align-items: center; min-height: 42px; padding: 8px 11px; border-radius: 11px; background: rgba(255, 255, 255, .72); font-weight: 800; }
.match-card-toggles input { flex: 0 0 auto; width: 19px; height: 19px; min-height: 0; accent-color: #173b32; }

.match-card-actions { display: flex; justify-content: space-between; gap: 18px; align-items: center; padding: 16px 24px calc(16px + env(safe-area-inset-bottom)); border-top: 1px solid rgba(37, 43, 45, .11); background: rgba(247, 242, 232, .98); }
.match-card-actions p { min-width: 0; margin: 0; color: #6f7474; font-size: 12px; }
.match-card-actions > div { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.match-card-actions button { min-height: 44px; padding: 10px 14px; border: 0; border-radius: 11px; background: #173b32; color: #fff; font-weight: 900; }
.match-card-actions button.is-secondary { border: 1px solid rgba(37, 43, 45, .15); color: #252b2d; background: #fff; }
.match-card-actions button:disabled { opacity: .55; }

.qiulian-share-entry .qiulian-share-actions { display: flex; gap: 8px; align-items: center; }
.qiulian-share-entry .qiulian-share-actions button:first-child { background: #173b32; color: #fff; }
.qiulian-share-entry .qiulian-share-actions button:last-child { background: #f0e4cb; color: #5f461f; }

.qiulian-match-card {
  position: relative;
  aspect-ratio: 3 / 4;
  margin-top: 12px;
  overflow: hidden;
  border-radius: 18px;
  background: #173b32;
  color: #fff;
}
.qiulian-match-card-visual { position: absolute; inset: 0 0 38%; overflow: hidden; background: #173b32; }
.qiulian-match-card-visual img { width: 100%; height: 100%; object-fit: cover; display: block; }
.qiulian-match-card.is-soft .qiulian-match-card-visual img { filter: blur(12px) saturate(.75); transform: scale(1.08); }
.qiulian-match-card.is-hidden .qiulian-match-card-visual img { display: none; }
.qiulian-match-card-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 25%, rgba(8, 23, 18, .88)); }
.qiulian-match-card-title { position: absolute; z-index: 2; left: 7%; right: 7%; top: 38%; }
.qiulian-match-card-title small { display: block; color: #d7b76f; font-weight: 900; }
.qiulian-match-card-title strong { display: block; font-size: clamp(34px, 8vw, 58px); line-height: .95; }
.qiulian-match-card-copy { position: absolute; z-index: 3; inset: 62% 0 0; display: flex; flex-direction: column; gap: 10px; padding: 6% 7%; color: #252b2d; background: #f7f2e8; }
.qiulian-match-card-copy > p { margin: 0; font-size: clamp(17px, 4vw, 24px); font-weight: 850; line-height: 1.25; }
.qiulian-match-card-copy > div { display: flex; flex-wrap: wrap; gap: 6px; }
.qiulian-match-card-copy span { padding: 5px 8px; border-radius: 999px; color: #365247; background: #e9dfca; font-size: 11px; font-weight: 850; }
.qiulian-match-card-copy footer { margin-top: auto; display: flex; justify-content: space-between; gap: 8px; color: #6f7474; font-size: 10px; }

@media (max-width: 720px) {
  .match-card-dialog {
    width: 100vw;
    max-width: 100vw;
    height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
  }
  .match-card-shell { height: 100dvh; max-height: 100dvh; }
  .match-card-head { padding: max(14px, env(safe-area-inset-top)) 16px 13px; }
  .match-card-head h2 { font-size: 23px; }
  .match-card-head p { font-size: 13px; }
  .match-card-body { display: block; padding: 14px 16px 20px; }
  .match-card-live-region { width: min(100%, 360px); margin: 0 auto 18px; }
  .match-card-controls { gap: 15px; }
  .match-card-actions { display: block; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); }
  .match-card-actions p { min-height: 18px; margin-bottom: 6px; text-align: center; }
  .match-card-actions > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
  .match-card-actions button { min-width: 0; padding-inline: 7px; font-size: 12px; }
  .qiulian-share-entry .qiulian-share-actions { width: 100%; display: grid; grid-template-columns: 1fr 1fr; }
}

/* v276 — 球连 tennis social posts */
.qiulian-composer,
.qiulian-feed-section,
.qiulian-post,
.qiulian-notifications {
  border: 1px solid rgba(19, 32, 28, .1);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(19, 42, 37, .07);
}

.qiulian-composer {
  overflow: hidden;
  margin-bottom: 18px;
}

.qiulian-notifications {
  margin-bottom: 15px;
  padding: 15px;
}

.qiulian-notifications > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.qiulian-notifications > header button {
  border: 0;
  background: transparent;
  color: #126b57;
  font-weight: 800;
}

.qiulian-notifications article {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 9px;
  padding: 9px;
  border-radius: 12px;
}

.qiulian-notifications article.is-unread {
  background: #eef8f3;
}

.qiulian-notifications article > div {
  overflow: hidden;
  width: 36px;
  height: 36px;
  border-radius: 50%;
}

.qiulian-notifications article p,
.qiulian-notifications article strong,
.qiulian-notifications article span,
.qiulian-notifications article em,
.qiulian-notifications article small {
  display: block;
  margin: 0;
}

.qiulian-notifications article span,
.qiulian-notifications article em,
.qiulian-notifications article small {
  color: #6e7a74;
  font-size: 12px;
}

.qiulian-notifications article em {
  overflow: hidden;
  margin-top: 2px;
  font-style: normal;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qiulian-composer > header {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 18px;
  background: linear-gradient(135deg, #102d29, #176d59);
  color: #fff;
}

.qiulian-composer > header > div,
.qiulian-post-avatar,
.qiulian-comments article > div {
  overflow: hidden;
  border-radius: 50%;
  background: #edf4ef;
}

.qiulian-composer > header > div {
  width: 52px;
  height: 52px;
}

.qiulian-composer > header p,
.qiulian-post > header p,
.qiulian-comments article p {
  min-width: 0;
  margin: 0;
}

.qiulian-composer > header small,
.qiulian-composer > header strong,
.qiulian-composer > header span,
.qiulian-post > header strong,
.qiulian-post > header span,
.qiulian-comments article strong,
.qiulian-comments article span,
.qiulian-comments article small {
  display: block;
}

.qiulian-composer > header small {
  color: #dfbd72;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
}

.qiulian-composer > header strong {
  margin-top: 2px;
  font-size: 20px;
}

.qiulian-composer > header span {
  margin-top: 3px;
  color: rgba(255, 255, 255, .72);
  font-size: 12px;
}

#qiulianPostForm {
  display: grid;
  gap: 15px;
  padding: 18px;
}

.qiulian-kind-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
  padding: 5px;
  border-radius: 14px;
  background: #f3f1e9;
}

.qiulian-kind-tabs button {
  min-height: 42px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: #5e6863;
  font-weight: 750;
}

.qiulian-kind-tabs button.is-active {
  background: #fff;
  color: #126b57;
  box-shadow: 0 4px 12px rgba(19, 42, 37, .09);
}

.qiulian-photo-picker {
  min-height: 190px;
  display: grid;
  place-items: center;
  gap: 12px;
  overflow: hidden;
  padding: 22px;
  border: 1px dashed rgba(18, 107, 87, .35);
  border-radius: 18px;
  background: #f6faf7;
  text-align: center;
}

.qiulian-photo-picker > span {
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  border-radius: 50%;
  background: #126b57;
  color: #fff;
  font-size: 34px;
  font-weight: 300;
}

.qiulian-photo-picker.has-photo {
  position: relative;
  min-height: 300px;
  padding: 0;
  border-style: solid;
}

.qiulian-photo-picker img {
  width: 100%;
  height: 300px;
  object-fit: cover;
}

.qiulian-photo-picker.has-photo > div {
  position: absolute;
  right: 12px;
  bottom: 12px;
  display: flex;
  gap: 7px;
  padding: 7px;
  border-radius: 12px;
  background: rgba(16, 45, 41, .86);
  backdrop-filter: blur(12px);
}

.qiulian-photo-picker button,
.qiulian-composer-footer button,
.qiulian-comments form button {
  min-height: 40px;
  padding: 0 16px;
  border: 0;
  border-radius: 10px;
  background: #126b57;
  color: #fff;
  font-weight: 800;
}

.qiulian-photo-picker button.is-secondary {
  background: rgba(255, 255, 255, .16);
}

.qiulian-photo-picker small {
  display: block;
  margin-top: 6px;
  color: #7a8680;
}

.qiulian-photo-picker.has-photo small {
  display: none;
}

.qiulian-report-picker,
.qiulian-caption-field,
.qiulian-composer-footer label {
  display: grid;
  gap: 7px;
}

.qiulian-report-picker span,
.qiulian-caption-field span,
.qiulian-composer-footer label span {
  color: #5e6863;
  font-size: 12px;
  font-weight: 800;
}

.qiulian-report-picker select,
.qiulian-caption-field textarea,
.qiulian-composer-footer select,
.qiulian-comments input {
  width: 100%;
  border: 1px solid #d9e2dd;
  border-radius: 12px;
  background: #fff;
  color: #13201c;
  font: inherit;
}

.qiulian-report-picker select,
.qiulian-composer-footer select,
.qiulian-comments input {
  min-height: 44px;
  padding: 0 12px;
}

.qiulian-caption-field textarea {
  resize: vertical;
  padding: 12px;
}

.qiulian-achievement-preview,
.qiulian-achievement-card,
.qiulian-report-card {
  overflow: hidden;
  padding: 18px;
  border-radius: 17px;
  background: linear-gradient(135deg, #102d29, #19735d);
  color: #fff;
}

.qiulian-achievement-preview small,
.qiulian-achievement-preview strong,
.qiulian-achievement-preview span,
.qiulian-achievement-card small,
.qiulian-achievement-card strong,
.qiulian-report-card small,
.qiulian-report-card strong,
.qiulian-report-card span {
  display: block;
}

.qiulian-achievement-preview small,
.qiulian-achievement-card small,
.qiulian-report-card small {
  color: #dfbd72;
  font-weight: 800;
}

.qiulian-achievement-preview strong,
.qiulian-achievement-card strong,
.qiulian-report-card strong {
  margin-top: 5px;
  font-family: Georgia, serif;
  font-size: 32px;
}

.qiulian-composer-footer {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 14px;
}

.qiulian-composer-footer label {
  flex: 1;
}

.qiulian-composer-footer button {
  min-width: 110px;
}

.qiulian-composer-footer button:disabled {
  opacity: .45;
}

.qiulian-privacy-hint,
.qiulian-form-message {
  color: #6d7873;
  font-size: 12px;
}

.qiulian-form-message {
  margin: 0;
  color: #126b57;
  font-weight: 800;
}

.qiulian-feed-section {
  padding: 18px;
}

.qiulian-feed {
  display: grid;
  gap: 15px;
}

.qiulian-feed.is-hub .qiulian-comments,
.qiulian-feed.is-hub .qiulian-post-actions button:last-child {
  display: none;
}

.qiulian-post {
  overflow: hidden;
}

.qiulian-post > header {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 15px 16px 10px;
}

.qiulian-post-avatar {
  width: 46px;
  height: 46px;
}

.qiulian-post > header strong {
  color: #13201c;
  font-size: 15px;
}

.qiulian-post > header span {
  margin-top: 2px;
  color: #7a8680;
  font-size: 11px;
}

.qiulian-post-menu {
  position: relative;
}

.qiulian-post-menu summary {
  min-width: 36px;
  padding: 8px;
  list-style: none;
  cursor: pointer;
  color: #66726c;
  text-align: center;
}

.qiulian-post-menu summary::-webkit-details-marker {
  display: none;
}

.qiulian-post-menu > div {
  position: absolute;
  z-index: 5;
  top: 38px;
  right: 0;
  min-width: 190px;
  overflow: hidden;
  border: 1px solid #d9e2dd;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(19, 42, 37, .16);
}

.qiulian-post-menu button {
  width: 100%;
  padding: 11px 13px;
  border: 0;
  background: #fff;
  color: #9a3f32;
  text-align: left;
}

.qiulian-report-reasons summary {
  padding: 11px 13px;
  list-style: none;
  color: #9a3f32;
  cursor: pointer;
  font-size: 13px;
}

.qiulian-report-reasons summary::-webkit-details-marker {
  display: none;
}

.qiulian-report-reasons[open] {
  border-bottom: 1px solid #edf0ed;
  background: #fbf7f2;
}

.qiulian-report-reasons button {
  padding-left: 24px;
  color: #5f6863;
  font-size: 12px;
}

.qiulian-share-entry {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 16px;
  border: 1px solid rgba(18, 107, 87, .18);
  border-radius: 16px;
  background: linear-gradient(135deg, #edf8f3, #fffaf0);
}

.qiulian-share-entry.is-report {
  width: min(980px, calc(100% - 24px));
  margin: 14px auto 0;
}

.qiulian-share-entry small,
.qiulian-share-entry strong {
  display: block;
}

.qiulian-share-entry small {
  color: #126b57;
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .08em;
}

.qiulian-share-entry strong {
  margin-top: 3px;
  color: #26322d;
  font-size: 13px;
}

.qiulian-share-entry button,
.profile-level-card [data-qiulian-share-achievement],
.profile-streak-card [data-qiulian-share-achievement] {
  min-height: 38px;
  padding: 0 14px;
  border: 0;
  border-radius: 10px;
  background: #126b57;
  color: #fff;
  font-weight: 800;
  white-space: nowrap;
}

.profile-level-card [data-qiulian-share-achievement] {
  margin-top: 14px;
  background: rgba(255, 255, 255, .14);
}

.profile-streak-card [data-qiulian-share-achievement] {
  grid-column: 1 / -1;
  margin: 0 14px 14px;
}

.profile-streak-card [data-qiulian-share-achievement]:disabled {
  opacity: .42;
}

.qiulian-post-caption {
  margin: 0;
  padding: 3px 16px 13px;
  color: #27332e;
  font-size: 15px;
  line-height: 1.55;
  white-space: pre-wrap;
}

.qiulian-post-photo {
  display: block;
  width: 100%;
  max-height: 620px;
  object-fit: cover;
  background: #edf1ed;
}

.qiulian-post-photo[hidden] {
  display: none;
}

.qiulian-post-photo-frame {
  position: relative;
  overflow: hidden;
  background: #edf1ed;
}

.qiulian-post-photo-fallback {
  min-height: 180px;
  padding: 26px;
  place-content: center;
  justify-items: center;
  gap: 8px;
  color: #66706b;
  text-align: center;
  background: linear-gradient(145deg, #edf3ed, #f8f4e8);
}

.qiulian-post-photo-fallback:not([hidden]) {
  display: grid;
}

.qiulian-post-photo-fallback span {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(20, 91, 76, .18);
  border-radius: 50%;
  color: #145b4c;
  font-size: 22px;
}

.qiulian-post-photo-fallback strong {
  font-size: 12px;
}

.qiulian-post > .qiulian-report-card,
.qiulian-post > .qiulian-achievement-card {
  margin: 0 16px 14px;
}

.qiulian-achievement-card dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 14px 0 0;
}

.qiulian-achievement-card dl div {
  padding: 9px;
  border-radius: 10px;
  background: rgba(255, 255, 255, .1);
}

.qiulian-achievement-card dt,
.qiulian-achievement-card dd {
  margin: 0;
}

.qiulian-achievement-card dt {
  color: rgba(255, 255, 255, .68);
  font-size: 10px;
}

.qiulian-achievement-card dd {
  margin-top: 4px;
  font-weight: 800;
}

.qiulian-post-actions {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 11px 16px;
  border-top: 1px solid #edf0ed;
  border-bottom: 1px solid #edf0ed;
}

.qiulian-post-actions button,
.qiulian-post-actions > span {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0 10px;
  border: 0;
  border-radius: 999px;
  background: #f2f5f2;
  color: #5c6963;
  font-size: 12px;
  font-weight: 750;
}

.qiulian-post-actions button.is-liked {
  background: #fcebe8;
  color: #bf4f3a;
}

.qiulian-post-actions button:last-child {
  margin-left: auto;
  color: #126b57;
}

.qiulian-comments {
  padding: 10px 16px 15px;
  background: #fbfcfa;
}

.qiulian-comments article {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  gap: 8px;
  align-items: start;
  padding: 8px 0;
}

.qiulian-comments article > div {
  width: 30px;
  height: 30px;
}

.qiulian-comments article strong {
  color: #24312c;
  font-size: 12px;
}

.qiulian-comments article span {
  margin-top: 2px;
  color: #47534e;
  font-size: 13px;
}

.qiulian-comments article small {
  margin-top: 3px;
  color: #8b9691;
  font-size: 10px;
}

.qiulian-comments article > button {
  border: 0;
  background: transparent;
  color: #9a3f32;
  font-size: 11px;
}

.qiulian-comments form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  margin-top: 8px;
}

.qiulian-verified-feed {
  margin-top: 18px;
}

@media (max-width: 640px) {
  .qiulian-composer,
  .qiulian-feed-section,
  .qiulian-post,
  .qiulian-notifications {
    border-radius: 16px;
  }

  .qiulian-kind-tabs {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .qiulian-kind-tabs button {
    min-height: 38px;
    padding: 0 4px;
    font-size: 12px;
  }

  .qiulian-composer-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .qiulian-composer-footer button {
    width: 100%;
  }

  .qiulian-photo-picker.has-photo,
  .qiulian-photo-picker img {
    min-height: 250px;
    height: 250px;
  }

  .qiulian-photo-picker.has-photo > div {
    right: 8px;
    bottom: 8px;
  }

  .qiulian-achievement-card dl {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .qiulian-post-actions {
    flex-wrap: wrap;
  }

  .qiulian-post-actions button:last-child {
    margin-left: 0;
  }

  .qiulian-share-entry {
    align-items: stretch;
    flex-direction: column;
  }

  .qiulian-share-entry button {
    width: 100%;
  }
}

/* v204 — member home command center and stable player identity */
body.is-player-authenticated .member-home {
  width: min(980px, 100%);
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
  margin: 30px auto 24px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--text-strong);
  box-shadow: none;
}

.member-home-command {
  position: relative;
  isolation: isolate;
  min-height: 310px;
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(220px, .6fr);
  align-items: center;
  gap: 26px;
  overflow: hidden;
  padding: 34px 36px;
  border: 1px solid rgba(211, 166, 76, .19);
  border-radius: 20px;
  background:
    radial-gradient(circle at 82% 10%, rgba(211, 166, 76, .18), transparent 28%),
    linear-gradient(138deg, #102d29 0%, #172b29 56%, #232826 100%);
  color: #fff;
  box-shadow: 0 22px 46px rgba(19, 42, 37, .16);
}

.member-home-command::before {
  content: "A";
  position: absolute;
  z-index: -1;
  right: 7%;
  bottom: -42%;
  color: rgba(255, 255, 255, .025);
  font-family: Georgia, serif;
  font-size: 330px;
  font-weight: 900;
  line-height: 1;
}

.member-home-copy {
  position: relative;
  z-index: 1;
}

.member-home-copy small {
  color: #dfbd72;
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.member-home-copy strong {
  max-width: 15ch;
  margin-top: 9px;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(34px, 4vw, 54px);
  font-weight: 700;
  line-height: .98;
  letter-spacing: -.035em;
}

.member-home-copy p {
  max-width: 50ch;
  margin-top: 15px;
  color: rgba(255, 255, 255, .69);
  font-size: 13px;
  line-height: 1.55;
}

.member-home-actions {
  gap: 9px;
  margin-top: 21px;
}

.member-home-actions a {
  min-height: 44px;
  padding: 10px 16px;
  border-color: rgba(255, 255, 255, .19);
  border-radius: 8px;
  font-size: 12px;
  letter-spacing: .01em;
}

.member-home-actions a.is-primary {
  border-color: #d7ad58;
  background: #d7ad58;
  color: #102d29;
}

.member-home-meter {
  position: relative;
  z-index: 1;
  min-height: 220px;
  display: grid;
  place-items: center;
  padding: 18px;
  border: 1px solid rgba(255, 255, 255, .11);
  border-radius: 16px;
  background: rgba(255, 255, 255, .055);
  backdrop-filter: blur(14px);
}

.member-home-meter > i {
  width: 142px;
  height: 142px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: conic-gradient(#d7ad58 var(--progress), rgba(255, 255, 255, .1) 0);
  box-shadow: 0 15px 34px rgba(0, 0, 0, .14);
}

.member-home-meter > i::after {
  content: "";
  width: 118px;
  height: 118px;
  border-radius: 50%;
  background: #1c302d;
}

.member-home-meter > div {
  position: absolute;
  display: grid;
  justify-items: center;
  gap: 3px;
}

.member-home-meter small,
.member-home-meter strong,
.member-home-meter span {
  display: block;
}

.member-home-meter small {
  max-width: 13ch;
  color: rgba(255, 255, 255, .58);
  font-size: 9px;
  font-weight: 850;
  line-height: 1.25;
  text-align: center;
}

.member-home-meter strong {
  color: #fff;
  font-size: 30px;
  line-height: 1;
}

.member-home-meter span {
  color: #dfbd72;
  font-size: 10px;
  font-weight: 900;
}

.member-home-snapshot {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.member-home-snapshot-card {
  position: relative;
  min-width: 0;
  min-height: 142px;
  display: grid;
  align-content: start;
  gap: 7px;
  overflow: hidden;
  padding: 18px;
  border: 1px solid rgba(16, 45, 41, .1);
  border-radius: 14px;
  background: #fff;
  color: var(--text-strong);
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(18, 43, 38, .055);
}

.member-home-snapshot-card::after {
  content: "";
  position: absolute;
  right: -28px;
  bottom: -36px;
  width: 92px;
  height: 92px;
  border: 1px solid rgba(26, 92, 75, .08);
  border-radius: 50%;
}

.member-home-snapshot-card small,
.member-home-snapshot-card strong,
.member-home-snapshot-card span {
  position: relative;
  z-index: 1;
  display: block;
}

.member-home-snapshot-card small {
  color: #8b918e;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .035em;
}

.member-home-snapshot-card strong {
  color: #173b33;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 31px;
  line-height: 1;
}

.member-home-snapshot-card span {
  color: #6f7774;
  font-size: 10px;
  line-height: 1.4;
}

.member-home-snapshot-card.is-report {
  background: linear-gradient(145deg, #fffef9, #f5f1e6);
}

.member-home-snapshot-card.is-report strong {
  color: #b57b24;
}

.member-home-snapshot-card.is-progress {
  background: linear-gradient(145deg, #f6fbf8, #eaf2ed);
}

.member-home-snapshot-card.is-week > i {
  height: 4px;
  margin-top: auto;
  overflow: hidden;
  border-radius: 999px;
  background: #e5e9e6;
}

.member-home-snapshot-card.is-week > i > b {
  width: var(--progress);
  height: 100%;
  display: block;
  border-radius: inherit;
  background: #c7963e;
}

.member-home-next {
  min-height: 92px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 20px;
  padding: 19px 22px;
  border: 1px solid rgba(185, 132, 43, .18);
  border-radius: 14px;
  background: linear-gradient(105deg, #fbf8ef, #fff 62%);
  box-shadow: 0 8px 20px rgba(65, 55, 31, .04);
}

.member-home-next > div:first-child {
  display: grid;
  gap: 5px;
}

.member-home-next small {
  color: #ad792b;
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.member-home-next strong {
  max-width: 64ch;
  color: #26322f;
  font-size: 14px;
  line-height: 1.45;
}

.member-home-next-meta {
  display: flex;
  gap: 8px;
}

.member-home-next-meta span {
  min-width: 82px;
  display: grid;
  gap: 3px;
  padding: 9px 12px;
  border-left: 1px solid rgba(25, 64, 54, .12);
  color: #78807d;
  font-size: 9px;
  font-weight: 850;
}

.member-home-next-meta b {
  color: #173b33;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 23px;
  line-height: 1;
}

.profile-public-id {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  margin: 10px 0;
  padding: 15px 17px;
  border: 1px solid rgba(22, 68, 56, .12);
  border-radius: 12px;
  background: linear-gradient(115deg, #f4f8f5, #fff);
}

.profile-public-id > div {
  min-width: 0;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 3px 10px;
}

.profile-public-id small {
  color: #9b6c25;
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.profile-public-id strong {
  color: #173b33;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 15px;
  letter-spacing: .025em;
}

.profile-public-id span {
  grid-column: 1 / -1;
  color: #7b8380;
  font-size: 10px;
}

.profile-public-id button,
.community-player-identity button,
.community-join-public-id,
.community-account-id {
  border: 1px solid rgba(25, 79, 65, .16);
  border-radius: 7px;
  background: #fff;
  color: #1a5b4c;
  font-size: 10px;
  font-weight: 900;
  cursor: pointer;
}

.profile-public-id button {
  min-height: 38px;
  padding: 8px 13px;
}

.profile-public-id button.is-copied,
.community-player-identity button.is-copied,
.community-join-public-id.is-copied,
.community-account-id.is-copied {
  border-color: #c7963e;
  background: #fbf5e6;
  color: #9a6817;
}

.community-player-identity button {
  width: max-content;
  max-width: 100%;
  min-height: 0;
  padding: 3px 6px;
  border: 0;
  background: #edf3ef;
  color: #527068;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 8px;
  letter-spacing: .03em;
}

.community-join-public-id {
  width: max-content;
  max-width: 100%;
  min-height: 30px;
  margin: 6px 0 2px;
  padding: 5px 9px;
}

.community-account-strip {
  grid-template-columns: minmax(170px, 1.25fr) repeat(3, minmax(0, .65fr)) auto;
}

.community-account-id {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 2px;
  padding: 9px 12px;
  border: 0;
  border-right: 1px solid var(--hairline);
  border-radius: 0;
  background: #f5f8f5;
  text-align: left;
}

.community-account-id small {
  color: #8c928f;
  font-size: 8px;
}

.community-account-id strong {
  overflow: hidden;
  color: #173b33;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 720px) {
  body.is-player-authenticated .member-home {
    gap: 10px;
    margin: 14px auto 18px;
  }

  .member-home-command {
    min-height: 0;
    grid-template-columns: minmax(0, 1fr) 112px;
    gap: 13px;
    padding: 22px 18px;
    border-radius: 18px;
  }

  .member-home-command::before {
    right: -8%;
    bottom: -22%;
    font-size: 210px;
  }

  .member-home-copy small {
    font-size: 9px;
  }

  .member-home-copy strong {
    max-width: 10ch;
    margin-top: 7px;
    font-size: 31px;
    line-height: 1;
  }

  .member-home-copy p {
    display: -webkit-box;
    overflow: hidden;
    margin-top: 10px;
    font-size: 11px;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .member-home-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    margin-top: 15px;
  }

  .member-home-actions a {
    min-height: 40px;
    padding: 8px 10px;
    font-size: 10px;
  }

  .member-home-actions a:not(.is-primary) {
    display: none;
  }

  .member-home-meter {
    min-height: 146px;
    padding: 10px;
    border-radius: 13px;
  }

  .member-home-meter > i {
    width: 90px;
    height: 90px;
  }

  .member-home-meter > i::after {
    width: 76px;
    height: 76px;
  }

  .member-home-meter small {
    max-width: 9ch;
    font-size: 7px;
  }

  .member-home-meter strong {
    font-size: 21px;
  }

  .member-home-meter span {
    font-size: 8px;
  }

  .member-home-snapshot {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .member-home-snapshot-card {
    min-height: 124px;
    gap: 5px;
    padding: 14px;
    border-radius: 12px;
  }

  .member-home-snapshot-card strong {
    font-size: 27px;
  }

  .member-home-snapshot-card span {
    font-size: 9px;
  }

  .member-home-next {
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    padding: 16px;
    border-radius: 12px;
  }

  .member-home-next strong {
    font-size: 12px;
  }

  .member-home-next-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .member-home-next-meta span {
    min-width: 0;
    padding: 7px 9px;
    border-left: 0;
    border-top: 1px solid rgba(25, 64, 54, .1);
  }

  .profile-public-id {
    gap: 10px;
    padding: 13px;
  }

  .profile-public-id > div {
    grid-template-columns: minmax(0, 1fr);
    gap: 3px;
  }

  .profile-public-id span {
    display: none;
  }

  .profile-public-id button {
    min-height: 36px;
    padding: 7px 10px;
  }

  .community-account-strip {
    grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, .6fr));
  }

  .community-account-strip > button:last-child {
    grid-column: 1 / -1;
    min-height: 36px;
  }

  .community-account-id {
    min-width: 0;
    padding: 8px;
  }

  .community-account-id strong {
    font-size: 9px;
  }
}

/* v181 controlled stroke selector */
.stroke-mode-options {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
  margin: 0 0 14px;
  padding: 0;
  border: 0;
}

.stroke-mode-options legend {
  grid-column: 1 / -1;
  margin-bottom: 2px;
  color: var(--text-soft, var(--muted));
  font-size: 11px;
  font-weight: 900;
}

.stroke-mode-options label {
  min-width: 0;
  margin: 0;
  cursor: pointer;
}

.stroke-mode-options input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  clip-path: inset(50%);
}

.stroke-mode-options span {
  min-height: 44px;
  display: grid;
  place-items: center;
  padding: 9px 10px;
  border: 1px solid var(--hairline, rgba(18, 107, 87, 0.16));
  border-radius: 7px;
  background: #ffffff;
  color: var(--text-strong, #10201d);
  font-size: 13px;
  font-weight: 900;
  text-align: center;
  transition: border-color 0.16s ease, background 0.16s ease, color 0.16s ease, transform 0.16s ease;
}

.stroke-mode-options label:hover span {
  transform: translateY(-1px);
  border-color: var(--brand, #126b57);
}

.stroke-mode-options input:checked + span {
  border-color: var(--brand-deep, #10201d);
  background: var(--brand-deep, #10201d);
  color: #ffffff;
}

.stroke-mode-options input:focus-visible + span {
  outline: 3px solid rgba(200, 242, 74, 0.45);
  outline-offset: 2px;
}

.quick-video-tags .backhand-style-options {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  order: 3;
}

.quick-video-tags .level-options {
  order: 4;
}

#backhandStyleOptions[hidden] {
  display: none;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background:
    radial-gradient(circle at 18% 0%, rgba(200, 242, 74, 0.2), transparent 270px),
    radial-gradient(circle at 86% 8%, rgba(36, 95, 206, 0.12), transparent 300px),
    linear-gradient(180deg, rgba(246, 250, 244, 0.98), rgba(255, 255, 255, 0) 360px),
    var(--paper);
}

body::after {
  content: "";
  position: fixed;
  inset: auto 0 0;
  height: env(safe-area-inset-bottom);
  background: rgba(251, 252, 248, 0.96);
  pointer-events: none;
  z-index: 20;
}

button,
input,
select,
textarea {
  font: inherit;
}

.topbar {
  position: sticky;
  top: 0;
  z-index: 10;
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: center;
  padding: 12px clamp(18px, 4vw, 54px);
  border-bottom: 1px solid rgba(19, 32, 28, 0.1);
  background: rgba(251, 252, 248, 0.86);
  backdrop-filter: blur(18px);
}

.brand-lockup {
  display: flex;
  gap: 11px;
  align-items: center;
}

.brand-mark {
  width: 40px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 8px;
  background:
    linear-gradient(135deg, var(--court), #10201d 68%);
  color: var(--lime);
  font-weight: 950;
  box-shadow: 0 10px 24px rgba(18, 107, 87, 0.18);
}

.brand-mark img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.brand-copy {
  min-width: 0;
}

.brand-title {
  display: flex;
  gap: 8px;
  align-items: baseline;
  min-width: 0;
}

.brand-english {
  color: var(--muted);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
}

html[lang="en"] .brand-english {
  display: none;
}

.topbar strong {
  display: block;
  font-size: 18px;
}

.topbar span,
.topbar a,
small {
  color: var(--muted);
}

.topbar nav {
  display: flex;
  gap: 6px;
  align-items: center;
}

.topbar a {
  padding: 8px 10px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 850;
}

.topbar a:hover {
  background: rgba(18, 107, 87, 0.08);
  color: var(--court);
}

.topbar a.is-active {
  background: #10201d;
  color: #ffffff;
}

.mobile-tabs {
  display: none;
}

main {
  width: min(1180px, calc(100% - 32px));
  margin: 0 auto 64px;
}

.install-card {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 14px;
  align-items: center;
  margin: 18px 0 0;
  padding: 13px 14px;
  border: 1px solid rgba(18, 107, 87, 0.18);
  border-radius: 8px;
  background: #f3fbf6;
}

.install-card[hidden] {
  display: none !important;
}

.install-card strong,
.install-card span {
  display: block;
}

.install-card span {
  margin-top: 3px;
  color: var(--muted);
}

.install-card.installed {
  background: #edf6ff;
}

@media (min-width: 901px) {
  .install-card {
    display: none !important;
  }
}

.hero {
  min-height: 520px;
  display: grid;
  grid-template-columns: 0.94fr 1.06fr;
  gap: clamp(28px, 5vw, 60px);
  align-items: center;
  padding: 48px 0 28px;
}

.member-home {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(320px, 0.7fr);
  gap: 20px;
  align-items: center;
  margin: 28px 0 18px;
  padding: 24px;
  border: 1px solid rgba(16, 32, 29, 0.18);
  border-radius: 8px;
  background: #103d34;
  color: #ffffff;
  box-shadow: 0 18px 38px rgba(16, 32, 29, 0.12);
}

.member-home[hidden] {
  display: none;
}

.member-home-copy {
  min-width: 0;
}

.member-home-copy small,
.member-home-copy strong,
.member-home-copy p {
  display: block;
}

.member-home-copy small {
  color: rgba(255, 255, 255, 0.68);
  font-size: 12px;
  font-weight: 950;
}

.member-home-copy strong {
  max-width: 680px;
  margin-top: 5px;
  color: #ffffff;
  font-size: clamp(26px, 3vw, 40px);
  line-height: 1.08;
}

.member-home-copy p {
  max-width: 660px;
  margin: 9px 0 0;
  color: rgba(255, 255, 255, 0.74);
  line-height: 1.48;
}

.member-home-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}

.member-home-actions a {
  min-height: 40px;
  display: inline-grid;
  place-items: center;
  padding: 9px 13px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 7px;
  color: #ffffff;
  font-size: 13px;
  font-weight: 950;
  text-decoration: none;
}

.member-home-actions a.is-primary {
  border-color: var(--lime);
  background: var(--lime);
  color: #10201d;
}

.member-home-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.member-home-stats div {
  min-width: 0;
  padding: 13px 11px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
}

.member-home-stats small,
.member-home-stats b,
.member-home-stats em {
  display: block;
}

.member-home-stats small {
  color: rgba(255, 255, 255, 0.64);
  font-size: 11px;
  font-weight: 900;
}

.member-home-stats b {
  margin-top: 5px;
  color: var(--lime);
  font-size: 28px;
  line-height: 1;
}

.member-home-stats em {
  margin-top: 4px;
  color: rgba(255, 255, 255, 0.68);
  font-size: 11px;
  font-style: normal;
  font-weight: 850;
}

body.is-player-authenticated .hero,
body.is-player-authenticated .studio-strip {
  display: none;
}

.eyebrow {
  margin: 0 0 12px;
  color: var(--court);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0;
}

h1 {
  margin: 0;
  max-width: 760px;
  font-size: clamp(44px, 6vw, 76px);
  line-height: 0.98;
  letter-spacing: 0;
}

.hero-copy p:last-child {
  max-width: 620px;
  color: var(--muted);
  font-size: 18px;
  line-height: 1.65;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  margin-top: 24px;
}

.hero-trust-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
  max-width: 620px;
  margin-top: 18px;
}

.hero-trust-row span {
  min-width: 0;
  padding: 12px;
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.74);
  box-shadow: 0 12px 28px rgba(19, 32, 28, 0.06);
}

.hero-trust-row b,
.hero-trust-row em {
  display: block;
}

.hero-trust-row b {
  color: var(--court);
  font-size: 14px;
}

.hero-trust-row em {
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  font-weight: 850;
  line-height: 1.25;
}

.primary-link,
.text-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  border-radius: 8px;
  font-weight: 900;
  text-decoration: none;
}

.primary-link {
  padding: 0 18px;
  background: var(--court);
  color: #fff;
  box-shadow: 0 5px 0 #0c4d3f;
}

.text-link {
  padding: 0 4px;
  color: var(--court);
}

.hero-panel {
  position: relative;
  min-height: 472px;
  padding: 14px;
  border: 1px solid rgba(19, 32, 28, 0.12);
  background:
    linear-gradient(145deg, rgba(200, 242, 74, 0.2), rgba(36, 95, 206, 0.1) 36%, rgba(16, 32, 29, 0) 64%),
    #10201d;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 28px 80px rgba(19, 32, 28, 0.24);
}

.dashboard-shell {
  height: 100%;
  display: grid;
  gap: 12px;
  color: #f8fff8;
}

.dashboard-top {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 11px 12px;
  border: 1px solid rgba(255, 255, 255, 0.11);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.07);
  backdrop-filter: blur(10px);
}

.dashboard-top span,
.dashboard-top em {
  color: rgba(248, 255, 248, 0.72);
  font-size: 12px;
  font-style: normal;
  font-weight: 800;
}

.dashboard-top strong {
  text-align: center;
  letter-spacing: 0;
}

.motion-stage {
  position: relative;
  min-height: 272px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  overflow: hidden;
  background: #071613;
}

.hero-image {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: 58% 50%;
  min-height: 272px;
}

.motion-stage::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(7, 22, 19, 0.34), rgba(7, 22, 19, 0.02) 48%, rgba(7, 22, 19, 0.44)),
    linear-gradient(180deg, rgba(7, 22, 19, 0.06), rgba(7, 22, 19, 0.5));
  pointer-events: none;
}

.scan-chip {
  position: absolute;
  left: 16px;
  bottom: 18px;
  z-index: 4;
  display: inline-flex;
  gap: 8px;
  align-items: center;
  padding: 9px 11px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 999px;
  background: rgba(7, 22, 19, 0.72);
  color: #fff;
  font-size: 12px;
  font-weight: 900;
  backdrop-filter: blur(12px);
}

.scan-chip i {
  width: 8px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--lime);
  box-shadow: 0 0 0 5px rgba(200, 242, 74, 0.18);
}

.score-chip {
  position: absolute;
  z-index: 3;
  right: 18px;
  bottom: 18px;
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding: 10px 12px;
  border: 1px solid rgba(19, 32, 28, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.88);
  font-weight: 800;
}

.score-chip span:first-child {
  color: var(--clay);
  font-size: 30px;
}

.score-chip span:last-child {
  color: var(--ink);
  font-size: 14px;
}

.score-chip.gate-chip span:first-child {
  color: var(--court);
  font-size: 20px;
  letter-spacing: 0;
}

.score-chip.gate-chip span:last-child {
  color: var(--ink);
  font-size: 12px;
  font-weight: 950;
}

.dashboard-metrics {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.dashboard-metrics div {
  min-width: 0;
  padding: 12px;
  border: 1px solid rgba(255, 255, 255, 0.11);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.94);
  color: var(--ink);
}

.dashboard-metrics small,
.dashboard-metrics b,
.dashboard-metrics span {
  display: block;
}

.dashboard-metrics small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}

.dashboard-metrics b {
  margin: 3px 0;
  color: var(--court);
  font-size: 25px;
}

.dashboard-metrics span {
  color: var(--clay);
  font-size: 12px;
  font-weight: 900;
}

.insight-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}

.insight-list span {
  display: grid;
  place-items: center;
  min-height: 91px;
  padding: 10px 6px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.92);
  color: var(--ink);
  text-align: center;
}

.insight-list b,
.insight-list em {
  display: block;
}

.insight-list b {
  color: var(--clay);
  font-size: 28px;
}

.insight-list em {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  font-weight: 900;
}

.hero-system-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
}

.hero-system-strip span {
  min-width: 0;
  padding: 10px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  background: rgba(7, 22, 19, 0.62);
  color: #fff;
}

.hero-system-strip b,
.hero-system-strip em {
  display: block;
}

.hero-system-strip b {
  color: var(--lime);
  font-size: 13px;
}

.hero-system-strip em {
  margin-top: 3px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 11px;
  font-style: normal;
  font-weight: 850;
  line-height: 1.28;
}

.studio-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  margin: 8px 0 18px;
  overflow: hidden;
  border: 1px solid rgba(19, 32, 28, 0.1);
  border-radius: 8px;
  background: rgba(19, 32, 28, 0.1);
  box-shadow: 0 14px 40px rgba(19, 32, 28, 0.05);
}

.studio-strip div {
  min-width: 0;
  display: flex;
  gap: 10px;
  align-items: center;
  padding: 13px 14px;
  background: rgba(255, 255, 255, 0.82);
}

.studio-strip span {
  width: 30px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #eaf3ef;
  color: var(--court);
  font-size: 12px;
  font-weight: 900;
}

.studio-strip strong {
  min-width: 0;
  font-size: 14px;
  line-height: 1.2;
}

.workspace {
  display: grid;
  grid-template-columns: minmax(330px, 390px) minmax(0, 1fr);
  gap: 20px;
  align-items: start;
}

.tool,
.result,
.library {
  border: 1px solid rgba(18, 107, 87, 0.13);
  background: var(--panel);
  border-radius: 8px;
  padding: 18px;
  box-shadow: 0 18px 45px rgba(19, 32, 28, 0.075);
}

.tool {
  position: sticky;
  top: 86px;
}

.capture-brief {
  display: grid;
  gap: 12px;
  margin: -2px 0 16px;
  padding: 14px;
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(18, 107, 87, 0.08), rgba(200, 242, 74, 0.12)),
    #ffffff;
}

.capture-brief strong,
.capture-brief span {
  display: block;
}

.capture-brief strong {
  font-size: 16px;
}

.capture-brief > div:first-child span {
  margin-top: 3px;
  color: var(--muted);
  line-height: 1.42;
}

.capture-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.capture-pills span {
  min-height: 28px;
  display: inline-grid;
  place-items: center;
  padding: 5px 9px;
  border-radius: 999px;
  background: #10201d;
  color: #c8f24a;
  font-size: 12px;
  font-weight: 900;
}

.account-panel,
.player-profile {
  margin-top: 18px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 0.92fr);
  gap: 14px;
  align-items: stretch;
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 8px;
  padding: 18px;
  background:
    linear-gradient(135deg, rgba(18, 107, 87, 0.08), rgba(200, 242, 74, 0.08)),
    #ffffff;
  box-shadow: 0 14px 34px rgba(19, 32, 28, 0.06);
}

.top-account-panel {
  grid-template-columns: minmax(0, 0.88fr) minmax(460px, 1.12fr);
  margin-top: 18px;
  border-color: rgba(16, 32, 29, 0.18);
  background:
    linear-gradient(135deg, #10201d 0%, #126b57 54%, #245fce 120%);
  color: #ffffff;
  box-shadow: 0 20px 44px rgba(16, 32, 29, 0.14);
}

.top-account-panel:not(.is-auth-expanded):not(.is-logged-in) {
  grid-template-columns: minmax(0, 1fr);
  padding: 16px 18px;
}

.top-account-panel.is-logged-in {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  margin-top: 12px;
  padding: 10px 14px;
  border-color: rgba(18, 107, 87, 0.15);
  background: #ffffff;
  color: #10201d;
  box-shadow: 0 8px 22px rgba(16, 32, 29, 0.05);
}

.top-account-panel.is-logged-in .account-copy > strong,
.top-account-panel.is-logged-in .account-copy > span {
  display: none;
}

.top-account-panel.is-logged-in .account-copy small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
}

.top-account-panel.is-logged-in .account-command {
  grid-template-columns: 1fr;
  gap: 0;
  margin-top: 3px;
  padding-top: 0;
  border-top: 0;
}

.top-account-panel.is-logged-in .account-command b {
  color: var(--court);
}

.top-account-panel.is-logged-in .account-command span {
  color: var(--muted);
  font-size: 12px;
}

.top-account-panel.is-logged-in #accountJumpToMine {
  display: none !important;
}

.top-account-panel.is-logged-in .account-form {
  display: grid;
  grid-template-columns: auto;
  min-width: 0;
  max-width: none;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.top-account-panel.is-logged-in .auth-actions {
  display: grid;
  grid-template-columns: auto;
  margin: 0;
}

.top-account-panel.is-logged-in #logoutButton {
  min-height: 38px;
  padding: 8px 11px;
  border: 1px solid rgba(18, 107, 87, 0.18);
  border-radius: 7px;
  background: #f2f8f4;
  color: var(--court);
  box-shadow: none;
  font-size: 13px;
  font-weight: 950;
}

.top-account-panel.is-logged-in .message {
  display: none;
}

.top-account-panel .account-copy small,
.top-account-panel .account-copy strong,
.top-account-panel .account-copy span {
  color: #ffffff;
}

.top-account-panel .account-copy small,
.top-account-panel .account-copy span {
  color: rgba(255, 255, 255, 0.72);
}

.top-account-panel .account-copy strong {
  max-width: 720px;
  font-size: clamp(22px, 2.6vw, 34px);
}

.top-account-panel:not(.is-auth-expanded):not(.is-logged-in) .account-copy strong {
  max-width: 760px;
  font-size: clamp(21px, 2.2vw, 28px);
}

.account-command {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  margin-top: 14px;
  padding-top: 13px;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
}

.account-command > div {
  min-width: 0;
}

.account-command b,
.account-command span {
  display: block;
}

.account-command b {
  color: #c8f24a;
  font-size: 12px;
  font-weight: 950;
}

.top-account-panel .account-command span {
  margin-top: 3px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 13px;
  line-height: 1.38;
}

.account-open-button {
  min-height: 42px;
  display: inline-grid;
  place-items: center;
  padding: 10px 13px;
  border: 1px solid rgba(200, 242, 74, 0.64);
  border-radius: 8px;
  background: #c8f24a;
  color: #10201d;
  font-size: 13px;
  font-weight: 950;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
}

.account-open-button[hidden] {
  display: none !important;
}

.account-open-button:hover {
  background: #ddff72;
  color: #10201d;
}

.top-account-panel .account-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.top-account-panel:not(.is-auth-expanded):not(.is-logged-in) .account-form {
  display: none;
}

.auth-form-head {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.auth-form-head small {
  color: rgba(16, 38, 32, 0.68);
  font-size: 13px;
  font-weight: 900;
}

.auth-collapse-button {
  min-height: 32px;
  padding: 6px 8px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: rgba(16, 38, 32, 0.62);
  box-shadow: none;
  font-size: 12px;
  font-weight: 900;
}

.auth-collapse-button:hover {
  background: rgba(18, 107, 87, 0.08);
  color: var(--court);
}

.auth-mode-switch,
.auth-mode-hint {
  grid-column: 1 / -1;
}

.auth-mode-switch {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  padding: 4px;
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 8px;
  background: rgba(18, 107, 87, 0.06);
}

.auth-mode-switch button {
  min-height: 42px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: rgba(16, 38, 32, 0.68);
  box-shadow: none;
}

.auth-mode-switch button.is-active {
  background: #ffffff;
  color: var(--court);
  box-shadow: 0 8px 20px rgba(16, 32, 29, 0.08);
}

.auth-mode-hint {
  margin: -2px 0 2px;
  color: rgba(16, 38, 32, 0.62);
  font-size: 13px;
  font-weight: 750;
}

.top-account-panel .account-form label {
  margin-bottom: 0;
}

.top-account-panel .account-form .auth-legal-consent {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  padding: 11px 12px;
  border: 1px solid rgba(37, 43, 45, 0.12);
  border-radius: 8px;
  background: #fbfaf6;
  color: rgba(37, 43, 45, 0.76);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.55;
}

.top-account-panel .account-form .auth-legal-consent input {
  width: 18px;
  min-height: 18px;
  margin: 1px 0 0;
  accent-color: var(--court);
}

.top-account-panel .account-form .auth-legal-consent a {
  color: var(--court);
  font-weight: 900;
  text-underline-offset: 2px;
}

.top-account-panel .auth-actions,
.top-account-panel .message {
  grid-column: 1 / -1;
}

.account-panel.is-logged-in .account-form label,
.account-panel.is-logged-in .auth-mode-switch,
.account-panel.is-logged-in .auth-mode-hint,
.account-panel.is-logged-in .auth-form-head {
  display: none;
}

.account-panel.is-logged-in .auth-actions {
  grid-template-columns: auto;
  justify-content: start;
}

.account-panel.is-logged-in .auth-actions .primary {
  display: none;
}

.account-panel.is-logged-in:not(.top-account-panel) .account-command {
  margin-top: 10px;
}

.account-panel.is-logged-in:not(.top-account-panel) .account-form {
  max-width: 250px;
  align-self: center;
}

.my-space {
  margin-top: 18px;
  display: grid;
  gap: 14px;
  scroll-margin-top: 96px;
}

.my-space-title {
  padding: 16px 18px;
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(18, 107, 87, 0.08), rgba(200, 242, 74, 0.1)),
    #ffffff;
  box-shadow: 0 14px 34px rgba(19, 32, 28, 0.05);
}

.my-space > .account-panel,
.my-space > .history,
.my-space > .player-profile {
  margin-top: 0;
}

.operator-workbench,
.business-lab {
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 14px 34px rgba(19, 32, 28, 0.05);
  overflow: hidden;
}

.operator-workbench summary,
.business-lab summary {
  position: relative;
  min-height: 64px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 14px 18px;
  cursor: pointer;
  list-style: none;
}

.operator-workbench summary::-webkit-details-marker,
.business-lab summary::-webkit-details-marker {
  display: none;
}

.operator-workbench summary span,
.operator-workbench summary small,
.business-lab summary span,
.business-lab summary small {
  display: block;
}

.operator-workbench summary span,
.business-lab summary span {
  color: var(--ink);
  font-size: 16px;
  font-weight: 950;
}

.operator-workbench summary small,
.business-lab summary small {
  max-width: 520px;
  color: var(--muted);
  font-weight: 750;
  line-height: 1.35;
  text-align: right;
}

.operator-workbench summary::after,
.business-lab summary::after {
  width: 28px;
  aspect-ratio: 1;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #eef6f1;
  color: var(--court);
  font-weight: 950;
  content: "+";
}

.operator-workbench[open] summary,
.business-lab[open] summary {
  border-bottom: 1px solid rgba(18, 107, 87, 0.12);
}

.operator-workbench[open] summary::after,
.business-lab[open] summary::after {
  content: "-";
}

.operator-workbench:not([open]) .commerce-board,
.business-lab:not([open]) > section {
  display: none;
}

.account-copy {
  display: grid;
  align-content: center;
  gap: 8px;
}

.account-copy small,
.account-copy strong,
.account-copy span {
  display: block;
}

.account-copy small {
  color: var(--court);
  font-weight: 900;
}

.account-copy strong {
  max-width: 680px;
  font-size: clamp(24px, 3vw, 36px);
  line-height: 1.08;
}

.account-copy span {
  max-width: 650px;
  color: var(--muted);
  line-height: 1.55;
  font-weight: 650;
}

.account-form {
  padding: 14px;
  border: 1px solid rgba(18, 107, 87, 0.13);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.88);
}

.account-form [hidden] {
  display: none !important;
}

.auth-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 8px;
  align-items: center;
}

.auth-forgot-button,
.auth-back-button {
  min-height: 40px;
  padding: 8px 10px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--court);
  box-shadow: none;
  font-size: 13px;
  font-weight: 900;
  white-space: nowrap;
}

.auth-forgot-button:hover,
.auth-back-button:hover {
  background: rgba(18, 107, 87, 0.08);
  color: #0c4d3f;
}

.password-reset-panel {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 2px;
  padding-top: 14px;
  border-top: 1px solid rgba(18, 107, 87, 0.16);
}

.password-reset-panel[hidden] {
  display: none !important;
}

.password-reset-copy,
.password-reset-actions,
.password-reset-message {
  grid-column: 1 / -1;
}

.password-reset-copy small,
.password-reset-copy strong,
.password-reset-copy p {
  display: block;
}

.password-reset-copy small {
  color: var(--court);
  font-size: 12px;
  font-weight: 950;
}

.password-reset-copy strong {
  margin-top: 4px;
  color: #10201d;
  font-size: 19px;
  line-height: 1.2;
}

.password-reset-copy p {
  max-width: 560px;
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.45;
}

.password-reset-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
}

.password-reset-actions .primary {
  min-width: 0;
}

.password-reset-message {
  margin: 0;
}

.result {
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(247, 251, 248, 0.98), #ffffff 210px);
}

#report {
  scroll-margin-top: 96px;
}

.section-title {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
  margin-bottom: 16px;
  font-weight: 900;
}

.section-title > span {
  white-space: nowrap;
}

label {
  display: grid;
  gap: 7px;
  margin-bottom: 13px;
  color: #31413c;
  font-weight: 700;
}

input,
select,
textarea {
  width: 100%;
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 6px;
  padding: 12px 12px;
  color: var(--ink);
  background: #fbfdfb;
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

input:focus,
select:focus,
textarea:focus {
  outline: 0;
  border-color: var(--court);
  box-shadow: 0 0 0 4px rgba(18, 107, 87, 0.12);
}

textarea {
  resize: vertical;
}

.upload-box {
  position: relative;
  min-height: 150px;
  align-content: center;
  justify-items: center;
  gap: 8px;
  padding: 18px;
  border: 1px solid rgba(18, 107, 87, 0.2);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(200, 242, 74, 0.2), rgba(36, 95, 206, 0.08)),
    linear-gradient(180deg, #fbfff6, #f2faf4);
  text-align: center;
  cursor: pointer;
  transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.upload-box input {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}

.upload-box span {
  color: var(--court);
  font-size: 13px;
}

.upload-box strong {
  font-size: 19px;
}

.upload-box em {
  max-width: 280px;
  color: var(--muted);
  font-style: normal;
  font-weight: 600;
  line-height: 1.35;
}

.upload-box:hover {
  transform: translateY(-1px);
  border-color: rgba(18, 107, 87, 0.56);
  box-shadow: 0 12px 28px rgba(18, 107, 87, 0.1);
}

.upload-box.has-file {
  border-color: rgba(18, 107, 87, 0.64);
  background:
    linear-gradient(135deg, rgba(200, 242, 74, 0.28), rgba(18, 107, 87, 0.12)),
    linear-gradient(180deg, #fbfff6, #edf8ef);
  box-shadow: 0 14px 34px rgba(18, 107, 87, 0.12);
}

.upload-box.is-too-large {
  border-color: rgba(200, 95, 50, 0.76);
  background:
    linear-gradient(135deg, rgba(255, 210, 182, 0.58), rgba(255, 246, 238, 0.92)),
    #fffaf7;
  box-shadow: 0 14px 34px rgba(200, 95, 50, 0.12);
}

.upload-box.is-too-large span,
.upload-box.is-too-large em {
  color: #a34525;
}

.upload-box.is-uploading {
  pointer-events: none;
  cursor: wait;
  opacity: 0.78;
}

.upload-preflight {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  margin: -3px 0 12px;
  padding: 10px 11px;
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 8px;
  background: #f7fbf8;
}

.upload-preflight[hidden] {
  display: none;
}

.upload-preflight strong,
.upload-preflight em {
  font-size: 12px;
  font-weight: 950;
}

.upload-preflight strong {
  color: var(--court);
}

.upload-preflight > div {
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.upload-preflight span {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 3px 7px;
  border-radius: 999px;
  background: #e7f1eb;
  color: #315149;
  font-size: 11px;
  font-weight: 850;
}

.upload-preflight em {
  color: var(--court);
  font-style: normal;
  text-align: right;
}

.upload-preflight.is-warning {
  border-color: rgba(200, 95, 50, 0.24);
  background: #fffaf5;
}

.upload-preflight.is-warning strong,
.upload-preflight.is-warning em {
  color: #a34525;
}

.tool button.primary:disabled {
  cursor: not-allowed;
  background: linear-gradient(180deg, #d9e4dc, #becbc3);
  color: rgba(16, 38, 32, 0.54);
  box-shadow: none;
  transform: none;
}

.video-preview {
  width: 100%;
  aspect-ratio: 16 / 9;
  margin: -2px 0 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #0f1b18;
  object-fit: cover;
}

.quick-video-tags {
  display: grid;
  gap: 12px;
  margin: 0 0 14px;
  padding: 13px;
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(239, 248, 242, 0.92)),
    #ffffff;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.quick-tag-head {
  display: grid;
  gap: 3px;
}

.quick-tag-head strong,
.quick-tag-head span {
  display: block;
}

.quick-tag-head strong {
  color: #10201d;
  font-size: 16px;
}

.quick-tag-head span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 750;
  line-height: 1.35;
}

.quick-video-tags fieldset {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
  margin: 0;
  padding: 0;
  border: 0;
}

.quick-video-tags .handedness-options {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  order: 2;
}

.quick-video-tags .level-options {
  order: 3;
}

.quick-video-tags legend {
  grid-column: 1 / -1;
  margin-bottom: 1px;
  color: var(--court);
  font-size: 12px;
  font-weight: 950;
}

.quick-video-tags label {
  min-width: 0;
  display: block;
  margin: 0;
  cursor: pointer;
}

.quick-video-tags input {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: 0;
  overflow: hidden;
  opacity: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.quick-video-tags label span {
  min-height: 42px;
  display: grid;
  place-items: center;
  padding: 8px 7px;
  border: 1px solid rgba(18, 107, 87, 0.13);
  border-radius: 8px;
  background: #ffffff;
  color: #172b24;
  font-size: 13px;
  font-weight: 950;
  line-height: 1.15;
  text-align: center;
  transition: transform 0.16s ease, border-color 0.16s ease, background 0.16s ease, color 0.16s ease, box-shadow 0.16s ease;
}

.quick-video-tags label:hover span {
  transform: translateY(-1px);
  border-color: rgba(18, 107, 87, 0.32);
}

.quick-video-tags input:checked + span {
  border-color: rgba(16, 32, 29, 0.88);
  background: #10201d;
  color: #c8f24a;
  box-shadow: 0 10px 20px rgba(16, 32, 29, 0.12);
}

.quick-video-tags input:focus-visible + span {
  outline: 3px solid rgba(200, 242, 74, 0.45);
  outline-offset: 2px;
}

.optional-context,
.video-name-field {
  display: none;
}

.optional-analysis-fields {
  margin: 0 0 13px;
  border: 1px solid rgba(18, 107, 87, 0.12);
  border-radius: 8px;
  background: #fbfdfb;
}

.optional-analysis-fields summary {
  min-height: 42px;
  display: grid;
  align-items: center;
  padding: 10px 12px;
  color: var(--court);
  cursor: pointer;
  font-size: 13px;
  font-weight: 950;
  list-style: none;
}

.optional-analysis-fields summary::-webkit-details-marker {
  display: none;
}

.optional-analysis-fields summary::after {
  justify-self: end;
  margin-top: -20px;
  color: var(--muted);
  content: "+";
}

.optional-analysis-fields[open] summary {
  border-bottom: 1px solid rgba(18, 107, 87, 0.1);
}

.optional-analysis-fields[open] summary::after {
  content: "-";
}

.optional-analysis-fields label {
  margin: 12px;
}

.calibration-consent {
  margin: -2px 0 13px;
  border-top: 1px solid rgba(18, 107, 87, 0.12);
  border-bottom: 1px solid rgba(18, 107, 87, 0.12);
}

.calibration-consent summary {
  min-height: 42px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding: 10px 1px;
  color: var(--court);
  cursor: pointer;
  list-style: none;
}

.calibration-consent summary::-webkit-details-marker {
  display: none;
}

.calibration-consent summary span {
  font-size: 13px;
  font-weight: 950;
}

.calibration-consent summary small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.25;
  text-align: right;
}

.calibration-consent > label {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  margin: 0;
  padding: 2px 1px 13px;
  cursor: pointer;
}

.calibration-consent input[type="checkbox"] {
  width: 18px;
  min-height: 18px;
  height: 18px;
  margin: 2px 0 0;
  padding: 0;
  accent-color: var(--court);
  box-shadow: none;
}

.calibration-consent b,
.calibration-consent em {
  display: block;
}

.calibration-consent b {
  color: #172b24;
  font-size: 13px;
  line-height: 1.32;
}

.calibration-consent em {
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  font-weight: 700;
  line-height: 1.36;
}

.upload-mission {
  display: grid;
  gap: 10px;
  margin: 0 0 14px;
  padding: 13px;
  border: 1px solid rgba(16, 32, 29, 0.12);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(16, 32, 29, 0.96), rgba(18, 107, 87, 0.9)),
    #10201d;
  color: #ffffff;
  box-shadow: 0 12px 26px rgba(16, 32, 29, 0.12);
}

.upload-mission small,
.upload-mission strong,
.upload-mission span {
  display: block;
}

.upload-mission small {
  color: rgba(255, 255, 255, 0.6);
  font-size: 11px;
  font-weight: 950;
}

.upload-mission strong {
  margin-top: 4px;
  color: #ffffff;
  font-size: 17px;
  line-height: 1.2;
}

.upload-mission > p {
  margin: 0;
  color: rgba(255, 255, 255, 0.74);
  font-size: 13px;
  font-weight: 750;
  line-height: 1.45;
}

.upload-mission > div:last-child {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}

.upload-mission span {
  min-width: 0;
  min-height: 34px;
  display: grid;
  place-items: center;
  padding: 6px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.08);
  color: var(--lime);
  font-size: 11px;
  font-weight: 950;
  line-height: 1.15;
  text-align: center;
}

.grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.optional-context.grid-2 {
  display: none;
}

button {
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 10px 13px;
  background: #fff;
  color: var(--ink);
  cursor: pointer;
  font-weight: 800;
}

.language-toggle {
  min-width: 46px;
  padding: 7px 10px;
  border-color: rgba(18, 107, 87, 0.24);
  color: var(--court);
}

.primary {
  width: 100%;
  border-color: var(--court);
  background: var(--court);
  color: #fff;
  box-shadow: 0 5px 0 #0c4d3f;
  transform: translateY(0);
}

.primary:active {
  box-shadow: 0 2px 0 #0c4d3f;
  transform: translateY(3px);
}

.message {
  min-height: 22px;
  margin: 10px 0 0;
  color: var(--court);
  font-weight: 700;
}

.analysis-progress {
  position: relative;
  overflow: hidden;
  display: grid;
  gap: 10px;
  margin-top: 12px;
  padding: 14px;
  border: 1px solid rgba(18, 107, 87, 0.18);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(16, 32, 29, 0.96), rgba(18, 107, 87, 0.9)),
    #10201d;
  color: #ffffff;
  box-shadow: 0 16px 34px rgba(16, 32, 29, 0.14);
}

.analysis-progress::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px),
    linear-gradient(0deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
  background-size: 34px 34px;
  pointer-events: none;
}

.progress-kicker {
  position: relative;
  display: grid;
  gap: 3px;
  padding-bottom: 4px;
}

.progress-kicker span,
.progress-kicker em {
  display: block;
}

.progress-kicker span {
  color: #ffffff;
  font-weight: 950;
}

.progress-kicker em {
  color: rgba(255, 255, 255, 0.66);
  font-size: 12px;
  font-style: normal;
  line-height: 1.35;
}

.analysis-progress[hidden] {
  display: none;
}

.analysis-progress-head {
  position: relative;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
}

.analysis-progress strong,
.analysis-progress span,
.analysis-progress small {
  display: block;
}

.analysis-progress span {
  color: var(--lime);
  font-weight: 900;
}

.analysis-progress.is-error {
  border-color: rgba(200, 95, 50, 0.34);
  background:
    linear-gradient(135deg, rgba(44, 20, 16, 0.96), rgba(126, 51, 31, 0.9)),
    #2c1410;
}

.analysis-progress.is-error span {
  color: #ffd3bf;
}

.analysis-progress.is-error b {
  background: linear-gradient(90deg, #c85f32, #ffd3bf);
}

.analysis-progress.is-waiting b {
  animation: analysis-progress-wait 1.5s ease-in-out infinite;
}

@keyframes analysis-progress-wait {
  0%, 100% { opacity: 0.72; }
  50% { opacity: 1; }
}

.analysis-progress i {
  position: relative;
  height: 9px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.16);
}

.analysis-progress b {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--court), var(--lime));
  transition: width 260ms ease;
}

.analysis-progress small {
  position: relative;
  color: rgba(255, 255, 255, 0.68);
  line-height: 1.35;
}

.analysis-progress-recovery {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
}

.analysis-progress-recovery[hidden] {
  display: none;
}

.analysis-progress-recovery > div {
  min-width: 0;
  display: grid;
  gap: 4px;
  padding: 10px;
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.08);
}

.analysis-progress-recovery small {
  color: #ffd3bf;
  font-size: 10px;
  font-weight: 900;
}

.analysis-progress-recovery strong {
  color: #ffffff;
  font-size: 12px;
  line-height: 1.45;
}

.analysis-progress-actions {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.analysis-progress-actions[hidden],
.analysis-progress-actions button[hidden] {
  display: none;
}

.analysis-progress-actions button {
  min-height: 38px;
  padding: 8px 11px;
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.1);
  color: #ffffff;
  font-size: 11px;
  font-weight: 900;
  cursor: pointer;
}

#analysisRetryUpload,
#analysisCheckArchive {
  border-color: rgba(200, 242, 74, 0.48);
  background: var(--accent);
  color: var(--brand-deep);
}

.analysis-progress-steps {
  position: relative;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 6px;
}

.analysis-progress-steps span {
  min-width: 0;
  min-height: 34px;
  display: grid;
  place-items: center;
  padding: 5px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.66);
  font-size: 11px;
  font-weight: 900;
  text-align: center;
  line-height: 1.15;
}

.analysis-progress-steps span.is-active {
  border-color: rgba(200, 242, 74, 0.48);
  background: rgba(200, 242, 74, 0.14);
  color: #ffffff;
}

.analysis-progress-steps span.is-done {
  border-color: rgba(200, 242, 74, 0.36);
  background: rgba(255, 255, 255, 0.14);
  color: var(--lime);
}

.analysis-progress-metrics {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}

.analysis-progress-metrics span {
  min-width: 0;
  display: block;
  padding: 10px;
  border: 1px solid rgba(255, 255, 255, 0.11);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
}

.analysis-progress-metrics b,
.analysis-progress-metrics em {
  display: block;
}

.analysis-progress-metrics b {
  width: auto;
  height: auto;
  background: transparent;
  color: #ffffff;
  font-size: 12px;
}

.analysis-progress-metrics em {
  margin-top: 4px;
  color: rgba(255, 255, 255, 0.62);
  font-size: 11px;
  font-style: normal;
  font-weight: 780;
  line-height: 1.25;
}

.analysis-delivery-preview {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}

.analysis-delivery-preview article {
  min-width: 0;
  padding: 10px;
  border: 1px solid rgba(200, 242, 74, 0.18);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.07);
}

.analysis-delivery-preview small,
.analysis-delivery-preview strong {
  display: block;
}

.analysis-delivery-preview small {
  color: var(--lime);
  font-size: 11px;
  font-weight: 950;
}

.analysis-delivery-preview strong {
  margin-top: 4px;
  color: #ffffff;
  font-size: 12px;
  line-height: 1.25;
}

.empty-state {
  min-height: 460px;
  display: grid;
  place-items: center;
  padding: 30px;
  border: 1px dashed var(--line);
  border-radius: 8px;
  color: var(--muted);
  text-align: center;
}

.empty-report {
  min-height: 260px;
  display: grid;
  align-items: center;
  padding: 22px;
  border: 1px solid rgba(18, 107, 87, 0.16);
  border-radius: 8px;
  background: #fbfdfb;
}

.empty-report-copy {
  display: grid;
  align-content: center;
  gap: 12px;
  max-width: 620px;
  margin: 0 auto;
  text-align: center;
}

.empty-report-copy small,
.empty-report-copy strong,
.empty-report-copy p {
  display: block;
}

.empty-report-copy small {
  color: var(--court);
  font-weight: 900;
}

.empty-report-copy strong {
  font-size: clamp(26px, 3vw, 38px);
  line-height: 1.05;
}

.empty-report-copy p {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}

.empty-output-list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  margin-top: 10px;
}

.empty-output-list span {
  min-width: 0;
  padding: 13px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  text-align: center;
}

.empty-output-list b,
.empty-output-list em {
  display: block;
}

.empty-output-list b {
  color: var(--ink);
  font-size: 14px;
  line-height: 1.25;
}

.empty-output-list em {
  margin-top: 4px;
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  font-weight: 900;
}

.report-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 18px;
  align-items: center;
  margin: 0 0 16px;
  padding: 20px;
  border: 1px solid rgba(18, 107, 87, 0.16);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(18, 107, 87, 0.08), rgba(200, 242, 74, 0.15)),
    #ffffff;
  box-shadow: 0 18px 38px rgba(11, 42, 34, 0.09);
}

.report-head h2 {
  margin: 0;
  font-size: clamp(24px, 3vw, 36px);
  line-height: 1.05;
}

.report-head p {
  margin: 9px 0 0;
  color: var(--muted);
  line-height: 1.5;
}

.report-hero-v2 {
  display: grid;
  grid-template-columns: minmax(340px, 0.9fr) minmax(380px, 1.1fr);
  gap: 16px;
  margin: 0;
  padding: 18px;
  border: 1px solid rgba(18, 107, 87, 0.18);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(239, 248, 242, 0.94)),
    linear-gradient(90deg, rgba(18, 107, 87, 0.06) 1px, transparent 1px),
    linear-gradient(0deg, rgba(18, 107, 87, 0.05) 1px, transparent 1px),
    #ffffff;
  background-size: auto, 38px 38px, 38px 38px, auto;
  box-shadow: 0 20px 44px rgba(11, 42, 34, 0.09);
}

.report-hero-copy {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 12px;
}

.hero-status-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.hero-status-row span,
.hero-status-row em {
  min-height: 28px;
  display: inline-grid;
  place-items: center;
  padding: 5px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-style: normal;
  font-weight: 950;
}

.hero-status-row span {
  background: #10201d;
  color: #c8f24a;
  box-shadow: 0 9px 20px rgba(16, 32, 29, 0.12);
}

.hero-status-row em {
  border: 1px solid rgba(18, 107, 87, 0.14);
  background: rgba(255, 255, 255, 0.82);
  color: var(--court);
}

.hero-verdict {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 14px;
  align-items: center;
}

.hero-verdict small,
.hero-verdict h2,
.hero-verdict p {
  display: block;
}

.hero-verdict small {
  color: var(--court);
  font-weight: 950;
}

.hero-verdict h2 {
  margin: 5px 0 0;
  color: #10201d;
  font-size: clamp(30px, 4vw, 48px);
  line-height: 1.03;
}

.hero-verdict p {
  margin: 9px 0 0;
  color: var(--muted);
  line-height: 1.55;
}

.hero-next-step {
  padding: 13px 14px;
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 8px;
  background:
    linear-gradient(90deg, rgba(200, 242, 74, 0.18), rgba(255, 255, 255, 0.88)),
    #f7fbf8;
}

.hero-next-step small,
.hero-next-step strong {
  display: block;
}

.hero-next-step small {
  color: var(--court);
  font-weight: 950;
}

.hero-next-step strong {
  margin-top: 5px;
  color: #172b24;
  line-height: 1.35;
}

.report-play-layer {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.14fr);
  border-top: 1px solid rgba(18, 107, 87, 0.14);
  border-bottom: 1px solid rgba(18, 107, 87, 0.14);
  background: rgba(241, 248, 243, 0.72);
}

.report-play-layer > article {
  min-width: 0;
  padding: 14px;
}

.report-play-layer > article + article {
  border-left: 1px solid rgba(18, 107, 87, 0.13);
}

.report-play-layer.is-pending {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 13px 14px;
}

.report-play-layer.is-pending small,
.report-play-layer.is-pending strong,
.report-play-layer.is-pending p {
  display: block;
}

.report-play-layer.is-pending small {
  color: var(--court);
  font-size: 11px;
  font-weight: 950;
}

.report-play-layer.is-pending strong {
  margin-top: 3px;
  font-size: 18px;
}

.report-play-layer.is-pending p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
}

.report-play-layer.is-pending > span {
  color: var(--court);
  font-size: 22px;
  font-weight: 950;
  white-space: nowrap;
}

.technique-rating-panel {
  display: grid;
  align-content: start;
  gap: 9px;
}

.technique-rating-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: start;
}

.technique-rating-head small,
.technique-rating-head strong,
.technique-rating-head span {
  display: block;
}

.technique-rating-head small {
  color: var(--court);
  font-size: 10px;
  font-weight: 950;
}

.technique-rating-head strong {
  display: flex;
  align-items: end;
  gap: 4px;
  margin-top: 4px;
  line-height: 1;
}

.technique-rating-head strong b {
  color: #10201d;
  font-size: 42px;
}

.technique-rating-head strong em {
  padding-bottom: 4px;
  color: var(--muted);
  font-size: 13px;
  font-style: normal;
}

.technique-rating-head > span {
  min-height: 28px;
  display: inline-grid;
  place-items: center;
  padding: 5px 8px;
  border-radius: 999px;
  background: #10201d;
  color: var(--lime);
  font-size: 10px;
  font-weight: 950;
  text-align: center;
}

.technique-rating-track {
  height: 9px;
  position: relative;
  border-radius: 999px;
  background: #dfe9e2;
  overflow: visible;
}

.technique-rating-track i {
  width: var(--rating);
  height: 100%;
  display: block;
  border-radius: inherit;
  background: var(--court);
}

.technique-rating-track b {
  width: 17px;
  height: 17px;
  position: absolute;
  top: 50%;
  left: var(--rating);
  border: 3px solid #ffffff;
  border-radius: 50%;
  background: var(--lime);
  box-shadow: 0 2px 7px rgba(16, 32, 29, 0.2);
  transform: translate(-50%, -50%);
}

.technique-rating-scale {
  display: flex;
  justify-content: space-between;
  gap: 4px;
  color: var(--muted);
  font-size: 9px;
  font-weight: 850;
}

.technique-rating-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
}

.technique-rating-meta > span {
  min-width: 0;
  padding: 8px 9px;
  border: 1px solid rgba(18, 107, 87, 0.12);
  background: rgba(255, 255, 255, 0.72);
}

.technique-rating-meta small,
.technique-rating-meta b {
  display: block;
}

.technique-rating-meta small {
  color: var(--muted);
  font-size: 9px;
  font-weight: 900;
}

.technique-rating-meta b {
  margin-top: 3px;
  font-size: 15px;
}

.technique-confidence-note {
  display: block;
  margin: 0;
  padding: 8px 9px;
  border-left: 3px solid rgba(184, 138, 62, 0.72);
  background: rgba(247, 242, 232, 0.72);
  color: #5f523f;
  font-size: 9px;
  font-weight: 760;
  line-height: 1.45;
}

.technique-rating-panel > p {
  margin: 0;
  color: var(--muted);
  font-size: 9px;
  font-weight: 760;
  line-height: 1.35;
}

.style-match-panel {
  display: grid;
  grid-template-columns: minmax(130px, 0.72fr) minmax(0, 1.28fr);
  gap: 12px;
  align-items: center;
}

.technique-radar {
  width: 100%;
  max-width: 184px;
  aspect-ratio: 1;
  justify-self: center;
  overflow: visible;
}

.technique-radar text {
  fill: #53655f;
  font-family: inherit;
  font-size: 8px;
  font-weight: 850;
  letter-spacing: 0;
}

.style-match-copy {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 7px;
}

.style-match-copy > small:first-child {
  color: var(--court);
  font-size: 9px;
  font-weight: 950;
  line-height: 1.3;
}

.style-match-copy > strong {
  font-size: 19px;
  line-height: 1.15;
}

.style-match-score {
  display: flex;
  gap: 7px;
  align-items: baseline;
}

.style-match-score b {
  color: var(--clay);
  font-size: 25px;
  line-height: 1;
}

.style-match-score span {
  color: var(--muted);
  font-size: 10px;
  font-weight: 900;
}

.style-match-copy > p {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
}

.style-match-copy > p span,
.style-match-copy > p b {
  display: block;
}

.style-match-copy > p b {
  margin-top: 2px;
  color: var(--ink);
  font-size: 13px;
}

.style-match-evidence {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  align-items: center;
}

.style-match-evidence em {
  width: 100%;
  color: var(--muted);
  font-size: 9px;
  font-style: normal;
  font-weight: 900;
}

.style-match-evidence span {
  min-height: 23px;
  display: inline-flex;
  gap: 4px;
  align-items: center;
  padding: 4px 7px;
  border-radius: 999px;
  background: #ffffff;
  color: var(--court);
  font-size: 9px;
  font-weight: 850;
}

.style-match-evidence span b {
  color: var(--ink);
}

.style-match-note {
  color: var(--muted);
  font-size: 8px;
  line-height: 1.3;
}

.hero-truth-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding: 9px;
  border: 1px solid rgba(16, 32, 29, 0.1);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(16, 32, 29, 0.96), rgba(18, 107, 87, 0.9)),
    #10201d;
  box-shadow: 0 14px 28px rgba(16, 32, 29, 0.12);
}

.hero-truth-strip div {
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.06);
}

.hero-truth-strip small,
.hero-truth-strip b {
  display: block;
}

.hero-truth-strip small {
  color: rgba(255, 255, 255, 0.62);
  font-size: 11px;
  font-weight: 950;
}

.hero-truth-strip b {
  margin-top: 5px;
  color: #ffffff;
  font-size: 13px;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.report-decision-panel {
  display: grid;
  grid-template-columns: minmax(0, 0.64fr) minmax(0, 1fr);
  gap: 10px;
  padding: 12px;
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(247, 251, 248, 0.95)),
    #ffffff;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.78);
}

.report-decision-panel.status-retake {
  border-color: rgba(200, 95, 50, 0.24);
  background:
    linear-gradient(135deg, rgba(255, 248, 243, 0.98), rgba(255, 255, 255, 0.95)),
    #fff8f3;
}

.report-decision-panel.status-verified {
  border-color: rgba(18, 107, 87, 0.22);
  background:
    linear-gradient(135deg, rgba(239, 248, 242, 0.98), rgba(255, 255, 255, 0.95)),
    #eff8f2;
}

.decision-copy,
.decision-grid article {
  min-width: 0;
}

.decision-copy {
  display: grid;
  align-content: center;
  gap: 5px;
  padding: 4px 2px;
}

.decision-copy small,
.decision-copy strong,
.decision-copy p,
.decision-grid small,
.decision-grid b,
.decision-grid span {
  display: block;
}

.decision-copy small,
.decision-grid small {
  color: var(--court);
  font-size: 11px;
  font-weight: 950;
}

.decision-copy strong {
  color: #10201d;
  font-size: 20px;
  line-height: 1.12;
}

.decision-copy p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.42;
}

.decision-grid {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.decision-grid article {
  padding: 10px;
  border: 1px solid rgba(18, 107, 87, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.82);
}

.decision-grid b {
  margin-top: 5px;
  color: #10201d;
  font-size: 14px;
  line-height: 1.22;
  overflow-wrap: anywhere;
}

.decision-grid span {
  margin-top: 5px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 780;
  line-height: 1.34;
}

.hero-evidence-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.hero-evidence-strip div {
  min-width: 0;
  padding: 10px 11px;
  border: 1px solid rgba(18, 107, 87, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75);
}

.hero-evidence-strip small,
.hero-evidence-strip b {
  display: block;
}

.hero-evidence-strip small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 950;
}

.hero-evidence-strip b {
  margin-top: 4px;
  color: #172b24;
  font-size: 13px;
  line-height: 1.25;
}

.coach-review-status {
  display: grid;
  grid-template-columns: minmax(0, 0.74fr) minmax(0, 1.26fr);
  gap: 18px;
  align-items: center;
  margin: 0;
  padding: 16px 18px;
  border-top: 1px solid rgba(18, 107, 87, 0.16);
  border-bottom: 1px solid rgba(18, 107, 87, 0.16);
  background: #f7fbf7;
}

.coach-review-status.status-approved,
.coach-review-status.status-verified {
  background: #f3fbeb;
}

.coach-review-status.status-partial {
  border-color: rgba(189, 134, 36, 0.24);
  background: #fffaf0;
}

.coach-review-status.status-rejected {
  border-color: rgba(200, 95, 50, 0.22);
  background: #fff8f3;
}

.report-truth-status {
  display: grid;
  gap: 12px;
  padding: 17px;
  border: 1px solid var(--hairline);
  border-radius: 8px;
  background: #ffffff;
}

.report-truth-head {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
}

.report-truth-head > div,
.report-truth-grid article > div {
  min-width: 0;
}

.report-truth-head small,
.report-truth-head strong,
.report-truth-grid small,
.report-truth-grid strong,
.report-truth-grid p,
.report-truth-grid em {
  display: block;
}

.report-truth-head small {
  color: var(--brand);
  font-size: 10px;
  font-weight: 950;
  letter-spacing: 0.05em;
}

.report-truth-head strong {
  margin-top: 3px;
  color: var(--text-strong);
  font-size: 13px;
  line-height: 1.4;
}

.report-truth-head > span {
  flex: 0 0 auto;
  padding: 5px 8px;
  border-radius: 999px;
  background: rgba(18, 107, 87, 0.1);
  color: var(--brand);
  font-size: 10px;
  font-weight: 950;
}

.report-truth-status.status-partial .report-truth-head > span {
  background: rgba(189, 134, 36, 0.12);
  color: #8e6117;
}

.report-truth-status.status-rejected .report-truth-head > span {
  background: rgba(200, 95, 50, 0.11);
  color: #a34525;
}

.report-truth-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
}

.report-truth-grid article {
  min-width: 0;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--hairline);
  border-radius: 7px;
  background: var(--surface-soft);
}

.report-truth-grid article > span {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--brand-deep);
  color: var(--accent);
  font-size: 11px;
  font-weight: 950;
}

.report-truth-grid .is-coach.is-confirmed {
  border-color: rgba(18, 107, 87, 0.24);
  background: #f2f8f4;
}

.report-truth-grid .is-coach.is-confirmed > span {
  background: var(--brand);
  color: #ffffff;
}

.report-truth-grid .is-ai-second-review.status-consistent {
  border-color: rgba(18, 107, 87, 0.2);
  background: #f5faf7;
}

.report-truth-grid .is-ai-second-review.status-consistent > span {
  background: var(--brand);
  color: #ffffff;
}

.report-truth-grid .is-ai-second-review.status-failed,
.report-truth-grid .is-ai-second-review.status-retake {
  border-color: rgba(189, 134, 36, 0.22);
  background: #fffaf0;
}

.report-truth-grid small {
  color: var(--text-soft);
  font-size: 9px;
  font-weight: 900;
}

.report-truth-grid strong {
  margin-top: 2px;
  color: var(--text-strong);
  font-size: 13px;
  line-height: 1.3;
}

.report-truth-grid p,
.report-truth-grid em {
  margin: 4px 0 0;
  color: var(--text-soft);
  font-size: 10px;
  font-style: normal;
  line-height: 1.45;
}

.coach-review-copy small,
.coach-review-copy strong,
.coach-review-copy p,
.coach-review-copy em {
  display: block;
}

.coach-review-copy small {
  color: var(--court);
  font-size: 12px;
  font-weight: 950;
}

.coach-review-copy strong {
  margin-top: 4px;
  color: #10201d;
  font-size: 22px;
  line-height: 1.16;
}

.coach-review-copy p {
  margin: 7px 0 0;
  color: var(--muted);
  line-height: 1.46;
}

.coach-review-copy em {
  margin-top: 9px;
  color: var(--court);
  font-size: 12px;
  font-style: normal;
  font-weight: 800;
  line-height: 1.4;
}

.coach-review-chain {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.coach-review-chain article {
  min-width: 0;
  padding-left: 11px;
  border-left: 2px solid rgba(16, 32, 29, 0.12);
}

.coach-review-chain article > span,
.coach-review-chain article > b,
.coach-review-chain article > em {
  display: block;
}

.coach-review-chain article > span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 950;
}

.coach-review-chain article > b {
  margin-top: 5px;
  color: #10201d;
  font-size: 13px;
  line-height: 1.25;
}

.coach-review-chain article > em {
  margin-top: 4px;
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  font-weight: 750;
  line-height: 1.3;
}

.coach-review-chain article.is-done {
  border-left-color: var(--court);
}

.coach-review-chain article.is-done > span,
.coach-review-chain article.is-done > em {
  color: var(--court);
}

.coach-review-chain article.is-pending {
  border-left-color: #d6a22d;
}

.coach-review-chain article.is-blocked {
  border-left-color: #c85f32;
}

.coach-review-chain article.is-blocked > span,
.coach-review-chain article.is-blocked > em {
  color: #b94f2f;
}

.report-evidence-drawer {
  margin-top: 16px;
  border: 1px solid rgba(18, 107, 87, 0.16);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 12px 26px rgba(16, 32, 29, 0.04);
}

.report-evidence-drawer > summary {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 22px;
  gap: 12px;
  align-items: center;
  min-height: 66px;
  padding: 14px 18px;
  color: #10201d;
  cursor: pointer;
  list-style: none;
}

.report-evidence-drawer > summary::-webkit-details-marker {
  display: none;
}

.report-evidence-drawer > summary span,
.report-evidence-drawer > summary em {
  display: block;
}

.report-evidence-drawer > summary span {
  font-size: 16px;
  font-weight: 950;
}

.report-evidence-drawer > summary em {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  font-weight: 750;
  text-align: right;
}

.report-evidence-drawer > summary::after {
  content: "+";
  display: grid;
  place-items: center;
  width: 22px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #eaf3ef;
  color: var(--court);
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
}

.report-evidence-drawer[open] > summary {
  border-bottom: 1px solid rgba(18, 107, 87, 0.13);
}

.report-evidence-drawer[open] > summary::after {
  content: "-";
}

.report-evidence-content {
  display: grid;
  gap: 16px;
  padding: 16px 18px 18px;
}

.score-gate-audit {
  padding: 16px;
  border: 1px solid rgba(18, 107, 87, 0.16);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(18, 107, 87, 0.05), rgba(200, 242, 74, 0.08)),
    #ffffff;
}

.score-gate-audit.is-held {
  border-color: rgba(200, 95, 50, 0.22);
  background:
    linear-gradient(135deg, rgba(200, 95, 50, 0.06), rgba(255, 250, 240, 0.84)),
    #ffffff;
}

.score-gate-head {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: start;
}

.score-gate-head small,
.score-gate-head strong,
.score-gate-head p {
  display: block;
}

.score-gate-head small {
  color: var(--court);
  font-size: 11px;
  font-weight: 950;
}

.score-gate-head strong {
  margin-top: 4px;
  color: #10201d;
  font-size: 21px;
}

.score-gate-head p {
  max-width: 640px;
  margin: 6px 0 0;
  color: var(--muted);
  line-height: 1.45;
}

.score-gate-head > span {
  flex: 0 0 auto;
  padding: 7px 10px;
  border-radius: 999px;
  background: var(--court);
  color: #ffffff;
  font-size: 11px;
  font-weight: 950;
}

.score-gate-audit.is-held .score-gate-head > span {
  background: #fff0e8;
  color: #a4472d;
}

.score-gate-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
  margin-top: 14px;
}

.score-gate-grid article {
  min-width: 0;
  padding: 10px;
  border: 1px solid rgba(16, 32, 29, 0.11);
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.86);
}

.score-gate-grid small,
.score-gate-grid strong,
.score-gate-grid span {
  display: block;
}

.score-gate-grid small {
  overflow: hidden;
  color: var(--muted);
  font-size: 10px;
  font-weight: 900;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.score-gate-grid strong {
  margin-top: 5px;
  color: #10201d;
  font-size: 18px;
}

.score-gate-grid span {
  margin-top: 3px;
  color: var(--court);
  font-size: 10px;
  font-weight: 900;
  line-height: 1.25;
}

.score-gate-grid article.is-wait {
  border-color: rgba(200, 95, 50, 0.2);
}

.score-gate-grid article.is-wait span {
  color: #a4472d;
}

.report-evidence-findings > h3 {
  margin: 0 0 10px;
  color: #10201d;
  font-size: 18px;
}

.report-evidence-findings > h3:not(:first-child) {
  margin-top: 18px;
}

.hero-actions-row {
  justify-content: start;
  gap: 8px;
}

.report-actions a {
  display: inline-grid;
  place-items: center;
  min-height: 38px;
  padding: 9px 12px;
  border: 1px solid rgba(18, 107, 87, 0.18);
  border-radius: 6px;
  background: #ffffff;
  color: var(--court);
  font-size: 13px;
  font-weight: 900;
  text-decoration: none;
  box-shadow: 0 8px 18px rgba(11, 42, 34, 0.05);
}

.hero-actions-row a:first-child {
  border-color: rgba(18, 107, 87, 0.24);
  background: #10201d;
  color: #ffffff;
}

.report-hero-media {
  min-width: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.report-hero-media.single-video {
  grid-template-columns: 1fr;
}

.report-hero-media article {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 8px;
  padding: 11px;
  border: 1px solid rgba(18, 107, 87, 0.13);
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(247, 251, 248, 0.92)),
    #ffffff;
  box-shadow: 0 16px 30px rgba(11, 42, 34, 0.08);
}

.report-hero-media small {
  display: block;
  color: #172b24;
  font-weight: 950;
}

.report-hero-media video {
  width: 100%;
  aspect-ratio: 9 / 16;
  max-height: 520px;
  border-radius: 8px;
  background: #0f1b18;
  object-fit: contain;
}

.report-hero-media.single-video video {
  aspect-ratio: 16 / 9;
  max-height: 430px;
}

.media-detail-head {
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(18, 107, 87, 0.11);
}

.media-detail-head small,
.media-detail-head strong {
  display: block;
}

.media-detail-head small {
  color: var(--court);
  font-weight: 950;
}

.media-detail-head strong {
  margin-top: 3px;
  color: #172b24;
  font-size: 18px;
  line-height: 1.15;
}

.delivery-summary {
  position: relative;
  display: grid;
  grid-template-columns: minmax(240px, 0.75fr) minmax(0, 1.25fr);
  gap: 14px;
  margin: 0;
  padding: 15px;
  border: 1px solid rgba(18, 107, 87, 0.16);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(18, 107, 87, 0.07), rgba(255, 250, 240, 0.66)),
    #ffffff;
  box-shadow: 0 13px 28px rgba(11, 42, 34, 0.055);
}

.delivery-summary > span {
  position: absolute;
  top: 14px;
  right: 14px;
  min-height: 28px;
  display: inline-grid;
  place-items: center;
  padding: 5px 10px;
  border-radius: 999px;
  background: #10201d;
  color: #c8f24a;
  font-size: 12px;
  font-weight: 950;
}

.delivery-copy {
  min-width: 0;
  padding-right: 92px;
}

.delivery-copy small,
.delivery-copy strong,
.delivery-copy p {
  display: block;
}

.delivery-copy small {
  color: var(--court);
  font-weight: 950;
}

.delivery-copy strong {
  margin-top: 5px;
  color: #10201d;
  font-size: 24px;
  line-height: 1.08;
}

.delivery-copy p {
  margin: 8px 0 0;
  color: var(--muted);
  line-height: 1.45;
}

.delivery-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.delivery-metrics div {
  min-width: 0;
  padding: 11px;
  border: 1px solid rgba(18, 107, 87, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.9);
}

.delivery-metrics div:first-child {
  border-color: rgba(200, 95, 50, 0.18);
  background:
    linear-gradient(135deg, rgba(255, 246, 240, 0.86), rgba(255, 255, 255, 0.92)),
    #ffffff;
}

.delivery-metrics small,
.delivery-metrics b {
  display: block;
}

.delivery-metrics small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 950;
}

.delivery-metrics b {
  margin-top: 4px;
  color: #172b24;
  font-size: 13px;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.real-video-evaluation {
  display: grid;
  gap: 12px;
  padding: 15px;
  border: 1px solid rgba(18, 107, 87, 0.16);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(239, 248, 242, 0.94)),
    #ffffff;
  box-shadow: 0 16px 34px rgba(11, 42, 34, 0.07);
}

.real-video-evaluation.status-retake {
  border-color: rgba(200, 95, 50, 0.24);
  background:
    linear-gradient(135deg, rgba(255, 250, 240, 0.98), rgba(255, 255, 255, 0.94)),
    #ffffff;
}

.real-video-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
}

.real-video-head small,
.real-video-head strong,
.real-video-head p {
  display: block;
}

.real-video-head small {
  color: var(--court);
  font-weight: 950;
}

.real-video-head strong {
  margin-top: 4px;
  color: #10201d;
  font-size: 24px;
  line-height: 1.12;
}

.real-video-head p {
  margin: 7px 0 0;
  color: var(--muted);
  line-height: 1.45;
}

.real-video-score {
  width: 104px;
  min-height: 104px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 4px;
  border-radius: 8px;
  background: #10201d;
  color: #ffffff;
}

.real-video-score span,
.real-video-score b {
  display: block;
}

.real-video-score span {
  color: var(--lime);
  font-size: 38px;
  font-weight: 950;
  line-height: 1;
}

.real-video-score b {
  padding: 0 8px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 11px;
  font-weight: 950;
  line-height: 1.2;
  text-align: center;
}

.real-video-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.real-video-kpis div,
.real-video-evidence article,
.real-video-bottom article {
  min-width: 0;
  padding: 11px;
  border: 1px solid rgba(18, 107, 87, 0.12);
  border-radius: 8px;
  background: #ffffff;
}

.real-video-kpis small,
.real-video-kpis b,
.real-video-kpis span {
  display: block;
}

.real-video-kpis small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 950;
}

.real-video-kpis b {
  margin-top: 4px;
  color: #10201d;
  line-height: 1.18;
}

.real-video-kpis span {
  margin-top: 3px;
  color: var(--court);
  font-size: 12px;
  font-weight: 900;
}

.real-video-evidence {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.real-video-evidence small,
.real-video-bottom small {
  display: block;
  margin-bottom: 8px;
  color: var(--court);
  font-size: 11px;
  font-weight: 950;
}

.real-video-evidence article > div {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.real-video-evidence span,
.video-pill-row span {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 5px 8px;
  border-radius: 999px;
  background: #eef8f1;
  color: #172b24;
  font-size: 12px;
  font-weight: 900;
}

.real-video-evidence span b {
  margin-right: 4px;
  color: var(--court);
  font-size: 15px;
}

.real-video-bottom {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.real-video-bottom p {
  display: grid;
  gap: 2px;
  margin: 0 0 8px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(18, 107, 87, 0.09);
}

.real-video-bottom p:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 0;
}

.real-video-bottom b,
.real-video-bottom span {
  display: block;
}

.real-video-bottom b {
  color: #10201d;
  line-height: 1.25;
}

.real-video-bottom span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 820;
  line-height: 1.32;
}

.retest-loop {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 12px;
  padding: 15px;
  border: 1px solid rgba(18, 107, 87, 0.16);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(239, 248, 242, 0.98), rgba(255, 255, 255, 0.96)),
    #ffffff;
  box-shadow: 0 16px 34px rgba(11, 42, 34, 0.06);
}

.retest-loop-copy {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 6px;
}

.retest-loop-copy small,
.retest-loop-copy strong,
.retest-loop-copy p {
  display: block;
}

.retest-loop-copy small {
  color: var(--court);
  font-size: 11px;
  font-weight: 950;
}

.retest-loop-copy strong {
  color: #10201d;
  font-size: 22px;
  line-height: 1.12;
}

.retest-loop-copy p {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}

.retest-loop-steps {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.retest-loop-steps article {
  min-width: 0;
  padding: 11px;
  border: 1px solid rgba(18, 107, 87, 0.12);
  border-radius: 8px;
  background: #ffffff;
}

.retest-loop-steps span,
.retest-loop-steps b,
.retest-loop-steps em {
  display: block;
}

.retest-loop-steps span {
  width: 28px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #10201d;
  color: var(--lime);
  font-size: 11px;
  font-weight: 950;
}

.retest-loop-steps b {
  margin-top: 8px;
  color: #10201d;
  line-height: 1.18;
}

.retest-loop-steps em {
  margin-top: 5px;
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  font-weight: 750;
  line-height: 1.32;
}

.retest-loop-actions {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.retest-loop-actions button,
.retest-loop-actions a {
  min-height: 40px;
  display: inline-grid;
  place-items: center;
  padding: 10px 13px;
  border-radius: 7px;
  font-size: 13px;
  font-weight: 950;
  text-decoration: none;
}

.retest-loop-actions button {
  border: 1px solid #10201d;
  background: #10201d;
  color: #ffffff;
  cursor: pointer;
}

.retest-loop-actions a {
  border: 1px solid rgba(18, 107, 87, 0.16);
  background: #ffffff;
  color: var(--court);
}

.retest-loop-actions a.is-primary {
  border-color: #10201d;
  background: #10201d;
  color: #ffffff;
}

.coach-brief {
  display: grid;
  gap: 12px;
  padding: 15px;
  border: 1px solid rgba(16, 32, 29, 0.14);
  border-radius: 8px;
  background:
    linear-gradient(135deg, #10201d, #126b57);
  color: #ffffff;
  box-shadow: 0 18px 38px rgba(16, 32, 29, 0.13);
}

.coach-brief-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: start;
}

.coach-brief-head small,
.coach-brief-head strong,
.coach-brief-head span {
  display: block;
}

.coach-brief-head small {
  color: rgba(255, 255, 255, 0.66);
  font-weight: 950;
}

.coach-brief-head strong {
  margin-top: 4px;
  color: #ffffff;
  font-size: 22px;
  line-height: 1.18;
}

.coach-brief-head span {
  flex: 0 0 auto;
  min-height: 30px;
  display: inline-grid;
  place-items: center;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(200, 242, 74, 0.16);
  color: var(--lime);
  font-size: 12px;
  font-weight: 950;
}

.coach-brief-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.coach-brief-grid article {
  min-width: 0;
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 9px;
  align-items: start;
  padding: 11px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
}

.coach-brief-grid article > span {
  width: 34px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--lime);
  color: #10201d;
  font-size: 12px;
  font-weight: 950;
}

.coach-brief-grid small,
.coach-brief-grid strong,
.coach-brief-grid p {
  display: block;
}

.coach-brief-grid small {
  color: rgba(255, 255, 255, 0.62);
  font-size: 11px;
  font-weight: 950;
}

.coach-brief-grid strong {
  margin-top: 4px;
  color: #ffffff;
  line-height: 1.18;
}

.coach-brief-grid p {
  margin: 6px 0 0;
  color: rgba(255, 255, 255, 0.76);
  font-size: 13px;
  line-height: 1.42;
}

.coach-brief-proof {
  display: grid;
  gap: 4px;
  padding: 11px;
  border: 1px solid rgba(200, 242, 74, 0.18);
  border-radius: 8px;
  background: rgba(7, 22, 19, 0.28);
}

.coach-brief-proof small,
.coach-brief-proof b {
  display: block;
}

.coach-brief-proof small {
  color: rgba(255, 255, 255, 0.66);
  font-weight: 950;
}

.coach-brief-proof b {
  color: var(--lime);
  line-height: 1.32;
}

.report-quick-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.report-quick-facts > div {
  min-width: 0;
  padding: 10px 11px;
  border-top: 2px solid rgba(18, 107, 87, 0.2);
  background: rgba(255, 255, 255, 0.62);
}

.report-quick-facts small,
.report-quick-facts b {
  display: block;
}

.report-quick-facts small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 850;
}

.report-quick-facts b {
  margin-top: 4px;
  color: #10201d;
  font-size: 13px;
  line-height: 1.3;
}

.motion-detail-scan,
.next-session-focus,
.player-analysis-basis {
  padding: 16px;
  border: 1px solid rgba(16, 32, 29, 0.13);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 14px 30px rgba(16, 32, 29, 0.05);
}

.motion-detail-head,
.next-session-head {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: start;
}

.motion-detail-head small,
.motion-detail-head strong,
.next-session-head small,
.next-session-head strong {
  display: block;
}

.motion-detail-head small,
.next-session-head small,
.player-analysis-basis > div > small {
  color: var(--court);
  font-size: 11px;
  font-weight: 950;
}

.motion-detail-head strong,
.next-session-head strong,
.player-analysis-basis > div > strong {
  margin-top: 4px;
  color: #10201d;
  font-size: 22px;
  line-height: 1.2;
}

.motion-detail-head > span {
  flex: 0 0 auto;
  padding: 6px 9px;
  border-radius: 999px;
  background: #eef5f1;
  color: var(--court);
  font-size: 11px;
  font-weight: 900;
}

.motion-detail-scan > p,
.next-session-focus > p,
.player-analysis-basis > div > p {
  margin: 8px 0 14px;
  color: var(--muted);
  line-height: 1.5;
}

.motion-detail-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid rgba(16, 32, 29, 0.1);
}

.motion-detail-list article {
  min-width: 0;
  padding: 13px 12px;
  border-bottom: 1px solid rgba(16, 32, 29, 0.1);
}

.motion-detail-list article:nth-child(odd) {
  border-right: 1px solid rgba(16, 32, 29, 0.1);
}

.motion-detail-list article > div {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
}

.motion-detail-list article > div strong {
  color: #10201d;
  line-height: 1.2;
}

.motion-detail-list article > div span {
  flex: 0 0 auto;
  color: var(--court);
  font-size: 11px;
  font-weight: 900;
}

.motion-detail-list article.detail-priority > div span {
  color: #bd552e;
}

.motion-detail-list article.detail-strong > div span {
  color: #23715f;
}

.motion-detail-list article p {
  margin: 7px 0;
  color: #465b54;
  font-size: 13px;
  line-height: 1.45;
}

.motion-detail-list article > small {
  display: block;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
}

.motion-detail-list article > small b {
  margin-right: 6px;
  color: #10201d;
}

.motion-detail-scan.is-pending {
  border-left: 4px solid #d39a2c;
}

.next-session-focus {
  background: #f4f9f6;
}

.next-session-head > div:last-child {
  display: flex;
  flex-wrap: wrap;
  justify-content: end;
  gap: 6px;
}

.next-session-head > div:last-child span {
  padding: 6px 9px;
  border: 1px solid rgba(18, 107, 87, 0.13);
  border-radius: 999px;
  background: #ffffff;
  color: var(--court);
  font-size: 11px;
  font-weight: 900;
}

.next-session-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.next-session-steps article {
  min-width: 0;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 9px;
  align-items: start;
  padding: 12px;
  border: 1px solid rgba(18, 107, 87, 0.12);
  border-radius: 8px;
  background: #ffffff;
}

.next-session-steps article > span {
  width: 30px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #10201d;
  color: var(--lime);
  font-size: 12px;
  font-weight: 950;
}

.next-session-steps small,
.next-session-steps strong {
  display: block;
}

.next-session-steps small {
  color: var(--court);
  font-size: 11px;
  font-weight: 900;
}

.next-session-steps strong {
  margin-top: 5px;
  color: #10201d;
  font-size: 13px;
  line-height: 1.42;
}

.player-analysis-basis {
  box-shadow: none;
}

.player-analysis-basis > div > small,
.player-analysis-basis > div > strong {
  display: block;
}

.basis-frame-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.basis-frame-grid figure {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(16, 32, 29, 0.1);
  border-radius: 7px;
  background: #f3f7f5;
}

.basis-frame-grid figure.is-primary {
  border-color: #bd552e;
  box-shadow: 0 0 0 2px rgba(189, 85, 46, 0.14);
}

.basis-frame-grid figure > button {
  width: 100%;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  box-shadow: none;
  cursor: pointer;
}

.basis-frame-grid figure > button:disabled {
  cursor: default;
}

.basis-frame-grid figure > button:focus-visible {
  outline: 3px solid rgba(18, 107, 87, 0.42);
  outline-offset: -3px;
}

.basis-frame-visual {
  position: relative;
  min-height: 96px;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: #172923;
}

.basis-frame-grid img,
.basis-frame-grid canvas {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
}

.basis-frame-visual.is-pose-verified::after {
  content: "POSE";
  position: absolute;
  top: 7px;
  right: 7px;
  padding: 3px 5px;
  border: 1px solid rgba(74, 232, 198, .7);
  border-radius: 999px;
  background: rgba(10, 35, 31, .76);
  color: #71efd1;
  font-size: 7px;
  font-weight: 950;
  letter-spacing: .08em;
}

.basis-frame-grid figcaption {
  display: flex;
  justify-content: space-between;
  gap: 6px;
  align-items: center;
  padding: 7px 8px;
  color: #334b43;
  font-size: 11px;
  font-weight: 850;
}

.basis-frame-grid figcaption span {
  min-width: 0;
}

.basis-frame-grid figcaption em {
  flex: 0 0 auto;
  color: var(--court);
  font-size: 9px;
  font-style: normal;
  font-weight: 900;
}

.basis-frame-grid figure.is-primary figcaption em {
  color: #bd552e;
}

.feedback-reel {
  display: grid;
  grid-template-columns: minmax(320px, 1.05fr) minmax(280px, 0.95fr);
  gap: 14px;
  margin: 16px 0;
  padding: 16px;
  border: 1px solid rgba(16, 32, 29, 0.12);
  border-radius: 8px;
  background:
    linear-gradient(135deg, #10201d 0%, #126b57 54%, #1d4f72 100%);
  color: #ffffff;
  box-shadow: 0 18px 46px rgba(16, 32, 29, 0.16);
}

.feedback-reel-stage,
.feedback-reel-copy {
  min-width: 0;
}

.reel-video-frame {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 8px;
  background: #0b1513;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

.reel-video-frame video {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #0b1513;
  object-fit: contain;
}

.reel-chip,
.reel-callout {
  position: absolute;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 950;
}

.reel-chip {
  left: 12px;
  top: 12px;
  min-height: 28px;
  padding: 5px 10px;
  background: rgba(200, 242, 74, 0.92);
  color: #10201d;
}

.reel-callout {
  right: 12px;
  bottom: 12px;
  max-width: min(260px, calc(100% - 24px));
  min-height: 32px;
  padding: 6px 11px;
  background: rgba(255, 255, 255, 0.9);
  color: #172b24;
  text-align: center;
}

.feedback-reel-copy {
  display: grid;
  align-content: start;
  gap: 12px;
}

.feedback-reel-copy .section-title span,
.feedback-reel-copy .section-title small {
  color: #ffffff;
}

.feedback-reel-copy > p {
  margin: 0;
  color: rgba(255, 255, 255, 0.76);
  line-height: 1.52;
  font-weight: 750;
}

.reel-script {
  display: grid;
  gap: 9px;
}

.reel-script article {
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 10px;
  align-items: start;
  padding: 10px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.09);
}

.reel-script article > span {
  min-height: 44px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: rgba(200, 242, 74, 0.14);
  color: var(--lime);
  font-size: 13px;
  font-weight: 950;
}

.reel-script small,
.reel-script strong,
.reel-script p {
  display: block;
}

.reel-script small {
  color: rgba(255, 255, 255, 0.58);
  font-size: 11px;
  font-weight: 950;
}

.reel-script strong {
  margin-top: 3px;
  color: #ffffff;
  line-height: 1.25;
}

.reel-script p {
  margin: 5px 0 0;
  color: rgba(255, 255, 255, 0.75);
  line-height: 1.42;
}

.media-review {
  display: grid;
  grid-template-columns: minmax(260px, 0.95fr) 1.05fr;
  gap: 14px;
  margin: 16px 0;
  align-items: start;
}

.media-review > div {
  border: 1px solid rgba(18, 107, 87, 0.15);
  border-radius: 8px;
  padding: 14px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 251, 248, 0.95)),
    #ffffff;
  box-shadow: 0 12px 24px rgba(11, 42, 34, 0.055);
}

.media-review small {
  display: block;
  margin-bottom: 8px;
  font-weight: 900;
}

.media-review video {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 8px;
  background: #0f1b18;
  object-fit: cover;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

.video-stack {
  display: grid;
  gap: 8px;
}

.media-link,
.media-missing {
  display: block;
  padding: 10px 11px;
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 8px;
  background: #f7fbf8;
  color: var(--court);
  font-size: 13px;
  font-weight: 900;
  line-height: 1.35;
  text-decoration: none;
}

.media-missing {
  color: var(--muted);
  background: #fbfdfb;
}

.task-status {
  display: grid;
  gap: 12px;
  margin: 14px 0;
  padding: 14px;
  border: 1px solid rgba(18, 107, 87, 0.16);
  border-radius: 8px;
  background: #f7fbf8;
}

.task-stage-grid article.stage-processing {
  border-color: rgba(18, 107, 87, 0.42);
  background: #eef8f1;
  box-shadow: inset 3px 0 0 var(--lime);
}

.task-stage-grid article.stage-processing span {
  color: var(--court);
}

.task-status-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
}

.task-status-head strong,
.task-status-head span {
  display: block;
}

.task-status-head span {
  color: var(--court);
  font-weight: 900;
}

.task-meter {
  height: 9px;
  overflow: hidden;
  border-radius: 999px;
  background: #dfeae4;
}

.task-meter i {
  display: block;
  width: var(--progress, 0%);
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--court), var(--lime));
}

.task-stage-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
}

.task-stage-grid article {
  min-width: 0;
  padding: 10px;
  border: 1px solid rgba(18, 107, 87, 0.13);
  border-radius: 8px;
  background: #ffffff;
}

.task-stage-grid article b,
.task-stage-grid article span,
.task-stage-grid article small {
  display: block;
}

.task-stage-grid article b {
  font-size: 13px;
  line-height: 1.25;
}

.task-stage-grid article span {
  margin-top: 6px;
  color: var(--court);
  font-size: 12px;
  font-weight: 900;
}

.task-stage-grid article small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}

.video-stack small:not(:first-child) {
  margin-top: 8px;
}

.quality-gate {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

.quality-head {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  align-items: center;
}

.quality-head > strong {
  min-width: 62px;
  padding: 8px 10px;
  border-radius: 999px;
  background: #10201d;
  color: #c8f24a;
  text-align: center;
}

.quality-gate.status-review .quality-head > strong {
  background: #fff2e7;
  color: var(--clay);
}

.quality-gate.status-retake .quality-head > strong {
  background: #ffecec;
  color: #b42318;
}

.quality-gate > p {
  margin: -4px 0 12px;
  color: var(--muted);
  line-height: 1.45;
}

.quality-checks {
  display: grid;
  gap: 8px;
}

.quality-checks article {
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 9px;
  align-items: start;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.quality-checks article > span {
  display: grid;
  place-items: center;
  width: 30px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #eaf7ef;
  color: var(--court);
  font-size: 11px;
  font-weight: 900;
}

.quality-checks article.failed > span {
  background: #fff0e9;
  color: var(--clay);
}

.quality-checks strong,
.quality-checks small,
.quality-checks p {
  display: block;
}

.quality-checks small,
.quality-checks p {
  margin: 3px 0 0;
  color: var(--muted);
  line-height: 1.38;
}

.recognition-trust {
  margin: 16px 0;
  padding: 16px;
  border: 1px solid rgba(18, 107, 87, 0.18);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(200, 242, 74, 0.18), rgba(36, 95, 206, 0.08)),
    #ffffff;
  box-shadow: 0 14px 28px rgba(11, 42, 34, 0.07);
}

.recognition-trust > p {
  margin: -4px 0 12px;
  color: var(--muted);
  line-height: 1.45;
}

.recognition-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
  gap: 10px;
}

.recognition-grid > div {
  min-height: 104px;
  padding: 12px;
  border: 1px solid rgba(18, 107, 87, 0.12);
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(247, 251, 248, 0.92));
}

.recognition-grid small,
.recognition-grid b,
.recognition-grid span {
  display: block;
}

.recognition-grid small {
  color: var(--muted);
  font-weight: 800;
}

.recognition-grid b {
  margin: 5px 0;
  color: #10201d;
  font-size: 18px;
  line-height: 1.15;
}

.recognition-grid span {
  color: var(--court);
  line-height: 1.35;
}

.ai-coach-panel {
  margin: 0;
  padding: 16px;
  border: 1px solid rgba(18, 107, 87, 0.16);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(242, 250, 245, 0.92)),
    #ffffff;
  box-shadow: 0 16px 32px rgba(11, 42, 34, 0.06);
}

.ai-coach-head {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
  margin-bottom: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(18, 107, 87, 0.11);
}

.ai-coach-head small,
.ai-coach-head strong {
  display: block;
}

.ai-coach-head strong {
  margin-top: 3px;
  color: #10201d;
  font-size: 22px;
}

.ai-coach-head > span {
  padding: 7px 10px;
  border-radius: 999px;
  background: #10201d;
  color: #c8f24a;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}

.ai-coach-panel.status-fallback .ai-coach-head > span {
  background: #fff2e7;
  color: var(--clay);
}

.ai-coach-panel > p {
  margin: 0 0 12px;
  color: #24352f;
  font-size: 17px;
  line-height: 1.56;
  font-weight: 780;
}

.ai-coach-grid {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 10px;
}

.ai-coach-grid > div {
  padding: 12px;
  border: 1px solid rgba(18, 107, 87, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.86);
}

.ai-coach-grid small,
.ai-coach-grid b,
.ai-coach-grid span {
  display: block;
}

.ai-coach-grid small {
  margin-bottom: 7px;
  font-weight: 900;
}

.ai-coach-grid b {
  margin-top: 5px;
  color: var(--court);
  line-height: 1.35;
}

.ai-coach-grid span {
  color: var(--muted);
  line-height: 1.45;
}

.ai-coach-evidence {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 10px;
}

.ai-coach-evidence article,
.coach-language-board {
  padding: 12px;
  border: 1px solid rgba(18, 107, 87, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.88);
}

.ai-coach-evidence small,
.ai-coach-evidence p {
  display: block;
}

.ai-coach-evidence small,
.coach-language-grid small {
  color: var(--court);
  font-weight: 900;
}

.ai-coach-evidence p {
  margin: 7px 0 0;
  color: var(--muted);
  line-height: 1.45;
}

.profile-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 8px;
}

.profile-tags span {
  min-height: 26px;
  display: inline-grid;
  place-items: center;
  padding: 4px 8px;
  border-radius: 999px;
  border: 1px solid rgba(18, 107, 87, 0.12);
  background: #f4faf6;
  color: var(--court);
  font-size: 12px;
  font-weight: 900;
}

.coach-language-board {
  margin-top: 10px;
  background:
    linear-gradient(135deg, rgba(16, 32, 29, 0.02), rgba(200, 242, 74, 0.07)),
    #ffffff;
}

.coach-language-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
}

.coach-language-grid article {
  min-width: 0;
  padding: 11px;
  border: 1px solid rgba(18, 107, 87, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.92);
}

.coach-language-grid article.coach-cue {
  border-color: rgba(18, 107, 87, 0.28);
  background:
    linear-gradient(135deg, rgba(200, 242, 74, 0.15), rgba(255, 255, 255, 0.94)),
    #f7fbf8;
}

.coach-language-grid article.parent-note {
  grid-column: 1 / -1;
  background: #fffaf0;
  border-color: rgba(200, 95, 50, 0.2);
}

.coach-language-grid p {
  margin: 6px 0 0;
  color: #24352f;
  line-height: 1.45;
  font-weight: 760;
}

.progress-archive {
  margin: 16px 0;
  padding: 14px;
  border: 1px solid rgba(18, 107, 87, 0.18);
  border-radius: 8px;
  background: #fbfdfb;
}

.progress-archive.status-improved {
  border-color: rgba(18, 107, 87, 0.28);
  background: #f4fbf4;
}

.progress-archive.status-regressed {
  border-color: rgba(200, 95, 50, 0.32);
  background: #fff8f4;
}

.progress-grid {
  display: grid;
  grid-template-columns: 0.7fr 0.7fr 1.6fr;
  gap: 10px;
}

.progress-grid div {
  min-width: 0;
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.progress-grid small,
.progress-grid b {
  display: block;
}

.progress-grid b {
  margin-top: 3px;
  overflow-wrap: anywhere;
}

.feedback-timeline {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

.feedback-timeline > p {
  margin: -4px 0 12px;
  color: var(--muted);
  line-height: 1.45;
}

.feedback-story-head {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  align-items: start;
  margin-bottom: 12px;
}

.feedback-story-head small,
.feedback-story-head strong,
.feedback-story-head p,
.feedback-story-head > span {
  display: block;
}

.feedback-story-head small {
  color: var(--court);
  font-weight: 950;
}

.feedback-story-head strong {
  margin-top: 3px;
  color: #15241f;
  font-size: 18px;
  line-height: 1.15;
}

.feedback-story-head p {
  margin: 6px 0 0;
  color: var(--muted);
  line-height: 1.42;
}

.feedback-story-head > span {
  min-height: 30px;
  padding: 6px 9px;
  border-radius: 999px;
  background: #eef5ff;
  color: var(--blue);
  font-size: 12px;
  font-weight: 950;
  white-space: nowrap;
}

.feedback-studio,
.model-readiness {
  margin: 16px 0;
  padding: 16px;
  border: 1px solid rgba(18, 107, 87, 0.16);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(18, 107, 87, 0.07), rgba(200, 242, 74, 0.13)),
    #ffffff;
  box-shadow: 0 14px 30px rgba(11, 42, 34, 0.06);
}

.model-readiness {
  background:
    linear-gradient(135deg, rgba(16, 32, 29, 0.96), rgba(18, 107, 87, 0.9));
  color: #fff;
}

.feedback-studio > p,
.model-readiness > p {
  margin: -4px 0 12px;
  color: var(--muted);
  line-height: 1.5;
}

.model-readiness > p,
.model-readiness small {
  color: rgba(255, 255, 255, 0.72);
}

.model-readiness .section-title span {
  color: #fff;
}

.feedback-studio-grid,
.model-readiness-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.feedback-studio-grid div,
.model-readiness-grid div {
  min-width: 0;
  padding: 12px;
  border: 1px solid rgba(18, 107, 87, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.9);
}

.model-readiness-grid div {
  border-color: rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.08);
}

.feedback-studio-grid small,
.feedback-studio-grid b,
.feedback-studio-grid span,
.model-readiness-grid small,
.model-readiness-grid b,
.model-readiness-grid span {
  display: block;
}

.feedback-studio-grid small {
  color: var(--muted);
  font-weight: 900;
}

.feedback-studio-grid b,
.model-readiness-grid b {
  margin: 5px 0;
  color: var(--court);
  font-size: 20px;
  line-height: 1.12;
}

.model-readiness-grid b {
  color: var(--lime);
  overflow-wrap: anywhere;
}

.feedback-studio-grid span {
  color: var(--muted);
  font-weight: 800;
}

.model-readiness-grid span {
  color: rgba(255, 255, 255, 0.78);
  font-weight: 800;
}

.real-pose-browser {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  margin-top: 12px;
  padding: 12px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
}

.real-pose-browser strong,
.real-pose-browser span,
.real-pose-status {
  display: block;
}

.real-pose-browser strong {
  color: #ffffff;
  font-size: 16px;
  line-height: 1.2;
}

.real-pose-browser span {
  margin-top: 4px;
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.42;
  font-weight: 760;
}

.real-pose-browser button {
  min-height: 40px;
  padding: 8px 12px;
  border: 0;
  border-radius: 8px;
  background: var(--lime);
  color: #10201d;
  font-weight: 950;
  cursor: pointer;
}

.real-pose-browser button:disabled {
  opacity: 0.62;
  cursor: wait;
}

.real-pose-status {
  grid-column: 1 / -1;
  padding: 9px 10px;
  border-radius: 8px;
  background: rgba(7, 22, 19, 0.36);
  color: rgba(255, 255, 255, 0.82);
  font-size: 13px;
  font-weight: 850;
}

.real-pose-stage {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.real-pose-stage:empty {
  display: none;
}

.real-pose-stage figure {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
}

.real-pose-stage canvas {
  display: block;
  width: 100%;
  height: auto;
}

.real-pose-stage figcaption {
  padding: 8px 9px;
  color: rgba(255, 255, 255, 0.76);
  font-size: 12px;
  font-weight: 850;
}

.timeline-rail {
  display: grid;
  gap: 9px;
}

.timeline-rail article {
  position: relative;
  display: grid;
  grid-template-columns: 58px 1fr;
  gap: 10px;
  min-width: 0;
  padding: 10px;
  border: 1px solid rgba(18, 107, 87, 0.16);
  border-radius: 8px;
  background: #ffffff;
  overflow: hidden;
}

.timeline-rail article::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: linear-gradient(180deg, var(--court), var(--lime));
}

.timeline-rail article > span {
  align-self: start;
  display: grid;
  place-items: center;
  min-height: 54px;
  border-radius: 8px;
  background: #10201d;
  color: #c8f24a;
  font-size: 12px;
  font-weight: 900;
}

.timeline-rail article > span b,
.timeline-rail article > span em {
  display: block;
}

.timeline-rail article > span b {
  font-size: 18px;
  line-height: 1;
}

.timeline-rail article > span em {
  margin-top: 3px;
  color: #ffffff;
  font-size: 11px;
  font-style: normal;
}

.timeline-rail strong,
.timeline-rail small,
.timeline-rail p,
.timeline-rail em {
  display: block;
}

.timeline-rail strong {
  line-height: 1.25;
}

.timeline-rail small {
  margin-top: 8px;
  color: var(--clay);
  font-size: 11px;
  font-weight: 900;
}

.timeline-rail p,
.timeline-rail em {
  margin: 3px 0 0;
  color: var(--muted);
  font-style: normal;
  line-height: 1.4;
}

.keyframe-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}

.keyframe-grid figure {
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(18, 107, 87, 0.13);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 8px 16px rgba(11, 42, 34, 0.05);
}

.keyframe-grid img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  background: #10201d;
}

.keyframe-grid figcaption {
  padding: 7px 8px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.25;
}

.muted {
  color: var(--muted);
}

.score-ring {
  width: 112px;
  aspect-ratio: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  justify-items: center;
  place-items: center;
  align-content: center;
  border-radius: 50%;
  background:
    radial-gradient(circle, #ffffff 0 52%, transparent 53%),
    conic-gradient(var(--court) var(--score), #e8eee9 0);
  box-shadow: 0 13px 28px rgba(18, 107, 87, 0.14);
}

.score-ring span {
  width: 100%;
  display: block;
  color: var(--clay);
  font-size: 32px;
  line-height: 1;
  font-weight: 900;
  text-align: center;
}

.score-ring em {
  display: block;
  width: 100%;
  max-width: 78px;
  margin-top: 4px;
  color: var(--muted);
  font-size: 10px;
  font-style: normal;
  font-weight: 900;
  line-height: 1.1;
  text-align: center;
}

.score-ring.is-review {
  border: 1px solid rgba(18, 107, 87, 0.18);
  background:
    radial-gradient(circle, #ffffff 0 52%, transparent 53%),
    conic-gradient(#d9e6df 0 100%);
  box-shadow: none;
}

.score-ring.is-review span {
  color: var(--court);
  font-size: 25px;
}

.score-ring.is-review em {
  color: var(--court);
}

.meta-row,
.phase-grid,
.issue-grid,
.drill-list {
  display: grid;
  gap: 10px;
}

.meta-row {
  grid-template-columns: repeat(4, 1fr);
  margin-top: 12px;
}

.meta-row div,
.phase,
.issue,
.reference-card {
  border: 1px solid rgba(18, 107, 87, 0.13);
  border-radius: 8px;
  padding: 12px;
  background: rgba(255, 255, 255, 0.86);
}

.meta-row b,
.phase b {
  display: block;
  font-size: 18px;
}

.report-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-top: 12px;
}

.report-actions button {
  padding: 8px 11px;
  border: 1px solid rgba(18, 107, 87, 0.18);
  border-radius: 8px;
  background: #ffffff;
  color: var(--court);
  font-weight: 900;
  cursor: pointer;
}

.report-actions span {
  color: var(--muted);
  font-weight: 800;
}

.phase-grid {
  grid-template-columns: repeat(4, 1fr);
  margin: 16px 0;
}

.phase-scoreboard {
  padding: 10px;
  border: 1px solid rgba(18, 107, 87, 0.13);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(16, 32, 29, 0.96), rgba(18, 107, 87, 0.92));
  box-shadow: 0 16px 32px rgba(16, 32, 29, 0.12);
}

.phase-scoreboard .phase {
  border-color: rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.08);
}

.phase-scoreboard small,
.phase-scoreboard span {
  color: rgba(248, 255, 248, 0.68);
}

.phase-scoreboard b {
  color: var(--lime);
  font-size: 28px;
}

.phase-scoreboard span {
  display: block;
  margin-top: 2px;
  font-size: 11px;
  font-weight: 850;
}

.report-delivery-stack {
  display: grid;
  gap: 12px;
  margin: 0 0 16px;
}

.processing-report-shell {
  margin: 0 0 16px;
}

.processing-report {
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(340px, 0.96fr);
  overflow: hidden;
  border: 1px solid rgba(18, 107, 87, 0.22);
  border-radius: 8px;
  background: #10201d;
  box-shadow: 0 20px 44px rgba(11, 42, 34, 0.14);
}

.processing-report-copy {
  display: grid;
  align-content: center;
  gap: 14px;
  min-height: 350px;
  padding: 30px;
  color: #f8fff8;
  background-color: #10201d;
  background-image:
    linear-gradient(rgba(200, 242, 74, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(200, 242, 74, 0.08) 1px, transparent 1px);
  background-size: 38px 38px;
}

.processing-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.processing-kicker span {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--lime);
  box-shadow: 0 0 0 5px rgba(200, 242, 74, 0.12);
  animation: processing-pulse 1.7s ease-in-out infinite;
}

.processing-kicker small {
  color: var(--lime);
  font-size: 12px;
  font-weight: 950;
}

.processing-report h2 {
  margin: 0;
  color: #ffffff;
  font-size: clamp(28px, 4vw, 46px);
  line-height: 1.05;
}

.processing-report-copy > p {
  max-width: 54ch;
  margin: 0;
  color: rgba(248, 255, 248, 0.76);
  line-height: 1.65;
}

.processing-report-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.processing-report-facts span {
  min-width: 0;
  padding: 11px;
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.06);
}

.processing-report-facts small,
.processing-report-facts b {
  display: block;
}

.processing-report-facts small {
  margin-bottom: 5px;
  color: rgba(248, 255, 248, 0.58);
  font-size: 11px;
  font-weight: 850;
}

.processing-report-facts b {
  overflow: hidden;
  color: #ffffff;
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.processing-report-note {
  color: var(--lime);
  font-size: 13px;
  font-weight: 900;
  line-height: 1.5;
}

.processing-retry {
  justify-self: start;
  min-height: 44px;
  padding: 0 16px;
  border: 0;
  border-radius: 8px;
  background: var(--lime);
  color: #10201d;
  font: inherit;
  font-weight: 950;
  cursor: pointer;
}

.processing-report-workspace {
  display: grid;
  align-content: center;
  gap: 12px;
  padding: 20px;
  background: #f7fbf8;
}

.processing-report-workspace .task-status {
  margin: 0;
  box-shadow: none;
}

.processing-simple-progress {
  display: grid;
  gap: 10px;
  padding: 16px;
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 8px;
  background: #ffffff;
}

.processing-simple-progress > div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
}

.processing-simple-progress strong {
  color: #10201d;
}

.processing-simple-progress span {
  color: var(--court);
  font-weight: 950;
}

.processing-simple-progress > i {
  height: 9px;
  overflow: hidden;
  border-radius: 999px;
  background: #e3ece8;
}

.processing-simple-progress > i b {
  width: var(--progress, 12%);
  height: 100%;
  display: block;
  border-radius: inherit;
  background: var(--court);
  transition: width 240ms ease;
}

.processing-simple-progress p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}

.processing-simple-progress.is-failed {
  border-color: rgba(171, 76, 34, 0.24);
  background: #fff9f5;
}

.processing-simple-progress.is-failed span {
  color: #9b421f;
}

.processing-simple-progress.is-failed > i {
  background: #f1ddd2;
}

.processing-simple-progress.is-failed > i b {
  background: #c66f45;
}

.processing-video {
  display: grid;
  gap: 8px;
}

.processing-video small {
  color: var(--court);
  font-size: 12px;
  font-weight: 950;
}

.processing-video video {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 8px;
  background: #0f1b18;
  object-fit: cover;
}

.processing-report.is-failed .processing-report-copy {
  background-color: #2a1914;
  background-image:
    linear-gradient(rgba(255, 180, 133, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 180, 133, 0.08) 1px, transparent 1px);
}

.processing-report.is-failed .processing-kicker span,
.processing-report.is-failed .processing-retry {
  background: #ffb485;
}

.processing-report.is-failed .processing-kicker small,
.processing-report.is-failed .processing-report-note {
  color: #ffd4ba;
}

@keyframes processing-pulse {
  0%, 100% { transform: scale(0.9); opacity: 0.7; }
  50% { transform: scale(1.1); opacity: 1; }
}

@media (max-width: 760px) {
  .processing-report {
    grid-template-columns: minmax(0, 1fr);
  }

  .processing-report-copy {
    min-height: 0;
    padding: 22px 18px;
  }

  .processing-report-workspace {
    padding: 14px;
  }

  .processing-report-facts {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* v219 — visible progress, training momentum and official-store readiness */
.member-home-momentum {
  display: grid;
  gap: 14px;
  padding: 20px 22px;
  border: 1px solid var(--al-line, rgba(37, 43, 45, .1));
  border-radius: 8px;
  background: var(--al-paper, #fffdf8);
}

.member-home-momentum > header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
}

.member-home-momentum > header > div {
  display: grid;
  gap: 3px;
}

.member-home-momentum header small,
.member-home-momentum header strong,
.member-home-momentum header p {
  display: block;
  margin: 0;
}

.member-home-momentum header small {
  color: var(--al-gold, #9a6a23);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.member-home-momentum header strong {
  color: var(--al-ink, #252b2d);
  font-size: 18px;
}

.member-home-momentum header p {
  color: var(--al-ink-soft, #737b78);
  font-size: 10px;
  line-height: 1.5;
}

.member-home-momentum header button {
  min-height: 38px;
  padding: 8px 12px;
  border: 1px solid var(--al-ink, #252b2d);
  border-radius: 6px;
  background: transparent;
  color: var(--al-ink, #252b2d);
  font-size: 10px;
  font-weight: 800;
  cursor: pointer;
}

.member-home-momentum-grid {
  display: grid;
  grid-template-columns: 1.2fr .72fr 1.2fr;
  border-top: 1px solid var(--al-line, rgba(37, 43, 45, .1));
}

.member-home-momentum-grid article {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 6px;
  padding: 15px 16px 2px;
}

.member-home-momentum-grid article + article {
  border-left: 1px solid var(--al-line, rgba(37, 43, 45, .1));
}

.member-home-momentum-grid small,
.member-home-momentum-grid strong,
.member-home-momentum-grid span {
  display: block;
}

.member-home-momentum-grid small {
  color: var(--al-ink-soft, #737b78);
  font-size: 8px;
  font-weight: 800;
}

.member-home-momentum-grid strong {
  overflow-wrap: anywhere;
  color: var(--al-ink, #252b2d);
  font-size: 15px;
  line-height: 1.2;
}

.member-home-momentum-grid .is-balance strong {
  color: var(--al-gold, #9a6a23);
  font-size: 23px;
}

.member-home-momentum-grid span {
  color: var(--al-ink-soft, #737b78);
  font-size: 9px;
  line-height: 1.4;
}

.member-home-momentum-grid i {
  height: 4px;
  overflow: hidden;
  border-radius: 999px;
  background: #e3e6e1;
}

.member-home-momentum-grid i b {
  width: var(--progress, 0%);
  height: 100%;
  display: block;
  border-radius: inherit;
  background: var(--al-court, #126b57);
  transition: width .4s ease;
}

.retest-progress-receipt {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  align-items: center;
  gap: 0;
  overflow: hidden;
  border: 1px solid rgba(37, 43, 45, .1);
  border-radius: 9px;
  background: #fff;
}

.retest-progress-receipt > span {
  min-width: 0;
  display: grid;
  gap: 4px;
  padding: 13px 14px;
}

.retest-progress-receipt > span + span {
  border-left: 1px solid rgba(37, 43, 45, .1);
}

.retest-progress-receipt small {
  color: #7b8380;
  font-size: 8px;
  font-weight: 850;
}

.retest-progress-receipt strong {
  color: #25342f;
  font-size: 16px;
  line-height: 1.15;
}

.retest-progress-receipt.is-up > span:first-child strong {
  color: #126b57;
}

.retest-progress-receipt.is-down > span:first-child strong {
  color: #a4492f;
}

.retest-progress-receipt em {
  margin-right: 13px;
  padding: 6px 8px;
  border-radius: 999px;
  background: #edf1ed;
  color: #59645f;
  font-size: 8px;
  font-style: normal;
  font-weight: 850;
  white-space: nowrap;
}

.ace-store-provider {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 11px 12px;
  border: 1px solid rgba(37, 43, 45, .1);
  border-radius: 8px;
  background: #f5f6f2;
}

.ace-store-provider span {
  display: grid;
  gap: 2px;
}

.ace-store-provider small {
  color: #7c817f;
  font-size: 8px;
}

.ace-store-provider strong {
  color: #252b2d;
  font-size: 11px;
}

.ace-store-provider em {
  max-width: 36ch;
  color: #727976;
  font-size: 9px;
  font-style: normal;
  line-height: 1.35;
  text-align: right;
}

.ace-store-provider.is-ready {
  border-color: rgba(18, 107, 87, .25);
  background: #eff7f2;
}

.ace-store-provider.is-ready em {
  color: #126b57;
}

.ace-pack-grid button:not(:disabled) {
  background: #252b2d;
  color: #f1d48f;
  cursor: pointer;
}

@media (max-width: 760px) {
  .member-home-momentum {
    gap: 11px;
    padding: 16px;
  }

  .member-home-momentum > header {
    align-items: start;
    flex-direction: column;
  }

  .member-home-momentum header button {
    width: 100%;
  }

  .member-home-momentum-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .member-home-momentum-grid article {
    padding: 12px 10px;
  }

  .member-home-momentum-grid article + article {
    border-left: 0;
  }

  .member-home-momentum-grid article:nth-child(2) {
    border-left: 1px solid var(--al-line, rgba(37, 43, 45, .1));
  }

  .member-home-momentum-grid article:last-child {
    grid-column: 1 / -1;
    border-top: 1px solid var(--al-line, rgba(37, 43, 45, .1));
  }

  .retest-progress-receipt {
    grid-template-columns: 1fr 1fr;
  }

  .retest-progress-receipt em {
    grid-column: 1 / -1;
    width: fit-content;
    margin: 0 12px 12px;
  }

  .ace-store-provider {
    align-items: start;
    flex-direction: column;
  }

  .ace-store-provider em {
    text-align: left;
  }
}

@media (prefers-reduced-motion: reduce) {
  .member-home-momentum-grid i b {
    transition: none;
  }
}

/* v260 — social community hub, exact back position, and persistent mobile tabs */
.community-hub-account-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}

.community-hub-account-actions button {
  min-height: 40px;
  padding: 9px 12px;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 999px;
  background: transparent;
  color: #fff;
  font-size: 10px;
  font-weight: 720;
  cursor: pointer;
}

.community-hub-account-actions .community-wardrobe-open {
  border-color: rgba(226, 200, 124, .5);
  background: #e2c87c;
  color: #202a28;
}

.community-social-section {
  overflow: hidden;
  display: grid;
  gap: 0;
  border: 1px solid var(--al-line-strong);
  border-radius: 15px;
  background: rgba(255, 254, 251, .96);
  box-shadow: 0 10px 28px rgba(29, 42, 38, .055);
}

.community-social-section > header {
  display: grid;
  gap: 5px;
  padding: 18px 18px 14px;
}

.community-social-section > header small {
  color: var(--al-gold);
  font-size: 9px;
  font-weight: 780;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.community-social-section > header strong {
  color: var(--al-ink);
  font-family: var(--font-display);
  font-size: 21px;
  font-weight: 680;
  letter-spacing: -.02em;
}

.community-social-section > header p {
  margin: 0;
  color: var(--al-ink-soft);
  font-size: 10px;
  line-height: 1.5;
}

.community-activity-list.is-hub {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 0 18px 16px;
}

.community-activity-list.is-hub .community-activity-card {
  min-height: 92px;
  border-color: var(--al-line);
  border-radius: 11px;
  background: #fbfaf6;
  box-shadow: none;
}

.community-social-empty {
  grid-column: 1 / -1;
  padding: 22px;
  border: 1px dashed var(--al-line-strong);
  border-radius: 11px;
  color: var(--al-ink-soft);
  font-size: 11px;
  line-height: 1.55;
  text-align: center;
}

.community-section-link {
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 18px;
  border: 0;
  border-top: 1px solid var(--al-line);
  background: #fff;
  color: var(--al-court);
  font-size: 11px;
  font-weight: 740;
  text-align: left;
  cursor: pointer;
}

.community-section-link b {
  color: var(--al-gold);
  font-size: 16px;
}

.community-creator-preview-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  padding: 0 18px 16px;
}

.community-creator-preview {
  min-width: 0;
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--al-line);
  border-radius: 12px;
  background: #fbfaf6;
}

.community-creator-avatar {
  width: 46px;
  height: 52px;
  overflow: hidden;
  border: 1px solid rgba(15, 96, 79, .12);
  border-radius: 9px;
  background: #e9f0ea;
}

.community-creator-avatar .player-avatar-art {
  width: 100%;
  height: 100%;
}

.community-creator-preview p {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 4px;
  margin: 0;
}

.community-creator-preview p strong,
.community-creator-preview p span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.community-creator-preview p strong {
  color: var(--al-ink);
  font-size: 12px;
}

.community-creator-preview p span {
  color: var(--al-ink-soft);
  font-size: 9px;
}

.community-creator-preview > button {
  grid-column: 1 / -1;
  min-height: 34px;
  border: 1px solid var(--al-line-strong);
  border-radius: 8px;
  background: #fff;
  color: var(--al-court);
  font-size: 10px;
  font-weight: 730;
  cursor: pointer;
}

.community-hub-utility-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.community-hub-utility-grid > button {
  min-height: 106px;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 16px;
  border: 1px solid var(--al-line-strong);
  border-radius: 13px;
  background: #fff;
  color: var(--al-ink);
  text-align: left;
  cursor: pointer;
}

.community-hub-utility-grid > button > em {
  color: var(--al-gold);
  font-size: 10px;
  font-style: normal;
  font-weight: 780;
}

.community-hub-utility-grid > button > span {
  min-width: 0;
  display: grid;
  gap: 5px;
}

.community-hub-utility-grid strong {
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 680;
}

.community-hub-utility-grid small {
  color: var(--al-ink-soft);
  font-size: 10px;
  line-height: 1.5;
}

.community-hub-utility-grid b {
  color: var(--al-gold);
  font-size: 15px;
}

@media (max-width: 760px) {
  .community-hub-account-main {
    grid-template-columns: 54px minmax(0, 1fr);
  }

  .community-hub-account-actions {
    grid-column: 1 / -1;
    width: 100%;
    margin-left: 0;
  }

  .community-hub-account-actions button {
    flex: 1;
    min-width: 0;
    border-radius: 9px;
  }

  .community-activity-list.is-hub,
  .community-creator-preview-list,
  .community-hub-utility-grid {
    grid-template-columns: 1fr;
  }

  .community-social-section > header {
    padding: 16px 15px 12px;
  }

  .community-activity-list.is-hub,
  .community-creator-preview-list {
    padding: 0 15px 14px;
  }

  body:not(.is-auth-entry):not(.is-auth-boot) .mobile-tabs {
    position: fixed !important;
    inset: auto 0 0 0 !important;
    z-index: 980 !important;
    width: 100% !important;
    margin: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom)) !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    background: rgba(251, 250, 246, .95) !important;
    box-shadow: 0 -1px 0 rgba(29, 42, 38, .1), 0 -12px 28px rgba(29, 42, 38, .06) !important;
    -webkit-backdrop-filter: blur(20px);
    backdrop-filter: blur(20px);
  }

  body:not(.is-auth-entry):not(.is-auth-boot) #mainContent {
    padding-bottom: calc(110px + env(safe-area-inset-bottom)) !important;
  }
}

/* v224 — community navigation continuity and partner intake */
.community-partner-panel {
  position: relative;
  isolation: isolate;
  display: grid;
  gap: 18px;
  overflow: hidden;
  padding: clamp(24px, 4vw, 42px);
  border: 1px solid rgba(205, 170, 86, .32);
  border-radius: 18px;
  background:
    radial-gradient(circle at 92% 8%, rgba(224, 188, 99, .18), transparent 34%),
    linear-gradient(145deg, #24302d 0%, #17211f 100%);
  color: #fffdf7;
  box-shadow: 0 24px 60px rgba(17, 29, 25, .16);
}

.community-partner-panel::after {
  content: "";
  position: absolute;
  z-index: -1;
  right: -70px;
  bottom: -105px;
  width: 250px;
  aspect-ratio: 1;
  border: 1px solid rgba(232, 201, 123, .2);
  border-radius: 50%;
  box-shadow: 0 0 0 34px rgba(232, 201, 123, .045), 0 0 0 70px rgba(232, 201, 123, .025);
}

.community-partner-panel > small {
  color: #e2bd67;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .16em;
}

.community-partner-panel h4 {
  max-width: 18ch;
  margin: 0;
  color: #fffdf7;
  font-family: var(--display-font, inherit);
  font-size: clamp(28px, 4vw, 46px);
  line-height: 1.06;
  letter-spacing: -.045em;
}

.community-partner-panel p {
  max-width: 62ch;
  margin: 0;
  color: rgba(255, 253, 247, .74);
  font-size: 15px;
  line-height: 1.75;
}

.community-partner-types {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.community-partner-types span {
  min-height: 58px;
  display: flex;
  align-items: center;
  padding: 14px 16px;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 10px;
  background: rgba(255, 255, 255, .055);
  color: #f7f1e4;
  font-size: 13px;
  font-weight: 800;
}

.community-partner-apply {
  width: max-content;
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 22px;
  border: 1px solid #e1bd67;
  border-radius: 8px;
  background: #d1a94e;
  color: #17211f;
  font-weight: 900;
  text-decoration: none;
  box-shadow: 0 12px 30px rgba(0, 0, 0, .18);
}

.community-partner-apply:hover {
  background: #e0be6d;
}

.community-partner-panel > em {
  color: rgba(255, 253, 247, .55);
  font-size: 12px;
  font-style: normal;
  line-height: 1.55;
}

@media (max-width: 760px) {
  html {
    scroll-padding-bottom: calc(102px + env(safe-area-inset-bottom));
  }

  body {
    padding-bottom: calc(90px + env(safe-area-inset-bottom));
  }

  body:not(.is-auth-entry):not(.is-auth-boot) main {
    padding-bottom: calc(102px + env(safe-area-inset-bottom));
  }

  .mobile-tabs {
    position: fixed !important;
    inset: auto 0 0 0 !important;
    z-index: 120 !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding-bottom: calc(6px + env(safe-area-inset-bottom)) !important;
    border-radius: 0 !important;
    transform: translate3d(0, 0, 0) !important;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
  }

  .community-partner-panel {
    gap: 15px;
    padding: 24px 20px;
    border-radius: 14px;
  }

  .community-partner-panel h4 {
    font-size: 30px;
  }

  .community-partner-types {
    grid-template-columns: 1fr;
  }

  .community-partner-types span {
    min-height: 50px;
  }

  .community-partner-apply {
    width: 100%;
  }
}

/* v261 — native entry, media source picker and compact training navigation */
.native-launch-screen {
  display: none;
}

body.is-native-shell.is-auth-boot .native-launch-screen {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 24px;
  overflow: hidden;
  padding: max(32px, env(safe-area-inset-top)) 28px max(32px, env(safe-area-inset-bottom));
  background:
    radial-gradient(circle at 50% 38%, rgba(219, 187, 101, .14), transparent 31%),
    linear-gradient(152deg, #0b3028 0%, #102824 48%, #171e1e 100%);
  color: #f7f2e8;
}

body.is-native-shell.is-auth-boot .native-launch-screen::before,
body.is-native-shell.is-auth-boot .native-launch-screen::after {
  content: "";
  position: absolute;
  pointer-events: none;
}

body.is-native-shell.is-auth-boot .native-launch-screen::before {
  width: min(88vw, 520px);
  aspect-ratio: 1.72;
  bottom: -9%;
  border: 1px solid rgba(247, 242, 232, .16);
  border-bottom: 0;
  transform: perspective(520px) rotateX(61deg);
}

body.is-native-shell.is-auth-boot .native-launch-screen::after {
  inset: 0;
  background: linear-gradient(115deg, transparent 42%, rgba(255, 255, 255, .045) 50%, transparent 58%);
  transform: translateX(-75%);
  animation: v261-launch-sheen 1.4s ease-out .15s both;
}

.native-launch-brand {
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: center;
  gap: 8px;
}

.native-launch-mark {
  width: 82px;
  height: 82px;
  display: grid;
  place-items: center;
  margin-bottom: 8px;
  overflow: hidden;
  border: 1px solid rgba(247, 242, 232, .28);
  border-radius: 22px;
  background: #20282a;
  box-shadow: 0 24px 54px rgba(0, 0, 0, .28);
}

.native-launch-mark img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.native-launch-brand strong {
  font-family: var(--font-display);
  font-size: clamp(26px, 8vw, 38px);
  font-weight: 690;
  letter-spacing: -.045em;
}

.native-launch-brand small {
  color: #ddc170;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .22em;
  text-transform: uppercase;
}

.native-launch-screen > p {
  position: relative;
  z-index: 1;
  margin: 0;
  color: rgba(247, 242, 232, .72);
  font-size: 13px;
  font-weight: 620;
  letter-spacing: .08em;
}

.video-source-picker {
  display: grid;
  gap: 14px;
  padding: 18px;
  border: 1px solid rgba(29, 55, 49, .14);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(248, 247, 240, .98), rgba(238, 244, 239, .94));
  box-shadow: 0 14px 34px rgba(25, 42, 38, .07);
}

.video-source-picker > header {
  display: grid;
  gap: 4px;
}

.video-source-picker > header small {
  color: var(--al-gold);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .14em;
}

.video-source-picker > header strong {
  color: var(--al-ink);
  font-family: var(--font-display);
  font-size: clamp(20px, 4vw, 27px);
  letter-spacing: -.035em;
}

.video-source-picker > header p {
  margin: 0;
  color: var(--al-ink-soft);
  font-size: 12px;
  line-height: 1.55;
}

.video-source-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.video-source-action {
  min-height: 92px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-content: center;
  gap: 2px 12px;
  padding: 14px;
  border: 1px solid rgba(29, 55, 49, .15);
  border-radius: 14px;
  background: rgba(255, 255, 255, .88);
  color: var(--al-ink);
  text-align: left;
  box-shadow: none;
}

.video-source-action:active {
  transform: scale(.985);
  border-color: rgba(199, 158, 64, .62);
  background: #fffdf5;
}

.video-source-action > strong {
  align-self: end;
  font-size: 14px;
  font-weight: 750;
}

.video-source-action > small {
  align-self: start;
  color: var(--al-ink-soft);
  font-size: 10px;
  font-weight: 580;
}

.video-source-icon {
  position: relative;
  grid-row: 1 / 3;
  width: 42px;
  height: 42px;
  align-self: center;
  border-radius: 12px;
  background: #17352f;
}

.video-source-icon.is-camera::before {
  content: "";
  position: absolute;
  inset: 12px 9px 10px;
  border: 2px solid #f4d57a;
  border-radius: 5px;
}

.video-source-icon.is-camera::after {
  content: "";
  position: absolute;
  width: 7px;
  height: 7px;
  top: 18px;
  left: 18px;
  border: 2px solid #f4d57a;
  border-radius: 50%;
}

.video-source-icon.is-library::before,
.video-source-icon.is-library::after {
  content: "";
  position: absolute;
  border: 2px solid #f4d57a;
  border-radius: 4px;
}

.video-source-icon.is-library::before {
  inset: 10px 11px 13px 9px;
}

.video-source-icon.is-library::after {
  inset: 15px 8px 9px 14px;
  background: #17352f;
}

.video-source-selection {
  min-height: 0;
  padding: 14px 16px;
  border-style: solid;
  background: rgba(255, 255, 255, .62);
  pointer-events: none;
}

.video-source-selection::before {
  display: none;
}

.background-upload-notice {
  position: relative;
  margin: 0;
  padding: 0 0 0 20px;
  color: #52655f;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.5;
}

.background-upload-notice::before {
  content: "";
  position: absolute;
  top: .36em;
  left: 2px;
  width: 8px;
  height: 8px;
  border: 2px solid #16705b;
  border-top-color: transparent;
  border-radius: 50%;
}

.training-native-nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid var(--al-line);
  border-radius: 14px;
  background: #f7f7f2;
}

.training-native-nav.is-empty {
  grid-template-columns: minmax(0, 1fr);
}

#trainingHubProgress .training-native-nav > button {
  min-width: 0;
  min-height: 104px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 28px;
  align-items: center;
  gap: 10px;
  padding: 16px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--al-ink);
  text-align: left;
}

#trainingHubProgress .training-native-nav > button + button {
  border-left: 1px solid var(--al-line);
}

#trainingHubProgress .training-native-nav > button:disabled {
  opacity: .5;
  cursor: default;
}

#trainingHubProgress .training-native-nav > button:not(:disabled):active {
  background: #ecefe9;
}

#trainingHubProgress .training-native-nav span {
  min-width: 0;
}

#trainingHubProgress .training-native-nav small {
  color: var(--al-gold);
}

#trainingHubProgress .training-native-nav strong,
#trainingHubProgress .training-native-nav em {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#trainingHubProgress .training-native-nav b {
  width: 28px;
  height: 28px;
}

.training-native-nav-meta {
  margin: 9px 2px 0;
  color: var(--al-ink-soft);
  font-size: 10px;
  font-weight: 620;
}

@keyframes v261-launch-sheen {
  to { transform: translateX(75%); }
}

@media (max-width: 720px) {
  .video-source-picker {
    padding: 15px;
    border-right: 0;
    border-left: 0;
    border-radius: 0;
  }

  .video-source-action {
    min-height: 84px;
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 2px 9px;
    padding: 12px;
  }

  .video-source-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
  }

  .video-source-icon.is-camera::before {
    inset: 10px 7px 9px;
  }

  .video-source-icon.is-camera::after {
    top: 15px;
    left: 15px;
  }

  .video-source-icon.is-library::before {
    inset: 8px 9px 11px 7px;
  }

  .video-source-icon.is-library::after {
    inset: 13px 6px 7px 12px;
  }

  .training-native-nav {
    grid-template-columns: 1fr;
  }

  #trainingHubProgress .training-native-nav > button {
    min-height: 76px;
    padding: 13px 15px;
  }

  #trainingHubProgress .training-native-nav > button + button {
    border-top: 1px solid var(--al-line);
    border-left: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.is-native-shell.is-auth-boot .native-launch-screen::after {
    animation: none;
  }
}

/* v260 · commerce fitting room */
.ace-store-tryon {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  gap: 20px;
  align-items: stretch;
  overflow: hidden;
  padding: 14px;
  border: 1px solid rgba(211, 177, 99, .24);
  border-radius: 16px;
  background:
    radial-gradient(circle at 90% 10%, rgba(214, 181, 105, .19), transparent 38%),
    linear-gradient(135deg, #153c34, #252d2d 72%);
  box-shadow: 0 16px 36px rgba(20, 37, 32, .14);
  color: #fff;
}

.ace-store-tryon-art {
  position: relative;
  min-width: 0;
  min-height: 230px;
  overflow: hidden;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 12px;
  background: #e8f0eb;
  cursor: zoom-in;
}

.ace-store-tryon-art .player-avatar-art {
  width: 100%;
  height: 100%;
}

.ace-store-tryon-art > span {
  position: absolute;
  right: 9px;
  bottom: 9px;
  padding: 6px 9px;
  border-radius: 999px;
  background: rgba(21, 34, 31, .86);
  color: #fff;
  font-size: 9px;
  font-weight: 850;
  backdrop-filter: blur(8px);
}

.ace-store-tryon-copy {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 7px;
}

.ace-store-tryon-copy > small {
  color: #dfbd71;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.ace-store-tryon-copy > strong {
  font-size: clamp(21px, 3vw, 30px);
  line-height: 1.08;
  letter-spacing: -.025em;
}

.ace-store-tryon-copy > p {
  max-width: 48ch;
  margin: 0;
  color: rgba(255, 255, 255, .72);
  font-size: 11px;
  line-height: 1.55;
}

.ace-store-tryon-copy > em {
  color: #c9dbd3;
  font-size: 9px;
  font-style: normal;
  font-weight: 760;
}

.ace-store-tryon-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 2px;
}

.ace-store-tryon-summary span {
  padding: 5px 7px;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 999px;
  background: rgba(255, 255, 255, .06);
  color: rgba(255, 255, 255, .82);
  font-size: 8px;
  font-weight: 760;
}

.ace-store-tryon-actions {
  display: grid;
  grid-template-columns: auto auto minmax(118px, 1fr);
  gap: 7px;
  margin-top: 5px;
}

.ace-store-tryon-actions button {
  min-height: 38px;
  padding: 8px 10px;
  border: 1px solid rgba(255, 255, 255, .17);
  border-radius: 8px;
  background: rgba(255, 255, 255, .06);
  color: #fff;
  font-size: 9px;
  font-weight: 850;
}

.ace-store-tryon-actions button.is-primary {
  border-color: #d7b76f;
  background: #d7b76f;
  color: #1d2826;
}

.ace-store-product-card.is-previewing {
  border-color: #c99b43 !important;
  box-shadow: 0 0 0 2px rgba(201, 155, 67, .14), 0 12px 28px rgba(49, 39, 18, .1);
}

.ace-store-product-card.is-previewing > button {
  background: #0f5f4e;
  color: #fff;
}

@media (max-width: 760px) {
  .ace-store-tryon {
    grid-template-columns: 116px minmax(0, 1fr);
    gap: 11px;
    padding: 10px;
    border-radius: 13px;
  }

  .ace-store-tryon-art {
    min-height: 164px;
  }

  .ace-store-tryon-art > span {
    right: 6px;
    bottom: 6px;
    padding: 5px 7px;
    font-size: 8px;
  }

  .ace-store-tryon-copy {
    align-content: start;
    gap: 5px;
    padding-top: 4px;
  }

  .ace-store-tryon-copy > strong {
    font-size: 18px;
  }

  .ace-store-tryon-copy > p {
    display: -webkit-box;
    overflow: hidden;
    font-size: 9px;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }

  .ace-store-tryon-copy > em {
    font-size: 8px;
  }

  .ace-store-tryon-summary {
    max-height: 38px;
    overflow: hidden;
  }

  .ace-store-tryon-actions {
    grid-template-columns: 1fr 1fr;
  }

  .ace-store-tryon-actions button {
    min-height: 32px;
    padding: 6px;
    font-size: 8px;
  }

  .ace-store-tryon-actions button.is-primary {
    grid-column: 1 / -1;
  }
}

/* Verified venue directory: discovery and official handoff only. */
.venue-directory {
  display: grid;
  gap: 18px;
}

.venue-directory-state,
.venue-empty {
  min-height: 220px;
  display: grid;
  place-content: center;
  gap: 8px;
  padding: 32px;
  border: 1px solid rgba(36, 45, 44, .12);
  border-radius: 20px;
  background: #f8f5ed;
  text-align: center;
}

.venue-empty strong,
.venue-directory-state strong {
  color: #242b2c;
  font-size: clamp(20px, 2.2vw, 28px);
}

.venue-empty p {
  max-width: 520px;
  margin: 0;
  color: rgba(36, 43, 44, .64);
  line-height: 1.6;
}

.venue-boundary {
  display: grid;
  grid-template-columns: 30px 1fr;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border-radius: 14px;
  background: #eaf3ee;
  color: #155f4d;
}

.venue-boundary > span {
  display: grid;
  width: 30px;
  height: 30px;
  place-content: center;
  border: 1px solid rgba(21, 95, 77, .24);
  border-radius: 50%;
  font: 800 14px/1 Georgia, serif;
}

.venue-boundary p {
  margin: 0;
  font-size: 13px;
  font-weight: 680;
  line-height: 1.55;
}

.venue-filter-panel {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid rgba(36, 45, 44, .12);
  border-radius: 18px;
  background: #fffdf8;
  box-shadow: 0 12px 32px rgba(27, 35, 33, .05);
}

.venue-search {
  display: grid;
  gap: 7px;
}

.venue-search > span {
  color: rgba(36, 43, 44, .64);
  font-size: 11px;
  font-weight: 780;
  letter-spacing: .04em;
}

.venue-search input,
.venue-filter-row select {
  min-height: 48px;
  width: 100%;
  border: 1px solid rgba(36, 45, 44, .15);
  border-radius: 12px;
  background: #f7f7f2;
  color: #242b2c;
  font: inherit;
  font-weight: 650;
}

.venue-search input {
  padding: 0 14px;
}

.venue-filter-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.venue-filter-row select {
  padding: 0 36px 0 12px;
}

.venue-location-row {
  display: flex;
  align-items: center;
  gap: 12px;
}

.venue-location-row button {
  min-height: 42px;
  padding: 0 16px;
  border: 1px solid #1a6b56;
  border-radius: 999px;
  background: transparent;
  color: #155f4d;
  font: inherit;
  font-size: 13px;
  font-weight: 780;
}

.venue-location-row span {
  color: rgba(36, 43, 44, .6);
  font-size: 12px;
}

.venue-location-row span.is-error {
  color: #a64f36;
}

.venue-result-count {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: #242b2c;
}

.venue-result-count span {
  color: #a64f36;
  font-size: 12px;
}

.venue-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.venue-card {
  overflow: hidden;
  border: 1px solid rgba(36, 45, 44, .13);
  border-radius: 20px;
  background: #fffdf8;
  box-shadow: 0 16px 38px rgba(27, 35, 33, .07);
}

.venue-card-visual {
  position: relative;
  min-height: 126px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  padding: 16px;
  background: linear-gradient(135deg, #133f35, #2d5c51);
  background-position: center;
  background-size: cover;
  color: white;
}

.venue-card-visual.has-cover::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 20%, rgba(14, 30, 26, .74));
}

.venue-card-visual > span,
.venue-card-visual > em {
  position: relative;
}

.venue-card-visual > span {
  font-size: 56px;
  font-weight: 820;
  line-height: .8;
  opacity: .25;
}

.venue-card-visual > em {
  padding: 6px 9px;
  border: 1px solid rgba(255, 255, 255, .3);
  border-radius: 999px;
  background: rgba(15, 34, 29, .66);
  font-size: 10px;
  font-style: normal;
  font-weight: 780;
}

.venue-card-body {
  display: grid;
  gap: 12px;
  padding: 17px;
}

.venue-card-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.venue-card-heading small {
  color: #af8433;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.venue-card-heading h4 {
  margin: 3px 0 0;
  color: #242b2c;
  font-size: 20px;
  line-height: 1.25;
}

.venue-card-heading > strong {
  flex: 0 0 auto;
  color: #155f4d;
  font-size: 12px;
}

.venue-card-body > p {
  min-height: 40px;
  margin: 0;
  color: rgba(36, 43, 44, .64);
  font-size: 13px;
  line-height: 1.55;
}

.venue-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.venue-card-meta span {
  padding: 5px 8px;
  border-radius: 999px;
  background: #eff2ed;
  color: #46514f;
  font-size: 10px;
  font-weight: 720;
}

.venue-provider {
  color: rgba(36, 43, 44, .52);
  font-size: 11px;
}

.venue-card-actions,
.venue-fallback-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.venue-card-actions a,
.venue-card-actions button,
.venue-card-actions span,
.venue-fallback-actions a,
.venue-fallback-actions button {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 14px;
  border: 1px solid rgba(36, 45, 44, .16);
  border-radius: 11px;
  background: #f4f3ed;
  color: #242b2c;
  font: inherit;
  font-size: 12px;
  font-weight: 780;
  text-decoration: none;
}

.venue-card-actions .venue-book-primary {
  flex: 1 1 180px;
  border-color: #17664f;
  background: #17664f;
  color: white;
}

.venue-card-actions .venue-route-pending {
  flex: 1 1 180px;
  color: rgba(36, 43, 44, .52);
}

.venue-fallback {
  display: grid;
  gap: 12px;
  padding: 14px;
  border-radius: 14px;
  background: #f3ead8;
}

.venue-fallback strong {
  color: #242b2c;
  font-size: 14px;
}

.venue-fallback p {
  margin: 4px 0 0;
  color: rgba(36, 43, 44, .65);
  font-size: 12px;
  line-height: 1.5;
}

@media (max-width: 720px) {
  .venue-grid,
  .venue-filter-row {
    grid-template-columns: 1fr;
  }

  .venue-location-row,
  .venue-result-count {
    align-items: flex-start;
    flex-direction: column;
  }

  .venue-card-heading h4 {
    font-size: 19px;
  }

  .venue-card-actions a,
  .venue-card-actions button,
  .venue-card-actions span {
    flex: 1 1 auto;
  }
}

/* v234 close geometry must win over the legacy store header rule below. */
.ace-store-head #aceStoreClose,
#avatarLookPreviewClose {
  position: relative;
  display: block;
  width: 40px;
  height: 40px;
  padding: 0;
  font-size: 0;
  line-height: 0;
}

.ace-store-head #aceStoreClose::before,
.ace-store-head #aceStoreClose::after,
#avatarLookPreviewClose::before,
#avatarLookPreviewClose::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 16px;
  height: 2px;
  margin: -1px 0 0 -8px;
  transform-origin: 50% 50%;
}

.ace-store-head #aceStoreClose::before,
#avatarLookPreviewClose::before {
  transform: rotate(45deg);
}

.ace-store-head #aceStoreClose::after,
#avatarLookPreviewClose::after {
  transform: rotate(-45deg);
}

/* v234 · fitted crown occlusion and complete outfit layers */
.ace-store-head button,
#avatarLookPreviewClose {
  position: relative;
  display: grid;
  place-items: center;
  padding: 0;
  font-size: 0;
  line-height: 1;
}

.ace-store-head button::before,
.ace-store-head button::after,
#avatarLookPreviewClose::before,
#avatarLookPreviewClose::after {
  content: "";
  grid-area: 1 / 1;
  width: 15px;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
}

.ace-store-head button::before,
#avatarLookPreviewClose::before {
  transform: rotate(45deg);
}

.ace-store-head button::after,
#avatarLookPreviewClose::after {
  transform: rotate(-45deg);
}

.avatar-preview-stage {
  appearance: none;
  position: relative;
  display: block;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(37, 43, 45, .12);
  border-radius: 11px;
  background: transparent;
  color: inherit;
  cursor: zoom-in;
}

.avatar-preview-stage::after {
  content: "+";
  position: absolute;
  right: 9px;
  bottom: 9px;
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border: 1px solid rgba(255, 255, 255, .42);
  border-radius: 50%;
  background: rgba(28, 36, 35, .82);
  color: #fff;
  font-size: 18px;
  font-weight: 500;
  box-shadow: 0 6px 16px rgba(18, 24, 23, .2);
}

.avatar-preview-stage:focus-visible {
  outline: 3px solid rgba(196, 154, 58, .35);
  outline-offset: 3px;
}

.avatar-preview-expand {
  width: fit-content;
  min-height: 34px;
  margin-top: 8px;
  padding: 7px 10px;
  border: 1px solid rgba(37, 43, 45, .14);
  border-radius: 6px;
  background: rgba(255, 255, 255, .68);
  color: #42504c;
  font-size: 10px;
  font-weight: 820;
}

.avatar-accessory-wardrobe {
  display: grid;
  gap: 12px;
  margin-top: 17px;
  padding-top: 16px;
  border-top: 1px solid rgba(37, 43, 45, .1);
}

.avatar-accessory-wardrobe > div:first-child {
  display: grid;
  gap: 3px;
}

.avatar-accessory-wardrobe > div:first-child > strong,
.avatar-accessory-group > strong {
  color: #252b2d;
  font-size: 12px;
}

.avatar-accessory-wardrobe > div:first-child > small {
  color: #747d7a;
  font-size: 9px;
  line-height: 1.45;
}

.avatar-accessory-grid,
.avatar-accessory-group {
  display: grid;
  gap: 8px;
}

.avatar-accessory-group > div {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
}

.avatar-accessory-option {
  min-width: 0;
  min-height: 86px;
  display: grid;
  grid-template-rows: 56px auto;
  align-content: start;
  gap: 5px;
  padding: 6px;
  border: 1px solid rgba(37, 43, 45, .12);
  border-radius: 7px;
  background: #fff;
  color: #3d4946;
  font-size: 9px;
  font-weight: 820;
  line-height: 1.25;
}

.avatar-accessory-option.is-selected {
  border-color: #c49a3a;
  box-shadow: 0 0 0 2px rgba(196, 154, 58, .12);
}

.avatar-accessory-option-art {
  min-width: 0;
  overflow: hidden;
  display: grid;
  place-items: center;
  border-radius: 5px;
  background: #edf1eb;
  color: #88918e;
  font-size: 18px;
}

.avatar-accessory-option-art img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.player-avatar-art .avatar-accessory {
  pointer-events: none;
  vector-effect: non-scaling-stroke;
}

.avatar-look-preview-dialog {
  width: min(92vw, 720px);
  max-width: 720px;
  max-height: 94dvh;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 12px;
  background: #f6f3eb;
  color: #252b2d;
  box-shadow: 0 34px 100px rgba(10, 18, 16, .38);
}

.avatar-look-preview-dialog::backdrop {
  background: rgba(9, 17, 15, .76);
  backdrop-filter: blur(7px);
}

.avatar-look-preview-shell {
  max-height: 94dvh;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  overflow: hidden;
}

.avatar-look-preview-shell > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 18px 20px;
  border-bottom: 1px solid rgba(255, 255, 255, .08);
  background: #252b2d;
  color: #fff;
}

.avatar-look-preview-shell header div {
  display: grid;
  gap: 3px;
}

.avatar-look-preview-shell header small {
  color: #d9b967;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .12em;
}

.avatar-look-preview-shell header h2,
.avatar-look-preview-shell header p {
  margin: 0;
}

.avatar-look-preview-shell header h2 {
  font-size: 22px;
}

.avatar-look-preview-shell header p {
  color: rgba(255, 255, 255, .66);
  font-size: 10px;
}

#avatarLookPreviewClose {
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 50%;
  background: rgba(255, 255, 255, .06);
  color: #fff;
}

.avatar-look-preview-art {
  min-height: 0;
  display: grid;
  place-items: center;
  padding: 18px;
  overflow: auto;
  background: radial-gradient(circle at 50% 42%, #fff 0 28%, #e8eee9 75%);
}

.avatar-look-preview-art .player-avatar-art {
  display: block;
  width: min(100%, 470px);
  max-height: 68dvh;
  filter: drop-shadow(0 22px 34px rgba(17, 43, 36, .17));
}

.avatar-look-preview-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 12px 18px 16px;
  border-top: 1px solid rgba(37, 43, 45, .1);
  background: #fffdf8;
}

.avatar-look-preview-summary span {
  padding: 6px 9px;
  border-radius: 999px;
  background: #edf2ee;
  color: #42514d;
  font-size: 9px;
  font-weight: 800;
}

@media (max-width: 760px) {
  .avatar-preview-expand {
    min-height: 32px;
    font-size: 9px;
  }

  .avatar-accessory-group > div {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .avatar-look-preview-dialog {
    width: calc(100% - 12px);
    max-height: calc(100dvh - 12px);
  }

  .avatar-look-preview-shell {
    max-height: calc(100dvh - 12px);
  }

  .avatar-look-preview-shell > header {
    padding: 14px;
  }

  .avatar-look-preview-shell header p {
    max-width: 260px;
  }

  .avatar-look-preview-art {
    padding: 10px;
  }

  .avatar-look-preview-art .player-avatar-art {
    width: min(100%, 390px);
    max-height: 70dvh;
  }
}

/* v226 · player collection store */
.ace-store-dialog {
  width: min(900px, calc(100% - 28px));
  max-height: min(91vh, 840px);
  border-radius: 18px;
  background: #f4f0e6;
}

.ace-store-shell {
  max-height: min(91vh, 840px);
}

.ace-store-head {
  padding: 15px 20px;
  background:
    linear-gradient(110deg, rgba(196, 154, 58, .12), transparent 36%),
    #202728;
}

.ace-store-head h2 {
  font-family: var(--v207-display, inherit);
  font-size: 22px;
  letter-spacing: -.025em;
}

.ace-store-balance {
  min-height: 72px;
  grid-template-columns: auto auto;
  place-content: center;
  align-items: baseline;
  gap: 10px;
  background:
    radial-gradient(circle at 68% -80%, rgba(230, 207, 153, .3), transparent 62%),
    linear-gradient(180deg, #2a3232, #22292a);
}

.ace-store-balance small {
  font-size: 9px;
  font-weight: 750;
}

.ace-store-balance strong {
  font-family: var(--v207-display, inherit);
  font-size: 27px;
}

.ace-store-content {
  gap: 15px;
  padding: 0 18px 18px;
  background:
    linear-gradient(90deg, transparent calc(50% - .5px), rgba(15, 95, 78, .025) 50%, transparent calc(50% + .5px)),
    #f4f0e6;
}

.ace-store-tabs {
  position: sticky;
  top: 70px;
  z-index: 3;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  margin: 0 -18px;
  padding: 9px 18px;
  border-bottom: 1px solid rgba(37, 43, 45, .09);
  background: rgba(244, 240, 230, .94);
  box-shadow: 0 8px 18px rgba(37, 43, 45, .04);
  backdrop-filter: blur(18px) saturate(1.25);
}

.ace-store-tabs button {
  min-height: 38px;
  padding: 8px 5px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: #777b77;
  font-family: var(--v207-display, inherit);
  font-size: 11px;
  font-weight: 720;
}

.ace-store-tabs button.is-active {
  border-bottom-color: #c49a3a;
  color: #202728;
}

.ace-store-section {
  min-height: 370px;
  display: grid;
  align-content: start;
  gap: 15px;
}

.ace-store-featured-hero {
  min-height: 220px;
  display: grid;
  grid-template-columns: minmax(190px, .62fr) minmax(0, 1.38fr);
  align-items: stretch;
  overflow: hidden;
  border-radius: 16px;
  background:
    radial-gradient(circle at 84% 8%, rgba(230, 207, 153, .16), transparent 37%),
    linear-gradient(130deg, #0f493d, #1f2928 76%);
  box-shadow: 0 16px 34px rgba(23, 38, 34, .14);
}

.ace-store-featured-avatar {
  min-height: 220px;
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .11), transparent 58%);
}

.ace-store-featured-avatar .player-avatar-art {
  width: 100%;
  height: 100%;
  min-height: 220px;
}

.ace-store-featured-hero > div:last-child {
  display: grid;
  align-content: center;
  justify-items: start;
  gap: 9px;
  padding: 24px 28px;
}

.ace-store-featured-hero small {
  color: #d6b968;
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.ace-store-featured-hero strong {
  max-width: 17ch;
  color: #fff;
  font-family: var(--v207-display, inherit);
  font-size: clamp(24px, 3.1vw, 34px);
  line-height: 1.02;
  letter-spacing: -.045em;
}

.ace-store-featured-hero p {
  max-width: 53ch;
  margin: 0;
  color: rgba(255, 255, 255, .67);
  font-size: 11px;
  line-height: 1.55;
}

.ace-store-featured-hero button {
  min-height: 38px;
  margin-top: 4px;
  padding: 8px 15px;
  border: 1px solid #d9bc71;
  border-radius: 7px;
  background: #d9bc71;
  color: #17211f;
  font-size: 10px;
  font-weight: 850;
}

.ace-store-department-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid rgba(37, 43, 45, .11);
  border-radius: 13px;
  background: #fffdf8;
}

.ace-store-department-grid > button {
  position: relative;
  min-width: 0;
  min-height: 112px;
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  align-content: center;
  align-items: center;
  gap: 10px;
  padding: 15px;
  border: 0;
  border-right: 1px solid rgba(37, 43, 45, .09);
  background: transparent;
  color: #252b2d;
  text-align: left;
}

.ace-store-department-grid > button:last-child {
  border-right: 0;
}

.ace-store-department-grid i {
  width: 36px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border: 1px solid rgba(196, 154, 58, .25);
  border-radius: 50%;
  background: #f4ead2;
}

.ace-store-department-grid i::after {
  content: "";
  width: 13px;
  height: 13px;
  border: 2px solid #8b6927;
  border-radius: 3px 8px 3px 8px;
  transform: rotate(-25deg);
}

.ace-store-department-grid .is-rackets i::after {
  width: 10px;
  height: 16px;
  border-radius: 50%;
}

.ace-store-department-grid .is-identity i::after {
  border-radius: 50%;
}

.ace-store-department-grid .is-accessories i::after {
  height: 7px;
  border-radius: 999px;
}

.ace-store-department-grid span,
.ace-store-department-grid strong,
.ace-store-department-grid small {
  min-width: 0;
  display: block;
}

.ace-store-department-grid strong {
  font-family: var(--v207-display, inherit);
  font-size: 12px;
}

.ace-store-department-grid small {
  margin-top: 4px;
  color: #858780;
  font-size: 8px;
  line-height: 1.35;
}

.ace-store-department-grid b {
  position: absolute;
  top: 8px;
  right: 9px;
  color: rgba(196, 154, 58, .62);
  font-size: 8px;
}

.ace-store-catalog-section {
  display: grid;
  gap: 13px;
}

.ace-store-product-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 11px;
}

.ace-store-product-card {
  min-width: 0;
  display: grid;
  grid-template-rows: 132px auto 36px;
  gap: 9px;
  padding: 10px;
  border: 1px solid rgba(37, 43, 45, .11);
  border-radius: 13px;
  background: #fffdf8;
  box-shadow: 0 9px 24px rgba(37, 43, 45, .045);
}

.ace-store-product-card.is-selected {
  border-color: rgba(196, 154, 58, .7);
  box-shadow: 0 0 0 1px rgba(196, 154, 58, .18), 0 9px 24px rgba(37, 43, 45, .05);
}

.ace-store-product-copy {
  min-width: 0;
}

.ace-store-product-copy small,
.ace-store-product-copy strong {
  display: block;
}

.ace-store-product-copy small {
  color: #9a7430;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.ace-store-product-copy strong {
  margin-top: 3px;
  overflow: hidden;
  color: #252b2d;
  font-family: var(--v207-display, inherit);
  font-size: 12px;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ace-store-product-card > button {
  min-height: 36px;
  padding: 7px;
  border: 1px solid #29302f;
  border-radius: 7px;
  background: #29302f;
  color: #fff;
  font-size: 9px;
  font-weight: 820;
}

.ace-store-product-card > button:disabled {
  border-color: rgba(37, 43, 45, .08);
  background: #eceae4;
  color: #868985;
}

.ace-store-product-card.is-owned > button,
.ace-store-product-card.is-selected > button {
  border-color: rgba(15, 95, 78, .22);
  background: #eaf2ee;
  color: #0f5f4e;
}

.ace-store-look-preview,
.ace-store-accessory-preview,
.ace-store-racket-preview,
.ace-store-identity-preview,
.ace-store-frame-preview,
.ace-store-title-preview {
  position: relative;
  min-width: 0;
  overflow: hidden;
  border-radius: 9px;
  background: #ede9df;
}

.ace-store-look-preview {
  background:
    radial-gradient(circle at 50% 27%, var(--product-accent) 0 3px, transparent 4px),
    linear-gradient(150deg, #eef4ef, #ded9ce);
}

.ace-store-look-preview i {
  position: absolute;
  top: 20px;
  left: calc(50% - 26px);
  width: 52px;
  height: 69px;
  border-radius: 19px 19px 10px 10px;
  background: linear-gradient(90deg, var(--product-primary) 0 47%, var(--product-secondary) 48%);
  box-shadow: inset 0 -12px 0 var(--product-primary);
}

.ace-store-look-preview i::before,
.ace-store-look-preview i::after {
  content: "";
  position: absolute;
  top: 15px;
  width: 14px;
  height: 55px;
  border-radius: 999px;
  background: var(--product-primary);
}

.ace-store-look-preview i::before {
  left: -12px;
  transform: rotate(12deg);
}

.ace-store-look-preview i::after {
  right: -12px;
  background: var(--product-secondary);
  transform: rotate(-12deg);
}

.ace-store-look-preview b {
  position: absolute;
  top: 87px;
  left: calc(50% - 21px);
  width: 15px;
  height: 34px;
  border-radius: 0 0 8px 8px;
  background: var(--product-primary);
  box-shadow: 27px 0 0 var(--product-primary);
}

.ace-store-look-preview span {
  position: absolute;
  top: 39px;
  left: 50%;
  color: var(--product-accent);
  font-size: 15px;
  font-weight: 900;
  transform: translateX(-50%);
}

.ace-store-accessory-preview {
  display: grid;
  place-items: center;
  isolation: isolate;
  padding: 3px;
  background:
    radial-gradient(ellipse at 50% 78%, rgba(32, 39, 40, .13), transparent 47%),
    linear-gradient(145deg, #eef3ed, #e2ded4);
}

.ace-store-accessory-preview::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 14% 12%;
  border: 1px solid rgba(255, 255, 255, .54);
  border-radius: 50%;
  background: rgba(255, 255, 255, .22);
}

.ace-store-accessory-preview img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transform: scale(1.18);
  filter: drop-shadow(0 9px 8px rgba(24, 31, 31, .14));
}

.ace-store-accessory-preview.is-headband img {
  transform: scale(1.26);
}

.ace-store-accessory-preview.is-wristbands img {
  transform: scale(1.2);
}

.ace-store-accessory-preview.is-cap img {
  transform: scale(1.24) translateY(1px);
}

.ace-store-accessory-preview.is-bag img {
  transform: scale(1.14);
}

.ace-store-racket-preview {
  display: grid;
  place-items: center;
  padding: 1px 8px 2px;
  background: linear-gradient(145deg, #edf3ee, #ddd9cf);
}

.ace-store-racket-preview svg {
  width: min(100%, 176px);
  height: 100%;
  overflow: visible;
  filter: drop-shadow(0 8px 7px rgba(24, 31, 31, .12));
}

.ace-store-racket-preview .racket-strings {
  fill: none;
  stroke: #66736f;
  stroke-width: 1.15;
  opacity: .54;
}

.ace-store-racket-preview .racket-bed,
.ace-store-racket-preview .racket-throat,
.ace-store-racket-preview .racket-shaft,
.ace-store-racket-preview .racket-grip,
.ace-store-racket-preview .racket-cap {
  vector-effect: non-scaling-stroke;
}

.ace-store-identity-preview {
  background: linear-gradient(145deg, var(--skin-start), var(--skin-middle) 58%, var(--skin-end));
}

.ace-store-identity-preview::before {
  content: "";
  position: absolute;
  inset: 48% 10px 8px;
  border: 2px solid rgba(255, 255, 255, .7);
  border-bottom: 0;
  background: rgba(15, 95, 78, 0.58);
  transform: perspective(90px) rotateX(26deg);
}

.ace-store-identity-preview i {
  position: absolute;
  top: 25px;
  left: calc(50% - 18px);
  width: 36px;
  height: 46px;
  border-radius: 50% 50% 42% 42%;
  background: #29302f;
}

.ace-store-identity-preview span {
  position: absolute;
  top: 63px;
  left: calc(50% - 29px);
  width: 58px;
  height: 48px;
  border-radius: 25px 25px 8px 8px;
  background: #0f5f4e;
}

.ace-store-frame-preview {
  display: grid;
  place-items: center;
  background: linear-gradient(145deg, #1d2826, #36413e);
}

.ace-store-frame-preview::before {
  content: "";
  position: absolute;
  inset: 14px;
  border: 2px solid #d6b968;
  border-radius: 50% 50% 42% 42%;
  box-shadow: inset 0 0 0 5px rgba(214, 185, 104, .12);
}

.ace-store-frame-preview i {
  color: #f4ead2;
  font-family: var(--v207-display, inherit);
  font-size: 34px;
  font-style: normal;
}

.ace-store-title-preview {
  display: grid;
  place-items: center;
  background:
    linear-gradient(135deg, rgba(196, 154, 58, .14), transparent),
    #edf2ed;
}

.ace-store-title-preview i {
  padding: 8px 16px;
  border: 1px solid #987126;
  border-radius: 999px;
  color: #6d511d;
  font-size: 19px;
  font-style: normal;
  font-weight: 900;
  letter-spacing: .08em;
}

.ace-store-title-preview b {
  position: absolute;
  top: 10px;
  right: 12px;
  color: #b28a36;
  font-size: 9px;
}

.ace-store-return {
  justify-self: end;
  min-width: 140px;
}

@media (max-width: 760px) {
  .ace-store-dialog {
    width: calc(100% - 10px);
    max-height: calc(100dvh - 10px);
    border-radius: 17px;
  }

  .ace-store-shell {
    max-height: calc(100dvh - 10px);
  }

  .ace-store-head {
    padding: 12px 14px;
  }

  .ace-store-head h2 {
    font-size: 19px;
  }

  .ace-store-balance {
    min-height: 58px;
  }

  .ace-store-balance strong {
    font-size: 23px;
  }

  .ace-store-content {
    gap: 12px;
    padding: 0 10px 12px;
  }

  .ace-store-tabs {
    top: 62px;
    grid-template-columns: repeat(6, 76px);
    justify-content: start;
    overflow-x: auto;
    margin: 0 -10px;
    padding: 7px 10px 5px;
    scrollbar-width: none;
  }

  .ace-store-tabs::-webkit-scrollbar {
    display: none;
  }

  .ace-store-tabs button {
    min-height: 36px;
    font-size: 10px;
  }

  .ace-store-section {
    min-height: 420px;
  }

  .ace-store-featured-hero {
    min-height: 190px;
    grid-template-columns: 112px minmax(0, 1fr);
  }

  .ace-store-featured-avatar,
  .ace-store-featured-avatar .player-avatar-art {
    min-height: 190px;
  }

  .ace-store-featured-hero > div:last-child {
    gap: 7px;
    padding: 16px 14px;
  }

  .ace-store-featured-hero strong {
    font-size: clamp(20px, 6vw, 27px);
  }

  .ace-store-featured-hero p {
    display: -webkit-box;
    overflow: hidden;
    font-size: 9px;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
  }

  .ace-store-featured-hero button {
    min-height: 34px;
    padding: 7px 10px;
    font-size: 9px;
  }

  .ace-store-department-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ace-store-department-grid > button {
    min-height: 91px;
    padding: 11px;
    border-bottom: 1px solid rgba(37, 43, 45, .09);
  }

  .ace-store-department-grid > button:nth-child(2) {
    border-right: 0;
  }

  .ace-store-department-grid > button:nth-child(n + 3) {
    border-bottom: 0;
  }

  .ace-store-product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .ace-store-product-card {
    grid-template-rows: 105px auto 36px;
    gap: 7px;
    padding: 8px;
  }

  .ace-store-product-copy strong {
    font-size: 11px;
  }

  .ace-store-look-preview {
    transform: translateZ(0);
  }

  .ace-store-look-preview i {
    top: 13px;
    transform: scale(.82);
    transform-origin: top center;
  }

  .ace-store-look-preview b {
    top: 67px;
    transform: scale(.82);
    transform-origin: top center;
  }

  .ace-store-look-preview span {
    top: 30px;
  }

  .ace-store-accessory-preview img {
    max-height: 110px;
  }

  .ace-store-racket-preview svg {
    width: min(100%, 142px);
  }

  .ace-store-return {
    width: 100%;
    justify-self: stretch;
  }
}

.score-ladder {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(260px, 1.08fr);
  gap: 14px;
  align-items: stretch;
  margin: 0;
  padding: 14px;
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(244, 250, 246, 0.96)),
    #ffffff;
  box-shadow: 0 13px 28px rgba(16, 32, 29, 0.07);
}

.score-ladder.band-foundation,
.score-ladder.band-building {
  border-color: rgba(200, 95, 50, 0.2);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(255, 246, 240, 0.92)),
    #ffffff;
}

.score-ladder.band-stable,
.score-ladder.band-strong {
  border-color: rgba(18, 107, 87, 0.22);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(238, 251, 232, 0.92)),
    #ffffff;
}

.score-ladder.is-review {
  grid-template-columns: minmax(0, 1fr);
  border-color: rgba(18, 107, 87, 0.18);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(242, 247, 243, 0.96)),
    #ffffff;
}

.score-ladder.is-review .score-ladder-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.score-ladder-copy small,
.score-ladder-copy strong,
.score-ladder-copy p {
  display: block;
}

.score-ladder-copy small,
.score-ladder-grid small {
  color: var(--muted);
  font-weight: 900;
}

.score-ladder-copy strong {
  margin-top: 4px;
  color: #10201d;
  font-size: 23px;
  line-height: 1.2;
}

.score-ladder-copy p {
  margin: 8px 0 0;
  color: var(--muted);
  line-height: 1.45;
}

.score-ladder-track {
  align-self: center;
}

.ladder-scale {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  margin-bottom: 8px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
}

.ladder-scale span:not(:first-child) {
  text-align: center;
}

.score-ladder-track > i {
  position: relative;
  display: block;
  height: 18px;
  overflow: hidden;
  border-radius: 999px;
  background:
    linear-gradient(90deg, #f4ece8 0 40%, #edf4ef 40% 55%, #e2f0e8 55% 70%, #d8eadf 70% 85%, #d9f5a6 85% 100%);
  box-shadow: inset 0 0 0 1px rgba(16, 32, 29, 0.06);
}

.score-ladder-track > i::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: var(--score);
  border-radius: inherit;
  background: linear-gradient(90deg, #c85f32, #126b57, #c8f24a);
}

.score-ladder-track > i::after {
  content: "";
  position: absolute;
  top: -5px;
  left: calc(var(--score) - 6px);
  width: 12px;
  height: 28px;
  border-radius: 999px;
  background: #10201d;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.9);
}

.score-ladder-grid {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 0.7fr 0.7fr 1.6fr;
  gap: 10px;
}

.score-ladder-grid > div {
  min-height: 84px;
  padding: 12px;
  border: 1px solid rgba(18, 107, 87, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.9);
}

.score-ladder-grid b,
.score-ladder-grid span {
  display: block;
}

.score-ladder-grid b {
  margin-top: 6px;
  color: #10201d;
  line-height: 1.25;
}

.score-ladder-grid span {
  margin-top: 4px;
  color: var(--court);
  font-weight: 900;
}

.report-coach-section {
  margin: 0;
}

.report-coach-section .ai-coach-panel {
  margin: 0;
}

.report-intelligence {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
  align-items: stretch;
  margin: 16px 0;
}

.report-intelligence .recognition-trust {
  height: 100%;
  margin: 0;
}

.motion-profile {
  margin: 18px 0;
  padding: 14px;
  border: 1px solid rgba(18, 107, 87, 0.18);
  border-radius: 8px;
  background: #f7fbf8;
}

.motion-profile h3 {
  margin: 18px 0 10px;
}

.motion-summary {
  display: grid;
  grid-template-columns: 1.1fr 0.75fr 0.9fr;
  gap: 10px;
}

.motion-summary div,
.checkpoint-card,
.evidence-item,
.plan-step {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.motion-summary div {
  padding: 12px;
}

.motion-summary b,
.motion-summary span,
.motion-summary small {
  display: block;
}

.motion-summary b {
  margin: 4px 0;
  font-size: 17px;
}

.motion-summary span {
  color: var(--muted);
  line-height: 1.38;
}

.tennis-metrics {
  margin-top: 12px;
  padding: 13px;
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(238, 248, 242, 0.96));
}

.tennis-metrics > p {
  margin: -4px 0 12px;
  color: var(--muted);
  line-height: 1.45;
}

.tennis-metrics.empty {
  background: rgba(255, 255, 255, 0.74);
}

.tennis-metric-summary {
  display: grid;
  grid-template-columns: 0.65fr 1fr;
  gap: 10px;
  margin-bottom: 10px;
}

.tennis-metric-summary div,
.tennis-metric-grid article {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.tennis-metric-summary div {
  padding: 11px;
}

.tennis-metric-summary small,
.tennis-metric-summary b,
.tennis-metric-summary span {
  display: block;
}

.tennis-metric-summary small {
  color: var(--court);
  font-weight: 950;
}

.tennis-metric-summary b {
  margin: 4px 0;
  color: #15241f;
  font-size: 18px;
  line-height: 1.15;
}

.tennis-metric-summary span {
  color: var(--muted);
  line-height: 1.35;
  font-weight: 800;
}

.tennis-metric-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.tennis-metric-grid article {
  padding: 12px;
  box-shadow: 0 10px 22px rgba(11, 42, 34, 0.04);
}

.tennis-metric-grid article > div:first-child {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: start;
}

.tennis-metric-grid strong,
.tennis-metric-grid span,
.tennis-metric-grid b,
.tennis-metric-grid p,
.tennis-metric-grid small {
  display: block;
}

.tennis-metric-grid strong {
  color: #15241f;
  line-height: 1.2;
}

.tennis-metric-grid span {
  padding: 4px 7px;
  border-radius: 999px;
  background: #eef5ff;
  color: var(--blue);
  font-size: 11px;
  font-weight: 950;
  white-space: nowrap;
}

.tennis-metric-grid .metric-strong span {
  background: rgba(200, 242, 74, 0.28);
  color: #126b57;
}

.tennis-metric-grid .metric-risk span {
  background: rgba(200, 95, 50, 0.12);
  color: #b84f28;
}

.tennis-metric-grid b {
  margin: 8px 0 7px;
  color: #10201d;
  font-size: 24px;
  line-height: 1;
}

.tennis-metric-grid p {
  margin: 9px 0 6px;
  color: #2d4039;
  line-height: 1.42;
  font-weight: 820;
}

.tennis-metric-grid small {
  color: var(--muted);
  line-height: 1.36;
  font-weight: 780;
}

.metric-limitation {
  display: block;
  margin-top: 10px;
  color: var(--muted);
  font-style: normal;
  font-size: 12px;
  line-height: 1.35;
}

.object-tracking {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

.object-tracking > p {
  margin: -4px 0 10px;
  color: var(--muted);
  line-height: 1.42;
}

.object-tracking-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.object-tracking-grid div {
  min-width: 0;
  padding: 11px;
  border: 1px solid rgba(18, 107, 87, 0.12);
  border-radius: 8px;
  background: #ffffff;
}

.object-tracking-grid small,
.object-tracking-grid b,
.object-tracking-grid span {
  display: block;
}

.object-tracking-grid small {
  color: var(--court);
  font-weight: 950;
}

.object-tracking-grid b {
  margin: 4px 0;
  color: #10201d;
  font-size: 19px;
  line-height: 1.12;
}

.object-tracking-grid span {
  color: var(--muted);
  line-height: 1.34;
  font-weight: 780;
}

.checkpoint-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.checkpoint-card {
  padding: 12px;
}

.checkpoint-top {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
}

.checkpoint-top strong {
  line-height: 1.25;
}

.checkpoint-top span {
  min-width: 56px;
  padding: 4px 8px;
  border-radius: 999px;
  background: #edf6ff;
  color: var(--blue);
  font-size: 12px;
  font-weight: 900;
  text-align: center;
}

.severity-high .checkpoint-top span {
  background: #fff0e9;
  color: var(--clay);
}

.mini-meter {
  height: 8px;
  margin: 12px 0;
  overflow: hidden;
  border-radius: 999px;
  background: #e6eee9;
}

.mini-meter i {
  display: block;
  width: var(--value);
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--clay), var(--court));
}

.checkpoint-card p,
.checkpoint-card small,
.evidence-item p,
.evidence-item small,
.plan-step p,
.plan-step small {
  color: var(--muted);
  line-height: 1.45;
}

.checkpoint-card p {
  margin: 0 0 8px;
}

.evidence-list,
.plan-list {
  display: grid;
  gap: 10px;
}

.evidence-item {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 12px;
  align-items: center;
  padding: 10px;
}

.evidence-item img,
.evidence-placeholder {
  width: 100%;
  aspect-ratio: 16 / 10;
  border-radius: 7px;
  object-fit: cover;
  background: #0f1b18;
}

.evidence-frame {
  overflow: hidden;
  border-radius: 7px;
  background: #0f1b18;
}

.evidence-frame img {
  display: block;
  object-fit: cover;
}

.evidence-placeholder {
  display: grid;
  place-items: center;
  color: #fff;
  font-weight: 900;
}

.evidence-item p {
  margin: 5px 0;
}

.plan-step {
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 10px;
  padding: 12px;
}

.plan-step > span {
  width: 34px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--court);
  color: #fff;
  font-weight: 900;
}

.plan-step p {
  margin: 5px 0;
}

.prescription-actions {
  margin: 18px 0;
  padding: 14px;
  border: 1px solid rgba(18, 107, 87, 0.18);
  border-radius: 8px;
  background: #fbfdfb;
}

.prescription-actions > p {
  margin: -4px 0 12px;
  color: var(--muted);
  line-height: 1.5;
}

.action-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.action-grid article {
  display: grid;
  align-content: start;
  gap: 8px;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.action-grid span {
  width: 30px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--court);
  color: #fff;
  font-size: 12px;
  font-weight: 900;
}

.action-grid strong,
.action-grid p,
.action-grid small {
  display: block;
}

.action-grid p {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}

.action-grid small {
  color: var(--clay);
  font-weight: 900;
  line-height: 1.35;
}

.action-grid button {
  justify-self: start;
  margin-top: 2px;
  padding: 8px 10px;
  border: 0;
  border-radius: 8px;
  background: #10201d;
  color: #ffffff;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}

.intent-status {
  min-height: 22px;
  margin-top: 12px;
  color: var(--court);
  font-weight: 900;
  line-height: 1.4;
}

.training-pack {
  margin: 18px 0;
  padding: 14px;
  border: 1px solid rgba(36, 95, 206, 0.16);
  border-radius: 8px;
  background: linear-gradient(180deg, #ffffff, #f5f9ff);
}

.training-pack > p {
  margin: -4px 0 12px;
  color: var(--muted);
  line-height: 1.5;
}

.pack-meta {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 10px;
  margin-bottom: 10px;
}

.pack-meta div {
  padding: 11px;
  border: 1px solid rgba(36, 95, 206, 0.14);
  border-radius: 8px;
  background: #ffffff;
}

.pack-meta small,
.pack-meta b {
  display: block;
}

.pack-meta b {
  margin-top: 3px;
}

.pack-days {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 8px;
}

.pack-days article {
  display: grid;
  align-content: start;
  gap: 7px;
  min-width: 0;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.pack-days article.retest-day {
  border-color: rgba(200, 95, 50, 0.42);
  background: #fff8f4;
}

.pack-days span {
  color: var(--blue);
  font-size: 12px;
  font-weight: 900;
}

.pack-days strong {
  line-height: 1.25;
}

.pack-days p {
  margin: 0;
  color: var(--muted);
  line-height: 1.4;
}

.pack-days small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  line-height: 1.3;
}

.pack-days .retest-day small:last-child {
  color: var(--clay);
  font-weight: 900;
}

.issue-grid {
  grid-template-columns: repeat(3, 1fr);
}

.issue strong {
  display: block;
  margin-bottom: 8px;
}

.issue p,
.reference-card p,
.correction-copy p,
.drill-list li {
  color: var(--muted);
  line-height: 1.5;
}

.correction-demo {
  margin: 18px 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px;
  background: linear-gradient(180deg, #fcfff8, #f4fbf7);
}

.correction-grid {
  display: grid;
  grid-template-columns: minmax(260px, 1.08fr) 0.92fr;
  gap: 14px;
  align-items: stretch;
}

.correction-video-card {
  position: relative;
  overflow: hidden;
  border-radius: 8px;
  border: 1px solid rgba(19, 32, 28, 0.1);
  background: #0f1b18;
}

.correction-video-card video {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.video-badge,
.video-callout {
  position: absolute;
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 900;
  box-shadow: 0 10px 22px rgba(19, 32, 28, 0.16);
}

.video-badge {
  left: 12px;
  top: 12px;
  background: rgba(255, 255, 255, 0.88);
  color: var(--court);
}

.video-callout {
  max-width: 55%;
  color: #fff;
}

.callout-wrong {
  left: 12px;
  bottom: 12px;
  background: rgba(200, 95, 50, 0.9);
}

.callout-good {
  right: 12px;
  bottom: 12px;
  background: rgba(18, 107, 87, 0.92);
}

.correction-copy {
  display: grid;
  align-content: start;
  gap: 12px;
}

.pending-note {
  margin: 0;
  padding: 10px 12px;
  border-radius: 8px;
  background: #edf6ff;
  color: #245fce !important;
  font-weight: 800;
}

.compare-row {
  border: 1px solid rgba(200, 95, 50, 0.22);
  border-radius: 8px;
  padding: 12px;
  background: #fff8f3;
}

.compare-row.good {
  border-color: rgba(18, 107, 87, 0.22);
  background: #f1fbf5;
}

.compare-row strong,
.compare-row span {
  display: block;
}

.compare-row span {
  margin-top: 5px;
  color: var(--muted);
  line-height: 1.45;
}

.library {
  margin-top: 18px;
}

.value-flow {
  margin-top: 18px;
  border: 1px solid var(--line);
  background: var(--panel);
  border-radius: 8px;
  padding: 18px;
  box-shadow: 0 14px 40px rgba(19, 32, 28, 0.06);
}

.flow-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(120px, 1fr));
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 2px;
}

.flow-grid article {
  min-width: 140px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fcfdfb;
}

.flow-grid span,
.flow-grid strong,
.flow-grid p {
  display: block;
}

.flow-grid span {
  width: 30px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #eaf3ef;
  color: var(--court);
  font-size: 12px;
  font-weight: 900;
}

.flow-grid strong {
  margin-top: 10px;
  font-size: 14px;
  line-height: 1.25;
}

.flow-grid p {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

.dispatch-layer {
  margin-top: 18px;
  border: 1px solid var(--line);
  background: var(--panel);
  border-radius: 8px;
  padding: 18px;
  box-shadow: 0 14px 40px rgba(19, 32, 28, 0.06);
}

.dispatch-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(140px, 1fr));
  gap: 10px;
}

.dispatch-grid article {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 8px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fcfdfb;
}

.dispatch-grid span,
.dispatch-grid strong,
.dispatch-grid p {
  display: block;
}

.dispatch-grid span {
  justify-self: start;
  padding: 5px 9px;
  border-radius: 999px;
  background: #eaf3ef;
  color: var(--court);
  font-size: 12px;
  font-weight: 900;
}

.dispatch-grid strong {
  font-size: 15px;
  line-height: 1.25;
}

.dispatch-grid p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

.history {
  margin-top: 18px;
  border: 1px solid var(--line);
  background: var(--panel);
  border-radius: 8px;
  padding: 18px;
  box-shadow: 0 14px 40px rgba(19, 32, 28, 0.06);
}

.history-list {
  display: grid;
  gap: 10px;
}

.history-item {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fcfdfb;
}

.history-item strong,
.history-item span {
  display: block;
}

.history-item span,
.history-empty {
  color: var(--muted);
}

.player-profile {
  grid-template-columns: 1fr;
}

.profile-summary {
  display: grid;
  gap: 12px;
}

.profile-more {
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 8px;
  background: #ffffff;
}

.profile-more > summary {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 22px;
  gap: 12px;
  align-items: center;
  min-height: 64px;
  padding: 14px 16px;
  color: #10201d;
  cursor: pointer;
  list-style: none;
}

.profile-more > summary::-webkit-details-marker {
  display: none;
}

.profile-more > summary span,
.profile-more > summary em {
  display: block;
}

.profile-more > summary span {
  font-weight: 950;
}

.profile-more > summary em {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  font-weight: 800;
  text-align: right;
}

.profile-more > summary::after {
  content: "+";
  display: grid;
  place-items: center;
  width: 22px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #eaf3ef;
  color: var(--court);
  font-size: 18px;
  line-height: 1;
}

.profile-more[open] > summary {
  border-bottom: 1px solid rgba(18, 107, 87, 0.12);
}

.profile-more[open] > summary::after {
  content: "-";
}

.profile-more-content {
  display: grid;
  gap: 12px;
  padding: 14px;
}

.account-data-controls {
  overflow: hidden;
  border: 1px solid rgba(16, 32, 29, 0.12);
  border-radius: 8px;
  background: #ffffff;
}

.account-data-controls > summary {
  position: relative;
  min-height: 62px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 22px;
  gap: 12px;
  align-items: center;
  padding: 14px 16px;
  cursor: pointer;
  list-style: none;
}

.account-data-controls > summary::-webkit-details-marker {
  display: none;
}

.account-data-controls > summary span,
.account-data-controls > summary em {
  display: block;
}

.account-data-controls > summary span {
  color: #10201d;
  font-weight: 950;
}

.account-data-controls > summary em {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  font-weight: 800;
  text-align: right;
}

.account-data-controls > summary::after {
  width: 22px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #eaf3ef;
  color: var(--court);
  font-size: 18px;
  line-height: 1;
  content: "+";
}

.account-data-controls[open] > summary {
  border-bottom: 1px solid rgba(16, 32, 29, 0.1);
}

.account-data-controls[open] > summary::after {
  content: "-";
}

.account-data-content {
  display: grid;
  gap: 14px;
  padding: 14px 16px 16px;
}

.account-data-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.account-data-links a {
  min-height: 38px;
  display: inline-grid;
  place-items: center;
  padding: 7px 11px;
  border: 1px solid rgba(18, 107, 87, 0.16);
  border-radius: 7px;
  color: var(--court);
  background: #f7fbf8;
  font-size: 13px;
  font-weight: 900;
  text-decoration: none;
}

.account-delete-zone {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 0.58fr);
  gap: 12px 16px;
  align-items: end;
  padding-top: 14px;
  border-top: 1px dashed rgba(169, 72, 53, 0.28);
}

.account-delete-zone > div:first-child small,
.account-delete-zone > div:first-child p,
.account-delete-zone label span,
.account-delete-actions small {
  display: block;
}

.account-delete-zone > div:first-child small,
.account-delete-zone label span {
  color: #8f3a2c;
  font-size: 12px;
  font-weight: 950;
}

.account-delete-zone > div:first-child p {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.48;
}

.account-delete-zone label {
  display: grid;
  gap: 6px;
}

.account-delete-zone input {
  min-height: 40px;
  border-color: rgba(169, 72, 53, 0.22);
}

.account-delete-actions {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
}

.account-delete-actions small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 750;
}

.account-delete-actions button {
  min-height: 40px;
  padding: 8px 12px;
  border: 1px solid rgba(169, 72, 53, 0.28);
  border-radius: 7px;
  color: #a13f30;
  background: #fff8f5;
  font-size: 13px;
  font-weight: 950;
}

.account-delete-actions button:not(:disabled):hover {
  border-color: #a13f30;
  color: #ffffff;
  background: #a13f30;
}

.account-delete-actions button:disabled {
  cursor: not-allowed;
  opacity: 0.48;
}

.profile-command {
  display: grid;
  grid-template-columns: minmax(158px, 0.48fr) minmax(0, 1.08fr) minmax(300px, 0.9fr);
  gap: 12px;
  padding: 16px;
  border: 1px solid rgba(16, 32, 29, 0.16);
  border-radius: 8px;
  background:
    linear-gradient(135deg, #10201d, #126b57);
  color: #ffffff;
  box-shadow: 0 18px 38px rgba(16, 32, 29, 0.13);
}

.player-avatar-art {
  width: 100%;
  height: auto;
  display: block;
  overflow: visible;
}

.player-avatar-art .avatar-racket {
  transform-origin: 242px 139px;
}

.profile-command-avatar {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 8px;
}

.profile-command-avatar > button {
  width: 100%;
  min-width: 0;
  display: grid;
  gap: 7px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #ffffff;
  text-align: left;
  cursor: pointer;
}

.profile-command-avatar .player-avatar-art {
  aspect-ratio: 8 / 9;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 8px;
  background: #eef7f1;
  transition: transform 180ms ease, border-color 180ms ease;
}

.profile-command-avatar > button:hover .player-avatar-art,
.profile-command-avatar > button:focus-visible .player-avatar-art {
  transform: translateY(-2px);
  border-color: rgba(200, 242, 74, 0.82);
}

.profile-command-avatar > button > span {
  min-width: 0;
  display: flex;
  justify-content: space-between;
  gap: 8px;
  align-items: center;
}

.profile-command-avatar > button small,
.profile-command-avatar > button b {
  display: block;
  line-height: 1.2;
}

.profile-command-avatar > button small {
  overflow: hidden;
  color: rgba(255, 255, 255, 0.64);
  font-size: 10px;
  font-weight: 900;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.profile-command-avatar > button b {
  color: var(--lime);
  font-size: 11px;
  white-space: nowrap;
}

.profile-avatar-level {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  align-items: baseline;
  padding: 8px 10px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.08);
}

.profile-avatar-level b {
  color: var(--lime);
  font-size: 19px;
}

.profile-avatar-level span {
  color: rgba(255, 255, 255, 0.68);
  font-size: 11px;
  font-weight: 900;
}

body.has-avatar-studio {
  overflow: hidden;
}

.avatar-studio {
  width: min(980px, calc(100% - 28px));
  max-width: none;
  max-height: calc(100dvh - 28px);
  margin: auto;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: #fbfcf8;
  color: var(--ink);
  box-shadow: 0 28px 90px rgba(7, 21, 17, 0.34);
  overflow: hidden;
}

.avatar-studio::backdrop {
  background: rgba(7, 21, 17, 0.68);
  backdrop-filter: blur(10px);
}

.avatar-studio-shell {
  max-height: calc(100dvh - 28px);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
}

.avatar-studio-head,
.avatar-studio-footer {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: center;
  padding: 18px 20px;
  background: rgba(251, 252, 248, 0.98);
}

.avatar-studio-head {
  border-bottom: 1px solid rgba(18, 107, 87, 0.12);
}

.avatar-studio-head small,
.avatar-studio-head h2 {
  display: block;
}

.avatar-studio-head small {
  margin-bottom: 4px;
  color: var(--court);
  font-size: 11px;
  font-weight: 950;
}

.avatar-studio-head h2 {
  margin: 0;
  font-size: 25px;
  line-height: 1.15;
}

.avatar-studio-close {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  display: grid;
  place-items: center;
  padding: 0 0 3px;
  border: 1px solid rgba(16, 32, 29, 0.12);
  border-radius: 50%;
  background: #ffffff;
  color: var(--ink);
  font-size: 27px;
  line-height: 1;
  cursor: pointer;
}

.avatar-studio-body {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(280px, 0.78fr) minmax(420px, 1.22fr);
  overflow: auto;
}

.avatar-studio-preview {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 14px;
  padding: 24px;
  border-right: 1px solid rgba(18, 107, 87, 0.12);
  background: #edf6ef;
}

.avatar-preview-stage {
  width: min(100%, 350px);
  justify-self: center;
}

.avatar-preview-stage .player-avatar-art {
  filter: drop-shadow(0 18px 26px rgba(15, 52, 42, 0.16));
}

.avatar-preview-meta {
  width: min(100%, 350px);
  justify-self: center;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 3px 12px;
  align-items: baseline;
}

.avatar-preview-meta small,
.avatar-preview-meta span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 850;
}

.avatar-preview-meta strong {
  grid-row: 1 / 3;
  grid-column: 2;
  color: var(--court);
  font-size: 20px;
}

.avatar-studio-controls {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 12px;
  padding: 22px;
}

.avatar-control-section,
.avatar-advanced-controls {
  min-width: 0;
  display: grid;
  gap: 12px;
}

.avatar-control-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: baseline;
}

.avatar-control-head strong {
  font-size: 15px;
}

.avatar-control-head small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}

.avatar-preset-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
}

.avatar-preset {
  min-width: 0;
  display: grid;
  gap: 6px;
  padding: 7px;
  border: 1px solid rgba(18, 107, 87, 0.13);
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink);
  cursor: pointer;
  transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.avatar-preset:hover,
.avatar-preset:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(18, 107, 87, 0.34);
}

.avatar-preset.is-selected {
  border-color: var(--court);
  box-shadow: 0 0 0 2px rgba(18, 107, 87, 0.11);
}

.avatar-preset .player-avatar-art {
  aspect-ratio: 8 / 9;
  border-radius: 6px;
}

.avatar-preset span {
  min-height: 17px;
  overflow: hidden;
  font-size: 11px;
  font-weight: 950;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.avatar-wardrobe-section {
  padding: 13px;
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 8px;
  background: #f3f8f3;
}

.avatar-wardrobe-section .avatar-control-head > div {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.avatar-point-balance {
  flex: 0 0 auto;
  padding: 7px 10px;
  border: 1px solid rgba(18, 107, 87, 0.16);
  border-radius: 7px;
  background: #ffffff;
  color: var(--court);
  font-size: 13px;
  font-weight: 950;
}

.avatar-outfit-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.avatar-outfit-card {
  min-width: 0;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 7px 8px;
  align-items: center;
  padding: 8px;
  border: 1px solid rgba(16, 32, 29, 0.11);
  border-radius: 8px;
  background: #ffffff;
}

.avatar-outfit-card.is-selected {
  border-color: var(--court);
  box-shadow: 0 0 0 2px rgba(18, 107, 87, 0.1);
}

.avatar-outfit-swatch {
  width: 42px;
  height: 48px;
  grid-row: 1;
  display: grid;
  place-items: center;
  position: relative;
  overflow: hidden;
  border-radius: 6px;
  background: var(--outfit-secondary);
}

.avatar-outfit-swatch::before,
.avatar-outfit-swatch::after {
  content: "";
  width: 25px;
  height: 42px;
  position: absolute;
  top: 11px;
  border-radius: 4px 4px 0 0;
  background: var(--outfit-primary);
}

.avatar-outfit-swatch::before {
  left: -9px;
  transform: rotate(24deg);
}

.avatar-outfit-swatch::after {
  right: -9px;
  transform: rotate(-24deg);
}

.avatar-outfit-swatch i {
  width: 26px;
  height: 40px;
  position: absolute;
  bottom: -4px;
  border-radius: 5px 5px 0 0;
  background: var(--outfit-primary);
}

.avatar-outfit-swatch span {
  z-index: 1;
  display: grid;
  place-items: center;
  width: 17px;
  height: 17px;
  border-radius: 50%;
  background: var(--outfit-accent);
  color: #10201d;
  font-size: 9px;
  font-weight: 950;
}

.avatar-outfit-swatch b {
  width: 34px;
  height: 4px;
  position: absolute;
  bottom: 7px;
  z-index: 1;
  border-radius: 2px;
  background: var(--outfit-accent);
}

.avatar-outfit-copy {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.avatar-outfit-copy strong,
.avatar-outfit-copy small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.avatar-outfit-copy strong {
  font-size: 11px;
  font-weight: 950;
}

.avatar-outfit-copy small {
  color: var(--muted);
  font-size: 9px;
  font-weight: 850;
}

.avatar-outfit-card > button {
  min-height: 31px;
  grid-column: 1 / -1;
  padding: 5px 7px;
  border: 1px solid rgba(18, 107, 87, 0.18);
  border-radius: 6px;
  background: #ffffff;
  color: var(--court);
  font-size: 10px;
  font-weight: 950;
  cursor: pointer;
}

.avatar-outfit-card.is-selected > button,
.avatar-outfit-card.is-locked > button:not(:disabled) {
  border-color: var(--court);
  background: var(--court);
  color: #ffffff;
}

.avatar-outfit-card > button:disabled {
  cursor: default;
  opacity: 0.58;
}

.avatar-store-boundary {
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
  line-height: 1.4;
}

.avatar-advanced-toggle {
  min-height: 54px;
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
  padding: 0 44px 0 14px;
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 8px;
  background: #f4f8f4;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
  position: relative;
}

.avatar-advanced-toggle::after {
  content: "+";
  position: absolute;
  right: 15px;
  color: var(--court);
  font-size: 21px;
  font-weight: 900;
}

.avatar-advanced-toggle[aria-expanded="true"]::after {
  content: "−";
}

.avatar-advanced-toggle span,
.avatar-advanced-toggle small {
  display: block;
}

.avatar-advanced-toggle span {
  font-weight: 950;
}

.avatar-advanced-toggle small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}

.avatar-advanced-controls {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding-top: 2px;
}

.avatar-control-group {
  min-width: 0;
  display: grid;
  gap: 7px;
  padding: 11px;
  border: 1px solid rgba(18, 107, 87, 0.12);
  border-radius: 8px;
  background: #ffffff;
}

.avatar-control-group:first-child,
.avatar-control-group:nth-child(3) {
  grid-column: 1 / -1;
}

.avatar-control-group > strong {
  color: var(--muted);
  font-size: 11px;
  font-weight: 950;
}

.avatar-segmented,
.avatar-option-row,
.avatar-swatch-row {
  display: flex;
  gap: 7px;
  align-items: center;
}

.avatar-segmented .avatar-option,
.avatar-option-row .avatar-option {
  min-height: 38px;
  flex: 1 1 0;
  display: grid;
  place-items: center;
  padding: 7px 9px;
  border: 1px solid rgba(16, 32, 29, 0.12);
  border-radius: 7px;
  background: #f7f9f6;
  color: var(--ink);
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}

.avatar-option-row .avatar-option {
  min-width: 0;
  font-size: 11px;
}

.avatar-hair-options {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
}

.avatar-option-row .avatar-option.is-hair {
  min-height: 104px;
  align-content: stretch;
  gap: 5px;
  padding: 5px 5px 7px;
  overflow: hidden;
  background: #f4f8f4;
  color: var(--ink);
  transition: transform 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
}

.avatar-option.is-hair:hover,
.avatar-option.is-hair:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(18, 107, 87, 0.42);
}

.avatar-hair-thumb {
  min-width: 0;
  display: block;
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(18, 107, 87, 0.1);
  border-radius: 6px;
  background:
    radial-gradient(circle at 50% 42%, rgba(255, 255, 255, 0.98) 0 42%, transparent 43%),
    linear-gradient(145deg, #e6f2e9, #f9fbf7);
}

.avatar-hair-thumb svg {
  width: 100%;
  height: 72px;
  display: block;
  overflow: visible;
  filter: drop-shadow(0 4px 5px rgba(16, 32, 29, 0.14));
}

.avatar-hair-label {
  min-width: 0;
  overflow: hidden;
  font-size: 10px;
  font-weight: 950;
  line-height: 1.1;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.avatar-segmented .avatar-option.is-selected,
.avatar-option-row .avatar-option.is-selected {
  border-color: var(--court);
  background: var(--court);
  color: #ffffff;
}

.avatar-option-row .avatar-option.is-hair.is-selected {
  background: #ffffff;
  color: var(--court);
  box-shadow: 0 0 0 2px rgba(18, 107, 87, 0.13), 0 8px 18px rgba(16, 32, 29, 0.08);
}

.avatar-option.is-hair.is-selected .avatar-hair-thumb {
  border-color: rgba(18, 107, 87, 0.32);
  background:
    radial-gradient(circle at 50% 42%, #ffffff 0 42%, transparent 43%),
    linear-gradient(145deg, rgba(200, 242, 74, 0.26), #edf6ef);
}

.avatar-swatch-row {
  min-height: 38px;
  flex-wrap: wrap;
}

.avatar-option.is-swatch {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(16, 32, 29, 0.12);
  border-radius: 50%;
  background: #ffffff;
  cursor: pointer;
}

.avatar-option.is-swatch i {
  width: 24px;
  height: 24px;
  display: block;
  border: 2px solid rgba(255, 255, 255, 0.9);
  border-radius: 50%;
  background: var(--avatar-swatch);
  box-shadow: 0 1px 4px rgba(16, 32, 29, 0.16);
}

.avatar-option.is-swatch.is-selected {
  border-color: var(--court);
  box-shadow: 0 0 0 2px rgba(18, 107, 87, 0.12);
}

.avatar-studio-footer {
  border-top: 1px solid rgba(18, 107, 87, 0.12);
}

.avatar-studio-message {
  min-height: 18px;
  margin: 0;
  color: var(--court);
  font-size: 12px;
  font-weight: 900;
}

.avatar-studio-footer > div {
  display: flex;
  gap: 8px;
  align-items: center;
}

.avatar-skip-button,
.avatar-save-button {
  min-height: 44px;
  padding: 10px 16px;
  border-radius: 8px;
  font-weight: 950;
  cursor: pointer;
}

.avatar-skip-button {
  border: 1px solid rgba(18, 107, 87, 0.16);
  background: #ffffff;
  color: var(--court);
}

.avatar-save-button {
  min-width: 132px;
  border: 1px solid var(--court);
  background: var(--court);
  color: #ffffff;
  box-shadow: 0 8px 18px rgba(18, 107, 87, 0.16);
}

.avatar-save-button:disabled {
  cursor: wait;
  opacity: 0.62;
}

.avatar-studio-message.is-error {
  color: #a12f2f;
}

.avatar-studio-message.is-success {
  color: var(--court);
}

.profile-command-main {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 7px;
}

.profile-command-main small,
.profile-command-main strong,
.profile-command-main p {
  display: block;
}

.profile-command-main small {
  color: rgba(255, 255, 255, 0.64);
  font-size: 11px;
  font-weight: 950;
}

.profile-command-main strong {
  color: #ffffff;
  font-size: clamp(24px, 3vw, 36px);
  line-height: 1.06;
}

.profile-command-main p {
  max-width: 620px;
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.45;
}

.profile-command-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 4px;
}

.profile-command-actions a {
  min-height: 38px;
  display: inline-grid;
  place-items: center;
  padding: 9px 12px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
  font-size: 13px;
  font-weight: 950;
  text-decoration: none;
}

.profile-command-actions a:first-child {
  border-color: rgba(200, 242, 74, 0.72);
  background: var(--lime);
  color: #10201d;
}

.profile-command-ring {
  min-width: 0;
  min-height: 150px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 4px;
  border-radius: 8px;
  background:
    radial-gradient(circle at center, #10201d 0 56%, transparent 57%),
    conic-gradient(var(--lime) var(--progress), rgba(255, 255, 255, 0.13) 0);
}

.profile-command-ring span,
.profile-command-ring b,
.profile-command-ring em {
  display: block;
}

.profile-command-ring span,
.profile-command-ring em {
  color: rgba(255, 255, 255, 0.68);
  font-size: 11px;
  font-style: normal;
  font-weight: 900;
}

.profile-command-ring b {
  color: var(--lime);
  font-size: 34px;
  line-height: 1;
}

.profile-command-grid {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.profile-command-grid article {
  min-width: 0;
  padding: 11px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
}

.profile-command-grid small,
.profile-command-grid b,
.profile-command-grid span {
  display: block;
}

.profile-command-grid small,
.profile-command-grid span {
  color: rgba(255, 255, 255, 0.64);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.25;
}

.profile-command-grid b {
  margin: 5px 0 4px;
  color: #ffffff;
  font-size: 17px;
  line-height: 1.15;
  overflow-wrap: anywhere;
}

.profile-growth {
  display: grid;
  grid-template-columns: minmax(180px, 0.62fr) minmax(220px, 0.8fr) minmax(320px, 1.58fr);
  gap: 10px;
}

.profile-level-card,
.profile-streak-card,
.profile-path-card {
  min-width: 0;
  padding: 14px;
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 8px;
  background: #ffffff;
}

.profile-level-card {
  display: grid;
  align-content: start;
  gap: 8px;
  background:
    linear-gradient(135deg, #172b24, #126b57);
  color: #ffffff;
}

.profile-level-card small,
.profile-level-card strong,
.profile-level-card span,
.profile-streak-card small,
.profile-streak-card b,
.profile-streak-card span {
  display: block;
}

.profile-level-card small {
  color: rgba(255, 255, 255, 0.68);
  font-weight: 950;
}

.profile-level-card strong {
  color: var(--lime);
  font-size: 36px;
  line-height: 0.95;
}

.profile-level-card span {
  color: rgba(255, 255, 255, 0.76);
  font-size: 12px;
  font-weight: 850;
}

.profile-level-card i {
  height: 9px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.18);
}

.profile-level-card i::before {
  content: "";
  display: block;
  width: var(--progress, 0%);
  height: 100%;
  border-radius: inherit;
  background: var(--lime);
}

.profile-streak-card {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
  background:
    linear-gradient(135deg, rgba(46, 119, 184, 0.08), rgba(200, 242, 74, 0.1)),
    #ffffff;
}

.profile-streak-card div {
  min-width: 0;
  padding: 10px;
  border: 1px solid rgba(18, 107, 87, 0.11);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.8);
}

.profile-streak-card small {
  color: var(--muted);
  font-weight: 950;
}

.profile-streak-card b {
  margin-top: 5px;
  color: var(--court);
  font-size: 26px;
  line-height: 1;
}

.profile-streak-card span {
  margin-top: 5px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 820;
}

.profile-path-card {
  display: grid;
  gap: 12px;
}

.profile-skill-path {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
}

.profile-skill-path article {
  position: relative;
  min-width: 0;
  display: grid;
  justify-items: center;
  gap: 7px;
  padding: 10px 7px;
  border: 1px solid rgba(18, 107, 87, 0.12);
  border-radius: 8px;
  background: #f8fbf8;
  text-align: center;
}

.profile-skill-path article::after {
  content: "";
  position: absolute;
  top: 24px;
  left: calc(50% + 18px);
  width: calc(100% - 28px);
  height: 3px;
  background: rgba(18, 107, 87, 0.12);
}

.profile-skill-path article:last-child::after {
  display: none;
}

.profile-skill-path span {
  width: 34px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #e8eee9;
  color: var(--muted);
  font-size: 12px;
  font-weight: 950;
  z-index: 1;
}

.profile-skill-path strong {
  color: #172b24;
  font-size: 12px;
  line-height: 1.22;
}

.profile-skill-path article.is-done {
  background: #f2fbf4;
}

.profile-skill-path article.is-done span {
  background: var(--court);
  color: #ffffff;
}

.profile-skill-path article.is-done::after {
  background: var(--court);
}

.profile-skill-path article.is-active {
  border-color: rgba(200, 95, 50, 0.28);
  background: #fffaf0;
}

.profile-skill-path article.is-active span {
  background: var(--lime);
  color: #10201d;
}

.profile-skill-path article.is-locked {
  opacity: 0.72;
}

.practice-reward,
.daily-plan,
.badge-wall {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(247, 251, 248, 0.94)),
    #ffffff;
}

.practice-reward {
  grid-template-columns: minmax(0, 1.25fr) minmax(140px, 0.75fr);
  border-color: rgba(16, 32, 29, 0.16);
  background:
    linear-gradient(135deg, #10201d, #126b57);
  color: #ffffff;
}

.practice-reward small,
.practice-reward strong,
.practice-reward span,
.practice-reward b {
  display: block;
}

.practice-reward small,
.practice-reward span {
  color: rgba(255, 255, 255, 0.7);
}

.practice-reward strong,
.practice-reward b {
  margin-top: 5px;
  color: var(--lime);
  font-size: 28px;
  line-height: 1;
}

.daily-plan.is-complete {
  border-color: rgba(18, 107, 87, 0.24);
  background:
    linear-gradient(135deg, rgba(242, 251, 244, 0.98), rgba(255, 255, 255, 0.96)),
    #ffffff;
}

.daily-plan-card {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(180px, 0.75fr);
  gap: 10px;
}

.daily-plan-card > div {
  min-width: 0;
  padding: 12px;
  border: 1px solid rgba(18, 107, 87, 0.12);
  border-radius: 8px;
  background: #ffffff;
}

.daily-plan-card small,
.daily-plan-card strong,
.daily-plan-card p,
.daily-plan-card b,
.daily-plan-card span {
  display: block;
}

.daily-plan-card small {
  color: var(--muted);
  font-weight: 950;
}

.daily-plan-card strong {
  margin-top: 5px;
  color: #172b24;
  font-size: 18px;
  line-height: 1.2;
}

.daily-plan-card p,
.daily-plan-card span {
  color: var(--muted);
  line-height: 1.42;
}

.daily-plan-card p {
  margin: 7px 0 0;
}

.daily-plan-card b {
  margin-top: 6px;
  color: var(--court);
  font-size: 22px;
  line-height: 1;
}

.daily-plan-progress {
  display: grid;
  gap: 7px;
}

.daily-plan-progress > div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}

.daily-plan-progress i {
  height: 12px;
  overflow: hidden;
  border-radius: 999px;
  background: #e4eee8;
}

.daily-plan-progress b {
  display: block;
  width: var(--progress);
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--court), var(--lime));
}

.badge-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
}

.badge-grid article {
  min-width: 0;
  display: grid;
  justify-items: center;
  gap: 6px;
  padding: 10px 7px;
  border: 1px solid rgba(18, 107, 87, 0.12);
  border-radius: 8px;
  background: #ffffff;
  text-align: center;
}

.badge-grid article > span {
  width: 36px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: #eef8f1;
  color: var(--court);
  font-size: 11px;
  font-weight: 950;
}

.badge-grid strong,
.badge-grid small {
  display: block;
}

.badge-grid strong {
  color: #172b24;
  font-size: 12px;
  line-height: 1.2;
}

.badge-grid small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 850;
}

.badge-grid article.is-unlocked {
  background: #f4fbf6;
}

.badge-grid article.is-unlocked > span {
  background: var(--court);
  color: #ffffff;
}

.badge-grid article.is-locked {
  opacity: 0.66;
}

.next-milestone,
.weekly-rhythm,
.profile-foundation-preview {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(247, 251, 248, 0.94)),
    #ffffff;
}

.next-milestone {
  grid-template-columns: minmax(0, 1fr) minmax(180px, 0.72fr);
  align-items: center;
  border-color: rgba(200, 95, 50, 0.18);
  background:
    linear-gradient(135deg, #fffaf4, #ffffff);
}

.next-milestone small,
.next-milestone strong,
.next-milestone span {
  display: block;
}

.next-milestone small {
  color: var(--muted);
  font-weight: 950;
}

.next-milestone strong {
  margin-top: 5px;
  color: #172b24;
  font-size: 22px;
  line-height: 1.15;
}

.next-milestone span {
  margin-top: 5px;
  color: var(--muted);
  font-weight: 850;
}

.next-milestone i {
  height: 14px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(200, 95, 50, 0.12);
}

.next-milestone i b {
  display: block;
  width: var(--progress, 0%);
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--clay), var(--lime));
}

.week-rhythm-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 8px;
}

.week-rhythm-grid article {
  min-width: 0;
  display: grid;
  grid-template-rows: 82px auto auto auto;
  gap: 5px;
  justify-items: center;
  padding: 10px 6px;
  border: 1px solid rgba(18, 107, 87, 0.1);
  border-radius: 8px;
  background: #ffffff;
  text-align: center;
}

.week-rhythm-grid article.is-complete {
  border-color: rgba(18, 107, 87, 0.22);
  background: #f4fbf6;
}

.week-rhythm-grid i {
  width: 100%;
  height: 82px;
  display: flex;
  align-items: end;
  justify-content: center;
  padding: 5px;
  border-radius: 8px;
  background: #edf4ee;
}

.week-rhythm-grid i b {
  width: 24px;
  height: var(--height, 8%);
  min-height: 8px;
  border-radius: 999px 999px 6px 6px;
  background: #d6ded8;
}

.week-rhythm-grid article.is-complete i b {
  background: linear-gradient(180deg, var(--lime), var(--court));
}

.week-rhythm-grid strong,
.week-rhythm-grid span,
.week-rhythm-grid small {
  display: block;
}

.week-rhythm-grid strong {
  color: #172b24;
  font-size: 12px;
}

.week-rhythm-grid span {
  color: var(--court);
  font-size: 18px;
  font-weight: 950;
  line-height: 1;
}

.week-rhythm-grid small {
  color: var(--muted);
  font-size: 10px;
  font-weight: 900;
}

.profile-foundation-preview {
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  align-items: stretch;
  background:
    linear-gradient(135deg, #10201d, #126b57);
  color: #ffffff;
}

.profile-foundation-preview small,
.profile-foundation-preview strong,
.profile-foundation-preview p {
  display: block;
}

.profile-foundation-preview small,
.profile-foundation-preview p {
  color: rgba(255, 255, 255, 0.7);
}

.profile-foundation-preview strong {
  margin-top: 6px;
  color: var(--lime);
  font-size: 28px;
  line-height: 1.08;
}

.profile-foundation-preview p {
  margin: 8px 0 0;
  line-height: 1.5;
}

.foundation-preview-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.foundation-preview-grid article {
  min-width: 0;
  display: grid;
  gap: 5px;
  padding: 11px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
}

.foundation-preview-grid span {
  width: 28px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--lime);
  color: #10201d;
  font-size: 12px;
  font-weight: 950;
}

.foundation-preview-grid strong {
  color: #ffffff;
  font-size: 15px;
}

.profile-missions {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(248, 251, 248, 0.94)),
    #ffffff;
}

.profile-mission-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.profile-mission-grid article {
  min-width: 0;
  display: grid;
  grid-template-columns: 54px 1fr;
  gap: 10px;
  align-items: start;
  padding: 12px;
  border: 1px solid rgba(18, 107, 87, 0.12);
  border-radius: 8px;
  background: #ffffff;
}

.profile-mission-grid article > span {
  min-height: 54px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: #eef8f1;
  color: var(--court);
  font-size: 15px;
  font-weight: 950;
}

.profile-mission-grid small,
.profile-mission-grid strong,
.profile-mission-grid p {
  display: block;
}

.profile-mission-grid small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 950;
}

.profile-mission-grid strong {
  margin-top: 5px;
  color: #172b24;
  line-height: 1.22;
}

.profile-mission-grid p {
  margin: 5px 0 0;
  color: var(--muted);
  line-height: 1.4;
}

.profile-mission-grid article.mission-active {
  border-color: rgba(200, 95, 50, 0.22);
  background: #fffaf4;
}

.profile-mission-grid article.mission-active > span {
  background: var(--lime);
  color: #10201d;
}

.profile-mission-grid article.mission-done {
  border-color: rgba(18, 107, 87, 0.22);
  background: #f4fbf6;
}

.profile-mission-grid article.mission-done > span {
  background: var(--court);
  color: #ffffff;
}

.profile-mission-grid article.mission-locked {
  opacity: 0.76;
}

.profile-practice,
.profile-highlights,
.profile-evolution {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(247, 251, 248, 0.94)),
    #ffffff;
}

.practice-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.practice-stats div {
  min-width: 0;
  padding: 11px;
  border: 1px solid rgba(18, 107, 87, 0.12);
  border-radius: 8px;
  background: #f7fbf8;
}

.practice-stats small,
.practice-stats b {
  display: block;
}

.practice-stats small {
  color: var(--muted);
  font-weight: 950;
}

.practice-stats b {
  margin-top: 5px;
  color: var(--court);
  font-size: 28px;
  line-height: 1;
}

.practice-form {
  display: grid;
  grid-template-columns: 1fr 0.72fr 0.72fr;
  gap: 10px;
  align-items: end;
}

.practice-form label {
  margin: 0;
}

.practice-form .practice-note {
  grid-column: 1 / -1;
}

.practice-form button {
  grid-column: 1 / -1;
}

.practice-form > small {
  grid-column: 1 / -1;
  min-height: 20px;
  color: var(--court);
  font-weight: 900;
}

.profile-invite-card {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(180px, 0.8fr);
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(16, 32, 29, 0.16);
  border-radius: 8px;
  background:
    linear-gradient(135deg, #10201d, #126b57);
  color: #ffffff;
}

.profile-invite-card small,
.profile-invite-card strong,
.profile-invite-card span,
.profile-invite-card b {
  display: block;
}

.profile-invite-card small,
.profile-invite-card span {
  color: rgba(255, 255, 255, 0.68);
  line-height: 1.35;
}

.profile-invite-card strong {
  margin: 6px 0;
  color: var(--lime);
  font-size: 32px;
  line-height: 1;
  letter-spacing: 0;
}

.profile-invite-card b {
  margin: 5px 0 10px;
  color: #ffffff;
  font-size: 28px;
  line-height: 1;
}

.profile-invite-card button {
  border-color: rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.1);
  color: #ffffff;
}

.profile-invite-card button.is-copied {
  border-color: var(--lime);
  background: var(--lime);
  color: #10201d;
}

.profile-invite-card button.is-copy-error {
  border-color: rgba(255, 255, 255, 0.46);
  background: rgba(255, 255, 255, 0.18);
}

.profile-invite-side {
  display: grid;
  gap: 10px;
  align-content: start;
}

.profile-invite-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.profile-invite-stats > span {
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.07);
}

.profile-invite-stats b {
  margin: 4px 0 0;
  font-size: 22px;
}

.profile-invite-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
}

.profile-invite-actions button {
  width: 100%;
  min-height: 42px;
  padding: 8px 10px;
  font-size: 12px;
}

.profile-invite-rules {
  grid-column: 1 / -1;
  padding: 12px 13px;
  border: 1px solid rgba(200, 242, 74, 0.24);
  border-radius: 8px;
  background: rgba(7, 22, 19, 0.3);
}

.profile-invite-rules[hidden] {
  display: none;
}

.profile-invite-rules strong,
.profile-invite-rules p,
.profile-invite-rules small {
  display: block;
}

.profile-invite-rules strong {
  margin: 0;
  color: var(--lime);
  font-size: 15px;
}

.profile-invite-rules p {
  margin: 6px 0;
  color: rgba(255, 255, 255, 0.86);
  font-size: 13px;
  line-height: 1.45;
}

.profile-invite-rules small {
  color: rgba(255, 255, 255, 0.58);
  font-size: 11px;
  line-height: 1.4;
}

.highlight-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.highlight-strip a,
.evolution-grid a {
  min-width: 0;
  display: grid;
  gap: 7px;
  padding: 10px;
  border: 1px solid rgba(18, 107, 87, 0.12);
  border-radius: 8px;
  background: #ffffff;
  color: inherit;
  text-decoration: none;
}

.highlight-strip img,
.evolution-grid img {
  width: 100%;
  aspect-ratio: 16 / 10;
  border-radius: 7px;
  background: #10201d;
  object-fit: cover;
}

.highlight-strip a > span,
.evolution-grid a > span {
  min-height: 96px;
  display: grid;
  place-items: center;
  border-radius: 7px;
  background: #10201d;
  color: var(--lime);
  font-size: 28px;
  font-weight: 950;
}

.highlight-strip strong,
.highlight-strip small,
.evolution-grid strong,
.evolution-grid small {
  display: block;
}

.highlight-strip strong,
.evolution-grid strong {
  color: #172b24;
  line-height: 1.2;
}

.highlight-strip small,
.evolution-grid small {
  color: var(--muted);
  font-weight: 850;
}

.highlight-strip p,
.profile-evolution > p {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}

.evolution-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(120px, 0.52fr) minmax(0, 1fr);
  gap: 10px;
  align-items: stretch;
}

.evolution-grid > div {
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 4px;
  padding: 12px;
  border: 1px solid rgba(200, 95, 50, 0.18);
  border-radius: 8px;
  background: #fffaf4;
}

.evolution-grid > div small,
.evolution-grid > div b,
.evolution-grid > div span {
  display: block;
}

.evolution-grid > div b {
  color: var(--clay);
  font-size: 34px;
  line-height: 1;
}

.evolution-grid > div span {
  color: var(--muted);
  font-weight: 900;
}

.profile-hero {
  display: grid;
  grid-template-columns: 0.72fr 1.45fr 1fr;
  gap: 10px;
}

.profile-score-card,
.profile-trend-card,
.profile-next-card {
  min-width: 0;
  padding: 14px;
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 8px;
  background: #ffffff;
}

.profile-score-card {
  background:
    linear-gradient(135deg, #10201d, #126b57);
  color: #ffffff;
}

.profile-score-card small,
.profile-score-card strong,
.profile-score-card span,
.profile-next-card small,
.profile-next-card strong,
.profile-next-card span,
.profile-trend-card small,
.profile-trend-card b {
  display: block;
}

.profile-score-card small,
.profile-trend-card small,
.profile-next-card small {
  color: var(--muted);
  font-weight: 950;
}

.profile-score-card small,
.profile-score-card span {
  color: rgba(255, 255, 255, 0.72);
}

.profile-score-card strong {
  margin-top: 8px;
  color: #c8f24a;
  font-size: 46px;
  line-height: 0.95;
}

.profile-score-card span,
.profile-next-card span {
  margin-top: 8px;
  line-height: 1.35;
}

.profile-next-card strong {
  margin-top: 7px;
  color: #172b24;
  font-size: 18px;
  line-height: 1.18;
}

.profile-trend-card {
  display: grid;
  gap: 12px;
}

.profile-trend-card b {
  margin-top: 4px;
  color: #172b24;
}

.profile-trend-bars {
  min-height: 92px;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  align-items: end;
}

.profile-trend-bars i {
  min-width: 0;
  height: 92px;
  display: grid;
  align-content: end;
  justify-items: center;
  gap: 5px;
  font-style: normal;
}

.profile-trend-bars i::before {
  content: "";
  width: 100%;
  height: max(14px, var(--score));
  border-radius: 7px 7px 4px 4px;
  background: linear-gradient(180deg, var(--lime), var(--court));
}

.profile-trend-bars b,
.profile-trend-bars em {
  display: block;
  font-size: 11px;
  line-height: 1.1;
}

.profile-trend-bars em {
  color: var(--muted);
  font-style: normal;
  font-weight: 900;
}

.trend-empty {
  align-self: center;
  grid-column: 1 / -1;
  color: var(--muted);
  font-weight: 900;
  text-align: center;
}

.profile-empty {
  padding: 18px;
  border: 1px dashed rgba(18, 107, 87, 0.22);
  border-radius: 8px;
  background: #fbfdfb;
  color: var(--muted);
  font-weight: 800;
  text-align: center;
}

.profile-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.profile-metrics div,
.profile-lists article {
  min-width: 0;
  padding: 13px;
  border: 1px solid rgba(18, 107, 87, 0.13);
  border-radius: 8px;
  background: #ffffff;
}

.profile-metrics small,
.profile-metrics b,
.profile-metrics span,
.profile-lists small,
.profile-lists b,
.profile-lists span {
  display: block;
}

.profile-metrics b {
  margin-top: 4px;
  color: var(--court);
  font-size: 28px;
  line-height: 1;
}

.profile-metrics span,
.profile-lists span,
.profile-lists small {
  margin-top: 4px;
  color: var(--muted);
  line-height: 1.35;
}

.profile-lists {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.profile-lists article em {
  display: block;
  margin-top: 8px;
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  font-weight: 850;
}

.profile-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 8px;
}

.profile-chip-row span {
  display: inline-flex;
  gap: 6px;
  align-items: center;
  min-height: 28px;
  padding: 5px 8px;
  border-radius: 999px;
  background: #eef8f1;
  color: var(--court);
  font-size: 12px;
  font-weight: 950;
}

.profile-chip-row.issue span {
  background: #fff4ec;
  color: var(--clay);
}

.profile-chip-row b {
  min-width: 20px;
  min-height: 20px;
  display: inline-grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.75);
  color: #172b24;
  font-size: 11px;
}

.commerce-board {
  margin-top: 18px;
  padding: 18px;
  border: 1px solid rgba(18, 107, 87, 0.16);
  border-radius: 8px;
  background: #f8fbf8;
  box-shadow: 0 14px 40px rgba(19, 32, 28, 0.05);
}

.operator-workbench .commerce-board {
  margin-top: 0;
  border: 0;
  border-radius: 0;
  background: #fbfdfb;
  box-shadow: none;
}

.business-lab .value-flow,
.business-lab .dispatch-layer {
  margin-top: 0;
  border: 0;
  border-radius: 0;
  background: #fbfdfb;
  box-shadow: none;
}

.business-lab .dispatch-layer {
  border-top: 1px solid rgba(18, 107, 87, 0.1);
}

.monetization-map {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 14px 0;
}

.monetization-map article {
  min-width: 0;
  padding: 14px;
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(247, 251, 248, 0.9));
}

.monetization-map small,
.monetization-map strong,
.monetization-map span {
  display: block;
}

.monetization-map small {
  color: var(--court);
  font-weight: 900;
}

.monetization-map strong {
  margin: 6px 0 5px;
  font-size: 24px;
  line-height: 1;
}

.monetization-map span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 760;
  line-height: 1.38;
}

.operator-unlock {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 210px auto;
  gap: 10px;
  align-items: center;
  margin-bottom: 12px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.operator-unlock strong,
.operator-unlock span {
  display: block;
}

.operator-unlock span {
  margin-top: 3px;
  color: var(--muted);
  line-height: 1.35;
}

.operator-unlock input {
  width: 100%;
  min-height: 40px;
  border: 1px solid rgba(18, 107, 87, 0.2);
  border-radius: 8px;
  padding: 0 11px;
  background: #f8fbf8;
  color: var(--ink);
  font: inherit;
}

.operator-unlock button {
  min-height: 40px;
  border: 0;
  border-radius: 8px;
  padding: 0 14px;
  background: #10201d;
  color: #ffffff;
  font-weight: 900;
  cursor: pointer;
}

.commerce-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-bottom: 12px;
}

.commerce-stats div {
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.commerce-stats small,
.commerce-stats b {
  display: block;
}

.commerce-stats b {
  margin-top: 3px;
  font-size: 21px;
}

.intent-list {
  display: grid;
  gap: 9px;
}

.intent-list article {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.intent-list strong,
.intent-list span,
.intent-list em {
  display: block;
}

.intent-list span {
  margin-top: 3px;
  color: var(--muted);
  line-height: 1.35;
}

.intent-list em {
  color: var(--court);
  font-style: normal;
  font-weight: 900;
  white-space: nowrap;
}

.intent-actions {
  display: grid;
  justify-items: end;
  gap: 7px;
}

.intent-actions button {
  padding: 7px 9px;
  border: 0;
  border-radius: 8px;
  background: #10201d;
  color: #ffffff;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}

.commerce-message {
  min-height: 22px;
  margin-top: 10px;
  color: var(--court);
  font-weight: 900;
  line-height: 1.4;
}

.commerce-message a {
  color: var(--blue);
  overflow-wrap: anywhere;
}

.settlement-desk {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}

.settlement-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin-bottom: 12px;
}

.settlement-stats div {
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.settlement-stats small,
.settlement-stats b {
  display: block;
}

.settlement-stats b {
  margin-top: 3px;
  font-size: 21px;
}

.entitlement-list {
  display: grid;
  gap: 9px;
}

.entitlement-list article {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.entitlement-list strong,
.entitlement-list span,
.entitlement-list small,
.entitlement-list em {
  display: block;
}

.entitlement-list span,
.entitlement-list small {
  margin-top: 3px;
  color: var(--muted);
  line-height: 1.35;
}

.entitlement-list em {
  color: var(--blue);
  font-style: normal;
  font-weight: 900;
}

.beta-operations-page {
  display: grid;
  gap: 14px;
  margin-top: 18px;
  padding: 18px;
  border: 1px solid rgba(18, 107, 87, 0.2);
  border-radius: 10px;
  background:
    radial-gradient(circle at 92% 0%, rgba(156, 214, 51, 0.13), transparent 28%),
    linear-gradient(145deg, #f4faf6 0%, #edf5f1 100%);
  box-shadow: 0 16px 40px rgba(16, 44, 36, 0.07);
}

.beta-operations-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.beta-operations-head small,
.beta-operations-head h2,
.beta-operations-head p {
  display: block;
  margin: 0;
}

.beta-operations-head small {
  color: var(--court);
  font-size: 10px;
  font-weight: 950;
  letter-spacing: 0.08em;
}

.beta-operations-head h2 {
  margin-top: 4px;
  color: var(--text-strong);
  font-size: 24px;
  line-height: 1.12;
}

.beta-operations-head p {
  max-width: 680px;
  margin-top: 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.5;
}

.beta-operations-actions {
  flex: 0 0 auto;
  display: grid;
  gap: 6px;
  justify-items: end;
}

.beta-operations-actions > em {
  padding: 7px 10px;
  border-radius: 999px;
  background: #10201d;
  color: #ffffff;
  font-size: 10px;
  font-style: normal;
  font-weight: 950;
}

.beta-operations-actions > button {
  min-height: 36px;
  padding: 0 11px;
  border: 1px solid rgba(18, 107, 87, 0.22);
  border-radius: 7px;
  background: #ffffff;
  color: var(--court);
  font-size: 10px;
  font-weight: 950;
  cursor: pointer;
}

.beta-operations-actions > button:disabled {
  cursor: wait;
  opacity: 0.55;
}

.beta-operations-actions > span {
  min-height: 12px;
  color: var(--muted);
  font-size: 8px;
  font-weight: 800;
}

.beta-operations-progress {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
}

.beta-operations-progress > div,
.beta-feedback-summary > div {
  min-width: 0;
  padding: 12px;
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.94);
}

.beta-operations-progress small,
.beta-operations-progress b,
.beta-operations-progress span,
.beta-feedback-summary small,
.beta-feedback-summary b {
  display: block;
}

.beta-operations-progress small,
.beta-feedback-summary small {
  color: var(--muted);
  font-size: 9px;
  font-weight: 850;
}

.beta-operations-progress b,
.beta-feedback-summary b {
  margin-top: 4px;
  color: var(--text-strong);
  font-size: 23px;
  line-height: 1;
}

.beta-operations-progress span {
  margin-top: 5px;
  color: var(--muted);
  font-size: 8px;
  line-height: 1.35;
}

.beta-feedback-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
}

.beta-feedback-summary > div {
  background: rgba(229, 242, 235, 0.82);
}

.beta-feedback-summary b {
  color: var(--court);
  font-size: 18px;
}

.social-operations {
  display: grid;
  gap: 11px;
  padding: 14px;
  border: 1px solid rgba(185, 132, 45, 0.22);
  border-radius: 9px;
  background:
    radial-gradient(circle at 100% 0%, rgba(185, 132, 45, 0.1), transparent 32%),
    rgba(255, 253, 248, 0.92);
}

.social-operations-head,
.social-reports-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.social-operations-head strong,
.social-operations-head span,
.social-reports-heading strong,
.social-reports-heading span {
  display: block;
}

.social-operations-head strong,
.social-reports-heading strong {
  color: var(--text-strong);
  font-size: 14px;
  font-weight: 950;
}

.social-operations-head span,
.social-reports-heading span {
  margin-top: 3px;
  color: var(--muted);
  font-size: 9px;
  font-weight: 750;
  line-height: 1.45;
}

.social-operations-head > p {
  min-height: 14px;
  margin: 0;
  color: var(--court);
  font-size: 9px;
  font-weight: 900;
}

.social-reports-heading > p {
  min-height: 14px;
  margin: 0;
  color: var(--court);
  font-size: 9px;
  font-weight: 900;
}

.social-operations-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}

.social-operations-stats > div {
  min-width: 0;
  padding: 10px;
  border: 1px solid rgba(18, 107, 87, 0.12);
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.92);
}

.social-operations-stats small,
.social-operations-stats b {
  display: block;
}

.social-operations-stats small {
  min-height: 2.6em;
  color: var(--muted);
  font-size: 8px;
  font-weight: 850;
  line-height: 1.3;
}

.social-operations-stats b {
  margin-top: 4px;
  color: var(--text-strong);
  font-size: 19px;
  line-height: 1;
}

.social-interaction-mix {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 10px 12px;
  border-radius: 7px;
  background: rgba(18, 107, 87, 0.07);
}

.social-interaction-mix > strong {
  flex: 0 0 auto;
  color: var(--court);
  font-size: 9px;
  font-weight: 950;
}

.social-interaction-mix > div {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.social-interaction-mix span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 5px 7px;
  border: 1px solid rgba(18, 107, 87, 0.12);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.86);
  color: var(--muted);
  font-size: 8px;
  font-weight: 800;
}

.social-interaction-mix b {
  color: var(--text-strong);
  font-size: 10px;
}

.social-reports-heading {
  padding-top: 2px;
}

/* Topics belong to the post list, not a second navigation or form toolbar. */
#communityContent .qiulian-feed-navigation + .qiulian-layout { margin-top: 12px; }
#communityContent .qiulian-feed-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 12px; min-height: 44px; margin: 0 0 6px; }
#communityContent .qiulian-feed-label { color: var(--al-ink-soft, #626763); font-size: 12px; font-weight: 500; }
#communityContent .qiulian-topic-filter { display: flex; align-items: center; justify-content: flex-end; gap: 4px; min-width: 0; max-width: 100%; margin-left: auto; }
/* Reuse the deep warm gold used by brand text; light decorative gold is too faint for 13px text. */
#communityContent .qiulian-topic-control { position: relative; display: inline-flex; min-width: 0; max-width: 176px; margin: 0; color: #8f6429; }
#communityContent .qiulian-topic-filter select { appearance: none; -webkit-appearance: none; width: auto; min-width: 44px; max-width: 100%; min-height: 44px; margin: 0; padding: 8px 24px 8px 8px; border: 0; border-radius: 4px; background: transparent; color: inherit; font: inherit; font-size: 13px; font-weight: 650; cursor: pointer; text-align: right; }
#communityContent .qiulian-topic-control > svg { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; color: inherit; pointer-events: none; }
#communityContent .qiulian-topic-exit { display: inline-flex; align-items: center; justify-content: center; gap: 3px; flex-shrink: 0; min-width: 44px; min-height: 44px; margin: 0; padding: 8px 4px; border: 0; border-radius: 4px; background: transparent; color: var(--al-ink-soft, #626763); font: inherit; font-size: 12px; font-weight: 500; cursor: pointer; }
#communityContent .qiulian-topic-exit > svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
#communityContent .qiulian-topic-exit:disabled { opacity: .55; cursor: wait; }
#communityContent .qiulian-topic-tag { display: inline-flex; align-items: center; gap: 4px; align-self: flex-start; justify-self: start; min-width: 44px; min-height: 44px; max-width: calc(100% - 40px); margin: 0 20px; padding: 6px 0; border: 0; border-radius: 4px; box-shadow: none; background: transparent; color: var(--al-graphite, #252b2d); font: inherit; font-size: 13px; font-weight: 500; line-height: 1.5; text-align: left; cursor: pointer; overflow-wrap: anywhere; }
#communityContent .qiulian-topic-tag > span { color: var(--al-ink-soft, #626763); }
#communityContent :is(.qiulian-topic-filter select, .qiulian-topic-exit, .qiulian-topic-tag):focus-visible { outline: 2px solid var(--al-graphite, #252b2d); outline-offset: 2px; }
@media (hover: hover) {
  #communityContent :is(.qiulian-topic-filter select, .qiulian-topic-exit, .qiulian-topic-tag):hover { text-decoration: underline; text-underline-offset: 4px; }
  #communityContent :is(.qiulian-topic-exit, .qiulian-topic-tag):hover { color: var(--al-graphite, #252b2d); }
}
@media (max-width: 640px) {
  #communityContent .qiulian-topic-tag { max-width: calc(100% - 24px); margin-right: 12px; margin-left: 12px; }
}
#communityContent .qiulian-topic-picker select { min-width: 0; width: 100%; min-height: 44px; border: 1px solid rgba(18,107,87,.22); border-radius: 7px; background: #fbfcf9; padding: 8px 10px; color: #28332e; font: inherit; font-size: 14px; }
#communityContent .qiulian-topic-picker { display: grid; gap: 5px; margin-top: 8px; }
#communityContent .qiulian-topic-picker > span { color: #506156; font-size: 12px; }
#communityContent .qiulian-topic-hint { color: #506156; font-size: 12px; line-height: 1.6; margin: 0 0 10px; }

#socialInteractionMetrics {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid rgba(18, 107, 87, 0.18);
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.94);
  color: var(--text-strong);
}
#socialInteractionMetrics[hidden] { display: none; }
#socialInteractionMetrics .social-metrics-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
#socialInteractionMetrics .social-metrics-heading strong { font-size: 16px; line-height: 1.45; }
#socialInteractionMetrics .social-metrics-heading p { margin: 5px 0 0; color: #506156; font-size: 12px; line-height: 1.6; }
#socialInteractionMetrics button { flex-shrink: 0; min-width: 96px; min-height: 44px; padding: 9px 13px; border: 1px solid rgba(18, 107, 87, 0.25); border-radius: 7px; background: rgba(18, 107, 87, 0.06); color: var(--court); font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
#socialInteractionMetrics button:disabled { opacity: 0.65; cursor: default; }
#socialInteractionMetrics .social-metrics-status,
#socialInteractionMetrics .social-metrics-period { margin: 0; color: #506156; font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }
#socialInteractionMetrics .social-metrics-status:empty,
#socialInteractionMetrics .social-metrics-period:empty { display: none; }
#socialInteractionMetrics .social-metrics-status[role="alert"] { color: #8c4428; }
#socialInteractionMetrics .social-metrics-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
#socialInteractionMetrics .social-metrics-grid:empty { display: none; }
#socialInteractionMetrics .social-metric { min-width: 0; padding: 14px; border: 1px solid rgba(18, 107, 87, 0.13); border-radius: 8px; background: #fbfcf9; }
#socialInteractionMetrics h4 { margin: 0; font-size: 13px; line-height: 1.45; }
#socialInteractionMetrics .social-metric-rate { display: block; margin: 9px 0 5px; font-size: 27px; line-height: 1.1; font-variant-numeric: tabular-nums; }
#socialInteractionMetrics .social-metric-status { margin: 0 0 12px; color: #506156; font-size: 12px; line-height: 1.5; }
#socialInteractionMetrics .social-metric-cohort { margin: 0; color: #506156; font-size: 11px; line-height: 1.5; }
#socialInteractionMetrics .social-metric-cohort b { display: block; margin-top: 3px; color: var(--text-strong); font-size: 13px; }
#socialInteractionMetrics dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin: 12px 0 0; padding-top: 10px; border-top: 1px solid rgba(18, 107, 87, 0.12); }
#socialInteractionMetrics dt { color: #506156; font-size: 11px; line-height: 1.45; }
#socialInteractionMetrics dd { margin: 4px 0 0; font-size: 14px; font-weight: 750; }
#socialInteractionMetrics .social-metric-excluded { margin: 10px 0 0; color: #506156; font-size: 11px; line-height: 1.5; }
#socialInteractionMetrics .social-metric-small { display: inline-block; margin-top: 9px; color: #79591e; font-size: 11px; line-height: 1.5; }
#socialInteractionMetrics .social-metrics-notes { color: #506156; font-size: 12px; line-height: 1.65; }
#socialInteractionMetrics summary { display: flex; flex-direction: row; align-items: center; justify-content: flex-start; gap: 0; min-height: 44px; padding: 8px 0; border: 0; list-style: none; cursor: pointer; font-weight: 750; }
#socialInteractionMetrics summary::before { content: "+"; margin-right: 8px; }
#socialInteractionMetrics summary::after { content: none; display: none; }
#socialInteractionMetrics details[open] summary::before { content: "−"; }
#socialInteractionMetrics .social-metrics-notes p { margin: 5px 0 10px; }
@media (min-width: 1000px) { #socialInteractionMetrics .social-metrics-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 560px) {
  #socialInteractionMetrics { padding: 12px; }
  #socialInteractionMetrics .social-metrics-heading { flex-direction: column; }
  #socialInteractionMetrics .social-metrics-grid { grid-template-columns: minmax(0, 1fr); }
  #socialInteractionMetrics button { width: 100%; }
}

.social-report-list {
  display: grid;
  gap: 8px;
}

.social-image-moderation-list {
  display: grid;
  gap: 8px;
}

.social-image-moderation-card {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 11px;
  padding: 10px;
  border: 1px solid rgba(195, 145, 57, 0.2);
  border-radius: 8px;
  background: #ffffff;
}

.social-image-moderation-card > img {
  width: 112px;
  height: 92px;
  border-radius: 7px;
  object-fit: cover;
  background: #eef2ef;
}

.social-image-moderation-card > div,
.social-image-moderation-card strong,
.social-image-moderation-card span,
.social-image-moderation-card small {
  display: block;
  min-width: 0;
}

.social-image-moderation-card strong {
  color: var(--text-strong);
  font-size: 11px;
  font-weight: 950;
}

.social-image-moderation-card span,
.social-image-moderation-card small {
  margin-top: 4px;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.social-image-moderation-card footer {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 9px;
}

.social-image-moderation-card button {
  min-height: 32px;
  border: 0;
  border-radius: 6px;
  padding: 0 10px;
  background: var(--court);
  color: #ffffff;
  font-size: 9px;
  font-weight: 950;
  cursor: pointer;
}

.social-image-moderation-card button.danger {
  background: #923f2a;
}

.social-image-moderation-card button:disabled {
  cursor: wait;
  opacity: 0.5;
}

.social-report-card {
  display: grid;
  gap: 8px;
  padding: 11px;
  border: 1px solid rgba(185, 132, 45, 0.18);
  border-left: 3px solid #c39139;
  border-radius: 8px;
  background: #ffffff;
}

.social-report-card.is-resolved,
.social-report-card.is-dismissed {
  border-color: rgba(18, 107, 87, 0.13);
  border-left-color: rgba(18, 107, 87, 0.55);
  background: rgba(245, 250, 247, 0.9);
}

.social-report-card > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.social-report-card > header strong,
.social-report-card > header span {
  display: block;
}

.social-report-card > header strong {
  color: var(--text-strong);
  font-size: 11px;
  font-weight: 950;
}

.social-report-card > header span {
  margin-top: 3px;
  color: var(--muted);
  font-size: 9px;
  font-weight: 750;
}

.social-report-card > header em {
  flex: 0 0 auto;
  padding: 4px 7px;
  border-radius: 999px;
  background: rgba(195, 145, 57, 0.14);
  color: #8b5b0d;
  font-size: 8px;
  font-style: normal;
  font-weight: 950;
}

.social-report-card.is-resolved > header em,
.social-report-card.is-dismissed > header em {
  background: rgba(18, 107, 87, 0.09);
  color: var(--court);
}

.social-report-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  color: var(--muted);
  font-size: 8px;
  font-weight: 750;
}

.social-report-card > footer {
  display: flex;
  justify-content: flex-end;
  gap: 7px;
}

.social-report-card > footer button {
  min-height: 32px;
  padding: 0 10px;
  border: 0;
  border-radius: 6px;
  background: var(--court);
  color: #ffffff;
  font-size: 9px;
  font-weight: 950;
  cursor: pointer;
}

.social-report-card > footer button.secondary {
  border: 1px solid rgba(18, 107, 87, 0.2);
  background: #ffffff;
  color: var(--court);
}

.social-report-card > footer button:disabled {
  cursor: wait;
  opacity: 0.5;
}

.social-report-card > small {
  color: var(--muted);
  font-size: 8px;
  font-weight: 750;
}

.beta-users-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 14px;
  padding-top: 3px;
}

.beta-users-heading strong,
.beta-users-heading span {
  display: block;
}

.beta-users-heading strong {
  color: var(--text-strong);
  font-size: 15px;
  font-weight: 950;
}

.beta-users-heading span {
  margin-top: 3px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.4;
}

.beta-users-heading > b {
  display: grid;
  min-width: 36px;
  height: 30px;
  place-items: center;
  border-radius: 999px;
  background: var(--court);
  color: #ffffff;
  font-size: 12px;
}

.beta-operations-users {
  display: grid;
  gap: 10px;
}

.beta-user-card {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(18, 107, 87, 0.15);
  border-radius: 9px;
  background: #ffffff;
}

.beta-user-card > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.beta-user-card > header strong,
.beta-user-card > header span {
  display: block;
}

.beta-user-card > header strong {
  color: var(--text-strong);
  font-size: 15px;
  font-weight: 950;
}

.beta-user-card > header span {
  margin-top: 3px;
  color: var(--muted);
  font-size: 9px;
}

.beta-user-card > header em {
  max-width: 48%;
  padding: 5px 8px;
  border-radius: 999px;
  background: rgba(18, 107, 87, 0.09);
  color: var(--court);
  font-size: 9px;
  font-style: normal;
  font-weight: 900;
  overflow-wrap: anywhere;
}

.beta-user-facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
}

.beta-user-facts > div {
  min-width: 0;
  padding: 9px;
  border-radius: 7px;
  background: #f5f8f6;
}

.beta-user-facts small,
.beta-user-facts b {
  display: block;
}

.beta-user-facts small {
  color: var(--muted);
  font-size: 8px;
  font-weight: 800;
}

.beta-user-facts b {
  margin-top: 3px;
  color: var(--text-strong);
  font-size: 11px;
  overflow-wrap: anywhere;
}

.beta-user-feedback-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
}

.beta-user-feedback-form label,
.beta-user-feedback-form label > span {
  display: block;
}

.beta-user-feedback-form label > span {
  margin-bottom: 5px;
  color: var(--muted);
  font-size: 9px;
  font-weight: 850;
}

.beta-user-feedback-form select,
.beta-user-feedback-form textarea {
  width: 100%;
  border: 1px solid rgba(18, 107, 87, 0.18);
  border-radius: 7px;
  background: #fbfdfc;
  color: var(--ink);
  font: inherit;
}

.beta-user-feedback-form select {
  min-height: 38px;
  padding: 0 9px;
  font-size: 11px;
  font-weight: 800;
}

.beta-user-feedback-form .beta-feedback-notes {
  grid-column: 1 / -1;
}

.beta-user-feedback-form textarea {
  min-height: 68px;
  resize: vertical;
  padding: 9px;
  font-size: 11px;
  line-height: 1.45;
}

.beta-user-card > footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.beta-user-card > footer span {
  color: var(--muted);
  font-size: 10px;
  font-weight: 850;
}

.beta-user-card > footer span.is-saved {
  color: var(--court);
}

.beta-user-card > footer span.is-error {
  color: #a34525;
}

.beta-user-card > footer button {
  min-height: 36px;
  border: 0;
  border-radius: 7px;
  padding: 0 13px;
  background: #10201d;
  color: #ffffff;
  font-size: 11px;
  font-weight: 950;
  cursor: pointer;
}

.beta-user-card > footer button:disabled {
  cursor: wait;
  opacity: 0.58;
}

.quality-desk {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}

.quality-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}

.quality-stats div {
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.quality-stats small,
.quality-stats b,
.quality-stats span,
.quality-stats em {
  display: block;
}

.quality-stats b {
  margin-top: 3px;
  font-size: 21px;
}

.quality-stats span {
  margin-top: 4px;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.35;
}

.quality-stats em {
  margin-top: 5px;
  color: var(--court);
  font-size: 8px;
  font-style: normal;
  font-weight: 850;
}

.quality-stats .is-provisional {
  border-color: rgba(189, 134, 36, 0.35);
  background: #fffbef;
}

.beta-risk-banner {
  display: grid;
  grid-template-columns: 130px minmax(0, 1fr);
  gap: 10px;
  margin-bottom: 12px;
  padding: 11px;
  border: 1px solid rgba(18, 107, 87, 0.18);
  border-radius: 8px;
  background: #f4faf6;
}

.beta-queue-primary {
  display: grid;
  gap: 12px;
  padding: 18px;
  border: 1px solid rgba(12, 88, 70, 0.18);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(239, 249, 245, 0.98), rgba(255, 255, 255, 0.98));
}

.beta-queue-title {
  margin: 0;
}

.beta-risk-banner:empty {
  display: none;
}

.beta-risk-banner.has-warning {
  border-color: rgba(189, 134, 36, 0.3);
  background: #fffaf0;
}

.beta-risk-banner.has-danger {
  border-color: rgba(200, 95, 50, 0.32);
  background: #fff8f3;
}

.beta-risk-head {
  display: grid;
  align-content: start;
  gap: 4px;
  padding: 7px;
}

.beta-risk-head small,
.beta-risk-head strong {
  display: block;
}

.beta-risk-head small {
  color: var(--text-soft);
  font-size: 10px;
  font-weight: 900;
}

.beta-risk-head strong {
  color: var(--brand);
  font-size: 28px;
  line-height: 1;
}

.has-danger .beta-risk-head strong {
  color: #a34525;
}

.beta-risk-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 7px;
}

.beta-risk-list article {
  min-width: 0;
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 7px;
  padding: 8px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.78);
}

.beta-risk-list article > span {
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(18, 107, 87, 0.12);
  color: var(--brand);
  font-size: 10px;
  font-weight: 950;
}

.beta-risk-list .is-warning > span {
  background: rgba(189, 134, 36, 0.14);
  color: #8e6117;
}

.beta-risk-list .is-danger > span {
  background: rgba(200, 95, 50, 0.13);
  color: #a34525;
}

.beta-risk-list strong,
.beta-risk-list p {
  display: block;
}

.beta-risk-list strong {
  color: var(--text-strong);
  font-size: 10px;
}

.beta-risk-list p {
  margin: 3px 0 0;
  color: var(--text-soft);
  font-size: 9px;
  line-height: 1.35;
}

.storage-safety-panel {
  display: grid;
  gap: 10px;
  margin-bottom: 12px;
  padding: 13px;
  border: 1px solid rgba(18, 107, 87, 0.2);
  border-radius: 9px;
  background: linear-gradient(135deg, #f4faf6 0%, #edf6f2 100%);
}

.storage-safety-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.storage-safety-head > div {
  min-width: 0;
}

.storage-safety-head span,
.storage-safety-head small {
  display: block;
}

.storage-safety-head span {
  color: var(--text-strong);
  font-size: 13px;
  font-weight: 950;
}

.storage-safety-head small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.4;
}

.storage-safety-head em {
  flex: 0 0 auto;
  padding: 6px 9px;
  border-radius: 999px;
  background: rgba(18, 107, 87, 0.12);
  color: var(--court);
  font-size: 9px;
  font-style: normal;
  font-weight: 950;
}

.storage-safety-head em[data-status="capacity_warning"],
.storage-safety-head em[data-status="backup_warning"] {
  background: rgba(215, 150, 58, 0.14);
  color: #95600e;
}

.storage-safety-head em[data-status="blocked"] {
  background: rgba(200, 95, 50, 0.14);
  color: #a34525;
}

.storage-safety-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.storage-safety-stats > div {
  min-width: 0;
  padding: 10px;
  border: 1px solid rgba(18, 107, 87, 0.13);
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.9);
}

.storage-safety-stats small,
.storage-safety-stats b,
.storage-safety-stats span {
  display: block;
}

.storage-safety-stats small {
  color: var(--muted);
  font-size: 8px;
  font-weight: 850;
}

.storage-safety-stats b {
  margin-top: 3px;
  color: var(--text-strong);
  font-size: 17px;
  line-height: 1.15;
}

.storage-safety-stats span {
  margin-top: 4px;
  color: var(--muted);
  font-size: 8px;
  line-height: 1.35;
}

.storage-safety-stats .storage-backup-state {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 10px;
}

.storage-safety-stats .storage-backup-state b {
  margin: 0;
  color: var(--court);
  font-size: 10px;
  text-align: right;
}

.storage-safety-stats .storage-backup-state.is-warning b {
  color: #a34525;
}

.beta-quality-panels {
  display: grid;
  grid-template-columns: minmax(230px, 0.8fr) minmax(300px, 1fr) minmax(330px, 1.15fr);
  gap: 10px;
  margin-bottom: 12px;
}

.beta-quality-panel {
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.beta-quality-panel-title {
  margin-bottom: 9px;
}

.beta-invalid-reasons,
.beta-segment-stats,
.beta-technical-stats,
.beta-error-cases {
  display: grid;
  gap: 7px;
}

.beta-segment-panel {
  grid-column: 1 / -1;
}

.beta-segment-stats {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.beta-segment-stats article {
  display: grid;
  grid-template-columns: minmax(135px, 0.75fr) minmax(0, 1.25fr);
  gap: 9px;
  align-items: center;
  padding: 9px;
  border: 1px solid rgba(18, 107, 87, 0.13);
  border-radius: 7px;
  background: #f7faf8;
}

.beta-segment-stats strong,
.beta-segment-stats span {
  display: block;
}

.beta-segment-stats strong {
  color: var(--text-strong);
  font-size: 10px;
}

.beta-segment-stats span {
  margin-top: 2px;
  color: var(--muted);
  font-size: 8px;
}

.beta-segment-stats dl {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 5px;
  margin: 0;
}

.beta-segment-stats dl > div {
  min-width: 0;
  padding: 5px;
  border-radius: 5px;
  background: #ffffff;
}

.beta-segment-stats dt,
.beta-segment-stats dd {
  margin: 0;
}

.beta-segment-stats dt {
  color: var(--muted);
  font-size: 7px;
  font-weight: 800;
}

.beta-segment-stats dd {
  margin-top: 2px;
  color: var(--court);
  font-size: 11px;
  font-weight: 950;
}

.beta-review-incomplete {
  color: #a34525 !important;
  font-weight: 900;
}

.beta-sample-card.is-review-incomplete {
  border-color: rgba(200, 95, 50, 0.36);
  background: #fffaf7;
}

.beta-technical-stats article {
  display: grid;
  gap: 6px;
  padding: 8px;
  border: 1px solid rgba(18, 107, 87, 0.13);
  border-radius: 7px;
  background: #f7faf8;
}

.beta-technical-stats article.is-unsupported {
  border-style: dashed;
  background: #f5f6f5;
}

.beta-technical-stats article > p {
  margin: 0;
  color: var(--muted);
  font-size: 8px;
  font-weight: 800;
}

.beta-technical-stats article > div,
.beta-technical-stats strong,
.beta-technical-stats span {
  display: block;
}

.beta-technical-stats strong {
  color: var(--text-strong);
  font-size: 10px;
}

.beta-technical-stats span {
  margin-top: 2px;
  color: var(--muted);
  font-size: 8px;
}

.beta-technical-stats dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
  margin: 0;
}

.beta-technical-stats dl > div {
  min-width: 0;
  padding: 5px;
  border-radius: 5px;
  background: #ffffff;
}

.beta-technical-stats dt,
.beta-technical-stats dd {
  margin: 0;
}

.beta-technical-stats dt {
  color: var(--muted);
  font-size: 7px;
  font-weight: 800;
}

.beta-technical-stats dd {
  margin-top: 2px;
  color: var(--court);
  font-size: 11px;
  font-weight: 950;
}

.beta-invalid-reasons article {
  display: grid;
  grid-template-columns: minmax(120px, 0.9fr) minmax(80px, 1fr) 26px;
  gap: 8px;
  align-items: center;
}

.beta-invalid-reasons article > div:first-child {
  min-width: 0;
}

.beta-invalid-reasons strong,
.beta-invalid-reasons span {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.beta-invalid-reasons strong {
  color: var(--text-strong);
  font-size: 10px;
}

.beta-invalid-reasons span {
  margin-top: 2px;
  color: var(--muted);
  font-size: 8px;
}

.beta-invalid-reasons b {
  color: var(--text-strong);
  font-size: 11px;
  text-align: right;
}

.beta-reason-meter {
  height: 7px;
  overflow: hidden;
  border-radius: 999px;
  background: #edf2ef;
}

.beta-reason-meter i {
  height: 100%;
  display: block;
  border-radius: inherit;
  background: linear-gradient(90deg, #d7963a, #c85f32);
}

.beta-error-cases article {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 9px;
  border: 1px solid rgba(200, 95, 50, 0.2);
  border-radius: 7px;
  background: #fffaf7;
}

.beta-error-cases strong,
.beta-error-cases span,
.beta-error-cases small {
  display: block;
}

.beta-error-cases strong {
  color: var(--text-strong);
  font-size: 11px;
}

.beta-error-cases span,
.beta-error-cases small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.35;
}

.beta-error-cases button {
  padding: 7px 9px;
  border: 0;
  border-radius: 7px;
  background: var(--brand-deep);
  color: #ffffff;
  font-size: 10px;
  font-weight: 900;
  cursor: pointer;
}

.beta-error-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 5px;
}

.beta-error-tags em {
  padding: 3px 5px;
  border-radius: 999px;
  background: rgba(200, 95, 50, 0.1);
  color: #a34525;
  font-size: 8px;
  font-style: normal;
  font-weight: 850;
}

.beta-accuracy-state {
  width: fit-content;
  margin-top: 5px;
  padding: 3px 6px;
  border-radius: 999px;
  font-size: 8px;
  font-style: normal;
  font-weight: 900;
}

.beta-accuracy-state.is-included,
.beta-review-progress-bar .is-included {
  background: rgba(18, 107, 87, 0.11);
  color: var(--brand);
}

.beta-accuracy-state.is-excluded,
.beta-review-progress-bar .is-excluded {
  background: rgba(200, 95, 50, 0.11);
  color: #a34525;
}

.model-eval-stats {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) repeat(6, 1fr);
  gap: 10px;
  margin-bottom: 12px;
}

.model-eval-stats > div {
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.model-eval-stats small,
.model-eval-stats b,
.model-eval-stats strong,
.model-eval-stats span {
  display: block;
}

.model-eval-stats b {
  margin-top: 3px;
  font-size: 20px;
}

.model-eval-stats span {
  margin-top: 3px;
  color: var(--muted);
  line-height: 1.35;
}

.quality-queue {
  display: grid;
  gap: 9px;
}

.quality-queue article {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.quality-queue strong,
.quality-queue span,
.quality-queue small,
.quality-queue em {
  display: block;
}

.quality-queue span,
.quality-queue small {
  margin-top: 3px;
  color: var(--muted);
  line-height: 1.35;
}

.review-actions {
  display: grid;
  justify-items: end;
  gap: 7px;
}

.review-actions em {
  color: var(--blue);
  font-style: normal;
  font-weight: 900;
}

.review-actions button {
  min-width: 70px;
  padding: 7px 9px;
  border: 0;
  border-radius: 8px;
  background: #10201d;
  color: #ffffff;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}

.review-actions button[data-review-status="rejected"] {
  background: #c85f32;
}

.beta-sample-card.is-failed {
  border-color: rgba(200, 95, 50, 0.3);
  background: #fffaf7;
}

.beta-sample-card.is-data-excluded {
  border-style: dashed;
}

.beta-sample-title {
  display: flex;
  gap: 7px;
  align-items: center;
}

.beta-sample-title em {
  margin: 0;
  padding: 3px 6px;
  border-radius: 999px;
  background: var(--accent);
  color: var(--brand-deep);
  font-size: 9px;
  font-style: normal;
  font-weight: 950;
  letter-spacing: 0.06em;
}

.quality-queue .beta-sample-error {
  color: #a34525;
}

.beta-review-dialog {
  width: min(1120px, calc(100vw - 32px));
  height: min(900px, calc(100dvh - 32px));
  max-width: none;
  max-height: min(900px, calc(100vh - 32px));
  margin: auto;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 14px;
  background: #f4f8f6;
  color: var(--text);
  box-shadow: 0 30px 90px rgba(7, 28, 23, 0.3);
}

.beta-review-dialog::backdrop {
  background: rgba(7, 28, 23, 0.72);
  backdrop-filter: blur(5px);
}

.beta-review-shell {
  height: 100%;
  max-height: 100%;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
}

.beta-review-head {
  position: sticky;
  top: 0;
  z-index: 10;
  display: flex;
  gap: 16px;
  align-items: center;
  justify-content: space-between;
  padding: 18px 20px;
  background: var(--brand-deep);
  color: #ffffff;
}

.beta-review-head > div {
  display: grid;
  gap: 3px;
}

.beta-review-head small {
  color: var(--accent);
  font-size: 10px;
  font-weight: 950;
  letter-spacing: 0.08em;
}

.beta-review-head h2 {
  margin: 0;
  color: #ffffff;
  font-size: 22px;
}

.beta-review-close {
  min-width: 82px;
  height: 38px;
  display: inline-flex;
  gap: 6px;
  align-items: center;
  justify-content: center;
  padding: 0 12px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
  cursor: pointer;
}

.beta-review-close span {
  font-size: 24px;
  font-weight: 500;
  line-height: 1;
}

.beta-review-close strong {
  color: inherit;
  font-size: 12px;
}

.beta-review-content {
  min-height: 0;
  display: grid;
  gap: 12px;
  padding: 16px;
  overflow: auto;
}

.beta-review-progress-bar {
  position: sticky;
  top: -1px;
  z-index: 4;
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
  padding: 9px 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 6px 18px rgba(11, 43, 36, 0.06);
}

.beta-review-progress-bar strong {
  color: var(--text-strong);
  font-size: 11px;
}

.beta-review-progress-copy {
  flex: 1 1 auto;
  min-width: 0;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 3px 8px;
  align-items: center;
}

.beta-review-progress-copy small {
  color: var(--text-soft);
  font-size: 9px;
  font-weight: 800;
  text-align: right;
}

.beta-review-progress-copy i {
  grid-column: 1 / -1;
  height: 4px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(18, 107, 87, 0.1);
}

.beta-review-progress-copy i b {
  display: block;
  width: var(--review-progress, 0%);
  height: 100%;
  border-radius: inherit;
  background: var(--brand);
}

.beta-review-progress-bar span {
  padding: 4px 7px;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 900;
}

.beta-review-shortcuts {
  display: block;
  margin-top: 7px;
  color: var(--text-soft);
  font-size: 9px;
  font-weight: 750;
  text-align: right;
}

.beta-review-grid,
.beta-review-evidence {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.beta-review-grid > article,
.beta-review-evidence > article,
.beta-coach-form {
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #ffffff;
}

.beta-review-section-head {
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}

.beta-review-section-head strong {
  color: var(--text-strong);
  font-size: 14px;
}

.beta-review-section-head span {
  color: var(--brand);
  font-size: 10px;
  font-weight: 900;
}

.beta-review-video-panel video {
  width: 100%;
  aspect-ratio: 16 / 9;
  display: block;
  border-radius: 8px;
  background: #071c17;
  object-fit: contain;
}

.beta-video-unavailable {
  min-height: 210px;
  display: grid;
  place-items: center;
  padding: 20px;
  border: 1px dashed var(--line);
  border-radius: 8px;
  color: var(--muted);
  text-align: center;
}

.beta-ai-summary {
  min-height: 74px;
  margin: 0;
  color: var(--text);
  font-weight: 700;
  line-height: 1.6;
}

.beta-ai-issues {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}

.beta-ai-issues span {
  padding: 5px 8px;
  border-radius: 999px;
  background: var(--surface-soft);
  color: var(--brand);
  font-size: 10px;
  font-weight: 850;
}

.beta-open-report {
  margin-top: 12px;
  padding: 8px 11px;
  border: 1px solid var(--brand);
  border-radius: 7px;
  background: transparent;
  color: var(--brand);
  font-weight: 900;
  cursor: pointer;
}

.beta-report-not-ready {
  display: block;
  margin-top: 12px;
  color: var(--muted);
  font-weight: 750;
}

.beta-sample-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
  margin: 0;
}

.beta-sample-meta > div {
  min-width: 0;
  padding: 8px;
  border-radius: 7px;
  background: var(--surface-soft);
}

.beta-sample-meta > div.is-error {
  grid-column: 1 / -1;
  background: #fff3ed;
}

.beta-sample-meta dt,
.beta-sample-meta dd {
  margin: 0;
}

.beta-sample-meta dt {
  color: var(--muted);
  font-size: 9px;
  font-weight: 850;
}

.beta-sample-meta dd {
  margin-top: 2px;
  overflow-wrap: anywhere;
  color: var(--text-strong);
  font-size: 11px;
  font-weight: 850;
}

.beta-quality-checks {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}

.beta-quality-checks > div {
  display: grid;
  grid-template-columns: 19px minmax(0, 1fr);
  gap: 7px;
  align-items: center;
  padding: 7px;
  border-radius: 7px;
  background: var(--surface-soft);
}

.beta-quality-checks b {
  width: 19px;
  height: 19px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(18, 107, 87, 0.14);
  color: var(--brand);
  font-size: 10px;
}

.beta-quality-checks .is-fail b {
  background: rgba(200, 95, 50, 0.14);
  color: #a34525;
}

.beta-quality-checks span,
.beta-quality-checks strong,
.beta-quality-checks small {
  min-width: 0;
  display: block;
}

.beta-quality-checks strong,
.beta-quality-checks small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.beta-quality-checks strong {
  color: var(--text-strong);
  font-size: 10px;
}

.beta-quality-checks small {
  margin-top: 2px;
  color: var(--muted);
  font-size: 9px;
}

.beta-coach-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.beta-coach-label-block {
  display: grid;
  gap: 8px;
  margin-bottom: 11px;
}

.beta-coach-label-head {
  display: flex;
  gap: 12px;
  align-items: baseline;
  justify-content: space-between;
}

.beta-coach-label-head strong {
  color: var(--text-strong);
  font-size: 11px;
}

.beta-coach-label-head small {
  color: var(--muted);
  font-size: 9px;
}

.beta-technical-issue-options {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
}

.beta-technical-issue-options label {
  min-width: 0;
  cursor: pointer;
}

.beta-technical-issue-options input,
.beta-confidence-field input,
.beta-training-value-field input {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
}

.beta-technical-issue-options span {
  min-height: 46px;
  display: flex;
  gap: 7px;
  align-items: center;
  padding: 7px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--surface-soft);
  transition: border-color 160ms ease, background 160ms ease, color 160ms ease;
}

.beta-technical-issue-options b {
  flex: 0 0 auto;
  color: var(--brand);
  font-size: 10px;
}

.beta-technical-issue-options em {
  min-width: 0;
  color: var(--text-strong);
  font-size: 9px;
  font-style: normal;
  font-weight: 800;
  line-height: 1.25;
}

.beta-technical-issue-options label:hover span,
.beta-technical-issue-options label.is-selected span {
  border-color: var(--brand);
  background: rgba(18, 107, 87, 0.09);
}

.beta-technical-issue-options label.is-selected b::before {
  content: "✓ ";
}

.beta-review-controls {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 10px;
}

.beta-confidence-field,
.beta-training-value-field {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.beta-confidence-field legend,
.beta-training-value-field legend {
  margin-bottom: 5px;
  color: var(--text-strong);
  font-size: 11px;
  font-weight: 900;
}

.beta-training-value-field > small {
  min-height: 26px;
  display: block;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.35;
}

.beta-confidence-field > div,
.beta-training-value-field > div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}

.beta-confidence-field label,
.beta-training-value-field label {
  cursor: pointer;
}

.beta-confidence-field span,
.beta-training-value-field span {
  min-height: 84px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--surface-soft);
  color: var(--text-strong);
  font-size: 11px;
  font-weight: 900;
}

.beta-confidence-field label:hover span,
.beta-confidence-field label.is-selected span,
.beta-training-value-field label:hover span,
.beta-training-value-field label.is-selected span {
  border-color: var(--brand);
  background: var(--brand);
  color: #ffffff;
}

.beta-coach-text-fields {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.beta-coach-fields label {
  display: grid;
  gap: 5px;
  color: var(--text-strong);
  font-size: 11px;
  font-weight: 900;
}

.beta-coach-fields textarea {
  min-height: 84px;
  resize: vertical;
}

.beta-verdict-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 11px;
  position: sticky;
  bottom: -16px;
  z-index: 2;
  padding: 10px 0 2px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0), #ffffff 24%);
}

.beta-verdict-actions button {
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--text-strong);
  font-weight: 950;
  cursor: pointer;
}

.beta-verdict-actions .is-correct:hover,
.beta-verdict-actions .is-correct.is-selected {
  border-color: var(--brand);
  background: var(--brand);
  color: #ffffff;
}

.beta-verdict-actions .is-partial:hover,
.beta-verdict-actions .is-partial.is-selected {
  border-color: #bd8624;
  background: #bd8624;
  color: #ffffff;
}

.beta-verdict-actions .is-incorrect:hover,
.beta-verdict-actions .is-incorrect.is-selected {
  border-color: #c85f32;
  background: #c85f32;
  color: #ffffff;
}

.beta-review-message {
  min-height: 18px;
  margin: 8px 0 0;
  color: var(--brand);
  font-size: 11px;
  font-weight: 850;
}

.beta-review-finish {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: flex-end;
  margin-top: 8px;
  padding-top: 10px;
  border-top: 1px solid var(--line);
}

.beta-review-finish button {
  min-width: 150px;
  min-height: 42px;
  border: 0;
  border-radius: 8px;
  background: var(--brand-deep);
  color: #ffffff;
  font-weight: 950;
  cursor: pointer;
}

.beta-review-finish .is-next {
  background: var(--brand);
}

.beta-review-finish .is-save {
  background: var(--brand);
  box-shadow: 0 8px 18px rgba(18, 107, 87, 0.18);
}

.beta-review-finish > span {
  margin-right: auto;
  color: var(--muted);
  font-size: 10px;
}

@media (max-width: 760px) {
  .report-truth-head {
    align-items: flex-start;
  }

  .report-truth-grid,
  .beta-risk-banner,
  .analysis-progress-recovery {
    grid-template-columns: 1fr;
  }

  .beta-risk-head {
    grid-template-columns: 1fr auto;
    align-items: center;
  }

  .beta-risk-head strong {
    font-size: 20px;
  }

  .analysis-progress-actions button {
    flex: 1 1 140px;
  }

  .beta-review-shortcuts {
    display: none;
  }

  .beta-segment-stats {
    grid-template-columns: 1fr;
  }

  .beta-segment-stats article {
    grid-template-columns: 1fr;
  }

  .beta-operations-page {
    padding: 13px;
  }

  .beta-operations-head {
    display: grid;
  }

  .beta-operations-actions {
    justify-items: start;
  }

  .beta-operations-actions > em {
    justify-self: start;
  }

  .beta-operations-progress {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .beta-feedback-summary,
  .beta-user-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .social-operations-head,
  .social-report-card > header {
    display: grid;
  }

  .social-operations-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .social-interaction-mix {
    align-items: flex-start;
    flex-direction: column;
  }

  .social-report-card > header em {
    justify-self: start;
  }

  .social-report-card > footer {
    justify-content: stretch;
  }

  .social-report-card > footer button {
    flex: 1 1 0;
  }

  .social-image-moderation-card {
    grid-template-columns: 84px minmax(0, 1fr);
  }

  .social-image-moderation-card > img {
    width: 84px;
    height: 84px;
  }

  .beta-user-card > header {
    display: grid;
  }

  .beta-user-card > header em {
    max-width: 100%;
    justify-self: start;
  }

  .beta-user-feedback-form {
    grid-template-columns: 1fr;
  }

  .beta-user-feedback-form .beta-feedback-notes {
    grid-column: auto;
  }

  .beta-user-card > footer {
    align-items: stretch;
    flex-direction: column;
  }

  .beta-user-card > footer button {
    width: 100%;
  }

  .storage-safety-head {
    align-items: flex-start;
  }

  .storage-safety-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .storage-safety-stats .storage-backup-state {
    align-items: flex-start;
    flex-direction: column;
  }

  .storage-safety-stats .storage-backup-state b {
    text-align: left;
  }

  .beta-quality-panels {
    grid-template-columns: 1fr;
  }

  .beta-invalid-reasons article {
    grid-template-columns: minmax(110px, 1fr) minmax(70px, 0.8fr) 24px;
  }

  .beta-error-cases article {
    align-items: start;
  }

  .beta-review-dialog {
    width: 100vw;
    height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
  }

  .beta-review-shell {
    max-height: 100dvh;
  }

  .beta-review-head {
    padding: 14px 15px;
  }

  .beta-review-close {
    min-width: 76px;
    height: 40px;
  }

  .beta-review-head h2 {
    font-size: 18px;
  }

  .beta-review-content {
    padding: 10px;
  }

  .beta-review-grid,
  .beta-review-evidence,
  .beta-review-controls,
  .beta-coach-text-fields,
  .beta-coach-fields {
    grid-template-columns: 1fr;
  }

  .beta-coach-label-head {
    display: grid;
    gap: 3px;
  }

  .beta-technical-issue-options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .beta-confidence-field span,
  .beta-training-value-field span {
    min-height: 46px;
  }

  .beta-review-grid > article,
  .beta-review-evidence > article,
  .beta-coach-form {
    padding: 11px;
  }

  .beta-quality-checks {
    grid-template-columns: 1fr;
  }

  .beta-verdict-actions {
    position: sticky;
    bottom: -10px;
    z-index: 2;
    padding: 9px 0 10px;
    background: #ffffff;
  }

  .beta-review-finish button {
    width: 100%;
  }

  .beta-review-finish {
    flex-wrap: wrap;
  }

  .beta-review-finish > span {
    width: 100%;
    margin-right: 0;
  }
}

.clip-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

.library-state {
  grid-column: 1 / -1;
  padding: 20px;
  border: 1px dashed rgba(18, 107, 87, 0.22);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.76);
}

.library-state strong,
.library-state p {
  display: block;
}

.library-state strong {
  color: var(--court);
}

.library-state p {
  margin: 6px 0 0;
  color: var(--muted);
  line-height: 1.45;
}

.library-state.loading {
  position: relative;
  overflow: hidden;
}

.library-state.loading::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(200, 242, 74, 0.2), transparent);
  animation: library-scan 1.6s ease-in-out infinite;
}

.knowledge-stats .is-loading b,
.knowledge-stats .is-error b {
  color: var(--muted);
}

.knowledge-stats .is-error span,
.library-state.error strong {
  color: #b94f2f;
}

@keyframes library-scan {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}

.knowledge-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 1.1fr;
  gap: 14px;
  margin-bottom: 12px;
  padding: 16px;
  border: 1px solid rgba(18, 107, 87, 0.16);
  border-radius: 8px;
  background: #fbfdfb;
}

.knowledge-panel small,
.knowledge-panel strong,
.knowledge-panel p {
  display: block;
}

.knowledge-panel small {
  color: var(--court);
  font-weight: 900;
}

.knowledge-panel strong {
  margin: 6px 0;
  font-size: 24px;
  line-height: 1.12;
}

.knowledge-panel p {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}

.knowledge-layers {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}

.knowledge-layers span,
.knowledge-stats div {
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.knowledge-layers b,
.knowledge-layers em,
.knowledge-stats b,
.knowledge-stats span {
  display: block;
}

.knowledge-layers b {
  color: var(--ink);
  font-size: 14px;
}

.knowledge-layers em {
  margin-top: 6px;
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  font-weight: 800;
  line-height: 1.35;
}

.knowledge-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-bottom: 12px;
}

.knowledge-stats div {
  text-align: center;
}

.knowledge-stats b {
  color: var(--clay);
  font-size: 28px;
}

.knowledge-stats span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}

.dataset-roadmap {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 12px 0;
}

.dataset-roadmap article {
  min-width: 0;
  padding: 14px;
  border: 1px solid rgba(18, 107, 87, 0.13);
  border-radius: 8px;
  background: #ffffff;
}

.dataset-roadmap span {
  width: 30px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  margin-bottom: 10px;
  border-radius: 50%;
  background: var(--court);
  color: #fff;
  font-size: 12px;
  font-weight: 900;
}

.dataset-roadmap strong,
.dataset-roadmap p {
  display: block;
}

.dataset-roadmap p {
  margin: 7px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}

.clip-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px;
  background: #fff;
}

.clip-card > small {
  display: block;
  margin-bottom: 8px;
  color: var(--court);
  font-weight: 900;
}

.clip-card p {
  color: var(--muted);
  line-height: 1.5;
}

.clip-tags {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--line);
}

.clip-tags em {
  display: block;
  margin-bottom: 6px;
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  font-weight: 900;
}

.tag {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  margin: 0 6px 6px 0;
  padding: 3px 8px;
  border-radius: 999px;
  background: #eaf3ef;
  color: var(--court);
  font-size: 12px;
  font-weight: 800;
}

@media (max-width: 900px) {
  .topbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .hero,
  .workspace,
  .report-intelligence {
    grid-template-columns: 1fr;
  }

  .member-home {
    grid-template-columns: 1fr;
  }

  .tool {
    position: static;
  }

  .studio-strip {
    grid-template-columns: repeat(2, 1fr);
  }

  .hero {
    min-height: auto;
  }

  .meta-row,
  .phase-grid,
  .motion-summary,
  .tennis-metric-summary,
  .tennis-metric-grid,
  .object-tracking-grid,
  .recognition-grid,
  .ai-coach-grid,
  .ai-coach-evidence,
  .coach-language-grid,
  .feedback-reel,
  .feedback-studio-grid,
  .coach-brief-grid,
  .model-readiness-grid,
  .real-pose-browser,
  .real-pose-stage,
  .checkpoint-grid,
  .issue-grid,
  .action-grid,
  .progress-grid,
  .commerce-stats,
  .monetization-map,
  .settlement-stats,
  .quality-stats,
  .model-eval-stats,
  .pack-meta,
  .pack-days,
  .flow-grid,
  .dispatch-grid,
  .knowledge-panel,
  .knowledge-layers,
  .knowledge-stats,
  .dataset-roadmap,
  .clip-grid,
  .media-review,
  .keyframe-grid,
  .correction-grid,
  .score-ladder,
  .score-ladder-grid,
  .account-panel,
  .report-hero-v2,
  .coach-review-status,
  .retest-loop,
  .real-video-head,
  .real-video-kpis,
  .real-video-evidence,
  .real-video-bottom,
  .hero-truth-strip,
  .report-decision-panel,
  .hero-evidence-strip,
  .delivery-summary,
  .delivery-metrics,
  .profile-hero,
  .profile-command,
  .profile-growth,
  .profile-mission-grid,
  .practice-reward,
  .daily-plan-card,
  .next-milestone,
  .profile-foundation-preview,
  .foundation-preview-grid,
  .analysis-delivery-preview,
  .badge-grid,
  .practice-stats,
  .practice-form,
  .profile-invite-card,
  .highlight-strip,
  .evolution-grid,
  .profile-metrics,
  .profile-lists,
  .profile-skill-path,
  .task-stage-grid {
    grid-template-columns: 1fr;
  }

  .hero-evidence-strip,
  .hero-truth-strip,
  .decision-grid,
  .delivery-metrics,
  .ai-coach-evidence,
  .real-video-kpis,
  .real-video-evidence,
  .real-video-bottom,
  .retest-loop-steps,
  .profile-command-grid,
  .score-ladder-grid,
  .coach-brief-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .score-ladder-grid > div:last-child {
    grid-column: 1 / -1;
  }

  .practice-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .practice-form {
    grid-template-columns: 1fr 1fr;
  }

  .practice-form label:first-child,
  .practice-form .practice-note,
  .practice-form button,
  .practice-form > small {
    grid-column: 1 / -1;
  }

  .profile-invite-card {
    grid-template-columns: minmax(0, 1.2fr) minmax(180px, 0.8fr);
  }

  .highlight-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .badge-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .week-rhythm-grid {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }

  .evolution-grid {
    grid-template-columns: minmax(0, 1fr) minmax(120px, 0.52fr) minmax(0, 1fr);
  }

  .profile-skill-path article::after {
    top: auto;
    left: 24px;
    bottom: -8px;
    width: 3px;
    height: 8px;
  }

  .profile-streak-card {
    grid-template-columns: 1fr;
  }

  .history-item {
    grid-template-columns: 1fr;
  }

  .operator-unlock {
    grid-template-columns: 1fr;
  }

  .intent-list article {
    grid-template-columns: 1fr;
  }

  .quality-queue article {
    grid-template-columns: 1fr;
  }

  .entitlement-list article {
    grid-template-columns: 1fr;
  }

  .intent-actions {
    justify-items: start;
  }

  .review-actions {
    justify-items: start;
  }

  .evidence-item {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 520px) {
  #report {
    scroll-margin-top: 128px;
  }

  .account-command {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .account-open-button {
    width: 100%;
  }

  .top-account-panel:not(.is-auth-expanded):not(.is-logged-in) .account-copy strong {
    font-size: 23px;
  }

  .report-evidence-drawer > summary {
    grid-template-columns: minmax(0, 1fr) 22px;
    gap: 8px;
    padding: 14px;
  }

  .report-evidence-drawer > summary em {
    grid-column: 1 / -1;
    grid-row: 2;
    text-align: left;
  }

  .report-evidence-drawer > summary::after {
    grid-column: 2;
    grid-row: 1;
  }

  .report-evidence-content {
    padding: 14px;
  }

  .score-gate-head {
    align-items: stretch;
    flex-direction: column;
  }

  .score-gate-head > span {
    align-self: start;
  }

  .score-gate-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .upload-preflight {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .upload-preflight em {
    text-align: left;
  }

  .profile-more > summary {
    grid-template-columns: minmax(0, 1fr) 22px;
    gap: 8px;
    padding: 14px;
  }

  .profile-more > summary em {
    grid-column: 1 / -1;
    grid-row: 2;
    text-align: left;
  }

  .profile-more > summary::after {
    grid-column: 2;
    grid-row: 1;
  }

  .account-data-controls > summary {
    grid-template-columns: minmax(0, 1fr) 22px;
    gap: 8px;
    padding: 14px;
  }

  .account-data-controls > summary em {
    grid-column: 1 / -1;
    grid-row: 2;
    text-align: left;
  }

  .account-data-controls > summary::after {
    grid-column: 2;
    grid-row: 1;
  }

  .account-data-content {
    padding: 14px;
  }

  .account-delete-zone {
    grid-template-columns: 1fr;
  }

  .account-delete-actions {
    align-items: stretch;
  }

  .account-delete-actions button {
    width: 100%;
  }

  body {
    padding-bottom: calc(74px + env(safe-area-inset-bottom));
    background: #f7faf4;
  }

  .topbar {
    position: sticky;
    gap: 10px;
    padding: 12px 16px 10px;
  }

  .topbar nav a {
    display: none;
  }

  .topbar nav {
    align-self: stretch;
    justify-content: flex-end;
  }

  .mobile-tabs {
    position: fixed;
    left: 12px;
    right: 12px;
    bottom: calc(10px + env(safe-area-inset-bottom));
    z-index: 30;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
    padding: 7px;
    border: 1px solid rgba(19, 32, 28, 0.1);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.97);
    box-shadow: 0 16px 42px rgba(19, 32, 28, 0.16);
    backdrop-filter: blur(16px);
  }

  .mobile-tabs a {
    min-height: 42px;
    display: grid;
    place-items: center;
    border-radius: 7px;
    color: var(--ink);
    font-size: 12px;
    font-weight: 900;
    text-decoration: none;
  }

  .mobile-tabs a.is-active {
    background: var(--court);
    color: #fff;
  }

  .report-head {
    grid-template-columns: 1fr;
    gap: 14px;
    align-items: flex-start;
    padding: 16px;
  }

  .score-ring {
    width: 92px;
    justify-self: start;
  }

  .score-ring span {
    width: 100%;
    font-size: 26px;
    text-align: center;
  }

  .report-head h2 {
    font-size: 24px;
    line-height: 1.12;
    overflow-wrap: anywhere;
  }

  .report-head p {
    font-size: 15px;
    line-height: 1.55;
  }

  .hero-verdict {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .hero-verdict h2 {
    font-size: 32px;
  }

  .hero-evidence-strip,
  .hero-truth-strip,
  .report-decision-panel,
  .decision-grid,
  .delivery-metrics,
  .ai-coach-evidence,
  .real-video-kpis,
  .real-video-evidence,
  .real-video-bottom,
  .retest-loop,
  .retest-loop-steps,
  .profile-command-grid,
  .score-ladder-grid,
  .coach-brief-grid,
  .coach-review-chain {
    grid-template-columns: 1fr;
  }

  .real-video-head {
    grid-template-columns: 1fr;
  }

  .real-video-score {
    width: 100%;
    min-height: 82px;
    grid-template-columns: auto minmax(0, 1fr);
    justify-content: start;
    justify-items: start;
    padding: 14px;
  }

  .score-ladder-grid > div:last-child {
    grid-column: auto;
  }

  .practice-stats,
  .practice-form,
  .top-account-panel .account-form,
  .practice-reward,
  .daily-plan-card,
  .next-milestone,
  .profile-foundation-preview,
  .foundation-preview-grid,
  .profile-invite-card,
  .highlight-strip,
  .evolution-grid {
    grid-template-columns: 1fr;
  }

  .badge-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .week-rhythm-grid {
    gap: 5px;
  }

  .week-rhythm-grid article {
    grid-template-rows: 58px auto auto auto;
    padding: 7px 4px;
  }

  .week-rhythm-grid i {
    height: 58px;
  }

  .report-hero-media {
    grid-template-columns: 1fr;
  }

  .report-hero-media video {
    aspect-ratio: 16 / 9;
    max-height: none;
  }

  .analysis-progress-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .analysis-progress-metrics {
    grid-template-columns: 1fr;
  }

  .profile-mission-grid article {
    grid-template-columns: 48px 1fr;
  }

  .profile-mission-grid article > span {
    min-height: 48px;
  }

  .delivery-summary > span {
    position: static;
    justify-self: start;
    order: -1;
  }

  .delivery-copy {
    padding-right: 0;
  }

  .meta-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .meta-row div {
    padding: 10px;
  }

  .meta-row b {
    font-size: 16px;
    line-height: 1.2;
  }

  .phase-scoreboard {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  main {
    width: min(100% - 24px, 440px);
    margin-bottom: 26px;
  }

  .install-card {
    grid-template-columns: 1fr;
  }

  .install-card button {
    width: 100%;
  }

  .hero {
    min-height: auto;
    gap: 18px;
    padding: 24px 0 18px;
  }

  h1 {
    font-size: 40px;
    line-height: 1.02;
  }

  .hero-copy p:last-child {
    font-size: 16px;
    line-height: 1.55;
  }

  .hero-actions {
    margin-top: 18px;
  }

  .primary-link,
  .text-link {
    flex: 1 1 100%;
  }

  .studio-strip {
    grid-template-columns: 1fr;
  }

  .studio-strip div {
    padding: 11px 12px;
  }

  .hero-panel {
    min-height: auto;
    margin-bottom: 8px;
    padding: 10px;
  }

  .dashboard-top {
    grid-template-columns: 1fr;
    gap: 4px;
    text-align: left;
  }

  .dashboard-top strong {
    text-align: left;
  }

  .motion-stage {
    min-height: 238px;
  }

  .hero-image {
    min-height: 238px;
    object-position: 60% 50%;
  }

  .dashboard-metrics {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
  }

  .dashboard-metrics div {
    padding: 9px 8px;
  }

  .dashboard-metrics b {
    font-size: 19px;
  }

  .dashboard-metrics small,
  .dashboard-metrics span {
    font-size: 10px;
  }

  .insight-list span {
    min-height: 68px;
  }

  .workspace {
    gap: 14px;
  }

  .tool,
  .result,
  .library,
  .my-space-title,
  .history,
  .account-panel,
  .player-profile,
  .operator-workbench .commerce-board,
  .business-lab .value-flow,
  .business-lab .dispatch-layer {
    padding: 16px;
  }

  .operator-workbench summary,
  .business-lab summary {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
    padding: 14px 16px;
  }

  .operator-workbench summary small,
  .business-lab summary small {
    max-width: none;
    text-align: left;
  }

  .operator-workbench summary::after,
  .business-lab summary::after {
    position: absolute;
    right: 16px;
    top: 15px;
  }

  .auth-actions {
    grid-template-columns: 1fr;
  }

  .password-reset-panel {
    grid-template-columns: 1fr;
  }

  .password-reset-actions {
    grid-template-columns: 1fr;
  }

  .auth-forgot-button,
  .auth-back-button {
    width: 100%;
  }

  .upload-box {
    min-height: 154px;
  }

  .empty-report {
    min-height: auto;
    padding: 18px;
  }

  .empty-output-list {
    grid-template-columns: repeat(2, 1fr);
  }

  input,
  select,
  textarea {
    min-height: 46px;
    font-size: 16px;
  }

  textarea {
    min-height: 112px;
  }

  .primary {
    min-height: 52px;
  }

  .section-title {
    align-items: flex-start;
  }

  .section-title small {
    line-height: 1.35;
  }

  .score-chip {
    right: 14px;
    bottom: 14px;
    padding: 8px 10px;
  }

  .score-chip span:first-child {
    font-size: 24px;
  }

  .scan-chip {
    left: 12px;
    top: 12px;
    bottom: auto;
    max-width: 42%;
    padding: 8px 9px;
    overflow: hidden;
    white-space: nowrap;
  }

  .score-chip {
    top: 12px;
    bottom: auto;
  }
}

/* Full-body court identity and player community */
[hidden] {
  display: none !important;
}

.analysis-credit-line {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 48px;
  padding: 10px 13px;
  border: 1px solid rgba(18, 107, 87, .18);
  border-radius: 7px;
  background: #f7faf6;
  color: #49615a;
  font-size: 13px;
  font-weight: 750;
}

.analysis-credit-line strong {
  color: #102f28;
  font-size: 16px;
}

.analysis-credit-line em {
  margin-left: auto;
  color: #126b57;
  font-style: normal;
}

.analysis-credit-line.is-short {
  border-color: rgba(185, 87, 59, .3);
  background: #fff7f3;
}

.analysis-credit-line.is-short em {
  color: #a8462e;
}

main > .community-hub[data-app-screen].is-active {
  display: grid !important;
}

.player-avatar-art.avatar-full-body .avatar-racket {
  transform: none;
}

.profile-command-avatar .player-avatar-art.avatar-full-body {
  aspect-ratio: 16 / 25;
}

.avatar-identity-section {
  display: grid;
  gap: 12px;
}

.avatar-identity-lock {
  padding: 10px 12px;
  border-left: 3px solid var(--court);
  color: var(--muted);
  background: #f3f8f3;
  font-size: 11px;
  font-weight: 820;
  line-height: 1.45;
}

.avatar-preview-stage {
  width: min(100%, 292px);
}

.avatar-preview-stage .player-avatar-art.avatar-full-body {
  max-height: min(62vh, 570px);
}

.avatar-preset-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.avatar-preset .player-avatar-art.avatar-full-body {
  aspect-ratio: 16 / 25;
}

.avatar-racket-wardrobe {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
  padding-top: 11px;
  border-top: 1px solid rgba(18, 107, 87, 0.12);
}

.avatar-racket-wardrobe > strong {
  color: var(--muted);
  font-size: 11px;
  font-weight: 950;
}

.profile-social-bar {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 8px;
  background: #ffffff;
  overflow: hidden;
}

.profile-social-bar a {
  min-width: 0;
  display: grid;
  gap: 4px;
  padding: 14px 16px;
  color: var(--ink);
  text-decoration: none;
}

.profile-social-bar a + a {
  border-left: 1px solid rgba(18, 107, 87, 0.11);
}

.profile-social-bar small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 850;
}

.profile-social-bar strong {
  color: var(--court);
  font-size: 22px;
}

.community-hub {
  min-height: calc(100vh - 94px);
  align-content: start;
  gap: 26px;
  padding: clamp(30px, 5vw, 62px) 0 48px;
}

.community-intro {
  display: grid;
  gap: 9px;
  max-width: 720px;
}

.community-intro small {
  color: var(--court);
  font-size: 12px;
  font-weight: 950;
}

.community-intro h2 {
  max-width: 14ch;
  margin: 0;
  font-size: clamp(36px, 4vw, 52px);
  line-height: 1.03;
}

.community-intro p {
  max-width: 56ch;
  margin: 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.62;
}

.community-content {
  min-width: 0;
  display: grid;
  gap: 24px;
}

.community-message {
  margin: 0;
  padding: 11px 13px;
  border: 1px solid rgba(169, 72, 53, 0.2);
  border-radius: 7px;
  background: #fff7f3;
  color: #9b3f30;
  font-size: 13px;
  font-weight: 850;
}

.community-gate,
.community-join-card {
  min-height: 300px;
  display: grid;
  align-content: center;
  gap: 12px;
  padding: clamp(24px, 5vw, 52px);
  border: 1px solid rgba(18, 107, 87, 0.15);
  border-radius: 8px;
  background: #f1f8f3;
}

.community-gate small,
.community-join-card small {
  color: var(--court);
  font-size: 12px;
  font-weight: 950;
}

.community-gate strong {
  max-width: 34ch;
  font-size: 25px;
  line-height: 1.24;
}

.community-gate a,
.community-join-card button {
  width: max-content;
  min-height: 44px;
  display: inline-grid;
  place-items: center;
  padding: 10px 16px;
  border: 0;
  border-radius: 7px;
  background: var(--court);
  color: #ffffff;
  font-weight: 950;
  text-decoration: none;
  cursor: pointer;
}

.community-join-card {
  grid-template-columns: minmax(170px, 240px) minmax(0, 1fr);
  align-items: center;
}

.community-join-avatar {
  width: min(100%, 220px);
}

.community-join-card > div:last-child {
  display: grid;
  gap: 10px;
}

.community-join-card strong {
  font-size: 30px;
}

.community-join-card p {
  max-width: 52ch;
  margin: 0;
  color: var(--muted);
  line-height: 1.56;
}

.community-account-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
  align-items: center;
  border-top: 1px solid rgba(18, 107, 87, 0.15);
  border-bottom: 1px solid rgba(18, 107, 87, 0.15);
}

.community-account-strip > div {
  display: grid;
  gap: 4px;
  padding: 15px 16px;
}

.community-account-strip small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 850;
}

.community-account-strip strong {
  color: var(--court);
  font-size: 22px;
}

.community-account-strip button {
  min-height: 38px;
  margin-right: 12px;
  padding: 7px 11px;
  border: 1px solid rgba(18, 107, 87, 0.18);
  border-radius: 7px;
  background: #ffffff;
  color: var(--court);
  font-size: 11px;
  font-weight: 900;
  cursor: pointer;
}

.community-view-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
  padding: 4px;
  border: 1px solid rgba(18, 107, 87, .14);
  border-radius: 8px;
  background: #edf4ef;
}

.community-view-tabs button {
  min-width: 0;
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #4c615a;
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
}

.community-view-tabs button span {
  min-width: 20px;
  padding: 2px 5px;
  border-radius: 999px;
  background: rgba(18, 107, 87, .1);
  color: var(--court);
  font-size: 10px;
}

.community-view-tabs button.is-active {
  background: #ffffff;
  color: var(--court);
  box-shadow: 0 1px 5px rgba(17, 45, 37, .09);
}

.community-people-section,
.community-inbox {
  display: grid;
  gap: 13px;
}

.community-player-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px;
}

.community-player-card {
  position: relative;
  min-width: 0;
  display: grid;
  grid-template-columns: 116px minmax(0, 1fr);
  gap: 12px;
  padding: 12px;
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 8px;
  background: #ffffff;
}

.community-player-avatar {
  align-self: stretch;
  display: grid;
  place-items: end center;
  overflow: hidden;
  border-radius: 7px;
  background: #edf6ef;
}

.community-player-avatar .player-avatar-art {
  width: 100%;
  max-height: 174px;
}

.community-player-copy {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 10px;
}

.community-player-identity {
  display: grid;
  gap: 3px;
  padding-right: 30px;
}

.community-player-copy strong {
  overflow: hidden;
  font-size: 17px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.community-player-identity span {
  color: var(--court);
  font-size: 11px;
  font-weight: 900;
}

.community-player-menu {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 2;
}

.community-player-menu summary {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #51645e;
  font-size: 12px;
  font-weight: 950;
  letter-spacing: 0;
  cursor: pointer;
  list-style: none;
}

.community-player-menu summary::-webkit-details-marker {
  display: none;
}

.community-player-menu[open] summary {
  background: #eaf2ec;
}

.community-player-menu > div {
  position: absolute;
  top: 34px;
  right: 0;
  width: 132px;
  display: grid;
  gap: 2px;
  padding: 5px;
  border: 1px solid rgba(18, 107, 87, .16);
  border-radius: 7px;
  background: #ffffff;
  box-shadow: 0 12px 28px rgba(15, 43, 35, .16);
}

.community-player-menu button {
  min-height: 36px;
  padding: 7px 9px;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: #223b34;
  text-align: left;
  font-size: 11px;
  font-weight: 850;
  cursor: pointer;
}

.community-player-menu button:hover {
  background: #eef5ef;
}

.community-player-menu button:last-child {
  color: #a8462e;
}

.community-player-copy dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}

.community-player-copy dl div {
  display: grid;
  gap: 2px;
}

.community-player-copy dt {
  color: var(--muted);
  font-size: 9px;
  font-weight: 850;
}

.community-player-copy dd {
  margin: 0;
  font-size: 15px;
  font-weight: 950;
}

.community-player-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
}

.community-player-actions button {
  min-height: 36px;
  padding: 6px 8px;
  border: 1px solid rgba(18, 107, 87, 0.18);
  border-radius: 7px;
  background: #ffffff;
  color: var(--court);
  font-size: 10px;
  font-weight: 950;
  cursor: pointer;
}

.community-player-actions button.is-following {
  background: #e8f4eb;
}

.community-player-actions button.is-greeting {
  border-color: #102f28;
  background: #102f28;
  color: var(--lime);
}

.community-player-actions button:disabled {
  cursor: default;
  opacity: 0.55;
}

.community-empty {
  grid-column: 1 / -1;
  padding: 28px 0;
  border-top: 1px solid rgba(18, 107, 87, 0.13);
  border-bottom: 1px solid rgba(18, 107, 87, 0.13);
}

.community-empty p {
  max-width: 48ch;
  margin: 7px 0 0;
  color: var(--muted);
  line-height: 1.5;
}

.community-greeting-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
}

.community-greeting-list article {
  min-width: 0;
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  gap: 9px;
  align-items: center;
  padding: 9px;
  border: 1px solid rgba(18, 107, 87, 0.13);
  border-radius: 8px;
  background: #ffffff;
}

.community-greeting-list article > div {
  height: 72px;
  overflow: hidden;
  border-radius: 6px;
  background: #edf6ef;
}

.community-greeting-list p {
  min-width: 0;
  display: grid;
  gap: 3px;
  margin: 0;
}

.community-greeting-list strong,
.community-greeting-list span {
  overflow: hidden;
  text-overflow: ellipsis;
}

.community-greeting-list span,
.community-inbox-empty {
  color: var(--muted);
  font-size: 10px;
  line-height: 1.35;
}

.community-inbox-empty {
  padding: 20px 0;
  border-top: 1px solid rgba(18, 107, 87, 0.12);
  border-bottom: 1px solid rgba(18, 107, 87, 0.12);
  font-weight: 850;
}

@media (max-width: 760px) {
  .avatar-studio-body {
    display: block;
  }

  .avatar-studio-preview {
    position: sticky;
    top: 0;
    z-index: 3;
    grid-template-columns: 136px minmax(0, 1fr);
    align-items: center;
    align-content: center;
    gap: 12px;
    padding: 10px 14px;
    border-right: 0;
    border-bottom: 1px solid rgba(18, 107, 87, 0.14);
    box-shadow: 0 9px 24px rgba(16, 32, 29, 0.08);
  }

  .avatar-preview-stage {
    width: 136px;
  }

  .avatar-preview-stage .player-avatar-art.avatar-full-body {
    max-height: 205px;
  }

  .avatar-preview-meta {
    width: 100%;
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .avatar-preview-meta strong {
    grid-row: auto;
    grid-column: auto;
    font-size: 18px;
  }

  .avatar-studio-controls {
    padding: 14px;
  }

  .avatar-preset-grid {
    grid-template-columns: repeat(5, minmax(62px, 1fr));
    gap: 6px;
  }

  .avatar-preset {
    padding: 5px;
  }

  .avatar-preset span {
    font-size: 9px;
  }

  .avatar-outfit-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .community-hub {
    min-height: auto;
    gap: 20px;
    padding: 28px 0 32px;
  }

  .community-intro h2 {
    font-size: 38px;
  }

  .community-player-grid,
  .community-greeting-list {
    grid-template-columns: 1fr;
  }

  .community-join-card {
    grid-template-columns: 118px minmax(0, 1fr);
    min-height: 0;
    padding: 16px;
  }

  .community-join-card strong {
    font-size: 22px;
  }

  .community-account-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .community-account-strip > div {
    padding: 12px 8px;
  }

  .community-account-strip button {
    grid-column: 1 / -1;
    margin: 0 0 10px;
  }
}

@media (max-width: 520px) {
  .avatar-studio-head {
    padding: 12px 14px;
  }

  .avatar-studio-head h2 {
    font-size: 20px;
  }

  .avatar-advanced-controls {
    grid-template-columns: 1fr 1fr;
  }

  .avatar-option-row {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .community-player-card {
    grid-template-columns: 104px minmax(0, 1fr);
    gap: 10px;
    padding: 10px;
  }

  .community-player-actions {
    grid-template-columns: 1fr;
  }

  .profile-social-bar a {
    padding: 12px 10px;
  }
}

@media (max-width: 900px) {
  .report-play-layer {
    grid-template-columns: minmax(0, 1fr);
  }

  .report-play-layer > article + article {
    border-top: 1px solid rgba(18, 107, 87, 0.13);
    border-left: 0;
  }

  .style-match-panel {
    grid-template-columns: minmax(120px, 0.64fr) minmax(0, 1.36fr);
  }

  .avatar-studio-body {
    grid-template-columns: 1fr;
  }

  .avatar-studio-preview {
    grid-template-columns: minmax(150px, 210px) minmax(0, 1fr);
    align-items: end;
    padding: 18px;
    border-right: 0;
    border-bottom: 1px solid rgba(18, 107, 87, 0.12);
  }

  .avatar-preview-stage,
  .avatar-preview-meta {
    width: 100%;
  }

  .avatar-preview-meta {
    display: block;
    padding-bottom: 8px;
  }

  .avatar-preview-meta small,
  .avatar-preview-meta strong,
  .avatar-preview-meta span {
    display: block;
  }

  .avatar-preview-meta strong {
    margin: 5px 0;
  }
}

@media (max-width: 520px) {
  .report-play-layer > article {
    padding: 13px;
  }

  .report-play-layer.is-pending {
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 12px 13px;
  }

  .report-play-layer.is-pending > span {
    font-size: 18px;
  }

  .technique-rating-head strong b {
    font-size: 38px;
  }

  .style-match-panel {
    grid-template-columns: 124px minmax(0, 1fr);
    gap: 9px;
  }

  .technique-radar text {
    font-size: 7.3px;
  }

  .style-match-copy > strong {
    font-size: 17px;
  }

  .avatar-studio {
    width: calc(100% - 12px);
    max-height: calc(100dvh - 12px);
  }

  .avatar-studio-shell {
    max-height: calc(100dvh - 12px);
  }

  .avatar-studio-head,
  .avatar-studio-footer {
    padding: 13px 14px;
  }

  .avatar-studio-head h2 {
    font-size: 21px;
  }

  .avatar-studio-close {
    width: 38px;
    height: 38px;
    flex-basis: 38px;
  }

  .avatar-studio-preview {
    grid-template-columns: 118px minmax(0, 1fr);
    gap: 13px;
    padding: 12px 14px;
  }

  .avatar-preview-meta {
    padding-bottom: 4px;
  }

  .avatar-preview-meta strong {
    font-size: 18px;
  }

  .avatar-preview-meta span {
    line-height: 1.35;
  }

  .avatar-studio-controls {
    gap: 10px;
    padding: 14px;
  }

  .avatar-control-head small {
    display: none;
  }

  .avatar-preset-grid {
    gap: 6px;
  }

  .avatar-outfit-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .avatar-preset {
    padding: 5px;
  }

  .avatar-advanced-controls {
    grid-template-columns: 1fr;
  }

  .avatar-control-group,
  .avatar-control-group:first-child,
  .avatar-control-group:nth-child(3) {
    grid-column: auto;
  }

  .avatar-option-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .avatar-option-row .avatar-option.is-hair {
    min-height: 96px;
  }

  .avatar-hair-thumb svg {
    height: 64px;
  }

  .avatar-studio-footer {
    min-height: 66px;
  }

  .avatar-studio-message:empty {
    display: none;
  }

  .avatar-studio-footer > div {
    width: 100%;
    justify-content: flex-end;
  }

  .avatar-save-button {
    min-width: 138px;
  }

  .profile-command-avatar {
    grid-template-columns: minmax(112px, 136px) minmax(0, 1fr);
    align-items: end;
  }

  .profile-command-avatar > button {
    grid-row: 1 / 3;
  }

  .profile-command-avatar .player-avatar-art {
    aspect-ratio: auto;
  }

  .profile-avatar-level {
    align-self: end;
  }
}

@media (prefers-reduced-motion: reduce) {
  .player-avatar-art .avatar-racket,
  .player-avatar-art .avatar-ball {
    animation: none;
  }
}

/* v189 AceLink / 艾赛网球 brand system */
:root {
  --ink: #252b2d;
  --muted: #6f7474;
  --line: rgba(37, 43, 45, 0.13);
  --court: #252b2d;
  --lime: #d7b76f;
  --paper: #fcfbf7;
  --panel: #ffffff;
  --app-bg: #f1efe9;
  --surface: #ffffff;
  --surface-soft: #f7f2e8;
  --text-strong: #252b2d;
  --text-soft: #6f7474;
  --brand: #b88a3e;
  --brand-deep: #252b2d;
  --accent: #d7b76f;
  --hairline: rgba(37, 43, 45, 0.13);
  --tactile-shadow: 0 4px 0 rgba(37, 43, 45, 0.2);
  --tactile-soft-shadow: 0 10px 28px rgba(37, 43, 45, 0.09);
}

html,
body {
  background-color: var(--app-bg);
}

body {
  background-image:
    radial-gradient(circle at 8% 0%, rgba(215, 183, 111, 0.13), transparent 27%),
    linear-gradient(180deg, #fcfbf7 0, var(--app-bg) 520px);
}

.topbar {
  border-bottom-color: rgba(37, 43, 45, 0.12);
  background: rgba(247, 242, 232, 0.94);
  box-shadow: 0 6px 24px rgba(37, 43, 45, 0.06);
  backdrop-filter: blur(18px);
}

.brand-mark {
  overflow: hidden;
  border-radius: 11px;
  background: #252b2d;
  box-shadow: 0 3px 0 rgba(37, 43, 45, 0.22);
}

.brand-mark img {
  object-fit: cover;
}

.topbar a.is-active,
.language-toggle,
.eyebrow,
.home-hero-copy .eyebrow {
  color: #8f6429;
}

.topbar a.is-active {
  background: rgba(215, 183, 111, 0.16);
}

.language-toggle {
  border-color: rgba(184, 138, 62, 0.32);
  background: rgba(255, 255, 255, 0.78);
}

.primary,
.primary-link,
.account-open-button,
.avatar-save-button,
#analysisForm > button.primary[type="submit"] {
  background: #252b2d;
  color: #f7f2e8;
}

.primary:not(:disabled):hover,
.primary-link:hover,
.account-open-button:hover,
.avatar-save-button:hover,
#analysisForm > button.primary[type="submit"]:not(:disabled):hover {
  background: #323a3c;
}

.home-hero-copy .eyebrow {
  border: 1px solid rgba(184, 138, 62, 0.18);
  background: rgba(215, 183, 111, 0.15);
}

.home-hero-actions .text-link {
  border-color: rgba(37, 43, 45, 0.15);
  color: #252b2d;
  box-shadow: 0 3px 0 #dcd7cc;
}

.home-visual,
.tool,
.result,
.top-account-panel,
.forehand-v1-brief,
.report-truth-status,
.coach-brief,
.delivery-summary {
  border-color: rgba(37, 43, 45, 0.13);
}

.upload-box {
  border-color: rgba(184, 138, 62, 0.46);
  background:
    radial-gradient(circle at 50% 26%, rgba(215, 183, 111, 0.24), transparent 36%),
    #fcfbf7;
}

.upload-box:hover,
.upload-box:focus-within {
  border-color: #b88a3e;
  background:
    radial-gradient(circle at 50% 26%, rgba(215, 183, 111, 0.3), transparent 38%),
    #ffffff;
}

.upload-box::before {
  background-color: #252b2d;
  box-shadow: 0 4px 0 #121719, 0 10px 22px rgba(37, 43, 45, 0.18);
}

.quick-video-tags input:checked + span,
.avatar-option.is-selected,
.avatar-preset.is-selected {
  border-color: #b88a3e;
  box-shadow: 0 3px 0 rgba(143, 100, 41, 0.25);
}

.quick-video-tags input:checked + span {
  background: #252b2d;
  color: #f7f2e8;
}

.report-brand-band {
  min-height: 68px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 12px 16px;
  border: 1px solid rgba(37, 43, 45, 0.13);
  border-radius: 15px;
  background: linear-gradient(135deg, #ffffff, #fbf7ee);
  box-shadow: 0 8px 24px rgba(37, 43, 45, 0.07);
}

.report-brand-band img {
  width: min(440px, 72%);
  height: 46px;
  display: block;
  object-fit: contain;
  object-position: left center;
}

.report-brand-band span {
  color: #8f6429;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  white-space: nowrap;
}

.report-hero-v2 {
  position: relative;
  overflow: hidden;
  border-color: rgba(184, 138, 62, 0.24);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.97), rgba(247, 242, 232, 0.91)),
    linear-gradient(90deg, rgba(184, 138, 62, 0.055) 1px, transparent 1px),
    linear-gradient(0deg, rgba(184, 138, 62, 0.05) 1px, transparent 1px),
    #ffffff;
  background-size: auto, 38px 38px, 38px 38px, auto;
  box-shadow: 0 20px 44px rgba(37, 43, 45, 0.09);
}

.report-hero-v2::after {
  content: "";
  position: absolute;
  right: 16px;
  bottom: 10px;
  width: 112px;
  aspect-ratio: 1;
  background: url("/assets/brand/acelink-mark-final.svg") center / contain no-repeat;
  opacity: 0.035;
  pointer-events: none;
}

.report-hero-v2 > * {
  position: relative;
  z-index: 1;
}

.hero-status-row span {
  background: #252b2d;
  color: #d7b76f;
  box-shadow: 0 9px 20px rgba(37, 43, 45, 0.13);
}

.hero-status-row em {
  border-color: rgba(184, 138, 62, 0.22);
  color: #8f6429;
}

.report-score-ring,
.score-ring {
  --ring-color: #b88a3e;
}

.avatar-studio-preview {
  background: #f5f1e8;
}

.avatar-preview-stage .player-avatar-art.avatar-full-body {
  filter: drop-shadow(0 20px 30px rgba(37, 43, 45, 0.16));
}

@media (max-width: 760px) {
  .topbar {
    border-bottom-color: rgba(37, 43, 45, 0.1);
    box-shadow: 0 5px 20px rgba(37, 43, 45, 0.06);
  }

  .mobile-tabs {
    border-color: rgba(37, 43, 45, 0.11);
    background: rgba(252, 251, 247, 0.97);
    box-shadow: 0 -8px 30px rgba(37, 43, 45, 0.11);
    backdrop-filter: blur(18px);
  }

  .mobile-tabs a.is-active {
    background: rgba(215, 183, 111, 0.19);
    color: #252b2d;
  }

  .mobile-tabs a.is-active::before {
    display: block;
    background: #b88a3e;
  }

  .home-visual {
    box-shadow: 0 5px 0 #dcd7cc, 0 18px 36px rgba(37, 43, 45, 0.11);
  }

  .top-account-panel:not(.is-logged-in) {
    box-shadow: 0 5px 0 rgba(37, 43, 45, 0.27), 0 18px 36px rgba(37, 43, 45, 0.12);
  }

  .report-brand-band {
    min-height: 58px;
    gap: 8px;
    padding: 9px 11px;
    border-radius: 13px;
  }

  .report-brand-band img {
    width: min(295px, 78%);
    height: 38px;
  }

  .report-brand-band span {
    font-size: 9px;
    letter-spacing: 0.08em;
  }
}

@media print {
  @page {
    margin: 9mm;
  }

  html,
  body {
    background: #ffffff !important;
  }

  body {
    padding: 0 !important;
    font-size: 9.5pt !important;
  }

  .topbar,
  .mobile-tabs,
  .top-account-panel,
  .home-hero,
  .member-home,
  .studio-strip,
  .tool,
  .report-actions,
  .training-report-back,
  #report > .section-title,
  .retest-loop-actions,
  .app-feedback,
  dialog {
    display: none !important;
  }

  main > :not(.workspace),
  .workspace > :not(#report),
  #reportContent video {
    display: none !important;
  }

  main,
  .workspace,
  .result,
  #reportContent {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  .workspace {
    display: block !important;
  }

  #report {
    display: block !important;
  }

  #reportContent button {
    border: 0 !important;
    background: transparent !important;
    color: inherit !important;
    box-shadow: none !important;
  }

  .report-brand-band {
    display: flex !important;
    margin-bottom: 10px;
    box-shadow: none;
  }

  .report-hero-v2,
  .report-truth-status,
  .coach-brief,
  .delivery-summary,
  .report-evidence-drawer {
    break-inside: avoid;
    box-shadow: none !important;
  }

  #reportContent section,
  #reportContent article,
  #reportContent figure {
    box-shadow: none !important;
  }
}

/* v176 state feedback: one clear emotional response for save, completion, failure, and growth. */
.skip-link {
  position: fixed;
  top: 10px;
  left: 12px;
  z-index: 260;
  padding: 10px 14px;
  border-radius: 9px;
  background: #252b2d;
  color: #fff;
  font-weight: 900;
  text-decoration: none;
  transform: translateY(-160%);
  transition: transform 0.16s ease;
}

.skip-link:focus {
  transform: translateY(0);
}

#mainContent:focus {
  outline: none;
}

.connection-status[hidden] {
  display: none;
}

.connection-status {
  width: min(1180px, calc(100% - 32px));
  margin: 12px auto 0;
  display: flex;
  gap: 11px;
  align-items: center;
  padding: 11px 14px;
  border: 1px solid rgba(150, 73, 43, 0.24);
  border-radius: 10px;
  background: #fff4ed;
  color: #54281d;
  box-shadow: 0 8px 24px rgba(74, 28, 20, 0.08);
}

.connection-status-mark {
  width: 10px;
  height: 10px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: #b75533;
  box-shadow: 0 0 0 5px rgba(183, 85, 51, 0.12);
}

.connection-status strong,
.connection-status p {
  display: block;
  margin: 0;
}

.connection-status strong {
  font-size: 13px;
  font-weight: 950;
}

.connection-status p {
  margin-top: 2px;
  color: rgba(84, 40, 29, 0.76);
  font-size: 12px;
  font-weight: 680;
  line-height: 1.4;
}

.app-feedback[hidden] {
  display: none;
}

.app-feedback {
  position: fixed;
  top: 84px;
  right: clamp(16px, 3vw, 40px);
  z-index: 160;
  width: min(390px, calc(100vw - 32px));
  pointer-events: none;
  opacity: 0;
  transform: translate3d(0, -14px, 0) scale(0.97);
  transform-origin: top right;
  transition: opacity 0.22s ease, transform 0.28s cubic-bezier(0.2, 0.88, 0.28, 1.16);
}

.app-feedback.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
}

.app-feedback-card {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  min-height: 92px;
  padding: 14px 12px 14px 14px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 18px;
  background:
    radial-gradient(circle at 12% 0%, rgba(200, 242, 74, 0.15), transparent 36%),
    linear-gradient(135deg, rgba(10, 45, 37, 0.985), rgba(15, 97, 78, 0.985));
  color: #fff;
  box-shadow: 0 8px 0 rgba(6, 45, 36, 0.2), 0 26px 58px rgba(12, 41, 33, 0.24);
  pointer-events: auto;
}

.app-feedback.is-error .app-feedback-card {
  background:
    radial-gradient(circle at 12% 0%, rgba(255, 194, 147, 0.16), transparent 36%),
    linear-gradient(135deg, rgba(74, 28, 20, 0.99), rgba(137, 55, 33, 0.99));
  box-shadow: 0 8px 0 rgba(84, 30, 19, 0.18), 0 26px 58px rgba(75, 27, 18, 0.22);
}

.app-feedback.is-level .app-feedback-card,
.app-feedback.is-reward .app-feedback-card {
  background:
    radial-gradient(circle at 10% 0%, rgba(255, 239, 149, 0.24), transparent 38%),
    linear-gradient(135deg, #10382f, #0f735c 70%, #189074);
}

.app-feedback-mark {
  position: relative;
  width: 56px;
  height: 56px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.11);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.15);
}

.app-feedback-mark span {
  position: relative;
  width: 39px;
  height: 39px;
  display: block;
  border-radius: 50%;
  background: var(--lime);
  box-shadow: 0 5px 14px rgba(7, 39, 31, 0.26);
}

.app-feedback-mark span::before {
  content: "";
  position: absolute;
  top: 9px;
  left: 14px;
  width: 9px;
  height: 15px;
  border-right: 4px solid #123a31;
  border-bottom: 4px solid #123a31;
  border-radius: 2px;
  transform: rotate(45deg);
}

.app-feedback-mark i {
  position: absolute;
  inset: 3px;
  border: 1px solid rgba(200, 242, 74, 0.34);
  border-radius: 50%;
  opacity: 0;
}

.app-feedback.is-processing .app-feedback-mark span {
  background: #ffffff;
}

.app-feedback.is-processing .app-feedback-mark span::before {
  top: 7px;
  left: 7px;
  width: 21px;
  height: 21px;
  border: 3px solid rgba(18, 107, 87, 0.18);
  border-top-color: #126b57;
  border-radius: 50%;
  transform: none;
  animation: feedback-spin 0.9s linear infinite;
}

.app-feedback.is-processing .app-feedback-mark i {
  opacity: 1;
  animation: feedback-orbit 1.8s ease-in-out infinite;
}

.app-feedback.is-error .app-feedback-mark span {
  background: #ffd4be;
}

.app-feedback.is-error .app-feedback-mark span::before {
  content: "!";
  inset: 0;
  width: auto;
  height: auto;
  display: grid;
  place-items: center;
  border: 0;
  color: #7a2c1d;
  font-size: 27px;
  font-weight: 950;
  line-height: 1;
  transform: none;
}

.app-feedback.is-level .app-feedback-mark span::before,
.app-feedback.is-reward .app-feedback-mark span::before {
  content: "★";
  inset: 0;
  width: auto;
  height: auto;
  display: grid;
  place-items: center;
  border: 0;
  color: #124438;
  font-size: 23px;
  transform: none;
}

.app-feedback-copy {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.app-feedback-copy small,
.app-feedback-copy strong,
.app-feedback-copy p {
  display: block;
  margin: 0;
}

.app-feedback-copy small {
  color: var(--lime);
  font-size: 10px;
  font-weight: 950;
  letter-spacing: 0.12em;
}

.app-feedback-copy strong {
  color: #ffffff;
  font-size: 18px;
  font-weight: 950;
  letter-spacing: -0.01em;
  line-height: 1.15;
}

.app-feedback-copy p {
  color: rgba(255, 255, 255, 0.72);
  font-size: 12px;
  font-weight: 720;
  line-height: 1.42;
}

.app-feedback-actions {
  align-self: stretch;
  display: flex;
  flex-direction: column-reverse;
  justify-content: space-between;
  align-items: flex-end;
  gap: 7px;
}

.app-feedback-sound,
.app-feedback-close {
  border: 0;
  color: rgba(255, 255, 255, 0.74);
  cursor: pointer;
}

.app-feedback-sound {
  min-height: 25px;
  padding: 4px 7px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.1);
  font-size: 9px;
  font-weight: 900;
  white-space: nowrap;
}

.app-feedback-close {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  padding: 0;
  border-radius: 50%;
  background: transparent;
  font-size: 22px;
  line-height: 1;
}

.app-feedback-sound:active,
.app-feedback-close:active {
  transform: scale(0.92);
}

.app-feedback-particles {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.app-feedback-particles i {
  position: absolute;
  top: 28px;
  left: 40px;
  width: 5px;
  height: 9px;
  border-radius: 3px;
  background: var(--lime);
  opacity: 0;
}

.app-feedback.is-success.is-visible .app-feedback-particles i,
.app-feedback.is-reward.is-visible .app-feedback-particles i,
.app-feedback.is-level.is-visible .app-feedback-particles i {
  animation: feedback-spark 0.72s cubic-bezier(0.18, 0.82, 0.24, 1) both;
}

.app-feedback-particles i:nth-child(2) { --spark-x: 42px; --spark-y: -22px; animation-delay: 0.05s !important; background: #fff2a8; }
.app-feedback-particles i:nth-child(3) { --spark-x: 55px; --spark-y: 8px; animation-delay: 0.1s !important; }
.app-feedback-particles i:nth-child(4) { --spark-x: -28px; --spark-y: -19px; animation-delay: 0.08s !important; background: #ffffff; }
.app-feedback-particles i:nth-child(5) { --spark-x: -34px; --spark-y: 13px; animation-delay: 0.13s !important; background: #fff2a8; }

.analysis-progress-steps span.is-active {
  animation: progress-step-breathe 1.2s ease-in-out infinite;
}

.analysis-progress-steps span.is-done::before {
  content: "✓";
  margin-right: 3px;
  color: var(--lime);
}

.analysis-progress-steps span.is-done {
  display: flex;
  align-items: center;
  justify-content: center;
}

.analysis-progress.is-error {
  animation: feedback-error-shake 0.34s ease both;
}

@keyframes feedback-spin {
  to { transform: rotate(360deg); }
}

@keyframes feedback-orbit {
  0%, 100% { transform: scale(0.88); opacity: 0.28; }
  50% { transform: scale(1.08); opacity: 0.9; }
}

@keyframes feedback-spark {
  0% { opacity: 0; transform: translate3d(0, 0, 0) rotate(0); }
  22% { opacity: 1; }
  100% { opacity: 0; transform: translate3d(var(--spark-x, 32px), var(--spark-y, -28px), 0) rotate(120deg); }
}

@keyframes feedback-error-shake {
  0%, 100% { transform: translateX(0); }
  28% { transform: translateX(-4px); }
  58% { transform: translateX(3px); }
  82% { transform: translateX(-2px); }
}

@keyframes progress-step-breathe {
  0%, 100% { box-shadow: inset 0 0 0 0 rgba(200, 242, 74, 0); }
  50% { box-shadow: inset 0 0 0 1px rgba(200, 242, 74, 0.35), 0 0 18px rgba(200, 242, 74, 0.11); }
}

@media (max-width: 720px) {
  .connection-status {
    width: calc(100% - 24px);
    margin-top: 9px;
    padding: 10px 12px;
  }

  .app-feedback {
    top: auto;
    right: 12px;
    bottom: calc(82px + env(safe-area-inset-bottom));
    left: 12px;
    width: auto;
    transform: translate3d(0, 18px, 0) scale(0.97);
    transform-origin: bottom center;
  }

  .app-feedback-card {
    grid-template-columns: 48px minmax(0, 1fr) auto;
    gap: 10px;
    min-height: 82px;
    padding: 12px 10px 12px 12px;
    border-radius: 16px;
    box-shadow: 0 6px 0 rgba(6, 45, 36, 0.18), 0 20px 44px rgba(12, 41, 33, 0.22);
  }

  .app-feedback-mark {
    width: 48px;
    height: 48px;
  }

  .app-feedback-mark span {
    width: 35px;
    height: 35px;
  }

  .app-feedback-mark span::before {
    top: 8px;
    left: 13px;
    width: 8px;
    height: 13px;
  }

  .app-feedback.is-processing .app-feedback-mark span::before {
    top: 6px;
    left: 6px;
    width: 19px;
    height: 19px;
  }

  .app-feedback-copy strong {
    font-size: 16px;
  }

  .app-feedback-copy p {
    font-size: 11px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .app-feedback,
  .app-feedback-mark span::before,
  .app-feedback-mark i,
  .app-feedback-particles i,
  .analysis-progress,
  .analysis-progress-steps span.is-active {
    animation: none !important;
    transition: none !important;
  }

  .app-feedback-particles {
    display: none;
  }
}

/* Four-screen app shell: the tab bar switches product areas instead of jumping through one long page. */
main > [data-app-screen]:not(.is-active) {
  display: none !important;
}

main > .hero[data-app-screen].is-active,
main > .member-home[data-app-screen].is-active:not([hidden]),
main > .install-card[data-app-screen].is-active:not([hidden]),
main > .studio-strip[data-app-screen].is-active,
main > .workspace[data-app-screen].is-active,
main > .booking-hub[data-app-screen].is-active,
main > .my-space[data-app-screen].is-active,
main > .account-panel[data-app-screen].is-active,
main > .account-trust-links[data-app-screen].is-active,
main > .library[data-app-screen].is-active:not([hidden]) {
  display: grid !important;
}

.library[hidden] {
  display: none !important;
}

.home-hero {
  min-height: min(650px, calc(100vh - 118px));
  padding: clamp(28px, 5vw, 68px) 0 clamp(28px, 4vw, 48px);
}

.home-hero-copy {
  align-self: center;
}

.home-hero-copy h1 {
  max-width: none;
  font-size: clamp(48px, 6vw, 78px);
  line-height: 1.04;
}

.home-hero-copy h1 span {
  display: block;
}

.home-hero-copy > p:last-of-type {
  max-width: 39ch;
  font-size: 17px;
}

.home-hero-actions {
  max-width: 420px;
}

.home-ritual {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  max-width: 560px;
  margin-top: 26px;
  border-top: 1px solid rgba(18, 107, 87, 0.16);
}

.home-ritual span {
  min-width: 0;
  display: grid;
  gap: 6px;
  padding: 14px 12px 0 0;
}

.home-ritual span + span {
  padding-left: 12px;
  border-left: 1px solid rgba(18, 107, 87, 0.13);
}

.home-ritual b,
.home-ritual em {
  display: block;
}

.home-ritual b {
  color: var(--court);
  font-size: 12px;
  font-weight: 950;
}

.home-ritual em {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  font-weight: 850;
  line-height: 1.35;
}

.home-visual {
  position: relative;
  min-height: 470px;
  overflow: hidden;
  border: 1px solid rgba(18, 107, 87, 0.18);
  border-radius: 8px;
  background: #0e3028;
  box-shadow: 0 24px 50px rgba(16, 42, 34, 0.16);
}

.home-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(7, 27, 23, 0.18);
  pointer-events: none;
}

.home-visual img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: 58% 50%;
}

.home-visual-copy {
  position: absolute;
  z-index: 1;
  right: 16px;
  bottom: 16px;
  left: 16px;
  display: grid;
  gap: 6px;
  padding: 15px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 8px;
  background: rgba(12, 40, 33, 0.86);
  color: #ffffff;
  backdrop-filter: blur(10px);
}

.home-visual-copy small {
  color: var(--lime);
  font-size: 11px;
  font-weight: 950;
}

.home-visual-copy strong {
  font-size: 20px;
  line-height: 1.18;
}

.home-visual-copy span {
  color: rgba(255, 255, 255, 0.76);
  font-size: 13px;
  font-weight: 750;
  line-height: 1.45;
}

.booking-hub {
  min-height: min(620px, calc(100vh - 150px));
  grid-template-columns: minmax(0, 0.84fr) minmax(0, 1.16fr);
  gap: clamp(20px, 4vw, 54px);
  align-content: center;
  padding: clamp(28px, 5vw, 64px) 0 42px;
}

.booking-intro {
  align-self: center;
}

.booking-intro small {
  color: var(--court);
  font-size: 12px;
  font-weight: 950;
}

.booking-intro h2 {
  max-width: none;
  margin: 8px 0 12px;
  color: #10201d;
  font-size: clamp(34px, 4vw, 54px);
  line-height: 1.04;
}

.booking-intro h2 span {
  display: block;
}

.booking-intro p {
  max-width: 38ch;
  margin: 0;
  color: var(--muted);
  line-height: 1.62;
}

.booking-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.booking-options article {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 12px;
  min-height: 280px;
  padding: 20px;
  border: 1px solid rgba(18, 107, 87, 0.16);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 14px 30px rgba(17, 42, 34, 0.06);
}

.booking-options article > div {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
}

.booking-options span,
.booking-options em {
  display: grid;
  place-items: center;
  min-height: 28px;
  font-size: 11px;
  font-style: normal;
  font-weight: 950;
}

.booking-options span {
  width: 28px;
  border-radius: 50%;
  background: #e7f4ed;
  color: var(--court);
}

.booking-options em {
  padding: 0 9px;
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 999px;
  color: var(--court);
  white-space: nowrap;
}

.booking-options strong {
  color: #10201d;
  font-size: 26px;
  line-height: 1.08;
}

.booking-options p {
  margin: 0;
  color: var(--muted);
  line-height: 1.58;
}

.booking-principle {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(180px, 0.45fr) minmax(0, 1fr);
  gap: 18px;
  padding-top: 18px;
  border-top: 1px solid rgba(18, 107, 87, 0.16);
}

.booking-principle b {
  color: var(--court);
  line-height: 1.35;
}

.booking-principle span {
  color: var(--muted);
  line-height: 1.55;
}

.motion-comparison {
  gap: 14px;
}

.motion-compare-periods {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  padding: 5px;
  border: 1px solid rgba(18, 107, 87, 0.12);
  border-radius: 8px;
  background: #f5faf6;
}

.motion-compare-periods button {
  min-height: 36px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}

.motion-compare-periods button.is-active {
  background: #102f28;
  color: #ffffff;
}

.motion-compare-pair {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(116px, 0.42fr) minmax(0, 1fr);
  gap: 10px;
  align-items: stretch;
}

.motion-compare-card {
  min-width: 0;
  display: grid;
  gap: 7px;
  padding: 10px;
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 8px;
  background: #ffffff;
  color: inherit;
  text-decoration: none;
}

.motion-compare-card small,
.motion-compare-card em {
  color: var(--muted);
  font-size: 11px;
  font-style: normal;
  font-weight: 850;
}

.motion-compare-card strong {
  color: #10201d;
  line-height: 1.25;
}

.motion-compare-card img,
.motion-compare-placeholder {
  width: 100%;
  aspect-ratio: 4 / 3;
  display: block;
  border-radius: 6px;
  object-fit: cover;
}

.motion-compare-placeholder {
  display: grid;
  place-items: center;
  background: #e8f4eb;
  color: var(--court);
  font-weight: 950;
}

.motion-compare-result {
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 6px;
  padding: 12px;
  border: 1px solid rgba(200, 242, 74, 0.55);
  border-radius: 8px;
  background: #103d34;
  text-align: center;
}

.motion-compare-result small,
.motion-compare-result span {
  color: rgba(255, 255, 255, 0.72);
  font-size: 11px;
  font-weight: 850;
  line-height: 1.35;
}

.motion-compare-result strong {
  color: var(--lime);
  font-size: 28px;
  line-height: 1;
}

.motion-compare-empty {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  padding: 14px;
  border: 1px solid rgba(18, 107, 87, 0.14);
  border-radius: 8px;
  background: #f5faf6;
}

.motion-compare-empty div {
  display: grid;
  gap: 4px;
}

.motion-compare-empty small {
  color: var(--court);
  font-size: 11px;
  font-weight: 950;
}

.motion-compare-empty strong {
  color: #23342e;
  font-size: 14px;
  line-height: 1.45;
}

.motion-compare-empty a {
  flex: 0 0 auto;
  min-height: 38px;
  display: inline-grid;
  place-items: center;
  padding: 8px 11px;
  border-radius: 7px;
  background: var(--court);
  color: #ffffff;
  font-size: 12px;
  font-weight: 950;
  text-decoration: none;
}

/* Internal operating surfaces are deliberately absent from ordinary player accounts. */
body:not(.is-operator-unlocked):not(.is-coach-authorized) .operator-workbench,
body.is-coach-authorized:not(.is-coach-entry):not(.is-operator-unlocked) .operator-workbench,
body:not(.is-operator-unlocked) .business-lab {
  display: none !important;
}

.coach-workbench-copy {
  display: none !important;
}

body.is-coach-authorized:not(.is-operator-unlocked) .operator-workbench .operator-workbench-copy,
body.is-coach-authorized:not(.is-operator-unlocked) .operator-workbench .commerce-board > .section-title,
body.is-coach-authorized:not(.is-operator-unlocked) .operator-workbench #operatorUnlock,
body.is-coach-authorized:not(.is-operator-unlocked) .operator-workbench #commerceMessage,
body.is-coach-authorized:not(.is-operator-unlocked) .operator-workbench .monetization-map,
body.is-coach-authorized:not(.is-operator-unlocked) .operator-workbench #commerceStats,
body.is-coach-authorized:not(.is-operator-unlocked) .operator-workbench #intentList,
body.is-coach-authorized:not(.is-operator-unlocked) .operator-workbench #settlementDesk,
body.is-coach-authorized:not(.is-operator-unlocked) .operator-workbench #betaOperations {
  display: none !important;
}

body.is-coach-authorized:not(.is-operator-unlocked) .operator-workbench .coach-workbench-copy {
  display: block !important;
}

[data-app-screen] {
  scroll-margin-top: 84px;
}

@media (max-width: 760px) {
  .home-hero,
  .booking-hub {
    min-height: auto;
    grid-template-columns: 1fr;
  }

  .home-hero {
    gap: 18px;
    padding: 26px 0 18px;
  }

  .home-hero-copy h1 {
    max-width: 10ch;
    font-size: 40px;
  }

  .home-visual {
    min-height: 340px;
  }

  .booking-hub {
    gap: 22px;
    padding: 30px 0 24px;
  }

  .booking-intro h2 {
    font-size: 38px;
  }

  .booking-principle {
    grid-template-columns: 1fr;
    gap: 8px;
  }
}

@media (max-width: 520px) {
  body {
    padding-bottom: calc(92px + env(safe-area-inset-bottom));
  }

  .topbar {
    flex-direction: row;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
  }

  .brand-lockup {
    min-width: 0;
    gap: 9px;
  }

  .brand-mark {
    flex: 0 0 40px;
  }

  .topbar strong {
    font-size: 16px;
  }

  .topbar span {
    display: block;
    max-width: 238px;
    overflow: hidden;
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .topbar nav {
    align-self: auto;
    flex: 0 0 auto;
  }

  .language-toggle {
    min-width: 48px;
    min-height: 40px;
    padding: 0 10px;
  }

  .mobile-tabs {
    left: 10px;
    right: 10px;
    bottom: calc(8px + env(safe-area-inset-bottom));
    gap: 4px;
    padding: 6px;
  }

  .mobile-tabs a {
    min-height: 42px;
    font-size: 11px;
  }

  [data-app-screen] {
    scroll-margin-top: 66px;
  }

  .studio-strip[data-app-screen].is-active {
    display: none !important;
  }

  .home-hero-copy h1 {
    max-width: none;
    font-size: 34px;
    line-height: 1.04;
  }

  .home-ritual {
    margin-top: 20px;
  }

  .home-ritual span {
    padding-right: 8px;
  }

  .home-ritual span + span {
    padding-left: 8px;
  }

  .home-ritual em {
    font-size: 11px;
  }

  .home-visual {
    min-height: 296px;
  }

  .home-visual-copy {
    right: 10px;
    bottom: 10px;
    left: 10px;
    padding: 12px;
  }

  .home-visual-copy strong {
    font-size: 18px;
  }

  .booking-options {
    grid-template-columns: 1fr;
  }

  .booking-options article {
    min-height: 0;
    padding: 17px;
  }

  .motion-compare-pair {
    grid-template-columns: minmax(0, 1fr) minmax(94px, 0.42fr) minmax(0, 1fr);
    gap: 7px;
  }

  .motion-compare-card {
    padding: 8px;
  }

  .motion-compare-card strong {
    font-size: 12px;
  }

  .motion-compare-card em {
    line-height: 1.25;
  }

  .motion-compare-result {
    padding: 8px;
  }

  .motion-compare-result strong {
    font-size: 22px;
  }

  .motion-compare-empty {
    align-items: stretch;
    flex-direction: column;
  }

  .motion-compare-empty a {
    width: 100%;
  }
}

@media (max-width: 760px) {
  .report-quick-facts,
  .motion-detail-list,
  .next-session-steps {
    grid-template-columns: minmax(0, 1fr);
  }

  .motion-detail-list article:nth-child(odd) {
    border-right: 0;
  }

  .motion-detail-head,
  .next-session-head {
    align-items: stretch;
    flex-direction: column;
  }

  .motion-detail-head > span {
    align-self: start;
  }

  .next-session-head > div:last-child {
    justify-content: start;
  }

  .basis-frame-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  .motion-detail-scan,
  .next-session-focus,
  .player-analysis-basis {
    padding: 14px;
  }

  .profile-invite-actions,
  .profile-invite-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* v139 product layout reset: one visual hierarchy across the four app screens. */
:root {
  --app-bg: #f3f5f2;
  --surface: #ffffff;
  --surface-soft: #edf2ee;
  --text-strong: #10201d;
  --text-soft: #65716d;
  --brand: #0f735c;
  --brand-deep: #0d3f35;
  --accent: #cef253;
  --accent-warm: #c85f42;
  --hairline: rgba(16, 32, 29, 0.12);
  --shadow-soft: 0 8px 24px rgba(16, 32, 29, 0.06);
}

html {
  background: var(--app-bg);
}

body {
  color: var(--text-strong);
  background: var(--app-bg);
}

body::after {
  background: #ffffff;
}

.topbar {
  min-height: 66px;
  padding: 10px clamp(18px, 4vw, 48px);
  border-color: var(--hairline);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 4px 18px rgba(16, 32, 29, 0.04);
}

.brand-mark {
  width: 38px;
  flex: 0 0 38px;
  border-radius: 7px;
  background: var(--brand-deep);
  color: var(--accent);
  box-shadow: none;
}

.topbar strong {
  color: var(--text-strong);
  font-size: 17px;
}

.topbar span {
  color: var(--text-soft);
  font-size: 12px;
}

.topbar a {
  border-radius: 6px;
  color: var(--text-soft);
}

.topbar a.is-active {
  background: var(--brand-deep);
}

.language-toggle {
  border-color: var(--hairline);
  border-radius: 7px;
  color: var(--brand);
  background: #ffffff;
}

main {
  width: min(1080px, calc(100% - 32px));
  margin-bottom: 52px;
}

.section-title {
  margin-bottom: 14px;
}

.section-title > span {
  color: var(--text-strong);
}

/* Home */
.home-hero {
  min-height: min(620px, calc(100vh - 96px));
  grid-template-columns: minmax(300px, 0.82fr) minmax(420px, 1.18fr);
  gap: clamp(28px, 5vw, 58px);
  padding: clamp(34px, 5vw, 56px) 0 32px;
}

.home-hero-copy .eyebrow {
  margin: 0 0 12px;
  color: var(--brand);
  font-size: 11px;
  letter-spacing: 0;
}

.home-hero-copy h1 {
  max-width: 10ch;
  color: var(--text-strong);
  font-size: clamp(46px, 5.4vw, 66px);
  line-height: 1.02;
}

.home-hero-copy > p:last-of-type {
  max-width: 36ch;
  margin: 18px 0 0;
  color: var(--text-soft);
  font-size: 16px;
  line-height: 1.62;
}

.home-hero-actions {
  display: grid;
  grid-template-columns: minmax(150px, 1fr) auto;
  gap: 9px;
  max-width: 390px;
  margin-top: 22px;
}

.home-hero-actions a {
  min-height: 48px;
  border-radius: 7px;
}

.home-hero-actions .primary-link {
  background: var(--brand);
}

.home-hero-actions .text-link {
  border-color: var(--hairline);
  color: var(--brand);
}

.home-ritual {
  max-width: 470px;
  margin-top: 22px;
  border-color: var(--hairline);
}

.home-ritual span + span {
  border-color: var(--hairline);
}

.home-ritual b {
  color: var(--brand);
}

.home-visual {
  min-height: 430px;
  border-color: var(--hairline);
  background: #dfe7e1;
  box-shadow: var(--shadow-soft);
}

.home-visual::after {
  display: none;
}

.home-visual-copy {
  right: 12px;
  bottom: 12px;
  left: 12px;
  padding: 13px 14px;
  border: 0;
  border-radius: 7px;
  background: rgba(9, 43, 35, 0.92);
  backdrop-filter: blur(8px);
}

.home-visual-copy small {
  color: var(--accent);
}

body.is-player-authenticated main > .home-hero[data-app-screen] {
  display: none !important;
}

.member-home {
  width: min(900px, 100%);
  min-height: 300px;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 0.58fr);
  gap: 24px;
  margin: 36px auto 20px;
  padding: 30px;
  border-color: transparent;
  background: var(--brand-deep);
  box-shadow: var(--shadow-soft);
}

.member-home-copy strong {
  max-width: 18ch;
  font-size: clamp(30px, 4vw, 44px);
}

.member-home-copy p {
  max-width: 46ch;
}

.member-home-actions a {
  border-radius: 7px;
}

.member-home-actions .is-primary {
  background: var(--accent);
  color: var(--brand-deep);
}

.member-home-stats {
  align-self: stretch;
  display: grid;
  grid-template-columns: 1fr;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 7px;
  overflow: hidden;
}

.member-home-stats > div {
  padding: 15px 17px;
  border: 0;
  background: rgba(255, 255, 255, 0.06);
}

.member-home-stats > div + div {
  border-top: 1px solid rgba(255, 255, 255, 0.11);
}

/* Analysis upload */
.workspace {
  width: 100%;
  grid-template-columns: minmax(320px, 370px) minmax(0, 1fr);
  gap: 18px;
  margin: 28px auto 0;
}

.workspace:has(#reportContent.empty-state) {
  grid-template-columns: minmax(0, 720px);
  justify-content: center;
}

.result:has(#reportContent.empty-state) {
  display: none !important;
}

.tool,
.result {
  border-color: var(--hairline);
  background: var(--surface);
  box-shadow: var(--shadow-soft);
}

.tool {
  position: static;
  display: flex;
  flex-direction: column;
  padding: 24px;
}

.train-section-title {
  order: 0;
  margin-bottom: 18px;
}

.train-section-title > span {
  font-size: 27px;
  line-height: 1.15;
}

#analysisForm > .forehand-v1-brief {
  order: 1;
}

#analysisForm > .player-name-field {
  order: 5;
}

#analysisForm > .quick-video-tags {
  order: 4;
}

#analysisForm > .upload-box {
  order: 2;
}

#analysisForm > .upload-preflight,
#analysisForm > .video-preview {
  order: 3;
}

#analysisForm > .upload-mission,
#analysisForm > .optional-context {
  order: 9;
}

#analysisForm > details {
  order: 10;
}

#analysisForm > .beta-consent {
  order: 6;
}

#analysisForm > .analysis-credit-line {
  order: 7;
}

#analysisForm > button.primary[type="submit"] {
  order: 8;
}

#analysisForm > .message {
  order: 9;
}

#analysisForm > .analysis-progress {
  order: 8;
}

body.is-player-authenticated .player-name-field {
  display: none;
}

.upload-box {
  min-height: 154px;
  gap: 7px;
  margin: 0 0 13px;
  padding: 19px 18px;
  border: 1px dashed rgba(15, 115, 92, 0.48);
  background: #f7faf7;
  box-shadow: none;
  transform: none;
}

.upload-box::before {
  content: "\2191";
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--brand);
  color: #ffffff;
  font-size: 22px;
  font-weight: 800;
}

.upload-box:hover {
  border-color: var(--brand);
  background: #f2f7f3;
  box-shadow: none;
  transform: none;
}

.upload-box span {
  color: var(--brand);
  font-size: 11px;
  font-weight: 900;
}

.upload-box strong {
  color: var(--text-strong);
  font-size: 18px;
}

.upload-box em {
  max-width: 360px;
  color: var(--text-soft);
  font-size: 12px;
}

.upload-box.has-file {
  border-style: solid;
  border-color: var(--brand);
  background: #eff7f1;
  box-shadow: none;
}

.upload-box.is-invalid {
  border-color: rgba(200, 95, 50, 0.76);
  background: #fffaf5;
}

.upload-box.is-invalid span,
.upload-box.is-invalid em {
  color: #a34525;
}

.forehand-v1-brief {
  display: grid;
  gap: 12px;
  margin: 0 0 16px;
  padding: 17px;
  border: 1px solid rgba(200, 242, 74, 0.22);
  border-radius: 8px;
  background:
    radial-gradient(circle at 92% 8%, rgba(200, 242, 74, 0.16), transparent 34%),
    var(--brand-deep);
  color: #ffffff;
}

.capture-essentials {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}

.capture-essentials > span {
  min-width: 0;
  display: grid;
  gap: 2px;
  padding: 8px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.055);
}

.capture-essentials b,
.capture-essentials em {
  display: block;
  font-style: normal;
  text-align: center;
  line-height: 1.25;
}

.capture-essentials b {
  color: #ffffff;
  font-size: 11px;
  font-weight: 950;
}

.capture-essentials em {
  color: var(--accent);
  font-size: 9px;
  font-weight: 850;
}

.capture-guide {
  border-top: 1px solid rgba(255, 255, 255, 0.11);
  padding-top: 9px;
}

.capture-guide > summary {
  min-height: 26px;
  color: rgba(255, 255, 255, 0.82);
  font-size: 10px;
  font-weight: 900;
  cursor: pointer;
}

.capture-guide > p {
  margin: 8px 0 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: 10px;
  font-weight: 700;
  line-height: 1.5;
}

.capture-guide .capture-protocol {
  margin-top: 8px;
}

.forehand-v1-controls[hidden],
.beta-consent[hidden] {
  display: none !important;
}

.forehand-v1-head {
  display: flex;
  gap: 12px;
  align-items: start;
  justify-content: space-between;
}

.forehand-v1-head > div {
  min-width: 0;
  display: grid;
  gap: 4px;
}

.forehand-v1-head small {
  color: var(--accent);
  font-size: 10px;
  font-weight: 950;
  letter-spacing: 0.09em;
}

.forehand-v1-head strong {
  max-width: 24ch;
  color: #ffffff;
  font-size: 18px;
  line-height: 1.22;
}

.forehand-v1-head > span {
  flex: 0 0 auto;
  min-height: 25px;
  display: inline-flex;
  align-items: center;
  padding: 4px 8px;
  border: 1px solid rgba(200, 242, 74, 0.32);
  border-radius: 999px;
  background: rgba(200, 242, 74, 0.09);
  color: var(--accent);
  font-size: 9px;
  font-weight: 950;
}

.forehand-v1-brief > p {
  margin: 0;
  color: rgba(255, 255, 255, 0.76);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.55;
}

.capture-protocol {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.capture-protocol li {
  min-width: 0;
  min-height: 74px;
  display: grid;
  gap: 5px;
  align-content: start;
  padding: 9px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.055);
}

.capture-protocol b {
  color: var(--accent);
  font-size: 10px;
}

.capture-protocol span {
  color: rgba(255, 255, 255, 0.92);
  font-size: 10px;
  font-weight: 850;
  line-height: 1.35;
}

.forehand-v1-brief .capture-pills {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}

.forehand-v1-brief .capture-pills span {
  min-height: 29px;
  display: grid;
  place-items: center;
  padding: 5px;
  border-radius: 5px;
  background: rgba(200, 242, 74, 0.1);
  color: var(--accent);
  font-size: 9px;
  font-weight: 950;
  text-align: center;
  white-space: normal;
}

.capture-brief {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  margin: 0 0 18px;
  padding: 11px 12px;
  border: 0;
  border-radius: 6px;
  background: var(--surface-soft);
}

.capture-brief strong {
  color: var(--text-strong);
  font-size: 12px;
}

.capture-brief > div:first-child span {
  margin-top: 2px;
  color: var(--text-soft);
  font-size: 11px;
}

.capture-pills {
  flex-wrap: nowrap;
  gap: 5px;
}

.capture-pills span {
  min-height: 25px;
  padding: 4px 7px;
  border-radius: 5px;
  background: #ffffff;
  color: var(--brand);
  font-size: 10px;
  white-space: nowrap;
}

.quick-video-tags {
  gap: 13px;
  margin: 0 0 17px;
  padding: 0;
  border: 0;
  background: transparent;
}

.quick-tag-head {
  gap: 3px;
}

.quick-tag-head strong {
  color: var(--text-strong);
  font-size: 16px;
}

.quick-tag-head span {
  color: var(--text-soft);
  font-size: 11px;
}

.quick-video-tags fieldset {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  margin: 0;
  padding: 0;
  border: 0;
}

.quick-video-tags legend {
  grid-column: 1 / -1;
  margin-bottom: 1px;
  padding: 0;
  color: var(--text-soft);
  font-size: 11px;
  font-weight: 850;
}

.quick-video-tags label {
  min-width: 0;
  margin: 0;
}

.quick-video-tags label span {
  min-height: 42px;
  display: grid;
  place-items: center;
  padding: 8px 6px;
  border: 1px solid var(--hairline);
  border-radius: 6px;
  background: #ffffff;
  color: #40504b;
  font-size: 12px;
  font-weight: 850;
}

.quick-video-tags input:checked + span {
  border-color: var(--brand-deep);
  background: var(--brand-deep);
  color: #ffffff;
  box-shadow: none;
}

.protocol-confirmations {
  order: 1;
  display: grid;
  gap: 7px;
  padding: 11px;
  border: 1px solid var(--hairline);
  border-radius: 7px;
  background: var(--surface-soft);
}

.protocol-confirmations > div {
  display: grid;
  gap: 2px;
  margin-bottom: 1px;
}

.protocol-confirmations > div strong {
  color: var(--text-strong);
  font-size: 12px;
}

.protocol-confirmations > div span {
  color: var(--text-soft);
  font-size: 10px;
  font-weight: 700;
  line-height: 1.4;
}

.quick-video-tags .protocol-confirmations label {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 8px;
  align-items: start;
  cursor: pointer;
}

.quick-video-tags .protocol-confirmations input {
  position: static;
  width: 18px;
  height: 18px;
  margin: 1px 0 0;
  overflow: visible;
  opacity: 1;
  clip: auto;
  clip-path: none;
  accent-color: var(--brand);
}

.quick-video-tags .protocol-confirmations label > span {
  min-height: 0;
  display: block;
  padding: 1px 0 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--text-strong);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.4;
  text-align: left;
}

.quick-video-tags .protocol-confirmations label:hover > span,
.quick-video-tags .protocol-confirmations input:checked + span {
  transform: none;
  border: 0;
  background: transparent;
  color: var(--brand);
  box-shadow: none;
}

.quick-video-tags .protocol-confirmations input:focus-visible {
  outline: 3px solid rgba(18, 107, 87, 0.2);
  outline-offset: 2px;
}

.protocol-confirmation-status {
  margin: 3px 0 0;
  padding: 8px 10px;
  border-radius: 6px;
  background: rgba(190, 139, 40, 0.1);
  color: #825e19;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.45;
}

.protocol-confirmation-status.is-ready {
  background: rgba(18, 107, 87, 0.1);
  color: var(--brand-deep);
}

.upload-preflight {
  grid-template-columns: 1fr;
  gap: 8px;
  margin-top: -3px;
}

.preflight-header {
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: space-between;
}

.preflight-header strong {
  color: var(--text-strong);
  font-size: 13px;
}

.preflight-header em {
  color: var(--text-soft);
  font-size: 10px;
}

.preflight-checks {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px !important;
}

.upload-preflight .preflight-check {
  min-width: 0;
  min-height: 43px;
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 7px;
  align-items: center;
  padding: 7px 8px;
  border: 1px solid var(--hairline);
  border-radius: 6px;
  background: #ffffff;
}

.preflight-check b {
  width: 18px;
  height: 18px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #e5ece8;
  color: #607069;
  font-size: 10px;
}

.upload-preflight .preflight-check > span {
  min-width: 0;
  min-height: 0;
  display: grid;
  gap: 1px;
  padding: 0;
  border-radius: 0;
  background: transparent;
}

.preflight-check span strong,
.preflight-check span small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.preflight-check span strong {
  color: var(--text-strong);
  font-size: 10px;
}

.preflight-check span small {
  color: var(--text-soft);
  font-size: 9px;
  font-weight: 750;
}

.preflight-check.is-pass b {
  background: rgba(18, 107, 87, 0.13);
  color: var(--brand);
}

.preflight-check.is-fail {
  border-color: rgba(200, 95, 50, 0.25);
  background: #fffaf5;
}

.preflight-check.is-fail b {
  background: rgba(200, 95, 50, 0.14);
  color: #a34525;
}

.preflight-verdict {
  margin: 0;
  color: var(--brand);
  font-size: 11px;
  font-weight: 850;
  line-height: 1.4;
}

.upload-preflight.is-warning .preflight-verdict {
  color: #a34525;
}

.upload-mission {
  display: none;
}

.player-name-field {
  margin-bottom: 15px;
}

.optional-analysis-fields {
  margin-bottom: 13px;
  border-color: var(--hairline);
  background: #ffffff;
}

.optional-analysis-fields > summary {
  min-height: 44px;
  color: var(--text-soft);
  font-size: 12px;
}

#analysisForm > button.primary[type="submit"] {
  width: 100%;
  min-height: 50px;
  border-radius: 7px;
  background: var(--brand);
  box-shadow: none;
  font-size: 15px;
}

.analysis-credit-line:empty,
#formMessage:empty {
  display: none;
}

.analysis-progress {
  border-color: var(--hairline);
  background: var(--brand-deep);
  box-shadow: none;
}

/* Community */
.community-hub {
  width: min(760px, 100%);
  min-height: calc(100vh - 86px);
  gap: 18px;
  margin: 0 auto;
  padding: 30px 0 42px;
}

.community-intro {
  gap: 6px;
}

.community-intro small {
  color: var(--brand);
  font-size: 11px;
}

.community-intro h2 {
  max-width: none;
  font-size: 32px;
  line-height: 1.08;
}

.community-intro p {
  max-width: 52ch;
  color: var(--text-soft);
  font-size: 13px;
  line-height: 1.5;
}

.community-content {
  gap: 16px;
}

.community-invite-welcome {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 8px;
  border: 1px solid rgba(18, 107, 87, .16);
  border-radius: 7px;
  background: #eef5f0;
}

.community-invite-welcome > div {
  height: 52px;
  overflow: hidden;
  border-radius: 5px;
  background: #e5eee8;
}

.community-invite-welcome .player-avatar-art {
  width: 100%;
  height: 100%;
}

.community-invite-welcome p {
  display: grid;
  gap: 3px;
  margin: 0;
}

.community-invite-welcome b {
  color: var(--brand);
  font-size: 10px;
  letter-spacing: .04em;
}

.community-invite-welcome span {
  color: var(--text-soft);
  font-size: 11px;
  line-height: 1.4;
}

.community-account-strip {
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
  border-color: var(--hairline);
}

.community-account-strip > div {
  padding: 11px 12px;
}

.community-account-strip strong {
  color: var(--brand);
  font-size: 19px;
}

.community-account-strip button {
  border-color: var(--hairline);
  color: var(--text-soft);
}

.community-view-tabs {
  padding: 4px;
  border: 0;
  background: #e8eeea;
}

.community-view-tabs button {
  min-height: 40px;
  border-radius: 5px;
  color: var(--text-soft);
}

.community-view-tabs button.is-active {
  color: var(--brand);
  box-shadow: none;
}

.community-people-section,
.community-feed,
.community-groups,
.community-inbox {
  gap: 10px;
}

.community-people-section > .section-title,
.community-feed > .section-title,
.community-groups > .section-title,
.community-inbox > .section-title {
  margin: 2px 0 0;
}

.community-people-section > .section-title > span,
.community-feed > .section-title > span,
.community-groups > .section-title > span,
.community-inbox > .section-title > span {
  font-size: 17px;
}

.community-people-section > .section-title small,
.community-feed > .section-title small,
.community-groups > .section-title small,
.community-inbox > .section-title small {
  color: var(--text-soft);
  font-size: 11px;
}

.community-feed,
.community-groups {
  display: grid;
}

.community-activity-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.community-activity-card {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  min-height: 82px;
  padding: 9px;
  border: 1px solid var(--hairline);
  border-radius: 7px;
  background: #fff;
}

.community-activity-avatar {
  height: 64px;
  overflow: hidden;
  border-radius: 5px;
  background: #eaf1eb;
}

.community-activity-avatar .player-avatar-art {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.community-activity-card > div:last-child {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.community-activity-card b {
  width: max-content;
  padding: 2px 6px;
  border-radius: 999px;
  background: var(--brand);
  color: #fff;
  font-size: 9px;
  letter-spacing: .02em;
}

.community-activity-card strong {
  color: var(--ink);
  font-size: 12px;
  line-height: 1.35;
}

.community-activity-card small {
  color: var(--text-soft);
  font-size: 10px;
}

.community-group-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}

.community-group-card {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 136px;
  gap: 10px 14px;
  padding: 11px;
  border: 1px solid rgba(194, 146, 58, .28);
  border-radius: 7px;
  background: linear-gradient(135deg, #fffdf7, #f5f8f3);
}

.community-group-card header {
  min-width: 0;
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  align-items: center;
  gap: 9px;
}

.community-group-card header > div {
  height: 58px;
  overflow: hidden;
  border-radius: 6px;
  background: #e7efe9;
}

.community-group-card header .player-avatar-art {
  width: 100%;
  height: 100%;
}

.community-group-card header p {
  min-width: 0;
  display: grid;
  gap: 2px;
  margin: 0;
}

.community-group-card header b {
  color: #9a6817;
  font-size: 9px;
}

.community-group-card header strong {
  overflow: hidden;
  color: var(--text-strong);
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.community-group-card header small {
  color: var(--text-soft);
  font-size: 9px;
}

.community-group-card dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  margin: 0;
}

.community-group-card dl div {
  display: grid;
  align-content: center;
  gap: 3px;
  padding: 7px;
  border-radius: 6px;
  background: rgba(255, 255, 255, .72);
}

.community-group-card dt {
  color: var(--text-soft);
  font-size: 8px;
  font-weight: 850;
}

.community-group-card dd {
  margin: 0;
  color: var(--brand);
  font-size: 17px;
  font-weight: 950;
}

.community-group-members {
  grid-column: 1 / -1;
  display: flex;
  gap: 7px;
  overflow-x: auto;
}

.community-group-members > div {
  min-width: 52px;
  display: grid;
  justify-items: center;
  gap: 3px;
}

.community-group-members .player-avatar-art {
  width: 40px;
  height: 42px;
  overflow: hidden;
  border-radius: 5px;
  background: #e8f0ea;
}

.community-group-members span {
  max-width: 58px;
  overflow: hidden;
  color: var(--text-soft);
  font-size: 8px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.community-player-grid {
  grid-template-columns: 1fr;
  gap: 8px;
}

.community-player-card {
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 13px;
  min-height: 126px;
  padding: 10px;
  border-color: var(--hairline);
  background: #ffffff;
  box-shadow: 0 3px 14px rgba(16, 32, 29, 0.035);
}

.community-player-avatar {
  min-height: 104px;
  border-radius: 6px;
  background: #eaf1eb;
}

.community-player-copy {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 7px 10px;
  align-content: center;
}

.community-player-identity,
.community-player-copy dl {
  grid-column: 1;
}

.community-player-actions {
  grid-row: 1 / 3;
  grid-column: 2;
  align-content: center;
  grid-template-columns: 1fr;
  min-width: 106px;
}

.community-player-actions button {
  min-height: 38px;
  border-radius: 6px;
  font-size: 10px;
}

.community-signal-menu {
  position: relative;
  min-width: 0;
}

.community-signal-menu summary {
  min-height: 38px;
  display: grid;
  place-items: center;
  padding: 6px 8px;
  border: 1px solid rgba(18, 107, 87, .18);
  border-radius: 6px;
  background: #fff;
  color: var(--brand);
  font-size: 10px;
  font-weight: 950;
  cursor: pointer;
  list-style: none;
}

.community-signal-menu summary::-webkit-details-marker {
  display: none;
}

.community-player-actions .community-signal-complete {
  background: #f2eee3;
  color: #8e6b2e;
  cursor: default;
}

.community-signal-menu > div {
  position: absolute;
  right: 0;
  bottom: calc(100% + 5px);
  z-index: 6;
  width: 126px;
  display: grid;
  gap: 3px;
  padding: 5px;
  border: 1px solid var(--hairline);
  border-radius: 7px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(16, 32, 29, .16);
}

.community-signal-menu > div button {
  min-height: 34px;
  border: 0;
  background: #f4f7f4;
  color: var(--text-strong);
  text-align: left;
}

.community-signal-menu > div button:hover {
  background: #e8f1eb;
  color: var(--brand);
}

.community-player-actions button.is-greeting {
  background: var(--brand-deep);
  color: var(--accent);
}

.community-player-menu {
  top: 5px;
  right: 5px;
}

.community-player-identity {
  padding-right: 24px;
}

.community-player-identity em {
  width: max-content;
  padding: 2px 6px;
  border: 1px solid rgba(194, 146, 58, .3);
  border-radius: 999px;
  background: #faf5e8;
  color: #9a6817;
  font-size: 9px;
  font-style: normal;
  font-weight: 850;
}

.community-player-copy strong {
  font-size: 16px;
}

.community-player-copy dl {
  max-width: 160px;
}

.community-greeting-list {
  grid-template-columns: 1fr;
}

.community-greeting-list article {
  position: relative;
  border-color: var(--hairline);
}

.community-greeting-list article.is-unread {
  border-color: rgba(194, 146, 58, .42);
  background: #fffdf7;
}

.community-greeting-list article > em {
  position: absolute;
  top: 8px;
  right: 8px;
  padding: 2px 6px;
  border-radius: 999px;
  background: var(--accent);
  color: var(--brand-deep);
  font-size: 8px;
  font-style: normal;
  font-weight: 950;
}

.community-greeting-list p small {
  color: var(--text-soft);
  font-size: 9px;
}

.community-inbox-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 3px 10px;
}

.community-inbox-head > span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.community-inbox-head > span em {
  min-width: 19px;
  padding: 2px 5px;
  border-radius: 999px;
  background: var(--accent);
  color: var(--brand-deep);
  font-size: 9px;
  font-style: normal;
  text-align: center;
}

.community-inbox-head > small {
  grid-column: 1;
}

.community-inbox-head > button {
  grid-row: 1 / 3;
  grid-column: 2;
  align-self: center;
  min-height: 30px;
  padding: 5px 9px;
  border: 1px solid var(--hairline);
  border-radius: 6px;
  background: #fff;
  color: var(--brand);
  font-size: 9px;
  font-weight: 900;
  cursor: pointer;
}

/* My */
body[data-app-screen="my"] main {
  display: flex;
  flex-direction: column;
}

body[data-app-screen="my"] .my-space {
  order: 1;
}

body[data-app-screen="my"] .top-account-panel {
  order: 2;
}

body:not(.is-player-authenticated)[data-app-screen="my"] .top-account-panel {
  order: 1;
}

body:not(.is-player-authenticated)[data-app-screen="my"] .my-space {
  order: 3;
}

body:not(.is-player-authenticated)[data-app-screen="my"] .my-space > .history,
body:not(.is-player-authenticated)[data-app-screen="my"] .my-space > .player-profile {
  display: none !important;
}

.account-trust-links {
  order: 2;
  width: min(820px, 100%);
  grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr);
  gap: 18px;
  align-items: center;
  margin: 14px auto 0;
  padding: 18px;
  border: 1px solid var(--hairline);
  border-radius: 10px;
  background:
    radial-gradient(circle at 100% 0%, rgba(215, 183, 111, 0.14), transparent 34%),
    #fcfbf7;
}

body.is-player-authenticated .account-trust-links {
  display: none !important;
}

.account-trust-copy small,
.account-trust-copy strong {
  display: block;
}

.account-trust-copy small {
  margin-bottom: 5px;
  color: #a6772f;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.account-trust-copy strong {
  max-width: 22em;
  color: var(--text-strong);
  font-size: 13px;
  line-height: 1.55;
}

.account-trust-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.account-trust-grid a {
  min-height: 54px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 9px;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid rgba(37, 43, 45, 0.12);
  border-radius: 8px;
  background: #fff;
  color: var(--text-strong);
  text-decoration: none;
  transition: border-color 160ms ease, transform 160ms ease, background 160ms ease;
}

.account-trust-grid a:hover,
.account-trust-grid a:focus-visible {
  border-color: rgba(184, 138, 62, 0.58);
  background: #fffdf8;
  transform: translateY(-1px);
}

.account-trust-grid a span {
  color: #b88a3e;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.account-trust-grid a strong {
  font-size: 11px;
  line-height: 1.35;
}

.my-space {
  width: min(820px, 100%);
  gap: 14px;
  margin: 26px auto 0;
}

.my-space-title {
  display: none;
}

.my-space > .player-profile {
  order: 1;
}

.my-space > .history {
  order: 2;
}

.my-space > .operator-workbench {
  order: 3;
}

.player-profile {
  display: grid;
  gap: 10px;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.player-profile > .section-title {
  display: none;
}

.player-profile > #profileSummary {
  order: 1;
}

.player-profile > .history {
  order: 2;
}

.player-profile > .profile-secondary {
  order: 3;
}

.profile-secondary > .profile-practice {
  display: block;
  padding: 0;
  border-color: var(--hairline);
  background: #ffffff;
  overflow: hidden;
}

.profile-practice > summary {
  min-height: 64px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 22px;
  gap: 10px;
  align-items: center;
  padding: 13px 15px;
  cursor: pointer;
  list-style: none;
}

.profile-practice > summary::-webkit-details-marker {
  display: none;
}

.profile-practice > summary span,
.profile-practice > summary strong,
.profile-practice > summary small {
  display: block;
}

.profile-practice > summary strong {
  color: var(--text-strong);
  font-size: 15px;
}

.profile-practice > summary small {
  margin-top: 3px;
  color: var(--text-soft);
  font-size: 10px;
  line-height: 1.35;
}

.profile-practice > summary > b {
  color: var(--brand);
  font-size: 18px;
}

.profile-practice > summary::after {
  content: "+";
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #e8f1eb;
  color: var(--brand);
  font-size: 17px;
  line-height: 1;
}

.profile-practice[open] > summary {
  border-bottom: 1px solid var(--hairline);
}

.profile-practice[open] > summary::after {
  content: "-";
}

.profile-practice-content {
  display: grid;
  gap: 12px;
  padding: 14px;
}

.profile-highlights:has(.highlight-strip > p) {
  display: none;
}

.profile-summary {
  gap: 10px;
}

.profile-command {
  grid-template-columns: 148px minmax(0, 1fr);
  gap: 16px;
  padding: 18px;
  border-color: transparent;
  background: var(--brand-deep);
  box-shadow: var(--shadow-soft);
}

.profile-command-grid {
  grid-column: 1 / -1;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
}

.profile-command-grid article {
  padding: 9px 10px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.07);
}

.profile-command-main strong {
  font-size: clamp(23px, 3vw, 31px);
}

.profile-command-actions a {
  border-radius: 6px;
}

.profile-command-actions a:first-child {
  background: var(--accent);
}

.profile-command-avatar .player-avatar-art {
  border-color: rgba(255, 255, 255, 0.12);
  border-radius: 7px;
}

.profile-avatar-level {
  border-radius: 6px;
}

.profile-social-bar {
  border-color: var(--hairline);
  box-shadow: 0 3px 12px rgba(16, 32, 29, 0.03);
}

.profile-social-bar a {
  padding: 11px 14px;
}

.profile-social-bar strong {
  color: var(--brand);
  font-size: 20px;
}

.profile-growth {
  grid-template-columns: minmax(150px, 0.58fr) minmax(220px, 0.86fr) minmax(0, 1.56fr);
  gap: 8px;
}

.profile-level-card,
.profile-streak-card,
.profile-path-card {
  padding: 12px;
  border-color: var(--hairline);
}

.profile-level-card {
  background: var(--brand-deep);
}

.profile-streak-card {
  background: #ffffff;
}

.profile-streak-card div {
  padding: 8px;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.profile-streak-card div + div {
  border-left: 1px solid var(--hairline);
}

.history {
  margin: 0;
  padding: 16px;
  border-color: var(--hairline);
  background: #ffffff;
  box-shadow: 0 3px 14px rgba(16, 32, 29, 0.035);
}

.history > .section-title {
  align-items: end;
  margin-bottom: 12px;
}

.history > .section-title span {
  font-size: 18px;
}

.history-item {
  border-color: var(--hairline);
  border-radius: 6px;
  background: #f9fbf9;
}

.top-account-panel.is-logged-in {
  width: min(820px, 100%);
  display: flex !important;
  justify-content: space-between;
  margin: 10px auto 36px;
  padding: 12px 14px;
  border: 0;
  border-top: 1px solid var(--hairline);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.top-account-panel.is-logged-in .account-copy small {
  display: none;
}

.top-account-panel.is-logged-in .account-command {
  margin: 0;
}

.top-account-panel.is-logged-in .account-command b {
  color: var(--text-strong);
}

.top-account-panel.is-logged-in #logoutButton {
  min-height: 34px;
  padding: 6px 10px;
  border: 0;
  background: transparent;
  color: var(--text-soft);
  font-size: 12px;
}

.profile-more,
.account-data-controls {
  border-color: var(--hairline);
  box-shadow: none;
}

/* Avatar studio */
.avatar-studio {
  background: var(--app-bg);
}

.avatar-studio::backdrop {
  background: rgba(7, 21, 17, 0.62);
}

.avatar-studio-head,
.avatar-studio-footer {
  background: #ffffff;
}

.avatar-studio-preview {
  background: #eef3ef;
}

.avatar-preset-grid {
  gap: 8px;
}

.avatar-preset {
  border-color: var(--hairline);
  background: #ffffff;
  box-shadow: none;
}

.avatar-preset.is-selected {
  border-color: var(--brand);
  box-shadow: 0 0 0 2px rgba(15, 115, 92, 0.1);
}

.avatar-wardrobe-section {
  border-color: var(--hairline);
  background: #edf2ee;
}

.avatar-advanced-toggle {
  border-color: var(--hairline);
  background: #ffffff;
}

.avatar-save-button {
  border-color: var(--brand);
  background: var(--brand);
  box-shadow: none;
}

@media (max-width: 760px) {
  body {
    padding-bottom: calc(72px + env(safe-area-inset-bottom));
  }

  .topbar {
    min-height: 58px;
    padding: 8px 14px;
  }

  .brand-lockup {
    gap: 9px;
  }

  .brand-mark {
    width: 34px;
    flex-basis: 34px;
  }

  .brand-title {
    gap: 6px;
  }

  .brand-english {
    font-size: 8px;
    letter-spacing: 0.06em;
  }

  .topbar strong {
    font-size: 15px;
  }

  .topbar span {
    max-width: 218px;
    font-size: 10px;
  }

  .language-toggle {
    min-width: 42px;
    min-height: 38px;
    padding: 0 9px;
  }

  main {
    width: min(100% - 24px, 560px);
    margin-bottom: 24px;
  }

  .mobile-tabs {
    left: 0;
    right: 0;
    bottom: 0;
    gap: 0;
    padding: 6px 12px calc(6px + env(safe-area-inset-bottom));
    border-width: 1px 0 0;
    border-color: var(--hairline);
    border-radius: 0;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 -6px 24px rgba(16, 32, 29, 0.08);
  }

  .mobile-tabs a {
    position: relative;
    min-height: 46px;
    border-radius: 0;
    color: #4d5b57;
    font-size: 11px;
  }

  .mobile-tabs a.is-active {
    background: transparent;
    color: var(--brand);
  }

  .mobile-tabs a.is-active::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: 24px;
    height: 3px;
    border-radius: 2px;
    background: var(--brand);
    transform: translateX(-50%);
  }

  .mobile-tabs a:focus-visible {
    outline: 2px solid rgba(15, 115, 92, 0.45);
    outline-offset: -3px;
  }

  [data-app-screen] {
    scroll-margin-top: 62px;
  }

  .home-hero {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 24px 0 18px;
  }

  .home-hero-copy h1 {
    max-width: none;
    font-size: 38px;
  }

  .home-hero-copy h1 span {
    white-space: nowrap;
  }

  .home-hero-copy > p:last-of-type {
    max-width: 34ch;
    margin-top: 13px;
    font-size: 14px;
    line-height: 1.52;
  }

  .home-hero-actions {
    grid-template-columns: minmax(0, 1fr) auto;
    margin-top: 17px;
  }

  .home-hero-actions a {
    min-height: 46px;
    padding: 10px 14px;
    font-size: 13px;
  }

  .home-ritual {
    display: none;
  }

  .home-visual {
    min-height: 300px;
  }

  .home-visual-copy span {
    display: none;
  }

  .home-visual-copy strong {
    font-size: 17px;
  }

  .member-home {
    min-height: auto;
    grid-template-columns: 1fr;
    gap: 20px;
    margin: 24px auto 16px;
    padding: 22px;
  }

  .member-home-copy strong {
    max-width: 7.5em;
    font-size: 31px;
  }

  .member-home-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .member-home-stats > div {
    padding: 12px 9px;
  }

  .member-home-stats > div + div {
    border-top: 0;
    border-left: 1px solid rgba(255, 255, 255, 0.11);
  }

  .workspace,
  .workspace:has(#reportContent.empty-state) {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
    margin-top: 18px;
  }

  .result:has(#reportContent.empty-report) {
    display: none !important;
  }

  .tool {
    padding: 18px;
  }

  .train-section-title {
    margin-bottom: 15px;
  }

  .train-section-title > span {
    font-size: 24px;
  }

  .upload-box {
    min-height: 154px;
    padding: 16px 14px;
  }

  .forehand-v1-brief {
    gap: 10px;
    padding: 14px;
  }

  .forehand-v1-head {
    align-items: center;
  }

  .forehand-v1-head strong {
    font-size: 16px;
  }

  .forehand-v1-head > span {
    display: none;
  }

  .capture-protocol li {
    min-height: 68px;
    padding: 8px 7px;
  }

  .capture-brief {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 7px;
  }

  .capture-brief > div:first-child {
    display: none;
  }

  .capture-pills {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .capture-pills span {
    min-height: 30px;
    white-space: normal;
    text-align: center;
  }

  .quick-video-tags {
    gap: 9px;
    margin-bottom: 12px;
  }

  .quick-tag-head span {
    font-size: 10px;
  }

  .quick-video-tags fieldset {
    gap: 5px;
  }

  .quick-video-tags label span {
    min-height: 38px;
  }

  .protocol-confirmations {
    padding: 10px;
  }

  .preflight-checks {
    grid-template-columns: 1fr;
  }

  .community-hub {
    gap: 14px;
    padding: 22px 0 28px;
  }

  .community-intro h2 {
    font-size: 26px;
  }

  .community-intro p {
    font-size: 12px;
  }

  .community-account-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .community-account-strip > div {
    padding: 9px 7px;
  }

  .community-account-strip > div + div {
    border-left: 1px solid var(--hairline);
  }

  .community-account-strip button {
    min-height: 28px;
    grid-column: 1 / -1;
    justify-self: start;
    margin: 0;
    padding: 4px 0;
    border: 0;
    background: transparent;
    font-size: 10px;
  }

  .community-people-section > .section-title small,
  .community-feed > .section-title small,
  .community-groups > .section-title small,
  .community-inbox > .section-title small {
    display: none;
  }

  .community-activity-list {
    grid-template-columns: 1fr;
  }

  .community-activity-card {
    grid-template-columns: 54px minmax(0, 1fr);
    min-height: 76px;
  }

  .community-activity-avatar {
    height: 58px;
  }

  .community-group-list {
    grid-template-columns: 1fr;
  }

  .community-group-card {
    grid-template-columns: minmax(0, 1fr) 124px;
  }

  .community-invite-welcome {
    grid-template-columns: 46px minmax(0, 1fr);
  }

  .community-invite-welcome > div {
    height: 46px;
  }

  .community-player-card {
    grid-template-columns: 82px minmax(0, 1fr);
    min-height: 120px;
    gap: 11px;
  }

  .community-player-avatar {
    min-height: 98px;
  }

  .community-player-copy {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .community-player-identity,
  .community-player-copy dl,
  .community-player-actions {
    grid-column: 1;
    grid-row: auto;
  }

  .community-player-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    min-width: 0;
  }

  .community-player-actions button,
  .community-signal-menu summary {
    min-height: 35px;
  }

  .community-signal-menu > div {
    right: auto;
    left: 0;
  }

  .my-space {
    gap: 10px;
    margin-top: 18px;
  }

  .profile-command {
    grid-template-columns: 108px minmax(0, 1fr);
    gap: 12px;
    padding: 14px;
  }

  .profile-command-avatar {
    display: grid;
    grid-template-columns: 1fr;
    align-items: start;
  }

  .profile-command-avatar > button {
    grid-row: auto;
  }

  .profile-command-avatar > button > span {
    display: none;
  }

  .profile-avatar-level {
    display: grid;
    gap: 2px;
    padding: 7px 8px;
  }

  .profile-avatar-level b {
    font-size: 15px;
  }

  .profile-avatar-level span {
    font-size: 9px;
  }

  .profile-command-main {
    gap: 5px;
  }

  .profile-command-main strong {
    font-size: 20px;
  }

  .profile-command-main p {
    display: -webkit-box;
    overflow: hidden;
    font-size: 11px;
    line-height: 1.4;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
  }

  .profile-command-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px;
  }

  .profile-command-actions a {
    min-height: 35px;
    padding: 7px 8px;
    font-size: 10px;
  }

  .profile-command-actions a:nth-child(3) {
    display: none;
  }

  .profile-command-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .profile-command-grid article {
    min-height: 58px;
    padding: 8px;
  }

  .profile-command-grid small,
  .profile-command-grid span {
    font-size: 9px;
  }

  .profile-command-grid b {
    margin: 3px 0 2px;
    font-size: 13px;
  }

  .profile-social-bar a {
    padding: 10px;
  }

  .profile-social-bar small {
    font-size: 9px;
  }

  .profile-social-bar strong {
    font-size: 18px;
  }

  .profile-growth {
    grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr);
  }

  .profile-path-card {
    grid-column: 1 / -1;
  }

  .profile-skill-path {
    gap: 5px;
  }

  .profile-skill-path article {
    padding: 8px 4px;
  }

  .profile-skill-path strong {
    font-size: 9px;
  }

  .history {
    padding: 14px;
  }

  .history > .section-title {
    align-items: start;
    flex-direction: column;
    gap: 3px;
  }

  .history > .section-title small {
    font-size: 10px;
  }

  .top-account-panel.is-logged-in {
    margin-bottom: 22px;
  }

  .top-account-panel:not(.is-logged-in) {
    width: 100%;
    margin: 18px auto 0;
  }

  .account-trust-links {
    grid-template-columns: 1fr;
    gap: 12px;
    margin-top: 12px;
    padding: 14px;
  }

  .account-trust-grid {
    gap: 7px;
  }

  .account-trust-grid a {
    min-height: 50px;
    padding: 9px 10px;
  }

  .avatar-studio-preview {
    grid-template-columns: 104px minmax(0, 1fr);
    gap: 12px;
    padding: 9px 12px;
    border-color: var(--hairline);
    background: #eef3ef;
    box-shadow: none;
  }

  .avatar-preview-stage {
    width: 104px;
  }

  .avatar-preview-stage .player-avatar-art.avatar-full-body {
    max-height: 158px;
  }

  .avatar-studio-controls {
    padding: 12px;
  }

  .avatar-preset-grid {
    display: grid;
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: 92px;
    gap: 8px;
    overflow-x: auto;
    padding: 2px 2px 8px;
    scroll-snap-type: x proximity;
  }

  .avatar-preset {
    scroll-snap-align: start;
  }

  .avatar-preset .player-avatar-art.avatar-full-body {
    aspect-ratio: 16 / 22;
  }

  .avatar-outfit-grid {
    grid-template-columns: 1fr;
  }

  .avatar-studio-footer {
    min-height: 62px;
    padding: 10px 12px;
  }
}

@media (max-width: 390px) {
  .topbar span {
    max-width: 190px;
  }

  .home-hero-copy h1 {
    font-size: 35px;
  }

  .home-visual {
    min-height: 274px;
  }

  .tool {
    padding: 15px;
  }

  .quick-video-tags label span {
    min-height: 40px;
    font-size: 11px;
  }

  .community-player-card {
    grid-template-columns: 76px minmax(0, 1fr);
  }

  .community-player-avatar {
    min-height: 94px;
  }

  .profile-command {
    grid-template-columns: 96px minmax(0, 1fr);
  }

  .profile-command-main strong {
    font-size: 18px;
  }
}

/* v148 court identity art direction */
.player-avatar-art.avatar-full-body {
  shape-rendering: geometricPrecision;
  text-rendering: geometricPrecision;
}

.player-avatar-art .avatar-head,
.player-avatar-art .avatar-forearms,
.player-avatar-art .avatar-grip,
.player-avatar-art .avatar-racket {
  transform-box: fill-box;
  transform-origin: center;
}

.player-avatar-art .avatar-torso-shadow,
.player-avatar-art .avatar-torso-highlight,
.player-avatar-art .avatar-racket-palm-axis,
.player-avatar-art .avatar-grip-fingers,
.player-avatar-art .avatar-grip-thumb,
.player-avatar-art .avatar-grip-knuckles,
.player-avatar-art .avatar-grip-thumb-nail,
.player-avatar-art .avatar-fist-fingers,
.player-avatar-art .avatar-fist-thumb,
.player-avatar-art .avatar-open-fingers,
.player-avatar-art .avatar-open-thumb,
.player-avatar-art .avatar-racket-wrap,
.player-avatar-art .avatar-racket-butt-cap {
  pointer-events: none;
}

.player-avatar-art .avatar-lip-shape,
.player-avatar-art .avatar-lash-line,
.player-avatar-art .avatar-male-brow-plane,
.player-avatar-art .avatar-male-chin-plane,
.player-avatar-art .avatar-jaw,
.player-avatar-art .avatar-ear-detail,
.player-avatar-art .avatar-neck-plane,
.player-avatar-art .avatar-shoe-contact,
.player-avatar-art .avatar-ground-shadow {
  vector-effect: non-scaling-stroke;
}

.player-avatar-art .avatar-shoulder-cap,
.player-avatar-art .avatar-hip-cap,
.player-avatar-art .avatar-elbow-fold,
.player-avatar-art .avatar-forearm-plane,
.player-avatar-art .avatar-arm-muscle-plane,
.player-avatar-art .avatar-arm-muscle-highlight,
.player-avatar-art .avatar-wrist-tendon,
.player-avatar-art .avatar-fabric-stitch,
.player-avatar-art .avatar-shoe-tongue,
.player-avatar-art .avatar-shoe-heel {
  vector-effect: non-scaling-stroke;
}

.avatar-preview-stage .player-avatar-art.avatar-full-body {
  border-radius: 10px;
  filter: drop-shadow(0 20px 30px rgba(14, 54, 44, 0.16));
}

.avatar-preview-stage .avatar-breath {
  transform-origin: 160px 276px;
  animation: avatar-breathe 3.8s ease-in-out infinite;
}

.avatar-preview-stage .avatar-racket {
  transform-origin: 50% 100%;
  animation: avatar-racket-ready 4.8s ease-in-out infinite;
}

.avatar-preset .player-avatar-art.avatar-full-body {
  background: #f4f8f4;
  transition: transform 180ms ease, filter 180ms ease;
}

.avatar-preset:hover .player-avatar-art.avatar-full-body,
.avatar-preset:focus-visible .player-avatar-art.avatar-full-body,
.avatar-preset.is-selected .player-avatar-art.avatar-full-body {
  transform: translateY(-2px);
  filter: drop-shadow(0 8px 12px rgba(15, 69, 55, 0.13));
}

.avatar-studio-preview {
  background: #edf4ef;
}

.avatar-preview-stage {
  width: min(100%, 310px);
}

.avatar-preview-meta {
  width: min(100%, 310px);
}

@keyframes avatar-breathe {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(1.006); }
}

@keyframes avatar-racket-ready {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(0.7deg); }
}

@media (prefers-reduced-motion: reduce) {
  .avatar-preview-stage .avatar-breath,
  .avatar-preview-stage .avatar-racket {
    animation: none;
  }
}

@media (max-width: 760px) {
  .avatar-studio {
    width: min(100% - 12px, 430px);
    max-height: calc(100dvh - 12px);
    border-radius: 14px;
  }

  .avatar-studio-shell {
    max-height: calc(100dvh - 12px);
  }

  .avatar-studio-head {
    padding: 13px 14px;
  }

  .avatar-studio-head h2 {
    font-size: 20px;
  }

  .avatar-studio-body {
    display: block;
    overflow: auto;
    overscroll-behavior: contain;
  }

  .avatar-studio-preview {
    position: sticky;
    top: 0;
    z-index: 3;
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 12px;
    min-height: 178px;
    padding: 10px 12px 9px;
    border-right: 0;
    border-bottom: 1px solid rgba(18, 107, 87, 0.14);
    box-shadow: 0 8px 18px rgba(16, 55, 43, 0.08);
  }

  .avatar-preview-stage {
    width: 124px;
  }

  .avatar-preview-stage .player-avatar-art.avatar-full-body {
    max-height: 164px;
  }

  .avatar-preview-meta {
    width: auto;
    align-self: center;
  }

  .avatar-preview-meta strong {
    font-size: 18px;
  }

  .avatar-studio-controls {
    gap: 11px;
    padding: 14px 12px 16px;
  }

  .avatar-control-head {
    display: grid;
    gap: 2px;
  }

  .avatar-preset-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 5px;
  }

  .avatar-preset {
    padding: 7px;
    gap: 4px;
    border-radius: 9px;
  }

  .avatar-preset .player-avatar-art {
    aspect-ratio: 0.72;
  }

  .avatar-preset span {
    font-size: 10px;
  }

  .avatar-advanced-controls {
    grid-template-columns: 1fr;
  }

  .avatar-control-group:first-child,
  .avatar-control-group:nth-child(3) {
    grid-column: auto;
  }

  .avatar-segmented .avatar-option,
  .avatar-option-row .avatar-option {
    min-height: 42px;
    padding-inline: 5px;
    font-size: 11px;
  }

  .avatar-outfit-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .avatar-studio-footer {
    padding: 10px 12px;
    flex-wrap: wrap;
  }

  .avatar-studio-message {
    display: none;
  }

  .avatar-studio-message:not(:empty) {
    width: 100%;
    display: block;
  }

  .avatar-studio-footer > div {
    width: 100%;
  }

  .avatar-skip-button,
  .avatar-save-button {
    flex: 1 1 0;
    min-height: 42px;
  }

  .avatar-save-button {
    min-width: 0;
  }
}

/* v175 tactile UI pass: one cohesive mobile interaction language across the core loop. */
:root {
  --tactile-radius: 15px;
  --tactile-shadow: 0 4px 0 rgba(10, 72, 57, 0.22);
  --tactile-soft-shadow: 0 10px 28px rgba(16, 42, 34, 0.09);
}

button,
a,
label {
  -webkit-tap-highlight-color: transparent;
}

.primary,
.primary-link,
.account-open-button,
.avatar-save-button,
#analysisForm > button.primary[type="submit"] {
  border-radius: 12px;
  box-shadow: var(--tactile-shadow);
  transition: transform 0.14s ease, box-shadow 0.14s ease, filter 0.14s ease;
}

.primary:not(:disabled):hover,
.primary-link:hover,
.account-open-button:hover,
.avatar-save-button:hover,
#analysisForm > button.primary[type="submit"]:not(:disabled):hover {
  filter: saturate(1.06) brightness(1.02);
}

.primary:not(:disabled):active,
.primary-link:active,
.account-open-button:active,
.avatar-save-button:active,
#analysisForm > button.primary[type="submit"]:not(:disabled):active {
  transform: translateY(3px) scale(0.995);
  box-shadow: 0 1px 0 rgba(10, 72, 57, 0.24);
}

.home-hero-actions .text-link {
  min-height: 48px;
  padding-inline: 16px;
  border: 1px solid var(--hairline);
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 3px 0 #dfe7e2;
  transition: transform 0.14s ease, box-shadow 0.14s ease, background 0.14s ease;
}

.home-hero-actions .text-link:active {
  transform: translateY(2px);
  box-shadow: 0 1px 0 #dfe7e2;
}

.home-visual,
.member-home,
.tool,
.result,
.top-account-panel,
.forehand-v1-brief,
.report-hero-v2,
.report-truth-status,
.coach-brief,
.delivery-summary {
  border-radius: var(--tactile-radius);
}

.home-visual,
.tool,
.result,
.top-account-panel {
  box-shadow: var(--tactile-soft-shadow);
}

.home-visual-copy,
.capture-essentials > span,
.upload-preflight,
.upload-preflight .preflight-check,
.quick-video-tags label span,
.protocol-confirmations,
.optional-analysis-fields,
.video-preview {
  border-radius: 11px;
}

.upload-box {
  border-width: 2px;
  border-radius: var(--tactile-radius);
  background:
    radial-gradient(circle at 50% 26%, rgba(200, 242, 74, 0.18), transparent 34%),
    #f7faf7;
}

.upload-box::before {
  width: 46px;
  height: 46px;
  box-shadow: 0 4px 0 #084f3f, 0 10px 22px rgba(15, 115, 92, 0.18);
  transition: transform 0.16s ease, box-shadow 0.16s ease;
}

.upload-box:active::before {
  transform: translateY(3px);
  box-shadow: 0 1px 0 #084f3f, 0 5px 12px rgba(15, 115, 92, 0.14);
}

.quick-video-tags label span {
  box-shadow: 0 2px 0 #e1e8e3;
}

.quick-video-tags input:checked + span {
  box-shadow: 0 3px 0 #071b16;
  transform: translateY(-1px);
}

.preflight-check.is-pass {
  border-color: rgba(15, 115, 92, 0.2);
  background: linear-gradient(180deg, #ffffff, #f4faf6);
}

.report-truth-grid article,
.coach-brief-grid article,
.delivery-metrics > div {
  border-radius: 11px;
}

.mobile-tab-icon {
  width: 23px;
  height: 23px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 0.18s cubic-bezier(0.2, 0.8, 0.2, 1);
}

@media (max-width: 760px) {
  .topbar {
    border-bottom-color: rgba(15, 115, 92, 0.1);
    box-shadow: 0 5px 20px rgba(16, 42, 34, 0.05);
  }

  .brand-mark {
    border-radius: 11px;
    box-shadow: 0 3px 0 #082f27;
  }

  .topbar .brand-lockup > div > span {
    display: none;
  }

  .topbar strong {
    font-size: 17px;
  }

  .mobile-tabs {
    min-height: 68px;
    padding: 5px 8px calc(5px + env(safe-area-inset-bottom));
    box-shadow: 0 -8px 30px rgba(16, 42, 34, 0.1);
  }

  .mobile-tabs a {
    min-height: 54px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    align-items: center;
    justify-content: center;
    border-radius: 13px;
    font-size: 10px;
    line-height: 1;
    transition: color 0.16s ease, background 0.16s ease, transform 0.16s ease;
  }

  .mobile-tabs a.is-active {
    background: rgba(15, 115, 92, 0.09);
  }

  .mobile-tabs a.is-active::before {
    display: none;
  }

  .mobile-tabs a.is-active .mobile-tab-icon {
    transform: translateY(-1px) scale(1.08);
    stroke-width: 2.2;
  }

  .mobile-tabs a:active {
    transform: scale(0.94);
  }

  .home-hero {
    gap: 18px;
    padding-top: 20px;
  }

  .home-hero-copy .eyebrow {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    min-height: 25px;
    margin-bottom: 10px;
    padding: 5px 9px;
    border-radius: 999px;
    background: rgba(15, 115, 92, 0.09);
  }

  .home-hero-copy h1 {
    font-size: clamp(36px, 10vw, 42px);
    letter-spacing: -0.025em;
  }

  .home-hero-actions {
    gap: 9px;
  }

  .home-visual {
    min-height: 292px;
    border-radius: 17px;
    box-shadow: 0 5px 0 #dbe5de, 0 18px 36px rgba(16, 42, 34, 0.11);
  }

  .home-visual-copy {
    right: 10px;
    bottom: 10px;
    left: 10px;
    border-radius: 13px;
  }

  .workspace {
    margin-top: 14px;
  }

  .tool {
    padding: 15px;
    border-radius: 17px;
  }

  .train-section-title > span {
    font-size: 25px;
  }

  .forehand-v1-brief {
    padding: 15px;
    border-radius: 14px;
  }

  .upload-box {
    min-height: 150px;
    border-radius: 15px;
  }

  .top-account-panel:not(.is-logged-in) {
    border-radius: 17px;
    box-shadow: 0 5px 0 rgba(7, 58, 47, 0.3), 0 18px 36px rgba(16, 42, 34, 0.12);
  }

  .report-hero-v2,
  .report-truth-status,
  .coach-brief,
  .delivery-summary {
    border-radius: 15px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .primary,
  .primary-link,
  .account-open-button,
  .avatar-save-button,
  .mobile-tabs a,
  .mobile-tab-icon,
  .upload-box::before {
    transition: none;
  }
}

/* v189 cascade seal: keep the approved graphite / ivory / gold identity above legacy passes. */
:root {
  --ink: #252b2d;
  --muted: #6f7474;
  --line: rgba(37, 43, 45, 0.13);
  --court: #252b2d;
  --lime: #d7b76f;
  --paper: #fcfbf7;
  --panel: #ffffff;
  --app-bg: #f1efe9;
  --surface: #ffffff;
  --surface-soft: #f7f2e8;
  --text-strong: #252b2d;
  --text-soft: #6f7474;
  --brand: #b88a3e;
  --brand-deep: #252b2d;
  --accent: #d7b76f;
  --hairline: rgba(37, 43, 45, 0.13);
  --tactile-shadow: 0 4px 0 rgba(37, 43, 45, 0.2);
  --tactile-soft-shadow: 0 10px 28px rgba(37, 43, 45, 0.09);
}

html,
body {
  background-color: var(--app-bg);
}

body {
  background-image:
    radial-gradient(circle at 8% 0%, rgba(215, 183, 111, 0.13), transparent 27%),
    linear-gradient(180deg, #fcfbf7 0, var(--app-bg) 520px);
}

.topbar {
  border-bottom-color: rgba(37, 43, 45, 0.1);
  background: rgba(247, 242, 232, 0.95);
  box-shadow: 0 5px 20px rgba(37, 43, 45, 0.06);
}

.brand-mark {
  border-radius: 11px;
  background: #252b2d;
  box-shadow: 0 3px 0 rgba(37, 43, 45, 0.22);
}

.topbar a.is-active,
.language-toggle,
.eyebrow,
.home-hero-copy .eyebrow {
  color: #8f6429;
}

.topbar a.is-active {
  background: rgba(215, 183, 111, 0.16);
}

.language-toggle {
  border-color: rgba(184, 138, 62, 0.3);
  background: rgba(255, 255, 255, 0.78);
}

.primary,
.primary-link,
.account-open-button,
.avatar-save-button,
#analysisForm > button.primary[type="submit"] {
  background: #252b2d;
  color: #f7f2e8;
  box-shadow: var(--tactile-shadow);
}

.primary:not(:disabled):hover,
.primary-link:hover,
.account-open-button:hover,
.avatar-save-button:hover,
#analysisForm > button.primary[type="submit"]:not(:disabled):hover {
  background: #323a3c;
}

.home-hero-copy .eyebrow {
  border-color: rgba(184, 138, 62, 0.18);
  background: rgba(215, 183, 111, 0.15);
}

.home-hero-actions .text-link {
  border-color: rgba(37, 43, 45, 0.15);
  color: #252b2d;
  box-shadow: 0 3px 0 #dcd7cc;
}

.upload-box {
  border-color: rgba(184, 138, 62, 0.46);
  background:
    radial-gradient(circle at 50% 26%, rgba(215, 183, 111, 0.24), transparent 36%),
    #fcfbf7;
}

.upload-box:hover,
.upload-box:focus-within {
  border-color: #b88a3e;
  background:
    radial-gradient(circle at 50% 26%, rgba(215, 183, 111, 0.3), transparent 38%),
    #ffffff;
}

.upload-box::before {
  background-color: #252b2d;
  box-shadow: 0 4px 0 #121719, 0 10px 22px rgba(37, 43, 45, 0.18);
}

.report-hero-v2 {
  border-color: rgba(184, 138, 62, 0.24);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.97), rgba(247, 242, 232, 0.91)),
    linear-gradient(90deg, rgba(184, 138, 62, 0.055) 1px, transparent 1px),
    linear-gradient(0deg, rgba(184, 138, 62, 0.05) 1px, transparent 1px),
    #ffffff;
  background-size: auto, 38px 38px, 38px 38px, auto;
  box-shadow: 0 20px 44px rgba(37, 43, 45, 0.09);
}

.hero-status-row span {
  background: #252b2d;
  color: #d7b76f;
}

.hero-status-row em {
  border-color: rgba(184, 138, 62, 0.22);
  color: #8f6429;
}

.avatar-studio-preview {
  background: #f5f1e8;
}

@media (max-width: 760px) {
  .mobile-tabs {
    border-color: rgba(37, 43, 45, 0.11);
    background: rgba(252, 251, 247, 0.97);
    box-shadow: 0 -8px 30px rgba(37, 43, 45, 0.11);
  }

  .mobile-tabs a {
    color: #555d5e;
  }

  .mobile-tabs a.is-active {
    background: rgba(215, 183, 111, 0.19);
    color: #252b2d;
  }

  .mobile-tabs a.is-active::before {
    display: block;
    background: #b88a3e;
  }

  .home-visual {
    box-shadow: 0 5px 0 #dcd7cc, 0 18px 36px rgba(37, 43, 45, 0.11);
  }

  .top-account-panel:not(.is-logged-in) {
    box-shadow: 0 5px 0 rgba(37, 43, 45, 0.27), 0 18px 36px rgba(37, 43, 45, 0.12);
  }
}

.home-visual-copy,
.forehand-v1-brief {
  border-color: rgba(215, 183, 111, 0.22);
  background:
    radial-gradient(circle at 100% 0%, rgba(215, 183, 111, 0.12), transparent 34%),
    linear-gradient(145deg, #252b2d, #323a3c);
  color: #f7f2e8;
}

.home-visual-copy small,
.forehand-v1-brief .eyebrow,
.forehand-v1-brief em {
  color: #d7b76f;
}

.top-account-panel:not(.is-logged-in) {
  border-color: rgba(215, 183, 111, 0.24);
  background:
    radial-gradient(circle at 100% 100%, rgba(215, 183, 111, 0.12), transparent 34%),
    linear-gradient(145deg, #252b2d, #323a3c);
  color: #f7f2e8;
}

.top-account-panel:not(.is-logged-in) .account-copy span,
.top-account-panel:not(.is-logged-in) .account-copy p,
.top-account-panel:not(.is-logged-in) .account-invite-note {
  color: rgba(247, 242, 232, 0.76);
}

.top-account-panel:not(.is-logged-in) .account-invite-note strong,
.top-account-panel:not(.is-logged-in) .account-eyebrow,
.top-account-panel:not(.is-logged-in) .account-command b {
  color: #d7b76f;
}

/* Retest V1: explicit baseline linkage and phase-matched progress */
.retest-context {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 14px 16px;
  border: 1px solid rgba(184, 138, 62, 0.34);
  border-radius: 12px;
  background:
    radial-gradient(circle at 100% 0%, rgba(215, 183, 111, 0.18), transparent 42%),
    linear-gradient(145deg, #252b2d, #323a3c);
  color: #f7f2e8;
  box-shadow: 0 8px 24px rgba(37, 43, 45, 0.12);
}

.retest-context[hidden] {
  display: none;
}

.retest-context small,
.retest-context strong,
.retest-context p {
  display: block;
}

.retest-context small {
  color: #d7b76f;
  font-size: 11px;
  font-weight: 950;
  letter-spacing: 0.08em;
}

.retest-context strong {
  margin-top: 4px;
  font-size: 19px;
  line-height: 1.2;
}

.retest-context p {
  margin: 5px 0 0;
  color: rgba(247, 242, 232, 0.74);
  font-size: 13px;
  line-height: 1.45;
}

.retest-context button {
  min-height: 40px;
  padding: 9px 13px;
  border: 1px solid rgba(247, 242, 232, 0.25);
  border-radius: 9px;
  background: rgba(247, 242, 232, 0.08);
  color: #f7f2e8;
  font-weight: 900;
  cursor: pointer;
}

.is-retest-upload .upload-box {
  border-color: #b88a3e;
  box-shadow: 0 0 0 3px rgba(184, 138, 62, 0.12);
}

.retest-comparison {
  display: grid;
  gap: 13px;
  padding: 16px;
  border: 1px solid rgba(184, 138, 62, 0.24);
  border-radius: 12px;
  background:
    radial-gradient(circle at 100% 0%, rgba(215, 183, 111, 0.14), transparent 35%),
    #fcfbf7;
  box-shadow: 0 14px 32px rgba(37, 43, 45, 0.07);
}

.retest-comparison.status-clearly_improved,
.retest-comparison.status-slightly_improved {
  border-color: rgba(18, 107, 87, 0.3);
  background: linear-gradient(145deg, rgba(239, 248, 242, 0.98), #fcfbf7);
}

.retest-comparison.status-regressed {
  border-color: rgba(190, 88, 49, 0.32);
  background: linear-gradient(145deg, #fff7f1, #fcfbf7);
}

.retest-comparison-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: start;
}

.retest-comparison-head small,
.retest-comparison-head strong,
.retest-comparison-head p {
  display: block;
}

.retest-comparison-head small {
  color: #8f6429;
  font-size: 11px;
  font-weight: 950;
  letter-spacing: 0.04em;
}

.retest-comparison-head strong {
  margin-top: 4px;
  color: #252b2d;
  font-size: 26px;
  line-height: 1.08;
}

.retest-comparison-head p {
  max-width: 720px;
  margin: 7px 0 0;
  color: #687071;
  line-height: 1.45;
}

.retest-comparison-head > span {
  padding: 8px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 950;
  white-space: nowrap;
}

.retest-comparison-head > span.is-confirmed {
  background: #126b57;
  color: #ffffff;
}

.retest-comparison-head > span.is-pending {
  background: rgba(215, 183, 111, 0.2);
  color: #805920;
}

.retest-comparison-summary {
  display: grid;
  grid-template-columns: 1fr 1.35fr 1fr;
  gap: 8px;
}

.retest-comparison-summary article {
  min-width: 0;
  padding: 11px;
  border: 1px solid rgba(37, 43, 45, 0.1);
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.86);
}

.retest-comparison-summary small,
.retest-comparison-summary b {
  display: block;
}

.retest-comparison-summary small {
  color: #747b7c;
  font-size: 10px;
  font-weight: 900;
}

.retest-comparison-summary b {
  margin-top: 5px;
  color: #252b2d;
  font-size: 13px;
  line-height: 1.35;
}

.retest-frame-pairs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
}

.retest-frame-pairs > article {
  min-width: 0;
  display: grid;
  gap: 7px;
}

.retest-frame-pairs > article > strong {
  color: #545c5d;
  font-size: 11px;
}

.retest-frame-pairs > article > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 5px;
}

.retest-frame-pairs figure {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(37, 43, 45, 0.1);
  border-radius: 9px;
  background: #eef0eb;
}

.retest-frame-pairs img,
.profile-retest-thumbs img {
  width: 100%;
  aspect-ratio: 4 / 5;
  display: block;
  object-fit: cover;
}

.retest-frame-pairs figure > span,
.profile-retest-thumbs figure > span {
  aspect-ratio: 4 / 5;
  display: grid;
  place-items: center;
  color: #8a9091;
}

.retest-frame-pairs figcaption,
.profile-retest-thumbs figcaption {
  padding: 6px 7px;
  color: #5c6465;
  font-size: 9px;
  font-weight: 900;
  text-align: center;
}

.profile-retest-archive {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(184, 138, 62, 0.2);
  border-radius: 10px;
  background: linear-gradient(145deg, #fcfbf7, #f6f3eb);
}

.profile-retest-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.profile-retest-card {
  min-width: 0;
  display: grid;
  gap: 9px;
  padding: 11px;
  border: 1px solid rgba(37, 43, 45, 0.11);
  border-radius: 10px;
  background: #ffffff;
  color: #252b2d;
  text-decoration: none;
  transition: transform 160ms ease, box-shadow 160ms ease;
}

.profile-retest-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(37, 43, 45, 0.1);
}

.profile-retest-card-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
}

.profile-retest-card-head span,
.profile-retest-card-head b {
  font-size: 11px;
  line-height: 1.3;
}

.profile-retest-card-head b {
  color: #8f6429;
}

.profile-retest-thumbs {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 22px minmax(0, 1fr);
  gap: 5px;
  align-items: center;
}

.profile-retest-thumbs figure {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border-radius: 8px;
  background: #eef0eb;
}

.profile-retest-thumbs i {
  color: #b88a3e;
  font-style: normal;
  font-weight: 950;
  text-align: center;
}

.profile-retest-card > small {
  color: #6b7374;
  font-weight: 850;
}

.profile-retest-empty {
  padding: 20px;
  border: 1px dashed rgba(37, 43, 45, 0.18);
  border-radius: 9px;
  color: #747b7c;
  text-align: center;
}

.beta-retest-outcome-field {
  min-width: 0;
  display: grid;
  gap: 7px;
  margin: 0 0 11px;
  padding: 11px;
  border: 1px solid rgba(184, 138, 62, 0.24);
  border-radius: 9px;
  background: #fcfbf7;
}

.beta-retest-outcome-field legend {
  color: #252b2d;
  font-size: 11px;
  font-weight: 950;
}

.beta-retest-outcome-field > small {
  color: #747b7c;
  font-size: 9px;
}

.beta-retest-outcome-field > div {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 6px;
}

.beta-retest-outcome-field input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.beta-retest-outcome-field label {
  cursor: pointer;
}

.beta-retest-outcome-field span {
  min-height: 48px;
  display: grid;
  place-items: center;
  padding: 7px;
  border: 1px solid rgba(37, 43, 45, 0.12);
  border-radius: 8px;
  background: #ffffff;
  color: #252b2d;
  font-size: 10px;
  font-weight: 900;
  text-align: center;
}

.beta-retest-outcome-field label:hover span,
.beta-retest-outcome-field label.is-selected span {
  border-color: #b88a3e;
  background: #b88a3e;
  color: #ffffff;
}

@media (max-width: 760px) {
  .retest-context,
  .retest-comparison-head {
    grid-template-columns: 1fr;
  }

  .retest-context button {
    width: 100%;
  }

  .retest-comparison {
    padding: 13px;
  }

  .retest-comparison-head strong {
    font-size: 22px;
  }

  .retest-comparison-head > span {
    justify-self: start;
  }

  .retest-comparison-summary,
  .retest-frame-pairs,
  .profile-retest-list {
    grid-template-columns: 1fr;
  }

  .retest-frame-pairs > article > div {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .beta-retest-outcome-field > div {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .beta-retest-outcome-field label:last-child {
    grid-column: 1 / -1;
  }
}

/* v203 — a real app entry: authenticate before entering the product */
body.is-auth-boot main,
body.is-auth-boot .mobile-tabs,
body.is-auth-boot .topbar nav > a {
  visibility: hidden;
  opacity: 0;
}

.auth-value-list {
  display: grid;
  gap: 9px;
  margin: 16px 0 0;
  padding: 0;
  list-style: none;
}

.auth-value-list li {
  position: relative;
  padding-left: 24px;
  color: rgba(247, 242, 232, 0.83);
  font-size: 13px;
  font-weight: 750;
  line-height: 1.4;
}

.auth-value-list li::before {
  content: "";
  position: absolute;
  top: 0.48em;
  left: 2px;
  width: 10px;
  height: 5px;
  border-bottom: 2px solid #d7b76f;
  border-left: 2px solid #d7b76f;
  transform: rotate(-45deg);
}

.top-account-panel.is-logged-in .auth-value-list {
  display: none;
}

body.is-auth-entry {
  min-height: 100dvh;
  padding-bottom: 0;
  background:
    radial-gradient(circle at 12% 4%, rgba(215, 183, 111, 0.17), transparent 28rem),
    radial-gradient(circle at 92% 24%, rgba(18, 107, 87, 0.12), transparent 32rem),
    linear-gradient(145deg, #f7f4ec 0%, #fbfaf6 48%, #eef3ef 100%);
}

body.is-auth-entry::after {
  background: #f7f4ec;
}

body.is-auth-entry .topbar {
  border-bottom-color: rgba(37, 43, 45, 0.09);
  background: rgba(250, 248, 242, 0.88);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.72);
}

body.is-auth-entry .topbar nav > a {
  display: none !important;
}

body.is-auth-entry .mobile-tabs {
  display: none !important;
}

body.is-auth-entry[data-app-screen="my"] main {
  width: min(1120px, calc(100% - 40px));
  min-height: calc(100dvh - 73px);
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: center;
  gap: 14px;
  margin: 0 auto;
  padding: 34px 0 42px;
}

body.is-auth-entry main > [data-app-screen]:not(#account):not(.account-trust-links) {
  display: none !important;
}

body.is-auth-entry .top-account-panel {
  position: relative;
  width: min(1040px, 100%);
  min-height: 570px;
  grid-template-columns: minmax(0, 0.88fr) minmax(430px, 1.12fr);
  gap: 10px;
  align-items: stretch;
  margin: 0 auto;
  padding: 10px;
  overflow: hidden;
  border: 1px solid rgba(215, 183, 111, 0.27);
  border-radius: 24px;
  background:
    radial-gradient(circle at 8% 12%, rgba(215, 183, 111, 0.2), transparent 30%),
    radial-gradient(circle at 92% 92%, rgba(18, 107, 87, 0.28), transparent 34%),
    linear-gradient(145deg, #202628 0%, #2c3435 58%, #203d36 100%);
  box-shadow:
    0 2px 0 rgba(255, 255, 255, 0.65) inset,
    0 28px 70px rgba(37, 43, 45, 0.18);
}

body.is-auth-entry .top-account-panel::before {
  content: "A";
  position: absolute;
  left: -18px;
  bottom: -72px;
  color: rgba(215, 183, 111, 0.055);
  font-size: 310px;
  font-weight: 950;
  line-height: 1;
  pointer-events: none;
}

body.is-auth-entry .top-account-panel .account-copy {
  position: relative;
  z-index: 1;
  align-content: center;
  padding: clamp(24px, 4vw, 48px);
}

body.is-auth-entry .top-account-panel .account-copy > small {
  color: #d7b76f;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

body.is-auth-entry .top-account-panel .account-copy > strong {
  max-width: 13em;
  margin-top: 6px;
  color: #ffffff;
  font-size: clamp(32px, 4vw, 52px);
  line-height: 1.02;
  letter-spacing: -0.045em;
}

body.is-auth-entry .top-account-panel .account-copy > span {
  max-width: 31em;
  margin-top: 5px;
  color: rgba(247, 242, 232, 0.76);
  font-size: 14px;
  line-height: 1.65;
}

body.is-auth-entry .account-command {
  margin-top: 20px;
  padding-top: 16px;
  border-top-color: rgba(247, 242, 232, 0.14);
}

body.is-auth-entry .account-command b {
  color: #d7b76f;
  letter-spacing: 0.04em;
}

body.is-auth-entry .account-open-button,
body.is-auth-entry .auth-collapse-button {
  display: none !important;
}

body.is-auth-entry .top-account-panel .account-form {
  position: relative;
  z-index: 1;
  align-content: center;
  padding: clamp(20px, 3vw, 34px);
  border: 1px solid rgba(255, 255, 255, 0.78);
  border-radius: 17px;
  background:
    radial-gradient(circle at 100% 0%, rgba(215, 183, 111, 0.12), transparent 34%),
    rgba(253, 252, 248, 0.97);
  box-shadow: 0 18px 44px rgba(9, 18, 16, 0.22);
}

body.is-auth-entry .auth-form-head small {
  color: #252b2d;
  font-size: 17px;
  letter-spacing: -0.01em;
}

body.is-auth-entry .auth-mode-switch {
  gap: 5px;
  padding: 5px;
  border-color: rgba(37, 43, 45, 0.11);
  border-radius: 11px;
  background: #ecece7;
}

body.is-auth-entry .auth-mode-switch button {
  min-height: 46px;
  border-radius: 8px;
  color: #62696a;
}

body.is-auth-entry .auth-mode-switch button.is-active {
  color: #252b2d;
  box-shadow: 0 6px 18px rgba(37, 43, 45, 0.09);
}

  body.is-auth-entry .account-form input {
  min-height: 47px;
  border-color: rgba(37, 43, 45, 0.15);
  border-radius: 9px;
  background: #ffffff;
}

body.is-auth-entry .account-form input:focus {
  border-color: #b88a3e;
  box-shadow: 0 0 0 3px rgba(184, 138, 62, 0.13);
}

body.is-auth-entry .auth-actions {
  grid-template-columns: minmax(0, 1fr) auto;
}

body.is-auth-entry #loginButton {
  display: none !important;
}

body.is-auth-entry .auth-actions .primary {
  min-height: 48px;
  border: 1px solid #252b2d;
  border-radius: 9px;
  background: #252b2d;
  color: #ffffff;
  box-shadow: 0 4px 0 #111617, 0 12px 24px rgba(37, 43, 45, 0.15);
}

body.is-auth-entry .auth-actions .primary:hover {
  background: #126b57;
}

body.is-auth-entry .my-space {
  display: none !important;
}

body.is-auth-entry .account-trust-links {
  width: min(920px, calc(100% - 32px));
  grid-template-columns: auto minmax(0, 1fr);
  gap: 18px;
  margin: 0 auto;
  padding: 11px 14px;
  border-color: rgba(37, 43, 45, 0.09);
  border-radius: 12px;
  background: rgba(252, 251, 247, 0.78);
  box-shadow: none;
}

body.is-auth-entry .account-trust-copy strong {
  display: none;
}

body.is-auth-entry .account-trust-copy small {
  margin: 0;
  white-space: nowrap;
}

body.is-auth-entry .account-trust-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

body.is-auth-entry .account-trust-grid a {
  min-height: 38px;
  padding: 7px 9px;
  border-color: transparent;
  background: transparent;
}

@media (max-width: 760px) {
  body.is-auth-entry .topbar {
    padding: 10px 13px;
  }

  body.is-auth-entry .topbar .brand-lockup > div > span {
    display: block;
  }

  body.is-auth-entry[data-app-screen="my"] main {
    width: min(100% - 22px, 520px);
    min-height: auto;
    padding: 12px 0 calc(22px + env(safe-area-inset-bottom));
  }

  body.is-auth-entry .top-account-panel {
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    padding: 8px;
    border-radius: 20px;
  }

  body.is-auth-entry .top-account-panel::before {
    left: auto;
    right: -10px;
    bottom: auto;
    top: -18px;
    font-size: 170px;
  }

  body.is-auth-entry .top-account-panel .account-copy {
    padding: 18px 18px 12px;
  }

  body.is-auth-entry .top-account-panel .account-copy > small {
    font-size: 9px;
  }

  body.is-auth-entry .top-account-panel .account-copy > strong {
    max-width: none;
    font-size: clamp(29px, 8vw, 36px);
  }

  body.is-auth-entry .top-account-panel .account-copy > span {
    display: none;
  }

  body.is-auth-entry .auth-value-list {
    gap: 5px;
    margin-top: 10px;
  }

  body.is-auth-entry .auth-value-list li {
    font-size: 11px;
  }

  body.is-auth-entry .account-command {
    margin-top: 10px;
    padding-top: 10px;
  }

  body.is-auth-entry .top-account-panel .account-form {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    padding: 15px 13px;
    border-radius: 14px;
  }

  body.is-auth-entry .top-account-panel .account-form > * {
    grid-column: 1;
  }

  body.is-auth-entry .account-trust-links {
    width: calc(100% - 8px);
    grid-template-columns: 1fr;
    gap: 7px;
    padding: 10px;
  }

  body.is-auth-entry .account-trust-copy {
    display: none;
  }

  body.is-auth-entry .account-trust-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px;
  }

  body.is-auth-entry .account-trust-grid a {
    min-height: 36px;
    padding: 6px 8px;
    font-size: 10px;
  }
}

/* v205 — premium typography, searchable player identity, skins and Ace store */
body,
button,
input,
select,
textarea {
  font-family: "Avenir Next", "SF Pro Text", "PingFang SC", "Noto Sans CJK SC", "Microsoft YaHei", system-ui, sans-serif;
}

h1,
h2,
h3,
.hero h1,
.member-home-copy strong,
.member-home-snapshot-card strong,
.member-home-next-meta b,
.account-copy > strong {
  font-family: "Avenir Next", "SF Pro Display", "PingFang SC", "Noto Sans CJK SC", system-ui, sans-serif;
  font-weight: 750;
  letter-spacing: -0.032em;
}

.member-home-command::before {
  font-family: "Avenir Next", "SF Pro Display", system-ui, sans-serif;
}

.member-home-copy strong {
  max-width: 16ch;
  line-height: 1.04;
}

.member-home-snapshot-card strong {
  font-size: 29px;
  font-weight: 720;
}

.member-home-next-meta b {
  font-size: 22px;
  font-weight: 720;
}

.profile-public-id.is-founder {
  border-color: rgba(184, 138, 62, .34);
  background:
    radial-gradient(circle at 10% 0%, rgba(215, 183, 111, .2), transparent 38%),
    linear-gradient(115deg, #fbf7eb, #fff 62%);
}

.profile-public-id.is-founder > div:first-child small,
.profile-public-id.is-founder > div:first-child strong {
  color: #8a5d1d;
}

.profile-public-id-actions {
  display: flex !important;
  grid-template-columns: none !important;
  gap: 7px !important;
}

.profile-public-id-actions button {
  min-height: 37px;
  padding: 8px 11px;
  white-space: nowrap;
}

.profile-public-id-actions button:first-child {
  border-color: #b98b3f;
  background: #252b2d;
  color: #f1d48d;
}

.community-search-panel {
  display: grid;
  gap: 14px;
  margin: 12px 0;
  padding: 17px;
  border: 1px solid rgba(37, 43, 45, .1);
  border-radius: 14px;
  background:
    radial-gradient(circle at 100% 0%, rgba(215, 183, 111, .11), transparent 32%),
    #fff;
  box-shadow: 0 9px 24px rgba(37, 43, 45, .045);
}

.community-search-panel form {
  display: grid;
  gap: 8px;
}

.community-search-panel form > label {
  color: #727978;
  font-size: 10px;
  font-weight: 750;
}

.community-search-panel form > div {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
}

.community-search-panel input {
  min-width: 0;
  min-height: 45px;
  padding: 9px 42px 9px 13px;
  border-color: rgba(37, 43, 45, .14);
  border-radius: 9px;
  background: #fafaf7;
  font-weight: 700;
}

.community-search-panel input:focus {
  outline: 0;
  border-color: #b88a3e;
  box-shadow: 0 0 0 3px rgba(184, 138, 62, .12);
}

.community-search-panel form button[type="submit"] {
  min-width: 92px;
  min-height: 45px;
  padding: 9px 16px;
  border: 1px solid #252b2d;
  border-radius: 9px;
  background: #252b2d;
  color: #fff;
  font-size: 12px;
  font-weight: 800;
}

.community-search-clear {
  position: absolute;
  top: 50%;
  right: 110px;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  padding: 0;
  transform: translateY(-50%);
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #7a807f;
  font-size: 19px;
}

.community-search-results {
  display: grid;
  gap: 10px;
  padding-top: 13px;
  border-top: 1px solid rgba(37, 43, 45, .08);
}

.community-id-badge {
  width: fit-content;
  padding: 4px 7px;
  border-radius: 999px;
  background: #eef1ee;
  color: #4d5b57;
  font-size: 8px;
  font-style: normal;
  font-weight: 850;
  letter-spacing: .04em;
}

.community-id-badge.is-founder {
  border: 1px solid rgba(184, 138, 62, .27);
  background: #f8edd0;
  color: #8a5d1d;
}

.avatar-wardrobe-wallet {
  display: flex;
  align-items: center;
  gap: 9px;
}

.avatar-wardrobe-wallet > span {
  display: grid;
  justify-items: end;
  gap: 1px;
}

.avatar-wardrobe-wallet small {
  font-size: 8px;
}

.avatar-wardrobe-wallet strong {
  color: #9a6a23;
  font-size: 15px;
}

.avatar-wardrobe-wallet button {
  min-height: 36px;
  padding: 8px 12px;
  border: 1px solid #252b2d;
  border-radius: 8px;
  background: #252b2d;
  color: #f0d28a;
  font-size: 10px;
  font-weight: 850;
}

.avatar-skin-wardrobe {
  display: grid;
  gap: 11px;
  margin-top: 17px;
  padding-top: 16px;
  border-top: 1px solid rgba(37, 43, 45, .1);
}

.avatar-skin-wardrobe > div:first-child {
  display: grid;
  gap: 2px;
}

.avatar-skin-wardrobe > div:first-child > strong {
  color: #252b2d;
  font-size: 12px;
}

.avatar-skin-wardrobe > div:first-child > small {
  color: #767e7c;
  font-size: 9px;
  line-height: 1.45;
}

.avatar-skin-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
}

.avatar-skin-card {
  min-width: 0;
  display: grid;
  grid-template-rows: 76px auto auto;
  gap: 8px;
  padding: 8px;
  border: 1px solid rgba(37, 43, 45, .11);
  border-radius: 11px;
  background: #fff;
}

.avatar-skin-card.is-selected {
  border-color: #b88a3e;
  box-shadow: 0 0 0 2px rgba(184, 138, 62, .12);
}

.avatar-skin-card.is-locked {
  background: #f6f5f1;
}

.avatar-skin-scene {
  position: relative;
  overflow: hidden;
  border-radius: 7px;
  background: linear-gradient(145deg, var(--skin-start), var(--skin-middle) 55%, var(--skin-end));
}

.avatar-skin-scene::before {
  content: "";
  position: absolute;
  left: 12%;
  right: 12%;
  bottom: -28%;
  height: 63%;
  transform: perspective(80px) rotateX(42deg);
  border: 1px solid rgba(255, 255, 255, .82);
  background: var(--skin-court);
  opacity: .88;
}

.avatar-skin-scene i {
  position: absolute;
  top: 13px;
  left: 50%;
  width: 20px;
  height: 35px;
  transform: translateX(-50%);
  border-radius: 10px 10px 7px 7px;
  background: rgba(37, 43, 45, .8);
}

.avatar-skin-scene i::before {
  content: "";
  position: absolute;
  top: -7px;
  left: 6px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: rgba(37, 43, 45, .8);
}

.avatar-skin-card > div:nth-child(2) {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.avatar-skin-card > div:nth-child(2) strong,
.avatar-skin-card > div:nth-child(2) small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.avatar-skin-card > div:nth-child(2) strong {
  color: #28302e;
  font-size: 10px;
}

.avatar-skin-card > div:nth-child(2) small {
  color: #9a6a23;
  font-size: 9px;
  font-weight: 800;
}

.avatar-skin-card > button {
  min-height: 31px;
  padding: 6px;
  border: 1px solid rgba(37, 43, 45, .14);
  border-radius: 7px;
  background: #f8f7f2;
  color: #3d4744;
  font-size: 9px;
  font-weight: 800;
}

.avatar-skin-card.is-selected > button {
  background: #252b2d;
  color: #f0d28a;
}

.ace-store-dialog {
  width: min(760px, calc(100% - 30px));
  max-height: min(86vh, 760px);
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 20px;
  background: #f7f4ec;
  box-shadow: 0 30px 90px rgba(14, 22, 20, .3);
}

.ace-store-dialog::backdrop {
  background: rgba(12, 23, 20, .72);
  backdrop-filter: blur(5px);
}

.ace-store-shell {
  max-height: min(86vh, 760px);
  overflow: auto;
}

.ace-store-head {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 22px;
  background: #252b2d;
  color: #fff;
}

.ace-store-head small,
.ace-store-head h2 {
  display: block;
  margin: 0;
}

.ace-store-head small {
  color: #d7b76f;
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .12em;
}

.ace-store-head h2 {
  margin-top: 3px;
  font-size: 24px;
}

.ace-store-head button {
  width: 39px;
  height: 39px;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 50%;
  background: rgba(255, 255, 255, .06);
  color: #fff;
  font-size: 24px;
}

.ace-store-balance {
  min-height: 116px;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 2px;
  background:
    radial-gradient(circle at 50% -30%, rgba(215, 183, 111, .32), transparent 58%),
    linear-gradient(180deg, #303737, #252b2d);
  color: #fff;
}

.ace-store-balance small {
  color: rgba(255, 255, 255, .62);
  font-size: 10px;
}

.ace-store-balance strong {
  color: #eed18d;
  font-size: 34px;
  letter-spacing: -.03em;
}

.ace-store-content {
  display: grid;
  gap: 18px;
  padding: 20px;
}

.ace-store-packs,
.ace-store-earn,
.ace-store-activity {
  display: grid;
  gap: 12px;
}

.ace-store-section-head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 14px;
}

.ace-store-section-head > div {
  display: grid;
  gap: 2px;
}

.ace-store-section-head strong {
  color: #252b2d;
  font-size: 14px;
}

.ace-store-section-head small,
.ace-store-section-head > span {
  color: #7c817f;
  font-size: 9px;
}

.ace-store-section-head > span {
  padding: 5px 8px;
  border-radius: 999px;
  background: #eceae4;
}

.ace-pack-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.ace-pack-grid article {
  min-height: 126px;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 8px;
  padding: 14px;
  border: 1px solid rgba(184, 138, 62, .2);
  border-radius: 12px;
  background: linear-gradient(150deg, #fffdf7, #f1e5c9);
}

.ace-pack-grid small {
  color: #9a6a23;
  font-size: 8px;
  font-weight: 850;
  letter-spacing: .08em;
}

.ace-pack-grid strong {
  color: #252b2d;
  font-size: 22px;
}

.ace-pack-grid button {
  width: 100%;
  min-height: 32px;
  padding: 6px;
  border: 0;
  border-radius: 7px;
  background: rgba(37, 43, 45, .1);
  color: #737875;
  font-size: 8px;
  font-weight: 800;
}

.ace-earn-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.ace-earn-grid article {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 56px;
  padding: 10px 12px;
  border: 1px solid rgba(37, 43, 45, .09);
  border-radius: 10px;
  background: #fff;
}

.ace-earn-grid span {
  min-width: 54px;
  color: #9a6a23;
  font-size: 12px;
  font-weight: 850;
}

.ace-earn-grid strong {
  color: #424a47;
  font-size: 11px;
}

/* v287 · free Ace progress and activity */
.ace-earn-grid article > div {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.ace-earn-grid article small {
  color: #858b88;
  font-size: 9px;
  line-height: 1.35;
}

.ace-earn-grid article.is-complete {
  border-color: rgba(28, 107, 83, .2);
  background: linear-gradient(145deg, #fff, #eef5f1);
}

.ace-earn-grid article.is-complete small {
  color: #1c6b53;
  font-weight: 750;
}

.ace-activity-list {
  overflow: hidden;
  border: 1px solid rgba(37, 43, 45, .09);
  border-radius: 12px;
  background: #fff;
}

.ace-activity-list article {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-height: 56px;
  padding: 10px 13px;
}

.ace-activity-list article + article {
  border-top: 1px solid rgba(37, 43, 45, .07);
}

.ace-activity-list article > span {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.ace-activity-list strong {
  overflow: hidden;
  color: #343c39;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ace-activity-list small,
.ace-activity-empty {
  color: #858b88;
  font-size: 9px;
}

.ace-activity-list b {
  flex: 0 0 auto;
  font-size: 12px;
  white-space: nowrap;
}

.ace-activity-list b.is-credit {
  color: #1c6b53;
}

.ace-activity-list b.is-debit {
  color: #8b5a42;
}

.ace-activity-empty {
  margin: 0;
  padding: 14px;
  border-radius: 10px;
  background: #f4f2ec;
  line-height: 1.55;
}

.ace-store-safety {
  margin: 0;
  padding: 11px 13px;
  border-radius: 9px;
  background: #e9efeb;
  color: #5e6b67;
  font-size: 9px;
  line-height: 1.55;
}

.ace-store-return {
  min-height: 42px;
  border: 1px solid #252b2d;
  border-radius: 9px;
  background: #252b2d;
  color: #fff;
  font-weight: 850;
}

@media (max-width: 760px) {
  .member-home-copy strong {
    font-size: clamp(30px, 8.2vw, 38px);
    line-height: 1.06;
  }

  .profile-public-id {
    grid-template-columns: minmax(0, 1fr);
    gap: 11px;
  }

  .profile-public-id-actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
  }

  .profile-public-id.is-founder span,
  .profile-public-id.is-vanity span {
    display: block;
    margin-top: 2px;
    color: #8a6a32;
    font-size: 9px;
    font-weight: 760;
    line-height: 1.35;
  }

  .community-search-panel {
    padding: 13px;
    border-radius: 12px;
  }

  .community-search-panel form > div {
    grid-template-columns: minmax(0, 1fr) 78px;
  }

  .community-search-panel form button[type="submit"] {
    min-width: 0;
    padding: 8px;
  }

  .community-search-clear {
    right: 86px;
  }

  .avatar-control-head {
    align-items: flex-start;
  }

  .avatar-wardrobe-wallet {
    align-items: flex-end;
    flex-direction: column;
    gap: 5px;
  }

  .avatar-skin-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .avatar-skin-card {
    grid-template-rows: 72px auto auto;
  }

  .ace-store-dialog {
    width: calc(100% - 18px);
    max-height: calc(100dvh - 24px);
    border-radius: 17px;
  }

  .ace-store-shell {
    max-height: calc(100dvh - 24px);
  }

  .ace-store-content {
    gap: 16px;
    padding: 15px;
  }

  .ace-pack-grid {
    grid-template-columns: 1fr;
  }

  .ace-pack-grid article {
    min-height: 90px;
    grid-template-columns: 1fr auto;
    justify-items: start;
    text-align: left;
  }

  .ace-pack-grid article small,
  .ace-pack-grid article button {
    grid-column: 1 / -1;
  }

  .ace-pack-grid article button {
    justify-self: stretch;
  }

  .ace-earn-grid {
    grid-template-columns: 1fr;
  }
}

/* v206 — trusted progress story, evidence-first reports and unified athletic typography */
:root {
  --font-ui: Inter, "SF Pro Text", "PingFang SC", "Noto Sans SC", "Microsoft YaHei", system-ui, -apple-system, sans-serif;
  --font-display: "Avenir Next", "SF Pro Display", "PingFang SC", "Noto Sans SC", "Microsoft YaHei", system-ui, -apple-system, sans-serif;
}

body,
button,
input,
select,
textarea {
  font-family: var(--font-ui);
}

h1,
h2,
h3,
.member-home-copy strong,
.member-home-snapshot-card strong,
.member-home-next-meta b,
.retest-comparison-head strong,
.report-primary-evidence-head strong {
  font-family: var(--font-display);
  font-variation-settings: "wght" 760;
}

.member-home-copy strong {
  max-width: 16ch;
  font-weight: 780;
  line-height: 1.02;
  letter-spacing: -.042em;
}

.member-home-command {
  grid-template-columns: minmax(0, 1.35fr) minmax(210px, .65fr);
}

.member-home-guide {
  position: relative;
  z-index: 1;
  min-height: 244px;
  align-self: stretch;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 17px;
  background:
    radial-gradient(circle at 50% 22%, rgba(255, 255, 255, .15), transparent 41%),
    rgba(255, 255, 255, .045);
  box-shadow: inset 0 1px rgba(255, 255, 255, .07), 0 18px 36px rgba(0, 0, 0, .14);
}

.member-home-avatar {
  position: absolute;
  inset: -22px 0 24px;
  display: grid;
  place-items: center;
  animation: member-guide-breathe 5.8s ease-in-out infinite;
}

.member-home-avatar .player-avatar-art {
  width: min(100%, 196px);
  height: 100%;
  display: block;
}

.member-home-progress-pill {
  position: absolute;
  right: 10px;
  bottom: 10px;
  left: 10px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 4px 10px;
  padding: 9px 11px;
  border: 1px solid rgba(255, 255, 255, .15);
  border-radius: 11px;
  background: rgba(13, 34, 31, .88);
  color: #fff;
  backdrop-filter: blur(16px);
}

.member-home-progress-pill span {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}

.member-home-progress-pill small {
  color: rgba(255, 255, 255, .68);
  font-size: 8px;
  font-weight: 850;
}

.member-home-progress-pill strong {
  color: #e4c47f;
  font-size: 15px;
  line-height: 1;
}

.member-home-progress-pill em {
  color: rgba(255, 255, 255, .58);
  font-size: 8px;
  font-style: normal;
  font-weight: 800;
}

.member-home-progress-pill > i {
  grid-column: 1 / -1;
  height: 3px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255, 255, 255, .13);
}

.member-home-progress-pill > i > b {
  width: var(--progress);
  height: 100%;
  display: block;
  border-radius: inherit;
  background: linear-gradient(90deg, #b98939, #ecd28e);
  transition: width .45s ease;
}

.member-home-progress-story {
  min-height: 168px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(230px, 330px);
  align-items: center;
  gap: 22px;
  padding: 21px 23px;
  border: 1px solid rgba(19, 82, 67, .15);
  border-radius: 16px;
  background:
    radial-gradient(circle at 100% 0%, rgba(199, 150, 62, .14), transparent 35%),
    linear-gradient(130deg, #f2f8f4, #fffdf7);
  box-shadow: 0 10px 26px rgba(18, 43, 38, .055);
}

.member-home-progress-story.is-confirmed {
  border-color: rgba(18, 107, 87, .28);
}

.member-home-progress-story-copy {
  min-width: 0;
  display: grid;
  gap: 7px;
}

.member-home-progress-story-copy > small {
  color: #9b6a24;
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.member-home-progress-story-copy > strong {
  color: #173b33;
  font-family: var(--font-display);
  font-size: clamp(22px, 3vw, 32px);
  font-weight: 780;
  line-height: 1.08;
  letter-spacing: -.025em;
}

.member-home-progress-story-copy > p {
  margin: 0;
  color: #68726e;
  font-size: 11px;
}

.member-home-progress-story-copy > p b {
  margin-right: 8px;
  color: #2f4c44;
}

.member-home-progress-story-copy > div {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.member-home-progress-story-copy > div span {
  display: grid;
  gap: 2px;
  padding: 7px 9px;
  border-radius: 8px;
  background: rgba(255, 255, 255, .75);
}

.member-home-progress-story-copy span small {
  color: #8a918e;
  font-size: 8px;
}

.member-home-progress-story-copy span b {
  color: #26433b;
  font-size: 10px;
}

.member-home-progress-story-copy > a {
  width: max-content;
  color: #17624f;
  font-size: 10px;
  font-weight: 900;
  text-decoration: none;
}

.member-home-progress-frames {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 20px minmax(0, 1fr);
  align-items: center;
  gap: 7px;
}

.member-home-progress-frames figure {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(23, 59, 51, .12);
  border-radius: 10px;
  background: #e5ede8;
}

.member-home-progress-frames img,
.member-home-progress-frames figure > span {
  width: 100%;
  aspect-ratio: 4 / 3;
  display: grid;
  place-items: center;
  object-fit: cover;
}

.member-home-progress-frames figcaption {
  padding: 5px;
  color: #60706b;
  font-size: 8px;
  font-weight: 850;
  text-align: center;
}

.member-home-progress-frames > i {
  color: #b68131;
  font-style: normal;
  font-weight: 950;
  text-align: center;
}

.member-home-progress-mark {
  display: grid;
  grid-template-columns: auto minmax(70px, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 22px;
}

.member-home-progress-mark span {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(20, 90, 72, .18);
  border-radius: 50%;
  background: #fff;
  color: #1a654f;
  font-size: 10px;
  font-weight: 950;
}

.member-home-progress-mark i {
  height: 2px;
  background: repeating-linear-gradient(90deg, #c79a4d 0 8px, transparent 8px 13px);
}

.member-home-snapshot {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.retest-progress-verdict {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(150px, .34fr);
  overflow: hidden;
  border: 1px solid rgba(37, 43, 45, .09);
  border-radius: 11px;
  background: #fff;
}

.retest-progress-verdict > div {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 4px;
  padding: 15px;
}

.retest-progress-verdict > div + div {
  border-left: 1px solid rgba(37, 43, 45, .09);
}

.retest-progress-verdict small {
  color: #7d8582;
  font-size: 9px;
  font-weight: 900;
}

.retest-progress-verdict strong {
  color: #173b33;
  font-family: var(--font-display);
  font-size: 23px;
  font-weight: 780;
  line-height: 1;
}

.retest-progress-verdict span {
  color: #6a7370;
  font-size: 10px;
  line-height: 1.35;
}

.retest-progress-verdict.is-confirmed {
  background: linear-gradient(120deg, #eff8f2, #fff);
}

.retest-progress-delta strong {
  color: #a36d1f;
  font-size: 31px;
}

.report-primary-evidence {
  display: grid;
  gap: 14px;
  padding: 17px;
  border: 1px solid rgba(23, 78, 65, .14);
  border-radius: 13px;
  background: linear-gradient(145deg, #f8fbf9, #fff);
  box-shadow: 0 12px 28px rgba(28, 54, 48, .055);
}

.report-primary-evidence-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 16px;
}

.report-primary-evidence-head small,
.report-primary-evidence-head strong,
.report-primary-evidence-head p {
  display: block;
}

.report-primary-evidence-head small {
  color: #98702f;
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.report-primary-evidence-head strong {
  margin-top: 4px;
  color: #25302d;
  font-size: 24px;
  font-weight: 780;
  letter-spacing: -.025em;
}

.report-primary-evidence-head p {
  max-width: 660px;
  margin: 5px 0 0;
  color: #6e7774;
  font-size: 10px;
  line-height: 1.5;
}

.report-primary-evidence-head > span {
  padding: 7px 9px;
  border-radius: 999px;
  background: #e8f1ec;
  color: #235b4c;
  font-size: 9px;
  font-weight: 900;
  white-space: nowrap;
}

.report-primary-evidence-body {
  display: grid;
  grid-template-columns: minmax(260px, 1.05fr) minmax(270px, .95fr);
  gap: 12px;
}

.report-primary-frames {
  min-width: 0;
  display: block;
}

.report-primary-frames figure {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(37, 43, 45, .1);
  border-radius: 9px;
  background: #e9eeea;
}

.report-primary-frame-visual {
  min-height: 260px;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: #18231f;
}

.report-primary-frames img,
.report-primary-frames canvas {
  width: 100%;
  height: auto;
  max-height: 520px;
  display: block;
  object-fit: contain;
}

.report-primary-frames figcaption {
  display: grid;
  gap: 2px;
  padding: 9px 11px;
  color: #5f6966;
  text-align: left;
}

.report-primary-frames figcaption strong,
.report-primary-frames figcaption span {
  display: block;
}

.report-primary-frames figcaption strong {
  color: #25302d;
  font-size: 10px;
  font-weight: 900;
}

.report-primary-frames figcaption span {
  color: #707975;
  font-size: 8px;
  font-weight: 750;
  line-height: 1.4;
}

.report-primary-frame-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
  padding: 0 9px 9px;
}

.report-primary-frame-actions button {
  min-height: 34px;
  padding: 6px 8px;
  border: 1px solid rgba(23, 78, 65, .2);
  border-radius: 6px;
  background: #fff;
  color: #235b4c;
  font: inherit;
  font-size: 8px;
  font-weight: 900;
  cursor: pointer;
}

.report-primary-frame-actions button[aria-pressed="true"] {
  border-color: #235b4c;
  background: #235b4c;
  color: #fff;
}

.report-primary-frame-actions button:disabled {
  border-color: rgba(37, 43, 45, .08);
  background: #eef0ed;
  color: #929996;
  cursor: not-allowed;
}

.report-primary-frame-empty {
  grid-column: 1 / -1;
  min-height: 150px;
  display: grid;
  place-items: center;
  padding: 22px;
  border: 1px dashed rgba(37, 43, 45, .16);
  border-radius: 10px;
  color: #77807d;
  font-size: 10px;
  line-height: 1.5;
  text-align: center;
}

.report-primary-findings {
  display: grid;
  gap: 7px;
}

.report-primary-findings article {
  display: grid;
  align-content: center;
  gap: 3px;
  padding: 10px 12px;
  border: 1px solid rgba(37, 43, 45, .09);
  border-radius: 9px;
  background: #fff;
}

.report-primary-findings article.is-ai {
  border-left: 3px solid #b88a3e;
}

.report-primary-findings article.is-target {
  border-left: 3px solid #235b4c;
  background: #f7faf8;
}

.report-primary-findings article.is-coach.is-confirmed {
  border-left: 3px solid #126b57;
  background: #f1f8f4;
}

.report-primary-findings article.is-coach.is-pending {
  border-left: 3px solid #a2aaa6;
}

.report-primary-findings small {
  color: #7b8380;
  font-size: 8px;
  font-weight: 950;
  letter-spacing: .04em;
}

.report-primary-findings strong {
  color: #2f3936;
  font-size: 10px;
  line-height: 1.4;
}

.report-primary-findings span {
  color: #707975;
  font-size: 9px;
  line-height: 1.45;
}

.processing-coach-guide {
  width: max-content;
  max-width: 100%;
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 12px;
  padding: 6px 10px 6px 6px;
  border: 1px solid rgba(215, 183, 111, .28);
  border-radius: 999px;
  background: rgba(255, 255, 255, .08);
}

.processing-coach-guide > div {
  width: 44px;
  height: 44px;
  overflow: hidden;
  border-radius: 50%;
}

.processing-coach-guide .player-avatar-art {
  width: 100%;
  height: 100%;
  display: block;
  transform: scale(1.55) translateY(7%);
}

.processing-coach-guide > span {
  color: rgba(255, 255, 255, .78);
  font-size: 9px;
  font-weight: 850;
}

@keyframes member-guide-breathe {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}

@media (max-width: 720px) {
  .member-home-command {
    grid-template-columns: minmax(0, 1fr) 116px;
  }

  .member-home-guide {
    min-height: 170px;
    border-radius: 13px;
  }

  .member-home-avatar {
    inset: -12px -5px 34px;
  }

  .member-home-progress-pill {
    right: 5px;
    bottom: 5px;
    left: 5px;
    padding: 7px;
    border-radius: 8px;
  }

  .member-home-progress-pill small,
  .member-home-progress-pill em {
    font-size: 6px;
  }

  .member-home-progress-pill strong {
    font-size: 12px;
  }

  .member-home-progress-story {
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
    padding: 17px;
    border-radius: 14px;
  }

  .member-home-progress-story-copy > strong {
    font-size: 24px;
  }

  .member-home-progress-frames {
    max-width: 330px;
  }

  .member-home-progress-mark {
    padding: 10px 4px 2px;
  }

  .member-home-snapshot {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .member-home-snapshot-card {
    min-height: 118px;
    padding: 13px 11px;
  }

  .member-home-snapshot-card strong {
    font-size: 24px;
  }

  .retest-progress-verdict,
  .report-primary-evidence-body {
    grid-template-columns: minmax(0, 1fr);
  }

  .retest-progress-verdict > div + div {
    border-top: 1px solid rgba(37, 43, 45, .09);
    border-left: 0;
  }

  .report-primary-evidence {
    padding: 13px;
  }

  .report-primary-evidence-head {
    display: grid;
  }

  .report-primary-evidence-head > span {
    width: max-content;
  }

  .report-primary-evidence-head strong {
    font-size: 21px;
  }

  .report-primary-frame-visual {
    min-height: 210px;
  }

  .report-primary-frame-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .report-primary-frame-actions button:last-child {
    grid-column: 1 / -1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .member-home-avatar {
    animation: none;
  }

  .member-home-progress-pill > i > b {
    transition: none;
  }
}

/* v207 — brand system, character continuity, and app-grade mobile finish */
:root {
  --v207-graphite: #252b2d;
  --v207-court: #0f5f4e;
  --v207-court-deep: #12312b;
  --v207-gold: #c39745;
  --v207-gold-soft: #e6cf99;
  --v207-cream: #f7f3e9;
  --v207-paper: #fffdf8;
  --v207-line: rgba(37, 43, 45, .1);
  --v207-shadow: 0 18px 48px rgba(31, 42, 39, .1);
  --v207-display: "Avenir Next", "SF Pro Display", "PingFang SC", "Noto Sans CJK SC", sans-serif;
  --v207-body: Inter, "SF Pro Text", "PingFang SC", "Noto Sans CJK SC", sans-serif;
}

html {
  background: #eeeae0;
}

body {
  font-family: var(--v207-body);
  background:
    linear-gradient(90deg, transparent calc(50% - .5px), rgba(15, 95, 78, .025) 50%, transparent calc(50% + .5px)),
    radial-gradient(circle at 12% 8%, rgba(195, 151, 69, .07), transparent 27%),
    linear-gradient(180deg, #fbfaf5 0%, #f4f1e8 100%);
  color: var(--v207-graphite);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
.section-title > span,
.member-home-copy > strong,
.home-hero h1,
.community-hero h1,
.profile-command-copy > strong {
  font-family: var(--v207-display);
  font-weight: 720;
  letter-spacing: -.035em;
}

.topbar {
  border-bottom-color: rgba(37, 43, 45, .09);
  background: rgba(250, 248, 241, .9);
  box-shadow: 0 8px 26px rgba(37, 43, 45, .045);
  backdrop-filter: blur(22px) saturate(1.25);
}

.brand-mark {
  border-radius: 11px;
  box-shadow: 0 7px 0 rgba(37, 43, 45, .12), 0 14px 26px rgba(22, 38, 34, .12);
}

.brand-title strong {
  font-family: var(--v207-display);
  font-weight: 710;
  letter-spacing: -.025em;
}

.brand-english {
  color: #9a7739;
  font-size: 9px;
  letter-spacing: .12em;
}

.topbar a,
.language-toggle {
  font-family: var(--v207-display);
  letter-spacing: -.01em;
}

main > [data-app-screen].is-active:not([hidden]) {
  animation: v207-screen-arrive .34s cubic-bezier(.2, .8, .2, 1) both;
}

@keyframes v207-screen-arrive {
  from {
    opacity: .5;
    transform: translateY(7px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

.workspace {
  gap: 24px;
}

.tool,
.result,
.library {
  border-color: var(--v207-line);
  border-radius: 18px;
  background: rgba(255, 253, 248, .95);
  box-shadow: var(--v207-shadow);
}

.train-section-title {
  padding: 2px 2px 14px;
}

.train-section-title > span {
  font-size: 22px;
}

.forehand-v1-brief {
  gap: 14px;
  overflow: hidden;
  padding: 14px;
  border-color: rgba(230, 207, 153, .19);
  border-radius: 16px;
  background:
    radial-gradient(circle at 100% 0%, rgba(195, 151, 69, .2), transparent 34%),
    linear-gradient(145deg, #163b33 0%, #26302f 78%);
  box-shadow: inset 0 1px rgba(255, 255, 255, .05);
}

.train-coach-companion {
  position: relative;
  min-height: 102px;
  display: grid;
  grid-template-columns: 78px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  overflow: hidden;
  padding: 12px 14px 12px 10px;
  border: 1px solid rgba(230, 207, 153, .18);
  border-radius: 12px;
  background:
    linear-gradient(100deg, rgba(255, 255, 255, .08), rgba(255, 255, 255, .025)),
    rgba(7, 24, 21, .18);
}

.train-coach-companion[hidden] {
  display: none !important;
}

.train-coach-companion::after {
  content: "";
  position: absolute;
  right: -36px;
  bottom: -52px;
  width: 128px;
  height: 128px;
  border: 1px solid rgba(230, 207, 153, .12);
  border-radius: 50%;
}

.train-coach-avatar {
  width: 78px;
  height: 78px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 10px;
  background: linear-gradient(145deg, #ecf4ef, #dbe8e1);
}

.train-coach-avatar .player-avatar-art {
  width: 100%;
  height: 100%;
}

.train-coach-companion > div:nth-child(2) {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.train-coach-companion small,
.ace-store-companion small,
.profile-public-id-copy > em {
  color: var(--v207-gold-soft);
  font-size: 8px;
  font-style: normal;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.train-coach-companion strong {
  color: #fff;
  font-family: var(--v207-display);
  font-size: 15px;
  line-height: 1.22;
}

.train-coach-companion p {
  max-width: 40ch;
  margin: 0;
  color: rgba(255, 255, 255, .65);
  font-size: 9px;
  line-height: 1.45;
}

.train-coach-companion > span {
  position: relative;
  z-index: 1;
  align-self: start;
  color: rgba(230, 207, 153, .62);
  font-family: var(--v207-display);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .12em;
}

.stroke-mode-options label,
.capture-essentials > span {
  border-radius: 9px;
}

.upload-box {
  border-radius: 15px;
  transition: border-color .2s ease, background .2s ease, transform .2s ease;
}

.upload-box:active {
  transform: scale(.992);
}

.profile-public-id {
  grid-template-columns: 78px minmax(0, 1fr) auto;
  gap: 14px;
  min-height: 112px;
  overflow: hidden;
  padding: 13px;
  border-color: rgba(37, 43, 45, .1);
  border-radius: 16px;
  background:
    radial-gradient(circle at 0% 0%, rgba(195, 151, 69, .12), transparent 38%),
    linear-gradient(120deg, #f8f5eb, #fffdf8 68%);
  box-shadow: 0 12px 30px rgba(37, 43, 45, .06);
}

.profile-public-id > div {
  min-width: 0;
}

.profile-public-id-avatar {
  width: 78px;
  height: 86px;
  display: block !important;
  overflow: hidden;
  border: 1px solid rgba(15, 95, 78, .12);
  border-radius: 11px;
  background: linear-gradient(145deg, #edf4ef, #dce9e2);
  isolation: isolate;
}

.profile-public-id-avatar .player-avatar-art {
  width: 100%;
  height: 100%;
  display: block;
}

.profile-public-id-avatar .avatar-portrait {
  overflow: hidden;
}

.profile-public-id-copy {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) !important;
  align-content: center;
  gap: 3px 10px !important;
}

.profile-public-id-copy > em {
  grid-column: 1 / -1;
  color: #957036;
}

.profile-public-id-copy > span {
  grid-column: 1 / -1;
  max-width: 44ch;
}

.profile-public-id.is-founder > .profile-public-id-copy small,
.profile-public-id.is-founder > .profile-public-id-copy strong {
  color: #8a5d1d;
}

.profile-public-id-actions {
  align-content: center;
}

.community-account-strip {
  grid-template-columns: minmax(205px, 1.4fr) repeat(2, minmax(76px, .55fr)) minmax(110px, .7fr) auto;
  overflow: hidden;
  border: 1px solid var(--v207-line);
  border-radius: 16px;
  background: rgba(255, 253, 248, .9);
  box-shadow: 0 12px 32px rgba(37, 43, 45, .055);
}

.community-account-strip > .community-account-identity {
  min-width: 0;
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 9px;
  border-right: 1px solid var(--v207-line);
}

.community-account-avatar {
  width: 64px;
  height: 70px;
  overflow: hidden;
  border-radius: 10px;
  background: linear-gradient(145deg, #eef5ef, #dce9e2);
}

.community-account-avatar .player-avatar-art {
  width: 100%;
  height: 100%;
}

.community-account-identity > .community-account-id {
  grid-column: auto;
  justify-self: stretch;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

.community-account-id strong {
  overflow: hidden;
  color: var(--v207-court);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 16px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.community-account-strip > div:not(.community-account-identity) {
  align-content: center;
  border-right: 1px solid var(--v207-line);
}

.community-account-strip > .community-account-balance {
  grid-column: auto;
  min-height: 100%;
  display: grid;
  align-content: center;
  gap: 4px;
  margin: 0;
  padding: 11px 13px;
  border-width: 0 1px 0 0;
  border-color: var(--v207-line);
  border-radius: 0;
  background: linear-gradient(145deg, #faf4e3, #fffdf8);
  text-align: left;
}

.community-account-balance small {
  color: #8f7953;
}

.community-account-balance strong {
  color: #9b6e25;
  font-size: 19px;
}

.community-account-strip > button[data-community-visibility] {
  margin: 10px;
}

.community-search-panel,
.community-feed,
.community-directory,
.community-groups {
  border-radius: 16px;
}

.ace-store-content {
  background:
    linear-gradient(90deg, transparent calc(50% - .5px), rgba(15, 95, 78, .025) 50%, transparent calc(50% + .5px)),
    #f7f4ec;
}

.ace-store-companion {
  min-height: 118px;
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 16px;
  align-items: center;
  overflow: hidden;
  padding: 13px 16px 13px 12px;
  border: 1px solid rgba(195, 151, 69, .2);
  border-radius: 14px;
  background:
    radial-gradient(circle at 100% 0%, rgba(195, 151, 69, .18), transparent 40%),
    linear-gradient(135deg, #193a33, #293130);
}

.ace-store-companion-avatar {
  width: 92px;
  height: 92px;
  overflow: hidden;
  border-radius: 11px;
  background: linear-gradient(145deg, #eef5ef, #dce9e2);
}

.ace-store-companion-avatar .player-avatar-art {
  width: 100%;
  height: 100%;
}

.ace-store-companion > div:last-child {
  min-width: 0;
  display: grid;
  gap: 5px;
}

.ace-store-companion strong {
  max-width: 25ch;
  color: #fff;
  font-family: var(--v207-display);
  font-size: 19px;
  line-height: 1.15;
}

.ace-store-companion p {
  max-width: 54ch;
  margin: 0;
  color: rgba(255, 255, 255, .65);
  font-size: 10px;
  line-height: 1.5;
}

.ace-pack-grid article,
.ace-earn-grid article {
  border-radius: 12px;
  box-shadow: 0 8px 22px rgba(37, 43, 45, .045);
}

@media (max-width: 760px) {
  body {
    background:
      radial-gradient(circle at 0% 0%, rgba(195, 151, 69, .08), transparent 28%),
      linear-gradient(180deg, #fbfaf5 0%, #f3f0e7 100%);
  }

  main {
    width: min(100% - 24px, 620px);
  }

  .topbar {
    min-height: 64px;
    padding: 10px 13px;
  }

  .brand-mark {
    width: 40px;
  }

  .brand-title strong {
    font-size: 17px;
  }

  .brand-copy > span {
    display: none;
  }

  .mobile-tabs {
    min-height: 74px;
    padding: 7px 8px calc(7px + env(safe-area-inset-bottom));
    border-top: 1px solid rgba(37, 43, 45, .08);
    background: rgba(255, 253, 248, .94);
    box-shadow: 0 -12px 34px rgba(37, 43, 45, .1);
    backdrop-filter: blur(22px) saturate(1.25);
  }

  .mobile-tabs a {
    min-height: 52px;
    border-radius: 14px;
    font-family: var(--v207-display);
    font-weight: 760;
  }

  .mobile-tabs a.is-active {
    background: linear-gradient(145deg, rgba(230, 207, 153, .34), rgba(195, 151, 69, .11));
    color: var(--v207-graphite);
  }

  .tool,
  .result,
  .library {
    border-radius: 16px;
    box-shadow: 0 14px 34px rgba(37, 43, 45, .075);
  }

  .train-section-title > span {
    font-size: 20px;
  }

  .forehand-v1-brief {
    padding: 12px;
    border-radius: 15px;
  }

  .train-coach-companion {
    grid-template-columns: 66px minmax(0, 1fr);
    min-height: 94px;
    gap: 11px;
    padding: 10px;
  }

  .train-coach-avatar {
    width: 66px;
    height: 72px;
  }

  .train-coach-companion > span {
    display: none;
  }

  .train-coach-companion strong {
    font-size: 14px;
  }

  .train-coach-companion p {
    font-size: 8px;
  }

  .profile-public-id {
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 11px;
    padding: 11px;
  }

  .profile-public-id-avatar {
    width: 72px;
    height: 82px;
  }

  .profile-public-id-copy strong {
    font-size: 14px;
  }

  .profile-public-id-actions {
    grid-column: 1 / -1;
    width: 100%;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .profile-public-id-actions button[data-open-ace-store] {
    grid-column: 1 / -1;
  }

  .profile-public-id-actions button {
    min-height: 42px;
  }

  .community-account-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
  }

  .community-account-strip > .community-account-identity {
    grid-column: 1 / -1;
    grid-template-columns: 68px minmax(0, 1fr);
    min-height: 84px;
    padding: 8px 11px;
    border-right: 0;
    border-bottom: 1px solid var(--v207-line);
  }

  .community-account-avatar {
    width: 68px;
    height: 68px;
  }

  .community-account-strip > div:not(.community-account-identity),
  .community-account-strip > .community-account-balance {
    min-height: 72px;
    border-bottom: 1px solid var(--v207-line);
  }

  .community-account-strip > div:not(.community-account-identity) {
    padding: 10px 12px;
  }

  .community-account-strip > .community-account-balance {
    grid-column: auto;
    border-right: 0;
    padding: 10px 12px;
  }

  .community-account-strip > button[data-community-visibility] {
    grid-column: 1 / -1;
    min-height: 40px;
    margin: 9px;
  }

  .community-search-panel {
    padding: 14px;
  }

  .ace-store-dialog {
    width: calc(100% - 18px);
    max-height: 90vh;
    border-radius: 18px;
  }

  .ace-store-shell {
    max-height: 90vh;
  }

  .ace-store-content {
    padding: 14px;
  }

  .ace-store-companion {
    grid-template-columns: 76px minmax(0, 1fr);
    min-height: 104px;
    gap: 12px;
    padding: 11px;
  }

  .ace-store-companion-avatar {
    width: 76px;
    height: 82px;
  }

  .ace-store-companion strong {
    font-size: 16px;
  }

  .ace-store-companion p {
    font-size: 9px;
  }
}

@media (prefers-reduced-motion: reduce) {
  main > [data-app-screen].is-active:not([hidden]) {
    animation: none;
  }
}

/* v208 · player relationship loop */
.community-profile-editor {
  overflow: hidden;
  border: 1px solid var(--v207-line, rgba(22, 36, 34, .12));
  border-radius: 14px;
  background: #fff;
}

.community-profile-editor > summary {
  min-height: 74px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 88px;
  align-items: center;
  gap: 18px;
  padding: 15px 17px;
  cursor: pointer;
  list-style: none;
}

.community-profile-editor > summary::-webkit-details-marker {
  display: none;
}

.community-profile-editor > summary span {
  display: grid;
  gap: 3px;
}

.community-profile-editor > summary small {
  color: var(--accent-strong, #b88832);
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.community-profile-editor > summary strong {
  color: var(--text-strong, #202826);
  font-size: 16px;
}

.community-profile-editor > summary em {
  color: var(--text-soft, #69726f);
  font-size: 10px;
  font-style: normal;
}

.community-profile-editor > summary i {
  height: 7px;
  overflow: hidden;
  border-radius: 99px;
  background: #e8ece8;
}

.community-profile-editor > summary i b {
  width: var(--profile-completion, 0%);
  height: 100%;
  display: block;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--brand, #0f725e), var(--accent, #c99b42));
}

.community-profile-editor[open] > summary {
  border-bottom: 1px solid var(--v207-line, rgba(22, 36, 34, .12));
}

.community-profile-editor form {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 11px;
  padding: 16px;
  background: #fbfaf6;
}

.community-profile-editor form label {
  display: grid;
  gap: 6px;
  color: var(--text-soft, #69726f);
  font-size: 10px;
  font-weight: 850;
}

.community-profile-editor form input,
.community-profile-editor form select {
  width: 100%;
  min-height: 42px;
  padding: 9px 11px;
  border: 1px solid var(--v207-line, rgba(22, 36, 34, .12));
  border-radius: 8px;
  background: #fff;
  color: var(--text-strong, #202826);
  font: inherit;
  font-size: 12px;
}

.community-profile-editor form .community-profile-bio {
  grid-column: 1 / -2;
}

.community-profile-editor form > button {
  align-self: end;
  min-height: 42px;
  border: 0;
  border-radius: 8px;
  background: var(--brand-deep, #232b29);
  color: #fff;
  font-size: 11px;
  font-weight: 950;
}

.community-view-tabs {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.community-player-card {
  grid-template-columns: 102px minmax(0, 1fr);
  align-items: stretch;
  min-height: 178px;
}

.community-player-avatar {
  min-height: 158px;
}

.community-player-copy {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: start;
  gap: 7px;
}

.community-player-identity,
.community-player-copy dl,
.community-player-actions {
  grid-column: 1;
  grid-row: auto;
}

.community-player-meta,
.community-player-bio {
  margin: 0;
}

.community-player-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.community-player-meta span,
.community-match-reasons span {
  padding: 3px 7px;
  border-radius: 999px;
  background: #edf3ef;
  color: var(--brand, #0f725e);
  font-size: 9px;
  font-weight: 850;
}

.community-player-bio {
  overflow: hidden;
  color: var(--text-soft, #69726f);
  font-size: 10px;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.community-match-reasons {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.community-match-reasons span {
  border: 1px solid rgba(194, 146, 58, .24);
  background: #fbf5e8;
  color: #98691d;
}

.community-player-copy .community-training-proof {
  max-width: none;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
}

.community-training-proof div {
  min-width: 0;
  padding: 6px 7px;
  border-radius: 7px;
  background: #f4f5f1;
}

.community-training-proof dt {
  overflow: hidden;
  color: var(--text-soft, #69726f);
  font-size: 8px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.community-training-proof dd {
  margin: 2px 0 0;
  color: var(--text-strong, #202826);
  font-size: 12px;
  font-weight: 950;
}

.community-training-note {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  color: var(--text-soft, #69726f);
  font-size: 9px;
}

.community-training-note strong {
  color: var(--brand, #0f725e);
  font-size: 9px;
}

.community-player-actions {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  min-width: 0;
}

.community-player-actions button.is-practice {
  border-color: var(--accent, #c99b42);
  background: var(--accent, #c99b42);
  color: #20231f;
}

.community-player-actions button.is-message-ready {
  border-color: var(--brand, #0f725e);
  background: #edf5f0;
  color: var(--brand, #0f725e);
}

.community-player-actions button.is-message-locked {
  border-color: #d9dcda;
  background: #f4f4f1;
  color: #8b918f;
}

.community-practice-board,
.community-message-board {
  display: grid;
  gap: 10px;
}

.community-practice-overview {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid var(--v207-line, rgba(22, 36, 34, .12));
  border-radius: 13px;
  background: linear-gradient(135deg, #222b29, #35413d);
}

.community-practice-overview div {
  min-width: 0;
  display: grid;
  gap: 4px;
  padding: 13px;
  border-right: 1px solid rgba(255, 255, 255, .12);
}

.community-practice-overview div:last-child {
  border-right: 0;
}

.community-practice-overview small {
  color: rgba(255, 255, 255, .66);
  font-size: 9px;
  font-weight: 800;
}

.community-practice-overview strong {
  color: #e3be6d;
  font-size: 23px;
  line-height: 1;
}

.community-next-practice,
.community-practice-empty-hero {
  padding: 12px;
  border: 1px solid rgba(194, 146, 58, .28);
  border-radius: 13px;
  background: linear-gradient(135deg, #fffdf8, #f4eddf);
}

.community-next-practice {
  display: grid;
  gap: 9px;
}

.community-practice-empty-hero {
  display: grid;
  gap: 4px;
  color: var(--text-soft, #69726f);
  font-size: 10px;
}

.community-practice-empty-hero strong {
  color: var(--text-strong, #202826);
  font-size: 14px;
}

.community-practice-section {
  overflow: hidden;
  border: 1px solid var(--v207-line, rgba(22, 36, 34, .12));
  border-radius: 12px;
  background: #fff;
}

.community-practice-section > summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 46px;
  padding: 10px 12px;
  color: var(--text-strong, #202826);
  font-size: 12px;
  font-weight: 950;
  cursor: pointer;
  list-style: none;
}

.community-practice-section > summary::-webkit-details-marker {
  display: none;
}

.community-practice-section > summary span {
  display: grid;
  place-items: center;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border-radius: 999px;
  background: #edf3ef;
  color: var(--brand, #0f725e);
  font-size: 9px;
}

.community-practice-section[open] > summary {
  border-bottom: 1px solid var(--v207-line, rgba(22, 36, 34, .12));
}

.community-practice-section .community-practice-list {
  padding: 9px;
}

.community-practice-list,
.community-message-list {
  display: grid;
  gap: 8px;
}

.community-practice-card {
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr);
  gap: 11px;
  padding: 10px;
  border: 1px solid var(--v207-line, rgba(22, 36, 34, .12));
  border-radius: 12px;
  background: #fff;
}

.community-practice-card.is-accepted {
  border-color: rgba(18, 107, 87, .34);
  background: #f5faf7;
}

.community-practice-avatar {
  height: 84px;
  overflow: hidden;
  border-radius: 9px;
  background: #e9f0eb;
}

.community-practice-avatar .player-avatar-art {
  width: 100%;
  height: 100%;
}

.community-practice-copy {
  min-width: 0;
  display: grid;
  gap: 7px;
}

.community-practice-copy header {
  display: flex;
  justify-content: space-between;
  gap: 9px;
}

.community-practice-copy header strong {
  color: var(--text-strong, #202826);
  font-size: 13px;
}

.community-practice-copy header span {
  color: #9a6a1c;
  font-size: 9px;
  font-weight: 950;
  white-space: nowrap;
}

.community-practice-copy > p {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin: 0;
}

.community-practice-copy > p > * {
  padding: 3px 7px;
  border-radius: 999px;
  background: #f1f3ef;
  color: var(--text-soft, #69726f);
  font-size: 9px;
}

.community-practice-copy > small {
  color: var(--text-soft, #69726f);
  font-size: 10px;
}

.community-practice-copy > .community-practice-venue {
  display: block;
  margin: 0;
  color: var(--brand, #0f725e);
  font-size: 10px;
  font-weight: 850;
}

.community-practice-response {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}

.community-practice-response button,
.community-practice-message {
  min-height: 34px;
  border: 1px solid var(--v207-line, rgba(22, 36, 34, .12));
  border-radius: 7px;
  background: #fff;
  color: var(--text-strong, #202826);
  font-size: 10px;
  font-weight: 950;
}

.community-practice-response button:first-child,
.community-practice-message {
  border-color: var(--brand, #0f725e);
  background: var(--brand, #0f725e);
  color: #fff;
}

.community-message-thread {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 9px;
  border: 1px solid var(--v207-line, rgba(22, 36, 34, .12));
  border-radius: 11px;
  background: #fff;
}

.community-message-thread > div {
  height: 56px;
  overflow: hidden;
  border-radius: 8px;
  background: #e9f0eb;
}

.community-message-thread .player-avatar-art {
  width: 100%;
  height: 100%;
}

.community-message-thread p {
  min-width: 0;
  display: grid;
  gap: 2px;
  margin: 0;
}

.community-message-thread strong {
  font-size: 12px;
}

.community-message-thread span,
.community-message-thread small {
  color: var(--text-soft, #69726f);
  font-size: 9px;
}

.community-message-thread button {
  min-height: 36px;
  padding: 7px 12px;
  border: 0;
  border-radius: 7px;
  background: var(--brand-deep, #232b29);
  color: #fff;
  font-size: 10px;
  font-weight: 950;
}

.community-practice-dialog {
  width: min(520px, calc(100% - 28px));
  max-height: 90vh;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 18px;
  background: #f8f7f2;
  box-shadow: 0 32px 80px rgba(12, 25, 22, .28);
}

.community-practice-dialog::backdrop {
  background: rgba(18, 31, 28, .68);
  backdrop-filter: blur(7px);
}

.community-practice-shell {
  max-height: 90vh;
  overflow-y: auto;
}

.community-practice-shell > header {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 18px;
  border-bottom: 1px solid var(--v207-line, rgba(22, 36, 34, .12));
  background: rgba(248, 247, 242, .96);
}

.community-practice-shell > header small {
  color: var(--accent-strong, #b88832);
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .1em;
}

.community-practice-shell > header h2 {
  margin: 3px 0 0;
  color: var(--text-strong, #202826);
  font-size: 21px;
}

.community-practice-shell > header button {
  width: 44px;
  min-width: 44px;
  height: 44px;
  flex-shrink: 0;
  border: 1px solid var(--v207-line, rgba(22, 36, 34, .12));
  border-radius: 50%;
  background: #fff;
  color: var(--text-strong, #202826);
  font-size: 24px;
}

#communityPracticeContent {
  display: grid;
  gap: 13px;
  padding: 17px;
}

.community-practice-person {
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
}

.community-practice-person > div {
  height: 80px;
  overflow: hidden;
  border-radius: 10px;
  background: #e8f0ea;
}

.community-practice-person .player-avatar-art {
  width: 100%;
  height: 100%;
}

.community-practice-person p {
  display: grid;
  gap: 3px;
  margin: 0;
}

.community-practice-person small {
  color: var(--accent-strong, #b88832);
  font-size: 9px;
  font-weight: 950;
}

.community-practice-person strong {
  color: var(--text-strong, #202826);
  font-size: 19px;
}

.community-practice-person span,
.community-practice-dialog-hint {
  color: var(--text-soft, #69726f);
  font-size: 10px;
  line-height: 1.45;
}

.community-practice-dialog-hint {
  margin: 0;
}

#communityPracticeForm {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px;
}

#communityPracticeForm label {
  display: grid;
  gap: 6px;
  color: var(--text-soft, #69726f);
  font-size: 10px;
  font-weight: 850;
}

#communityPracticeForm input,
#communityPracticeForm select,
#communityPracticeForm textarea {
  width: 100%;
  min-height: 44px;
  padding: 9px 11px;
  border: 1px solid var(--v207-line, rgba(22, 36, 34, .12));
  border-radius: 8px;
  background: #fff;
  color: var(--text-strong, #202826);
  font: inherit;
  font-size: 12px;
}

#communityPracticeForm .community-practice-note,
#communityPracticeForm .community-practice-venue-field,
#communityPracticeForm > p,
#communityPracticeForm > div {
  grid-column: 1 / -1;
}

#communityPracticeForm textarea {
  min-height: 76px;
  resize: vertical;
}

#communityPracticeForm > p {
  min-height: 15px;
  margin: 0;
  color: #a34525;
  font-size: 10px;
}

#communityPracticeForm > div {
  display: grid;
  grid-template-columns: .7fr 1.3fr;
  gap: 8px;
}

#communityPracticeForm button {
  min-height: 44px;
  border: 1px solid var(--v207-line, rgba(22, 36, 34, .12));
  border-radius: 8px;
  background: #fff;
  color: var(--text-strong, #202826);
  font-size: 11px;
  font-weight: 950;
}

#communityPracticeForm button[type="submit"] {
  border-color: var(--accent, #c99b42);
  background: var(--accent, #c99b42);
}

.community-message-privacy {
  margin: 0;
  padding: 9px 11px;
  border: 1px solid rgba(194, 146, 58, .24);
  border-radius: 9px;
  background: #fbf5e8;
  color: #7e6029;
  font-size: 10px;
  line-height: 1.45;
}

.community-thread-messages {
  max-height: 300px;
  min-height: 148px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  overflow-y: auto;
  padding: 12px;
  border: 1px solid var(--v207-line, rgba(22, 36, 34, .12));
  border-radius: 12px;
  background: #eef1ed;
}

.community-thread-messages > span {
  margin: auto;
  color: var(--text-soft, #69726f);
  font-size: 10px;
  text-align: center;
}

.community-thread-messages > div {
  width: min(82%, 340px);
  display: grid;
  gap: 3px;
  padding: 9px 11px;
  border-radius: 11px 11px 11px 3px;
  background: #fff;
  box-shadow: 0 3px 12px rgba(18, 31, 28, .06);
}

.community-thread-messages > div.is-me {
  align-self: flex-end;
  border-radius: 11px 11px 3px 11px;
  background: #dcece4;
}

.community-thread-messages small,
.community-thread-messages time {
  color: var(--text-soft, #69726f);
  font-size: 8px;
}

.community-thread-messages p {
  margin: 0;
  color: var(--text-strong, #202826);
  font-size: 11px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

#communityMessageForm {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
}

#communityMessageForm textarea {
  min-height: 72px;
  padding: 10px 11px;
  border: 1px solid var(--v207-line, rgba(22, 36, 34, .12));
  border-radius: 9px;
  background: #fff;
  color: var(--text-strong, #202826);
  font: inherit;
  font-size: 11px;
  resize: vertical;
}

#communityMessageForm > p {
  grid-column: 1 / -1;
  min-height: 14px;
  margin: 0;
  color: #a34525;
  font-size: 9px;
}

#communityMessageForm button {
  min-width: 82px;
  min-height: 44px;
  border: 0;
  border-radius: 9px;
  background: var(--brand-deep, #232b29);
  color: #fff;
  font-size: 11px;
  font-weight: 950;
}

@media (max-width: 620px) {
  .community-profile-editor > summary {
    grid-template-columns: minmax(0, 1fr) 62px;
    gap: 10px;
    padding: 13px;
  }

  .community-profile-editor > summary em {
    display: none;
  }

  .community-profile-editor form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
    padding: 12px;
  }

  .community-profile-editor form .community-profile-bio,
  .community-profile-editor form .community-profile-court,
  .community-profile-editor form > button {
    grid-column: 1 / -1;
  }

  .community-view-tabs {
    overflow-x: auto;
    grid-template-columns: repeat(4, minmax(84px, 1fr));
  }

  .community-player-card {
    grid-template-columns: 78px minmax(0, 1fr);
    min-height: 190px;
    gap: 10px;
  }

  .community-player-avatar {
    min-height: 120px;
    align-self: start;
  }

  .community-player-copy .community-training-proof {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .community-training-proof dt {
    white-space: normal;
  }

  .community-player-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .community-player-actions button,
  .community-player-actions .community-signal-menu summary {
    min-height: 36px;
  }

  .community-practice-dialog {
    width: calc(100% - 16px);
    max-height: 92vh;
    border-radius: 18px;
  }

  .community-practice-shell {
    max-height: 92vh;
  }

  #communityPracticeForm {
    grid-template-columns: 1fr;
  }

  #communityPracticeForm .community-practice-note,
  #communityPracticeForm .community-practice-venue-field,
  #communityPracticeForm > p,
  #communityPracticeForm > div {
    grid-column: 1;
  }

  .community-practice-overview div {
    padding: 11px 9px;
  }

  .community-practice-overview small {
    min-height: 24px;
  }

  #communityMessageForm {
    grid-template-columns: 1fr;
  }

  #communityMessageForm button {
    min-height: 44px;
  }
}

/* v211 · one AceLink brand language across home, training, players, and archive */
:root {
  --al-ink: #222a29;
  --al-ink-soft: #68716e;
  --al-court: #0f604f;
  --al-court-deep: #17332d;
  --al-gold: #c39745;
  --al-gold-bright: #dfbd72;
  --al-ivory: #f7f3e9;
  --al-paper: #fffdf8;
  --al-mist: #edf2ee;
  --al-line: rgba(34, 42, 41, .105);
  --al-line-strong: rgba(34, 42, 41, .17);
  --al-shadow-sm: 0 8px 24px rgba(28, 40, 37, .055);
  --al-shadow-md: 0 18px 48px rgba(28, 40, 37, .09);
  --al-shadow-dark: 0 24px 54px rgba(18, 31, 28, .18);
  --al-radius-sm: 10px;
  --al-radius-md: 16px;
  --al-radius-lg: 22px;
  --al-font: "Avenir Next", "SF Pro Text", "PingFang SC", "Noto Sans SC", "Noto Sans CJK SC", "HarmonyOS Sans SC", "Microsoft YaHei", system-ui, -apple-system, sans-serif;
  --al-display: "Avenir Next", "SF Pro Display", "PingFang SC", "Noto Sans SC", "Noto Sans CJK SC", "HarmonyOS Sans SC", "Microsoft YaHei", system-ui, -apple-system, sans-serif;
}

html {
  background: #ece8de;
}

body,
button,
input,
select,
textarea {
  font-family: var(--al-font);
}

body {
  color: var(--al-ink);
  background:
    radial-gradient(circle at 8% 3%, rgba(195, 151, 69, .075), transparent 24rem),
    radial-gradient(circle at 92% 18%, rgba(15, 96, 79, .045), transparent 25rem),
    linear-gradient(180deg, #fbfaf5 0%, #f3f0e7 100%);
}

h1,
h2,
h3,
.section-title > span,
.train-section-title > span,
.member-home-copy > strong,
.member-home-progress-story-copy > strong,
.profile-command-main > strong,
.community-intro > h2 {
  font-family: var(--al-display);
  font-weight: 740;
  letter-spacing: -.028em;
  text-wrap: balance;
}

html[lang="zh"] h1,
html[lang="zh"] h2,
html[lang="zh"] h3,
html[lang="zh"] .section-title > span,
html[lang="zh"] .train-section-title > span,
html[lang="zh"] .member-home-copy > strong,
html[lang="zh"] .profile-command-main > strong {
  letter-spacing: -.018em;
}

button,
.primary-link,
.text-link,
.member-home-actions a,
.mobile-tabs a {
  font-weight: 750;
}

button,
a,
input,
select,
textarea {
  -webkit-tap-highlight-color: transparent;
}

button,
.primary-link,
.text-link,
.member-home-actions a {
  transition:
    transform .18s ease,
    border-color .18s ease,
    background-color .18s ease,
    color .18s ease,
    box-shadow .18s ease;
}

button:not(:disabled):active,
.primary-link:active,
.text-link:active,
.member-home-actions a:active {
  transform: translateY(1px) scale(.992);
}

.topbar {
  min-height: 72px;
  padding-block: 11px;
  border-bottom: 1px solid rgba(34, 42, 41, .08);
  background: rgba(250, 248, 241, .9);
  box-shadow: 0 8px 28px rgba(30, 41, 38, .045);
  backdrop-filter: blur(24px) saturate(1.2);
}

.brand-lockup {
  gap: 12px;
}

.brand-mark {
  width: 42px;
  border: 1px solid rgba(255, 255, 255, .7);
  border-radius: 12px;
  box-shadow: 0 10px 24px rgba(21, 34, 31, .16);
}

.brand-title {
  gap: 9px;
}

.brand-title strong {
  color: var(--al-ink);
  font-family: var(--al-display);
  font-size: 18px;
  font-weight: 760;
  letter-spacing: -.024em;
}

.brand-english {
  color: #907039;
  font-size: 8px;
  font-weight: 760;
  letter-spacing: .14em;
}

.brand-copy > span {
  margin-top: 2px;
  color: #76807c;
  font-size: 10px;
  font-weight: 570;
  letter-spacing: .015em;
}

.language-toggle {
  min-width: 48px;
  min-height: 42px;
  border-color: var(--al-line);
  border-radius: 11px;
  background: rgba(255, 253, 248, .82);
  color: #7f612c;
  box-shadow: 0 5px 16px rgba(34, 42, 41, .035);
}

.section-title {
  gap: 10px;
}

.section-title > span {
  color: var(--al-ink);
  font-size: 20px;
  line-height: 1.15;
}

.section-title > small {
  color: var(--al-ink-soft);
  font-size: 10px;
  font-weight: 560;
  line-height: 1.45;
}

.tool,
.result,
.library,
.player-profile,
.account-trust-links {
  border-color: var(--al-line);
  border-radius: var(--al-radius-lg);
  background: rgba(255, 253, 248, .94);
  box-shadow: var(--al-shadow-md);
}

.workspace {
  gap: 22px;
}

#analysisForm.tool {
  padding: clamp(17px, 2.2vw, 28px);
}

.train-section-title {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 4px 12px;
  padding: 1px 2px 18px;
}

.train-section-title > small {
  grid-column: 1;
  color: #9a7230;
  font-size: 9px;
  font-weight: 820;
  letter-spacing: .14em;
}

.train-section-title > span {
  grid-column: 1;
  color: var(--al-ink);
  font-size: clamp(25px, 3vw, 34px);
  font-weight: 700;
  line-height: 1.08;
}

.train-section-title > p {
  grid-column: 1;
  max-width: 55ch;
  margin: 4px 0 0;
  color: var(--al-ink-soft);
  font-size: 11px;
  font-weight: 520;
  line-height: 1.55;
}

.train-section-title > button {
  grid-column: 2;
  grid-row: 1 / 4;
  align-self: center;
}

.forehand-v1-brief {
  padding: 16px;
  border: 1px solid rgba(223, 189, 114, .16);
  border-radius: 18px;
  background:
    linear-gradient(115deg, transparent 52%, rgba(223, 189, 114, .055) 52.2%, transparent 52.8%),
    radial-gradient(circle at 100% 0%, rgba(195, 151, 69, .2), transparent 36%),
    linear-gradient(145deg, #153a32 0%, #252e2d 76%);
  box-shadow: inset 0 1px rgba(255, 255, 255, .055), var(--al-shadow-dark);
}

.stroke-mode-options {
  gap: 6px;
}

.stroke-mode-options legend {
  margin-bottom: 4px;
  color: rgba(255, 255, 255, .57);
  font-size: 9px;
  font-weight: 680;
  letter-spacing: .025em;
}

.stroke-mode-options label {
  min-height: 44px;
  border-color: rgba(255, 255, 255, .09);
  border-radius: 11px;
  background: rgba(255, 255, 255, .055);
  color: rgba(255, 255, 255, .8);
  font-weight: 690;
}

.stroke-mode-options label:has(input:checked) {
  border-color: rgba(223, 189, 114, .72);
  background: #fffdf8;
  color: var(--al-ink);
  box-shadow: 0 9px 24px rgba(5, 17, 14, .18);
}

.forehand-v1-head {
  padding-top: 2px;
}

.forehand-v1-head small {
  color: var(--al-gold-bright);
  font-size: 8px;
  font-weight: 760;
  letter-spacing: .1em;
}

.forehand-v1-head strong {
  margin-top: 3px;
  color: #fff;
  font-family: var(--al-display);
  font-size: 20px;
  font-weight: 720;
  letter-spacing: -.02em;
}

.capture-essentials > span {
  min-height: 61px;
  padding: 10px 9px;
  border-color: rgba(255, 255, 255, .095);
  border-radius: 11px;
  background: rgba(255, 255, 255, .055);
}

.capture-essentials b {
  font-size: 10px;
  font-weight: 720;
}

.capture-essentials em {
  color: var(--al-gold-bright);
  font-size: 8px;
  font-weight: 600;
}

.upload-box {
  min-height: 160px;
  border: 1.5px dashed rgba(195, 151, 69, .5);
  border-radius: 18px;
  background:
    radial-gradient(circle at 50% 12%, rgba(195, 151, 69, .1), transparent 32%),
    rgba(255, 253, 248, .82);
  box-shadow: inset 0 0 0 5px rgba(255, 255, 255, .36);
}

.upload-box::before {
  box-shadow: 0 10px 22px rgba(15, 96, 79, .15);
}

.upload-box strong {
  color: var(--al-ink);
  font-family: var(--al-display);
  font-size: 18px;
  font-weight: 720;
}

.upload-box em {
  max-width: 48ch;
  color: var(--al-ink-soft);
  font-size: 10px;
  line-height: 1.5;
}

.player-name-field input,
.optional-analysis-fields input,
.optional-analysis-fields textarea,
.forehand-v1-controls input,
.forehand-v1-controls select {
  border-color: var(--al-line);
  border-radius: 11px;
  background: rgba(255, 255, 255, .82);
}

.player-name-field input:focus,
.optional-analysis-fields input:focus,
.optional-analysis-fields textarea:focus {
  outline: 0;
  border-color: rgba(195, 151, 69, .72);
  box-shadow: 0 0 0 4px rgba(195, 151, 69, .11);
}

#analysisForm > button.primary {
  min-height: 50px;
  border-radius: 12px;
  background: linear-gradient(135deg, #173a32, #232b29);
  box-shadow: 0 12px 28px rgba(18, 43, 38, .16);
  color: #fff;
  font-size: 13px;
  font-weight: 760;
}

.community-hub {
  display: grid;
  gap: 15px;
}

.community-intro {
  position: relative;
  isolation: isolate;
  min-height: 176px;
  display: grid;
  align-content: center;
  gap: 7px;
  overflow: hidden;
  padding: 26px 28px;
  border: 1px solid rgba(223, 189, 114, .15);
  border-radius: var(--al-radius-lg);
  background:
    radial-gradient(circle at 92% 8%, rgba(195, 151, 69, .22), transparent 30%),
    linear-gradient(135deg, #153a32, #252e2d 78%);
  box-shadow: var(--al-shadow-dark);
}

.community-intro::before,
.community-intro::after {
  content: "";
  position: absolute;
  z-index: -1;
  pointer-events: none;
}

.community-intro::before {
  right: -42px;
  bottom: -72px;
  width: 230px;
  height: 230px;
  border: 1px solid rgba(255, 255, 255, .085);
  border-radius: 50%;
  box-shadow: inset 0 0 0 24px rgba(255, 255, 255, .018);
}

.community-intro::after {
  top: 0;
  right: 25%;
  width: 1px;
  height: 100%;
  background: linear-gradient(transparent, rgba(255, 255, 255, .07), transparent);
  transform: rotate(24deg);
}

.community-intro small {
  color: var(--al-gold-bright);
  font-size: 9px;
  font-weight: 780;
  letter-spacing: .13em;
}

.community-intro h2 {
  max-width: 16ch;
  margin: 0;
  color: #fff;
  font-size: clamp(28px, 4vw, 42px);
  font-weight: 700;
  line-height: 1.06;
}

.community-intro p {
  max-width: 56ch;
  margin: 1px 0 0;
  color: rgba(255, 255, 255, .64);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.55;
}

.community-content {
  gap: 13px;
}

.community-account-strip,
.community-profile-editor,
.community-search-panel,
.community-people-section,
.community-feed,
.community-groups,
.community-practice-board,
.community-message-board,
.community-inbox {
  border-color: var(--al-line);
  border-radius: var(--al-radius-md);
  background: rgba(255, 253, 248, .92);
  box-shadow: var(--al-shadow-sm);
}

.community-account-strip {
  overflow: hidden;
}

.community-account-avatar,
.community-player-avatar,
.community-practice-avatar,
.community-activity-avatar {
  border: 1px solid rgba(15, 96, 79, .1);
  background: linear-gradient(145deg, #edf4ef, #dce9e2);
}

.community-account-id strong {
  color: var(--al-court);
  font-family: var(--al-display);
  font-weight: 740;
  letter-spacing: .015em;
}

.community-profile-editor > summary {
  min-height: 70px;
}

.community-profile-editor > summary strong {
  font-family: var(--al-display);
  font-size: 15px;
  font-weight: 720;
}

.community-view-tabs {
  gap: 6px;
  padding: 5px;
  border: 1px solid var(--al-line);
  border-radius: 14px;
  background: rgba(236, 241, 237, .72);
}

.community-view-tabs button {
  min-height: 42px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: #6c7572;
  font-size: 11px;
  font-weight: 690;
}

.community-view-tabs button.is-active {
  background: var(--al-paper);
  color: #8a6328;
  box-shadow: 0 7px 18px rgba(30, 41, 38, .075);
}

.community-search-panel {
  margin: 0;
  padding: 15px;
}

.community-search-panel input {
  min-height: 48px;
  border-color: var(--al-line);
  border-radius: 11px;
  background: #fbfaf6;
}

.community-search-panel form button[type="submit"] {
  min-height: 48px;
  border-radius: 11px;
  background: var(--al-ink);
  font-weight: 720;
}

.community-player-card {
  border-color: var(--al-line);
  border-radius: 14px;
  background: #fffefb;
  box-shadow: 0 8px 22px rgba(30, 41, 38, .045);
}

.community-player-identity strong,
.community-activity-copy strong,
.community-practice-copy header strong {
  font-family: var(--al-display);
  font-weight: 720;
}

.my-space {
  display: grid;
  gap: 14px;
}

.my-space-title {
  display: grid !important;
  gap: 5px;
  margin: 0;
  padding: 2px 2px 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.my-space-title > span {
  font-size: clamp(26px, 3vw, 34px);
}

.my-space-title > small {
  max-width: 58ch;
}

.player-profile {
  overflow: visible;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.profile-command,
.member-home-command {
  border: 1px solid rgba(223, 189, 114, .14);
  border-radius: var(--al-radius-lg);
  background:
    radial-gradient(circle at 92% 5%, rgba(195, 151, 69, .2), transparent 31%),
    linear-gradient(138deg, #153a32 0%, #242e2c 77%);
  box-shadow: var(--al-shadow-dark);
}

.profile-command-main > small,
.member-home-copy > small {
  color: var(--al-gold-bright);
  font-size: 9px;
  font-weight: 760;
  letter-spacing: .09em;
}

.profile-command-main > strong,
.member-home-copy > strong {
  color: #fff;
  font-weight: 700;
  line-height: 1.04;
}

.profile-command-main > p,
.member-home-copy > p {
  color: rgba(255, 255, 255, .64);
  font-size: 11px;
  line-height: 1.55;
}

.profile-command-actions a,
.member-home-actions a {
  min-height: 45px;
  border-radius: 11px;
  font-weight: 720;
}

.profile-command-actions a:first-child,
.member-home-actions a.is-primary {
  border-color: var(--al-gold-bright);
  background: linear-gradient(135deg, #dfbd72, #c39745);
  color: #202826;
  box-shadow: 0 10px 24px rgba(195, 151, 69, .15);
}

.profile-command-grid article,
.member-home-progress-pill,
.member-home-guide {
  border-color: rgba(255, 255, 255, .105);
  background: rgba(255, 255, 255, .055);
  backdrop-filter: blur(14px);
}

.profile-public-id,
.profile-metrics,
.profile-grid > article,
.history,
.profile-secondary > section,
.member-home-progress-story,
.member-home-snapshot-card,
.member-home-next {
  border-color: var(--al-line);
  border-radius: var(--al-radius-md);
  background: rgba(255, 253, 248, .94);
  box-shadow: var(--al-shadow-sm);
}

.profile-public-id {
  background:
    radial-gradient(circle at 0 0, rgba(195, 151, 69, .13), transparent 40%),
    linear-gradient(120deg, #f8f5eb, #fffdf8 68%);
}

.member-home-progress-story {
  border-color: rgba(15, 96, 79, .14);
}

.member-home-snapshot-card {
  min-height: 126px;
}

.member-home-snapshot-card strong {
  color: var(--al-court-deep);
  font-family: var(--al-display);
  font-weight: 740;
}

.empty-state,
.community-empty,
.community-inbox-empty {
  border-color: var(--al-line);
  border-radius: 14px;
  background:
    radial-gradient(circle at 50% 0%, rgba(195, 151, 69, .08), transparent 35%),
    rgba(250, 249, 244, .82);
  color: var(--al-ink-soft);
}

@media (max-width: 760px) {
  body {
    background:
      radial-gradient(circle at 0 0, rgba(195, 151, 69, .085), transparent 18rem),
      linear-gradient(180deg, #fbfaf5 0%, #f2efe6 100%);
  }

  main {
    width: min(100% - 22px, 620px);
  }

  .topbar {
    min-height: 66px;
    padding: 9px 12px;
  }

  .brand-mark {
    width: 39px;
    border-radius: 11px;
    box-shadow: 0 8px 18px rgba(21, 34, 31, .14);
  }

  .brand-title strong {
    font-size: 16px;
  }

  .brand-english {
    display: inline;
    font-size: 7px;
  }

  html[lang="en"] .brand-english {
    display: none;
  }

  .brand-copy > span {
    display: none;
  }

  .language-toggle {
    min-width: 46px;
    min-height: 40px;
  }

  .mobile-tabs {
    right: 8px;
    bottom: 0;
    left: 8px;
    min-height: 70px;
    gap: 3px;
    padding: 6px 7px calc(6px + env(safe-area-inset-bottom));
    border: 1px solid rgba(34, 42, 41, .075);
    border-bottom: 0;
    border-radius: 18px 18px 0 0;
    background: rgba(255, 253, 248, .94);
    box-shadow: 0 -14px 36px rgba(24, 37, 33, .1);
    backdrop-filter: blur(24px) saturate(1.2);
  }

  .mobile-tabs a {
    position: relative;
    min-height: 54px;
    gap: 2px;
    border-radius: 13px;
    color: #68716e;
    font-size: 10px;
    font-weight: 680;
  }

  .mobile-tabs a.is-active {
    background: linear-gradient(150deg, rgba(230, 207, 153, .36), rgba(195, 151, 69, .1));
    color: var(--al-ink);
  }

  .mobile-tabs a.is-active::before {
    content: "";
    position: absolute;
    top: 3px;
    width: 22px;
    height: 3px;
    border-radius: 999px;
    background: var(--al-gold);
  }

  .mobile-tab-icon {
    width: 20px;
    height: 20px;
    stroke-width: 1.75;
  }

  .tool,
  .result,
  .library {
    border-radius: 18px;
    box-shadow: 0 14px 36px rgba(28, 40, 37, .075);
  }

  #analysisForm.tool {
    padding: 15px;
  }

  .train-section-title {
    padding: 2px 1px 16px;
  }

  .train-section-title > span {
    font-size: 26px;
  }

  .train-section-title > p {
    max-width: 34ch;
    font-size: 10px;
  }

  .forehand-v1-brief {
    padding: 12px;
    border-radius: 16px;
  }

  .forehand-v1-head strong {
    font-size: 18px;
  }

  .capture-essentials {
    gap: 6px;
  }

  .capture-essentials > span {
    min-height: 57px;
    padding: 8px 6px;
  }

  .upload-box {
    min-height: 150px;
    padding-inline: 14px;
    border-radius: 16px;
  }

  .upload-box strong {
    max-width: 19ch;
    font-size: 17px;
    line-height: 1.18;
  }

  .community-intro {
    min-height: 166px;
    padding: 22px 20px;
    border-radius: 20px;
  }

  .community-intro h2 {
    max-width: 14ch;
    font-size: 30px;
  }

  .community-intro p {
    max-width: 36ch;
    font-size: 10px;
  }

  .community-account-strip,
  .community-profile-editor,
  .community-search-panel,
  .community-people-section,
  .community-feed,
  .community-groups,
  .community-practice-board,
  .community-message-board,
  .community-inbox {
    border-radius: 15px;
  }

  .community-view-tabs {
    grid-template-columns: repeat(4, minmax(82px, 1fr));
    overflow-x: auto;
  }

  .community-search-panel {
    padding: 13px;
  }

  .my-space-title {
    padding: 3px 2px 2px;
  }

  .my-space-title > span {
    font-size: 27px;
  }

  .my-space-title > small {
    font-size: 10px;
    line-height: 1.45;
  }

  .profile-command,
  .member-home-command {
    border-radius: 20px;
  }

  .member-home-command {
    grid-template-columns: minmax(0, 1fr) 108px;
    gap: 11px;
    padding: 18px 15px;
  }

  .member-home-copy > strong {
    max-width: 15ch;
    font-size: clamp(26px, 7vw, 32px);
    line-height: 1.03;
  }

  .member-home-copy > p {
    margin-top: 9px;
    font-size: 10px;
  }

  .member-home-actions {
    grid-template-columns: 1fr;
    margin-top: 15px;
  }

  .member-home-actions a {
    min-height: 42px;
  }

  .member-home-guide {
    min-height: 176px;
    border-radius: 14px;
  }

  .member-home-snapshot {
    gap: 7px;
  }

  .member-home-snapshot-card {
    min-height: 112px;
    padding: 12px 10px;
    border-radius: 14px;
  }

  .member-home-snapshot-card small,
  .member-home-snapshot-card span {
    font-size: 8px;
  }

  .member-home-snapshot-card strong {
    font-size: 22px;
  }
}

@media (max-width: 390px) {
  .brand-english {
    display: none;
  }

  .member-home-command {
    grid-template-columns: minmax(0, 1fr) 94px;
    padding: 16px 13px;
  }

  .member-home-copy > strong {
    font-size: 25px;
  }

  .community-intro h2 {
    font-size: 28px;
  }
}

@media (prefers-reduced-motion: reduce) {
  button,
  a,
  input,
  select,
  textarea {
    transition: none !important;
  }
}

/* v213 — first-session clarity and actionable player-card onboarding */
.member-home-first-journey {
  overflow: hidden;
  border: 1px solid rgba(15, 96, 79, .14);
  border-radius: var(--al-radius-md, 16px);
  background:
    radial-gradient(circle at 100% 0, rgba(195, 151, 69, .12), transparent 32%),
    rgba(255, 253, 248, .96);
  box-shadow: var(--al-shadow-sm, 0 8px 24px rgba(28, 40, 37, .055));
}

.member-home-first-journey > header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
  padding: 19px 21px 15px;
  border-bottom: 1px solid var(--al-line, rgba(34, 42, 41, .105));
}

.member-home-first-journey > header div {
  display: grid;
  gap: 4px;
}

.member-home-first-journey > header small {
  color: var(--al-gold, #c39745);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .1em;
}

.member-home-first-journey > header strong {
  color: var(--al-ink, #222a29);
  font-family: var(--al-display);
  font-size: 21px;
  font-weight: 740;
  letter-spacing: -.025em;
}

.member-home-first-journey > header > span {
  max-width: 28ch;
  color: var(--al-ink-soft, #6b7471);
  font-size: 10px;
  line-height: 1.45;
  text-align: right;
}

.member-home-first-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  padding: 0 21px;
}

.member-home-first-steps article {
  min-width: 0;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  padding: 18px 16px 18px 0;
  color: #7d8582;
}

.member-home-first-steps article + article {
  padding-left: 16px;
  border-left: 1px solid var(--al-line, rgba(34, 42, 41, .105));
}

.member-home-first-steps article > b {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(34, 42, 41, .11);
  border-radius: 50%;
  background: #f0f1ed;
  color: #8d9491;
  font-size: 9px;
}

.member-home-first-steps article.is-active > b {
  border-color: var(--al-court, #0f604f);
  background: var(--al-court, #0f604f);
  color: #fff;
  box-shadow: 0 8px 18px rgba(15, 96, 79, .18);
}

.member-home-first-steps article > div {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.member-home-first-steps article small {
  color: #909794;
  font-size: 8px;
  font-weight: 780;
}

.member-home-first-steps article.is-active small {
  color: var(--al-gold, #c39745);
}

.member-home-first-steps article strong {
  color: #4b5552;
  font-size: 13px;
}

.member-home-first-steps article.is-active strong {
  color: var(--al-court-deep, #12312b);
}

.member-home-first-steps article p {
  margin: 1px 0 0;
  color: #828a87;
  font-size: 9px;
  line-height: 1.5;
}

.member-home-first-journey > footer {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 11px 16px;
  border-top: 1px solid var(--al-line, rgba(34, 42, 41, .105));
  background: rgba(237, 242, 238, .62);
  color: #557068;
  font-size: 9px;
  font-weight: 720;
}

.member-home-first-journey > footer i {
  width: 18px;
  height: 1px;
  background: rgba(15, 96, 79, .22);
}

.community-profile-meter {
  display: grid;
  gap: 7px;
}

.community-profile-meter > i {
  height: 7px;
  overflow: hidden;
  border-radius: 99px;
  background: #e8ece8;
}

.community-profile-meter > i b {
  width: var(--profile-completion, 0%);
  height: 100%;
  display: block;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--brand, #0f725e), var(--accent, #c99b42));
}

.community-profile-meter > strong {
  color: var(--al-court, #0f604f);
  font-size: 9px;
  font-weight: 780;
  text-align: right;
}

@media (max-width: 720px) {
  .member-home-first-journey > header {
    align-items: start;
    padding: 16px;
  }

  .member-home-first-journey > header strong {
    font-size: 18px;
  }

  .member-home-first-journey > header > span {
    display: none;
  }

  .member-home-first-steps {
    grid-template-columns: 1fr;
    padding: 0 16px;
  }

  .member-home-first-steps article {
    grid-template-columns: 32px minmax(0, 1fr);
    padding: 14px 0;
  }

  .member-home-first-steps article + article {
    padding-left: 0;
    border-top: 1px solid var(--al-line, rgba(34, 42, 41, .105));
    border-left: 0;
  }

  .member-home-first-steps article > b {
    width: 32px;
    height: 32px;
  }

  .member-home-first-steps article p {
    font-size: 9px;
  }

  .member-home-first-journey > footer {
    gap: 7px;
    padding: 10px 8px;
    font-size: 8px;
  }

  .member-home-first-journey > footer i {
    width: 10px;
  }

  .community-profile-editor > summary {
    grid-template-columns: minmax(0, 1fr) 74px;
  }
}

/* v215 — editorial tennis language: evidence, coaching notes, and fewer decorative surfaces */
:root {
  --al-ink: #202725;
  --al-ink-soft: #69716e;
  --al-court: #145b4c;
  --al-court-deep: #18312b;
  --al-gold: #b58a3f;
  --al-gold-bright: #d4b36d;
  --al-ivory: #f3f0e7;
  --al-paper: #fffefb;
  --al-mist: #edf0ec;
  --al-line: rgba(32, 39, 37, .13);
  --al-line-strong: rgba(32, 39, 37, .22);
  --al-shadow-sm: 0 4px 14px rgba(26, 35, 32, .04);
  --al-shadow-md: 0 8px 26px rgba(26, 35, 32, .055);
  --al-shadow-dark: 0 10px 28px rgba(24, 35, 31, .08);
  --al-radius-sm: 6px;
  --al-radius-md: 8px;
  --al-radius-lg: 10px;
}

html {
  background: #e9e6dd;
}

body {
  background: #f5f2ea;
}

h1,
h2,
h3,
.section-title > span,
.train-section-title > span,
.member-home-copy > strong,
.member-home-progress-story-copy > strong,
.profile-command-main > strong,
.community-intro > h2 {
  font-weight: 650;
  letter-spacing: -.022em;
}

button,
.primary-link,
.text-link,
.member-home-actions a,
.mobile-tabs a {
  font-weight: 680;
}

.topbar {
  border-bottom-color: var(--al-line);
  background: rgba(247, 245, 238, .96);
  box-shadow: none;
}

.brand-mark,
.language-toggle {
  border-radius: 6px;
  box-shadow: none;
}

.brand-title strong {
  font-weight: 680;
}

.brand-english,
.home-hero-copy .eyebrow,
.train-section-title > small {
  letter-spacing: .08em;
}

/* Public home: real court image first, short copy, no synthetic overlay card. */
.home-hero {
  min-height: min(610px, calc(100vh - 90px));
  grid-template-columns: minmax(290px, .78fr) minmax(430px, 1.22fr);
  gap: clamp(32px, 5vw, 64px);
  padding: clamp(38px, 6vw, 72px) 0 38px;
}

.home-hero-copy .eyebrow {
  margin-bottom: 14px;
  color: var(--al-court);
  font-size: 10px;
  font-weight: 700;
}

.home-hero-copy h1 {
  max-width: 9.6ch;
  color: var(--al-ink);
  font-size: clamp(44px, 5.1vw, 64px);
  font-weight: 620;
  line-height: 1.04;
}

html[lang="zh"] .home-hero-copy h1 {
  letter-spacing: -.04em;
}

.home-hero-copy > p:last-of-type {
  max-width: 33ch;
  margin-top: 20px;
  color: var(--al-ink-soft);
  font-size: 15px;
  line-height: 1.72;
}

.home-hero-actions {
  max-width: 372px;
  margin-top: 24px;
}

.home-hero-actions a {
  min-height: 47px;
  border-radius: 5px;
  box-shadow: none;
}

.home-hero-actions .primary-link {
  background: var(--al-court);
}

.home-hero-actions .text-link {
  border-color: var(--al-line-strong);
  background: transparent;
  color: var(--al-ink);
}

.home-ritual {
  max-width: 430px;
  margin-top: 32px;
  border-color: var(--al-line);
}

.home-ritual span {
  gap: 4px;
  padding-top: 12px;
}

.home-ritual span + span {
  border-color: var(--al-line);
}

.home-ritual b {
  color: var(--al-gold);
  font-size: 9px;
  font-weight: 720;
}

.home-ritual em {
  color: #4d5753;
  font-size: 11px;
  font-weight: 590;
}

.home-visual {
  min-height: 490px;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  overflow: hidden;
  border: 1px solid var(--al-line);
  border-radius: 6px;
  background: var(--al-paper);
  box-shadow: 0 10px 30px rgba(28, 39, 35, .07);
}

.home-visual::after {
  display: none;
}

.home-visual img {
  min-height: 390px;
  grid-row: 1;
  object-position: 58% 50%;
}

.home-visual-copy {
  position: static;
  grid-row: 2;
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 4px 18px;
  padding: 17px 18px 18px;
  border: 0;
  border-top: 1px solid var(--al-line);
  border-radius: 0;
  background: var(--al-paper);
  color: var(--al-ink);
  backdrop-filter: none;
}

.home-visual-copy small {
  grid-row: 1 / 3;
  align-self: start;
  padding-top: 3px;
  color: var(--al-gold);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .06em;
}

.home-visual-copy strong {
  color: var(--al-ink);
  font-size: 14px;
  font-weight: 670;
  line-height: 1.35;
}

.home-visual-copy span {
  color: var(--al-ink-soft);
  font-size: 10px;
  line-height: 1.45;
}

/* Member home: a calm training desk, not a generated hero dashboard. */
.profile-command,
.member-home-command {
  overflow: hidden;
  border: 1px solid var(--al-line);
  border-radius: 8px;
  background: var(--al-paper);
  box-shadow: var(--al-shadow-md);
}

.member-home-command {
  grid-template-columns: minmax(0, 1.25fr) minmax(210px, .75fr);
  min-height: 292px;
  gap: 28px;
  padding: 28px 30px;
}

.member-home-command::before {
  display: none;
}

.profile-command-main > small,
.member-home-copy > small {
  color: var(--al-court);
  font-size: 9px;
  font-weight: 680;
  letter-spacing: .055em;
}

.profile-command-main > strong,
.member-home-copy > strong {
  max-width: 15ch;
  color: var(--al-ink);
  font-size: clamp(31px, 3.8vw, 46px);
  font-weight: 630;
  line-height: 1.06;
}

.profile-command-main > p,
.member-home-copy > p {
  max-width: 43ch;
  color: var(--al-ink-soft);
  font-size: 11px;
  line-height: 1.62;
}

.profile-command-actions a,
.member-home-actions a {
  min-height: 43px;
  border-radius: 5px;
  box-shadow: none;
}

.profile-command-actions a:first-child,
.member-home-actions a.is-primary {
  border-color: var(--al-court);
  background: var(--al-court);
  color: #fff;
  box-shadow: none;
}

.member-home-guide {
  min-height: 228px;
  border: 1px solid var(--al-line);
  border-radius: 6px;
  background: #e9efea;
  box-shadow: none;
}

.member-home-avatar {
  animation: none;
}

.member-home-progress-pill {
  border-color: var(--al-line);
  border-radius: 4px;
  background: rgba(255, 254, 251, .94);
  color: var(--al-ink);
  box-shadow: 0 5px 16px rgba(25, 37, 32, .06);
  backdrop-filter: blur(10px);
}

.member-home-progress-pill small,
.member-home-progress-pill em {
  color: var(--al-ink-soft);
}

.member-home-progress-pill strong {
  color: var(--al-gold);
}

.member-home-progress-pill > i {
  background: #dfe4df;
}

.member-home-progress-pill > i > b {
  background: var(--al-court);
}

.member-home-first-journey,
.member-home-progress-story,
.member-home-snapshot-card,
.member-home-next {
  border-color: var(--al-line);
  border-radius: 6px;
  background: var(--al-paper);
  box-shadow: none;
}

.member-home-first-journey {
  background: var(--al-paper);
}

.member-home-first-journey > header {
  padding: 17px 19px 13px;
}

.member-home-first-journey > header small,
.member-home-first-steps article.is-active small {
  color: var(--al-court);
}

.member-home-first-journey > header strong {
  font-size: 19px;
  font-weight: 650;
}

.member-home-first-steps article > b,
.member-home-first-steps article.is-active > b {
  width: 28px;
  height: 28px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #8b918e;
  box-shadow: none;
  font-size: 10px;
}

.member-home-first-steps article.is-active > b {
  color: var(--al-gold);
}

.member-home-first-journey > footer {
  background: #f0f2ee;
}

.member-home-progress-story {
  background: #f7f8f4;
}

/* Training upload: one professional brief, then one clear action. */
#analysisForm.tool,
.result {
  border: 1px solid var(--al-line);
  border-radius: 8px;
  background: var(--al-paper);
  box-shadow: var(--al-shadow-sm);
}

#analysisForm.tool {
  padding: clamp(19px, 2.4vw, 28px);
}

.train-section-title {
  margin-bottom: 17px;
  padding: 0 0 17px;
  border-bottom: 1px solid var(--al-line);
}

.train-section-title > small {
  color: var(--al-court);
  font-size: 8px;
  font-weight: 700;
}

.train-section-title > span {
  font-size: clamp(26px, 3.1vw, 34px);
  font-weight: 630;
}

.train-section-title > p {
  max-width: 48ch;
  color: var(--al-ink-soft);
  font-size: 11px;
  line-height: 1.55;
}

#analysisForm > .forehand-v1-brief,
.forehand-v1-brief {
  gap: 13px;
  margin-bottom: 18px;
  padding: 16px 17px;
  border: 1px solid var(--al-line);
  border-radius: 6px;
  background: #f0f2ee;
  color: var(--al-ink);
  box-shadow: none;
}

.train-coach-companion {
  min-height: 92px;
  grid-template-columns: 70px minmax(0, 1fr);
  gap: 13px;
  padding: 10px 13px 10px 9px;
  border-color: var(--al-line);
  border-radius: 5px;
  background: #e3e9e3;
}

.train-coach-companion::after,
.train-coach-companion > span {
  display: none;
}

.train-coach-avatar {
  width: 70px;
  height: 72px;
  border-color: rgba(32, 39, 37, .12);
  border-radius: 4px;
  background: #eff3ee;
}

.train-coach-companion small {
  color: var(--al-court);
  font-size: 7px;
  font-weight: 680;
  letter-spacing: .08em;
}

.train-coach-companion strong {
  color: var(--al-ink);
  font-size: 13px;
  font-weight: 630;
  line-height: 1.3;
}

.train-coach-companion p {
  color: var(--al-ink-soft);
  font-size: 8px;
  font-weight: 500;
  line-height: 1.48;
}

.stroke-mode-options legend {
  color: var(--al-ink-soft);
  font-size: 9px;
  font-weight: 620;
}

.stroke-mode-options label {
  min-height: 41px;
  border-color: var(--al-line);
  border-radius: 4px;
  background: var(--al-paper);
  color: #59615e;
  font-weight: 620;
  box-shadow: none;
}

.stroke-mode-options label:has(input:checked) {
  border-color: var(--al-court);
  background: var(--al-court);
  color: #fff;
  box-shadow: none;
}

.forehand-v1-head {
  padding: 2px 0 11px;
  border-bottom: 1px solid var(--al-line);
}

.forehand-v1-head small {
  color: var(--al-court);
  font-size: 8px;
  font-weight: 690;
  letter-spacing: .07em;
}

.forehand-v1-head strong {
  color: var(--al-ink);
  font-size: 18px;
  font-weight: 640;
}

.forehand-v1-head > span {
  min-height: 23px;
  border-color: var(--al-line-strong);
  border-radius: 3px;
  background: transparent;
  color: var(--al-ink-soft);
  font-size: 8px;
  font-weight: 650;
}

.capture-essentials {
  gap: 0;
}

.capture-essentials > span {
  min-height: 55px;
  padding: 9px 12px;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.capture-essentials > span + span {
  border-left: 1px solid var(--al-line);
}

.capture-essentials b {
  color: var(--al-ink);
  font-size: 10px;
  font-weight: 650;
}

.capture-essentials em {
  color: var(--al-ink-soft);
  font-size: 8px;
  font-weight: 540;
}

.capture-guide {
  padding-top: 10px;
  border-color: var(--al-line);
}

.capture-guide > summary {
  color: var(--al-court);
  font-size: 9px;
  font-weight: 650;
}

.capture-guide > p {
  color: var(--al-ink-soft);
  font-weight: 520;
}

.capture-protocol li {
  min-height: 68px;
  border-color: var(--al-line);
  border-radius: 3px;
  background: var(--al-paper);
}

.capture-protocol b {
  color: var(--al-gold);
}

.capture-protocol span {
  color: var(--al-ink);
  font-weight: 590;
}

.upload-box {
  min-height: 150px;
  border: 1px dashed rgba(20, 91, 76, .42);
  border-radius: 6px;
  background: #faf9f4;
  box-shadow: none;
}

.upload-box:hover,
.upload-box:focus-within,
.upload-box.has-file {
  border-color: var(--al-court);
  background: #f2f6f2;
  box-shadow: none;
}

.upload-box::before {
  background: var(--al-court);
  box-shadow: none;
}

.upload-box strong {
  color: var(--al-ink);
  font-size: 17px;
  font-weight: 640;
}

.upload-box em {
  color: var(--al-ink-soft);
  font-size: 10px;
}

.quick-video-tags label span,
.protocol-confirmations,
.upload-preflight .preflight-check,
.player-name-field input,
.optional-analysis-fields {
  border-radius: 4px;
  box-shadow: none;
}

.protocol-confirmations {
  background: #f4f5f1;
}

#analysisForm > button.primary,
#analysisForm > button.primary[type="submit"] {
  min-height: 49px;
  border-radius: 5px;
  background: var(--al-court);
  box-shadow: none;
  font-weight: 680;
}

/* Report: reads like a coach's marked session note rather than a dashboard. */
.result {
  padding: clamp(18px, 2.4vw, 28px);
}

.result > .section-title {
  padding-bottom: 14px;
  border-bottom: 1px solid var(--al-line);
}

.report-brand-band {
  min-height: 58px;
  padding: 8px 0 13px;
  border: 0;
  border-bottom: 1px solid var(--al-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.report-brand-band img {
  width: min(300px, 68%);
  height: 37px;
}

.report-brand-band span {
  color: var(--al-ink-soft);
  font-size: 9px;
  font-weight: 650;
  letter-spacing: .08em;
}

.report-delivery-stack {
  gap: 14px;
  margin-top: 16px;
}

.report-hero-v2 {
  grid-template-columns: minmax(330px, .88fr) minmax(390px, 1.12fr);
  gap: 24px;
  padding: 20px;
  border: 1px solid var(--al-line);
  border-radius: 6px;
  background: var(--al-paper);
  box-shadow: none;
}

.report-hero-v2::after {
  display: none;
}

.hero-status-row {
  padding-bottom: 10px;
  border-bottom: 1px solid var(--al-line);
}

.hero-status-row span,
.hero-status-row em {
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  font-size: 9px;
  font-weight: 680;
}

.hero-status-row span {
  color: var(--al-court);
}

.hero-status-row em {
  padding-left: 9px;
  border-left: 1px solid var(--al-line-strong);
  color: var(--al-ink-soft);
}

.hero-verdict {
  align-items: start;
  gap: 17px;
}

.hero-verdict small {
  color: var(--al-ink-soft);
  font-size: 9px;
  font-weight: 620;
}

.hero-verdict h2 {
  margin-top: 6px;
  color: var(--al-ink);
  font-size: clamp(28px, 3.4vw, 40px);
  font-weight: 630;
  line-height: 1.08;
}

.hero-verdict p {
  color: var(--al-ink-soft);
  font-size: 12px;
  line-height: 1.62;
}

.score-ring {
  width: 96px;
  background:
    radial-gradient(circle, var(--al-paper) 0 56%, transparent 57%),
    conic-gradient(var(--al-gold) var(--score), #e6e7e2 0);
  box-shadow: none;
}

.score-ring span {
  color: var(--al-ink);
  font-size: 28px;
  font-weight: 680;
}

.score-ring em {
  color: var(--al-ink-soft);
  font-weight: 620;
}

.hero-next-step {
  padding: 10px 0 10px 13px;
  border: 0;
  border-left: 3px solid var(--al-gold);
  border-radius: 0;
  background: transparent;
}

.hero-next-step small {
  color: var(--al-gold);
  font-size: 9px;
  font-weight: 670;
}

.hero-next-step strong {
  color: var(--al-ink);
  font-weight: 620;
}

.report-quick-facts {
  gap: 0;
  border-top: 1px solid var(--al-line);
  border-bottom: 1px solid var(--al-line);
}

.report-quick-facts > div {
  padding: 10px 9px;
  border-top: 0;
  background: transparent;
}

.report-quick-facts > div + div {
  border-left: 1px solid var(--al-line);
}

.report-quick-facts small {
  color: var(--al-ink-soft);
  font-size: 8px;
  font-weight: 590;
}

.report-quick-facts b {
  color: var(--al-ink);
  font-size: 11px;
  font-weight: 630;
}

.report-actions {
  gap: 6px;
}

.report-actions a,
.report-actions button {
  min-height: 34px;
  border-color: var(--al-line-strong);
  border-radius: 4px;
  background: transparent;
  color: var(--al-court);
  font-size: 10px;
  font-weight: 650;
  box-shadow: none;
}

.hero-actions-row a:first-child {
  border-color: var(--al-court);
  background: var(--al-court);
  color: #fff;
}

.report-hero-media article {
  padding: 0;
  border-color: var(--al-line);
  border-radius: 4px;
  background: #f2f3ef;
  box-shadow: none;
}

.report-hero-media small {
  padding: 10px 11px 0;
  color: var(--al-ink-soft);
  font-size: 9px;
  font-weight: 620;
}

.report-hero-media video {
  border-radius: 0 0 3px 3px;
}

.report-truth-status,
.motion-detail-scan,
.next-session-focus,
.player-analysis-basis,
.report-evidence-drawer {
  border-color: var(--al-line);
  border-radius: 6px;
  background: var(--al-paper);
  box-shadow: none;
}

.report-truth-grid {
  gap: 0;
  border-top: 1px solid var(--al-line);
}

.report-truth-grid article {
  padding: 12px 10px;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.report-truth-grid article + article {
  border-left: 1px solid var(--al-line);
}

.report-truth-grid article > span {
  border-radius: 3px;
  background: #e6ebe6;
  color: var(--al-court);
}

.report-truth-grid .is-coach.is-confirmed {
  border-color: var(--al-line);
  background: #f2f5f1;
}

.motion-detail-head > span,
.next-session-head > div:last-child span,
.report-truth-head > span {
  border-radius: 3px;
  background: #edf1ed;
}

.motion-detail-list article,
.next-session-steps article {
  background: transparent;
}

.next-session-focus {
  background: #f2f5f1;
}

.next-session-steps article {
  border-color: var(--al-line);
  border-radius: 3px;
}

.next-session-steps article > span {
  border-radius: 3px;
  background: var(--al-court);
  color: #fff;
}

.report-evidence-drawer {
  margin-top: 14px;
}

.report-evidence-drawer > summary::after {
  border-radius: 3px;
  background: #edf1ed;
}

.empty-state,
.community-empty,
.community-inbox-empty {
  border-radius: 6px;
  background: #f5f5f1;
  box-shadow: none;
}

@media (max-width: 760px) {
  body {
    background: #f5f2ea;
  }

  main {
    width: min(100% - 24px, 620px);
  }

  .mobile-tabs {
    right: 0;
    left: 0;
    border: 0;
    border-top: 1px solid var(--al-line);
    border-radius: 0;
    background: rgba(255, 254, 250, .97);
    box-shadow: 0 -7px 22px rgba(27, 37, 33, .07);
  }

  .mobile-tabs a {
    border-radius: 6px;
    font-weight: 620;
  }

  .mobile-tabs a.is-active {
    background: #eee7d7;
  }

  .home-hero {
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 25px;
    padding: 32px 0 30px;
  }

  .home-hero-copy .eyebrow {
    margin-bottom: 10px;
  }

  .home-hero-copy h1 {
    max-width: 9.5ch;
    font-size: clamp(39px, 11vw, 50px);
    line-height: 1.03;
  }

  .home-hero-copy > p:last-of-type {
    max-width: 30ch;
    margin-top: 15px;
    font-size: 13px;
    line-height: 1.65;
  }

  .home-hero-actions {
    margin-top: 19px;
  }

  .home-ritual {
    margin-top: 24px;
  }

  .home-visual {
    min-height: 0;
    box-shadow: 0 7px 22px rgba(27, 38, 34, .065);
  }

  .home-visual img {
    min-height: 260px;
    aspect-ratio: 16 / 11;
  }

  .home-visual-copy {
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 3px 12px;
    padding: 14px;
  }

  .home-visual-copy strong {
    font-size: 12px;
  }

  .home-visual-copy span {
    font-size: 9px;
  }

  .member-home-command {
    grid-template-columns: minmax(0, 1fr) 106px;
    gap: 13px;
    padding: 18px 16px;
    border-radius: 7px;
  }

  .member-home-copy > strong {
    font-size: clamp(25px, 7vw, 31px);
  }

  .member-home-copy > p {
    font-size: 10px;
  }

  .member-home-guide {
    min-height: 174px;
    border-radius: 5px;
  }

  .member-home-first-journey > header {
    padding: 15px;
  }

  .member-home-first-steps {
    padding: 0 15px;
  }

  .tool,
  .result,
  .library,
  #analysisForm.tool {
    border-radius: 7px;
    box-shadow: none;
  }

  .train-section-title {
    padding-bottom: 14px;
  }

  .train-section-title > span {
    font-size: 25px;
  }

  #analysisForm > .forehand-v1-brief,
  .forehand-v1-brief {
    padding: 13px;
    border-radius: 5px;
  }

  .train-coach-companion {
    grid-template-columns: 62px minmax(0, 1fr);
    min-height: 82px;
    gap: 10px;
    padding: 9px;
  }

  .train-coach-avatar {
    width: 62px;
    height: 64px;
  }

  .train-coach-companion strong {
    font-size: 12px;
  }

  .train-coach-companion p {
    font-size: 7px;
  }

  .forehand-v1-head strong {
    font-size: 17px;
  }

  .capture-essentials > span {
    min-height: 52px;
    padding: 8px 5px;
  }

  .upload-box {
    min-height: 142px;
    border-radius: 5px;
  }

  .report-brand-band {
    min-height: 50px;
  }

  .report-brand-band img {
    height: 31px;
  }

  .report-hero-v2 {
    grid-template-columns: 1fr;
    gap: 17px;
    padding: 15px;
    border-radius: 5px;
  }

  .hero-verdict {
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 13px;
  }

  .score-ring {
    width: 82px;
  }

  .score-ring span {
    font-size: 24px;
  }

  .hero-verdict h2 {
    font-size: clamp(25px, 7.8vw, 33px);
  }

  .hero-verdict p {
    font-size: 11px;
  }

  .report-quick-facts {
    grid-template-columns: 1fr;
  }

  .report-quick-facts > div + div {
    border-top: 1px solid var(--al-line);
    border-left: 0;
  }

  .report-truth-grid,
  .next-session-steps,
  .motion-detail-list {
    grid-template-columns: 1fr;
  }

  .report-truth-grid article + article,
  .motion-detail-list article:nth-child(odd) {
    border-top: 1px solid var(--al-line);
    border-left: 0;
    border-right: 0;
  }
}

@media (max-width: 390px) {
  .home-hero-actions {
    grid-template-columns: 1fr;
  }

  .member-home-command {
    grid-template-columns: 1fr;
  }

  .member-home-guide {
    min-height: 190px;
  }
}

/* v215 second pass — a tennis membership desk, not an AI landing-page template. */
body.is-auth-entry {
  background: #f5f2ea;
}

body.is-auth-entry .top-account-panel {
  width: min(980px, 100%);
  min-height: 536px;
  grid-template-columns: minmax(0, .94fr) minmax(410px, 1.06fr);
  gap: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--al-line-strong);
  border-radius: 8px;
  background: var(--al-paper);
  box-shadow: 0 12px 34px rgba(28, 38, 34, .075);
}

body.is-auth-entry .top-account-panel::before {
  display: none;
}

body.is-auth-entry .top-account-panel .account-copy {
  align-content: start;
  padding: clamp(34px, 5vw, 60px) clamp(28px, 4.4vw, 50px);
  border-right: 1px solid var(--al-line);
  background: #1e2a27;
}

body.is-auth-entry .top-account-panel .account-copy::after {
  content: "";
  width: 100%;
  min-height: 126px;
  display: block;
  margin-top: 27px;
  border-top: 1px solid rgba(244, 239, 225, .16);
  background:
    linear-gradient(152deg, transparent 0 44%, rgba(210, 178, 108, .38) 44.4% 45.2%, transparent 45.5%),
    linear-gradient(26deg, transparent 0 54%, rgba(244, 239, 225, .14) 54.4% 55.2%, transparent 55.5%);
  opacity: .8;
}

body.is-auth-entry .top-account-panel .account-copy > small {
  color: var(--al-gold-bright);
  font-size: 9px;
  font-weight: 670;
  letter-spacing: .09em;
}

body.is-auth-entry .top-account-panel .account-copy > strong {
  max-width: 11.6em;
  margin-top: 17px;
  color: #f7f3e8;
  font-size: clamp(34px, 4.2vw, 47px);
  font-weight: 570;
  line-height: 1.08;
  letter-spacing: -.035em;
}

body.is-auth-entry .top-account-panel .account-copy > span {
  max-width: 29em;
  margin-top: 18px;
  color: rgba(244, 239, 225, .68);
  font-size: 12px;
  font-weight: 470;
  line-height: 1.75;
}

body.is-auth-entry .auth-value-list {
  gap: 0;
  margin-top: 24px;
  border-top: 1px solid rgba(244, 239, 225, .14);
}

body.is-auth-entry .auth-value-list li {
  min-height: 37px;
  display: flex;
  align-items: center;
  padding: 9px 0 9px 17px;
  border-bottom: 1px solid rgba(244, 239, 225, .1);
  color: rgba(244, 239, 225, .73);
  font-size: 10px;
  font-weight: 520;
  line-height: 1.45;
}

body.is-auth-entry .auth-value-list li::before {
  top: 50%;
  left: 1px;
  width: 7px;
  height: 4px;
  border-width: 0 0 1px 1px;
  transform: translateY(-65%) rotate(-45deg);
}

body.is-auth-entry .account-command {
  margin-top: 18px;
  padding-top: 0;
  border-top: 0;
}

body.is-auth-entry .account-command b {
  color: var(--al-gold-bright);
  font-size: 10px;
  font-weight: 680;
  letter-spacing: .04em;
}

body.is-auth-entry .account-command span {
  color: rgba(244, 239, 225, .66);
  font-size: 10px;
  font-weight: 480;
  line-height: 1.5;
}

body.is-auth-entry .top-account-panel .account-form {
  align-content: start;
  padding: clamp(31px, 4.4vw, 48px);
  border: 0;
  border-radius: 0;
  background: var(--al-paper);
  box-shadow: none;
}

body.is-auth-entry .auth-form-head {
  padding-bottom: 17px;
  border-bottom: 1px solid var(--al-line);
}

body.is-auth-entry .auth-form-head small {
  color: var(--al-ink);
  font-size: 20px;
  font-weight: 610;
}

body.is-auth-entry .auth-mode-switch {
  gap: 0;
  margin-top: 17px;
  padding: 0;
  border: 0;
  border-bottom: 1px solid var(--al-line);
  border-radius: 0;
  background: transparent;
}

body.is-auth-entry .auth-mode-switch button {
  min-height: 42px;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  background: transparent;
  color: #7a807e;
  font-size: 11px;
  font-weight: 580;
}

body.is-auth-entry .auth-mode-switch button.is-active {
  border-bottom-color: var(--al-gold);
  background: transparent;
  color: var(--al-ink);
  box-shadow: none;
}

body.is-auth-entry .auth-mode-hint {
  margin: 13px 0 4px;
  color: var(--al-ink-soft);
  font-size: 9px;
  font-weight: 490;
}

body.is-auth-entry .account-form label > span:first-child {
  color: #39413e;
  font-size: 10px;
  font-weight: 610;
}

body.is-auth-entry .account-form input {
  min-height: 43px;
  border-color: var(--al-line-strong);
  border-radius: 4px;
  background: #fbfaf6;
  font-size: 12px;
  box-shadow: none;
}

body.is-auth-entry .auth-legal-consent {
  border-color: var(--al-line);
  border-radius: 4px;
  background: #f6f5f0;
}

body.is-auth-entry .auth-actions .primary {
  min-height: 45px;
  border-color: var(--al-court);
  border-radius: 4px;
  background: var(--al-court);
  box-shadow: none;
  font-size: 12px;
}

body.is-auth-entry .account-trust-links {
  border-radius: 5px;
  background: rgba(255, 254, 251, .74);
}

@media (max-width: 760px) {
  body.is-auth-entry[data-app-screen="my"] main {
    width: min(100% - 22px, 520px);
    padding-top: 13px;
  }

  body.is-auth-entry .top-account-panel {
    grid-template-columns: 1fr;
    gap: 0;
    border-radius: 7px;
  }

  body.is-auth-entry .top-account-panel .account-copy {
    padding: 25px 21px 22px;
    border-right: 0;
    border-bottom: 1px solid rgba(244, 239, 225, .13);
  }

  body.is-auth-entry .top-account-panel .account-copy::after {
    display: none;
  }

  body.is-auth-entry .top-account-panel .account-copy > small {
    font-size: 8px;
  }

  body.is-auth-entry .top-account-panel .account-copy > strong {
    max-width: 12em;
    margin-top: 12px;
    font-size: clamp(28px, 7.7vw, 34px);
    line-height: 1.08;
  }

  body.is-auth-entry .top-account-panel .account-copy > span {
    display: block;
    margin-top: 12px;
    font-size: 10px;
    line-height: 1.6;
  }

  body.is-auth-entry .auth-value-list {
    display: none;
  }

  body.is-auth-entry .auth-value-list li {
    min-height: 32px;
    padding-top: 7px;
    padding-bottom: 7px;
    font-size: 9px;
  }

  body.is-auth-entry .account-command {
    margin-top: 14px;
  }

  body.is-auth-entry .top-account-panel .account-form {
    gap: 8px;
    padding: 22px 16px 19px;
    border-radius: 0;
  }

  body.is-auth-entry .auth-form-head {
    padding-bottom: 12px;
  }

  body.is-auth-entry .auth-form-head small {
    font-size: 17px;
  }

  body.is-auth-entry .auth-mode-switch {
    margin-top: 10px;
  }

body.is-auth-entry .account-form input {
    min-height: 42px;
  }
}

/* v217 — member profile: restore invite actions and remove generic dashboard styling */
.profile-invite-card {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  overflow: hidden;
  padding: 0;
  border: 1px solid var(--al-line-strong);
  border-radius: 7px;
  background: #fffdf8;
  color: var(--al-ink);
  box-shadow: none;
}

.profile-invite-head {
  display: flex;
  gap: 18px;
  align-items: center;
  justify-content: space-between;
  padding: 13px 15px 12px;
  border-bottom: 1px solid var(--al-line);
}

.profile-invite-head > div {
  min-width: 0;
}

.profile-invite-card .profile-invite-head small,
.profile-invite-card .profile-invite-head span {
  display: block;
  color: var(--al-ink-soft);
}

.profile-invite-card .profile-invite-head small {
  margin-bottom: 3px;
  color: var(--al-ink);
  font-size: 12px;
  font-weight: 690;
  letter-spacing: .01em;
}

.profile-invite-card .profile-invite-head span {
  font-size: 10px;
  font-weight: 480;
  line-height: 1.45;
}

.profile-invite-head > button {
  flex: 0 0 auto;
  min-height: 30px;
  padding: 5px 0 4px;
  border: 0;
  border-bottom: 1px solid var(--al-gold);
  border-radius: 0;
  background: transparent;
  color: #806326;
  font-size: 10px;
  font-weight: 620;
}

.profile-invite-row {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto minmax(132px, auto);
  gap: 14px;
  align-items: center;
  padding: 15px;
  background: #202a28;
}

.profile-invite-code {
  min-width: 0;
}

.profile-invite-card .profile-invite-code small {
  display: block;
  margin-bottom: 6px;
  color: rgba(247, 243, 232, .58);
  font-size: 9px;
  font-weight: 570;
  letter-spacing: .05em;
}

.profile-invite-card .profile-invite-code strong {
  display: block;
  overflow: hidden;
  margin: 0;
  color: #e1bd70;
  font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  font-size: clamp(22px, 3vw, 29px);
  font-weight: 680;
  line-height: 1.05;
  letter-spacing: .045em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.profile-invite-card .profile-invite-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(68px, 1fr));
  gap: 0;
  border-left: 1px solid rgba(247, 243, 232, .14);
}

.profile-invite-card .profile-invite-stats > span {
  min-width: 0;
  padding: 1px 13px;
  border: 0;
  border-right: 1px solid rgba(247, 243, 232, .14);
  border-radius: 0;
  background: transparent;
}

.profile-invite-card .profile-invite-stats small {
  display: block;
  color: rgba(247, 243, 232, .54);
  font-size: 8px;
  font-weight: 530;
  white-space: nowrap;
}

.profile-invite-card .profile-invite-stats b {
  display: block;
  margin: 4px 0 0;
  color: #f7f3e8;
  font-size: 18px;
  font-weight: 610;
  line-height: 1;
}

.profile-invite-card .profile-invite-copy {
  min-height: 40px;
  padding: 8px 14px;
  border: 1px solid #d2ad61;
  border-radius: 4px;
  background: #d2ad61;
  color: #202826;
  font-size: 11px;
  font-weight: 680;
  white-space: nowrap;
  box-shadow: none;
}

.profile-invite-card .profile-invite-copy:hover {
  border-color: #e3c681;
  background: #e3c681;
}

.profile-invite-card .profile-invite-copy.is-copied {
  border-color: #f4efe1;
  background: #f4efe1;
  color: #1e2926;
}

.profile-invite-card .profile-invite-copy.is-copy-error {
  border-color: #c87463;
  background: #c87463;
  color: #fff;
}

/* v288 · invite reward progress */
.profile-invite-progress {
  min-width: 0;
  padding: 14px 15px 15px;
  border-top: 1px solid var(--al-line);
  background: #fffdf8;
}

.profile-invite-progress > header {
  display: flex;
  gap: 18px;
  align-items: flex-start;
  justify-content: space-between;
}

.profile-invite-progress > header > div:first-child {
  min-width: 0;
}

.profile-invite-progress > header strong,
.profile-invite-progress > header small {
  display: block;
}

.profile-invite-progress > header strong {
  color: var(--al-ink);
  font-size: 12px;
  font-weight: 680;
}

.profile-invite-progress > header small {
  margin-top: 3px;
  color: var(--al-ink-soft);
  font-size: 9px;
  line-height: 1.45;
}

.profile-invite-progress-summary {
  display: flex;
  flex: 0 0 auto;
  gap: 13px;
  align-items: center;
}

.profile-invite-progress-summary span {
  color: var(--al-ink-soft);
  font-size: 9px;
  white-space: nowrap;
}

.profile-invite-progress-summary b {
  margin-right: 4px;
  color: var(--al-ink);
  font-size: 13px;
}

.profile-invite-progress-list {
  display: grid;
  gap: 0;
  margin: 12px 0 0;
  padding: 0;
  border-top: 1px solid var(--al-line);
  list-style: none;
}

.profile-invite-progress-list li {
  display: grid;
  grid-template-columns: 25px minmax(0, 1fr) minmax(132px, auto);
  gap: 10px;
  align-items: center;
  min-width: 0;
  padding: 10px 0;
  border-bottom: 1px solid var(--al-line);
}

.profile-invite-progress-index {
  display: grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border: 1px solid var(--al-line-strong);
  border-radius: 50%;
  color: var(--al-ink-soft);
  font-size: 9px;
  font-weight: 690;
}

.profile-invite-progress-list li.is-rewarded .profile-invite-progress-index {
  border-color: #8ea99d;
  background: #e6eee8;
  color: #1f5b49;
}

.profile-invite-progress-person,
.profile-invite-progress-status {
  min-width: 0;
}

.profile-invite-progress-person strong,
.profile-invite-progress-person small,
.profile-invite-progress-status strong,
.profile-invite-progress-status small {
  display: block;
  overflow-wrap: anywhere;
}

.profile-invite-progress-person strong {
  color: var(--al-ink);
  font-size: 11px;
  font-weight: 640;
}

.profile-invite-progress-person small,
.profile-invite-progress-status small {
  margin-top: 2px;
  color: var(--al-ink-soft);
  font-size: 8px;
  line-height: 1.4;
}

.profile-invite-progress-status {
  text-align: right;
}

.profile-invite-progress-status strong {
  color: #806326;
  font-size: 10px;
  font-weight: 660;
}

.profile-invite-progress-list li.is-rewarded .profile-invite-progress-status strong {
  color: #1f684f;
}

.profile-invite-progress-empty {
  margin: 12px 0 0;
  padding: 11px 12px;
  border: 1px dashed var(--al-line-strong);
  color: var(--al-ink-soft);
  font-size: 10px;
  line-height: 1.5;
}

.profile-invite-progress-more {
  display: block;
  margin-top: 8px;
  color: var(--al-ink-soft);
  font-size: 9px;
}

.profile-invite-anti-abuse {
  margin: 11px 0 0;
  padding: 8px 10px;
  border-left: 2px solid #d2ad61;
  background: #f7f1e2;
  color: #675a3d;
  font-size: 9px;
  line-height: 1.55;
}

.profile-invite-card .profile-invite-rules {
  grid-column: auto;
  padding: 13px 15px;
  border: 0;
  border-top: 1px solid var(--al-line);
  border-radius: 0;
  background: #f5f2e9;
}

.profile-invite-card .profile-invite-rules strong {
  margin: 0;
  color: var(--al-ink);
  font-size: 12px;
  font-weight: 660;
}

.profile-invite-card .profile-invite-rules p,
.profile-invite-card .profile-invite-rules small {
  color: var(--al-ink-soft);
  font-size: 10px;
  font-weight: 480;
  line-height: 1.55;
}

.profile-invite-card .profile-invite-rules p {
  margin: 6px 0 3px;
}

.profile-command {
  grid-template-columns: minmax(132px, .4fr) minmax(0, 1fr) minmax(260px, .78fr);
  gap: 18px;
  padding: 18px;
  border: 1px solid var(--al-line-strong);
  border-radius: 7px;
  background: #fffefb;
  color: var(--al-ink);
  box-shadow: none;
}

.profile-command-avatar > button {
  color: var(--al-ink);
}

.profile-command-avatar .player-avatar-art {
  border-color: var(--al-line);
  border-radius: 5px;
  background: #e9efea;
}

.profile-command-avatar > button:hover .player-avatar-art,
.profile-command-avatar > button:focus-visible .player-avatar-art {
  border-color: var(--al-gold);
}

.profile-command-avatar > button small {
  color: var(--al-ink-soft);
}

.profile-command-avatar > button b {
  color: var(--al-court);
}

.profile-avatar-level {
  border-color: var(--al-line);
  border-radius: 4px;
  background: #f3f0e7;
}

.profile-avatar-level b {
  color: #9c7831;
}

.profile-avatar-level span {
  color: var(--al-ink-soft);
}

.profile-command-main > small {
  color: var(--al-court);
}

.profile-command-main > strong {
  color: var(--al-ink);
}

.profile-command-main > p {
  color: var(--al-ink-soft);
}

.profile-command-actions a {
  min-height: 38px;
  border: 1px solid var(--al-line-strong);
  border-radius: 4px;
  background: transparent;
  color: var(--al-ink);
  box-shadow: none;
}

.profile-command-actions a:first-child {
  border-color: var(--al-court);
  background: var(--al-court);
  color: #fff;
}

.profile-command-grid {
  gap: 0;
  border-top: 1px solid var(--al-line);
  border-left: 1px solid var(--al-line);
}

.profile-command-grid article {
  min-height: 76px;
  padding: 11px 12px;
  border: 0;
  border-right: 1px solid var(--al-line);
  border-bottom: 1px solid var(--al-line);
  border-radius: 0;
  background: #f7f4ec;
  backdrop-filter: none;
}

.profile-command-grid small,
.profile-command-grid span {
  color: var(--al-ink-soft);
  font-size: 9px;
  font-weight: 520;
}

.profile-command-grid b {
  color: var(--al-ink);
  font-size: 14px;
  font-weight: 650;
}

.motion-compare-empty {
  gap: 20px;
  padding: 16px 16px 16px 18px;
  border: 0;
  border-left: 3px solid var(--al-gold);
  border-radius: 0;
  background: #f4f1e8;
}

.motion-compare-empty small {
  color: #82672f;
  font-size: 9px;
  font-weight: 640;
  letter-spacing: .03em;
}

.motion-compare-empty strong {
  color: var(--al-ink);
  font-size: 13px;
  font-weight: 560;
  line-height: 1.55;
}

.motion-compare-empty a {
  min-height: 36px;
  padding: 7px 13px;
  border: 1px solid #26302e;
  border-radius: 4px;
  background: #26302e;
  font-size: 10px;
  font-weight: 640;
}

.profile-more,
.account-data-controls {
  overflow: visible;
  border: 0;
  border-top: 1px solid var(--al-line-strong);
  border-bottom: 1px solid var(--al-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.profile-more > summary,
.account-data-controls > summary {
  min-height: 58px;
  grid-template-columns: minmax(0, 1fr) auto 18px;
  padding: 13px 2px;
}

.profile-more > summary span,
.account-data-controls > summary span {
  color: var(--al-ink);
  font-size: 15px;
  font-weight: 620;
}

.profile-more > summary em,
.account-data-controls > summary em {
  color: var(--al-ink-soft);
  font-size: 10px;
  font-weight: 490;
}

.profile-more > summary::after,
.account-data-controls > summary::after {
  content: "›";
  width: 18px;
  border-radius: 0;
  background: transparent;
  color: #876a31;
  font-size: 22px;
  font-weight: 400;
  transform: rotate(90deg);
  transition: transform .18s ease;
}

.profile-more[open] > summary::after,
.account-data-controls[open] > summary::after {
  content: "›";
  transform: rotate(-90deg);
}

.profile-more[open] > summary,
.account-data-controls[open] > summary {
  border-bottom-color: var(--al-line);
}

@media (max-width: 620px) {
  .profile-invite-head {
    align-items: flex-start;
    padding: 12px 13px 11px;
  }

  .profile-invite-card .profile-invite-head span {
    max-width: 25em;
  }

  .profile-invite-row {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 13px 10px;
    padding: 14px 13px 13px;
  }

  .profile-invite-card .profile-invite-code strong {
    font-size: 24px;
  }

  .profile-invite-card .profile-invite-stats {
    grid-column: 1 / -1;
    grid-row: 2;
    border-top: 1px solid rgba(247, 243, 232, .12);
    border-left: 0;
    padding-top: 10px;
  }

  .profile-invite-card .profile-invite-stats > span {
    padding: 0 10px 0 0;
    border-right: 0;
  }

  .profile-invite-card .profile-invite-copy {
    min-height: 38px;
    padding: 7px 11px;
  }

  .profile-invite-progress {
    padding: 13px;
  }

  .profile-invite-progress > header {
    display: grid;
    gap: 9px;
  }

  .profile-invite-progress-summary {
    justify-content: space-between;
    width: 100%;
  }

  .profile-invite-progress-list li {
    grid-template-columns: 24px minmax(0, 1fr);
    gap: 8px 9px;
  }

  .profile-invite-progress-status {
    grid-column: 2;
    text-align: left;
  }

  .profile-command {
    grid-template-columns: 100px minmax(0, 1fr);
    gap: 12px;
    padding: 13px;
  }

  .profile-command-avatar,
  .profile-command-main {
    align-self: start;
  }

  .profile-command-main strong {
    font-size: 20px;
  }

  .profile-command-actions {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .profile-command-actions a:nth-child(2) {
    display: inline-grid;
  }

  .profile-command-grid {
    grid-column: 1 / -1;
    min-width: 0;
    margin-top: 1px;
  }

  .profile-command-grid article {
    min-height: 58px;
    padding: 9px 10px;
  }

  .motion-compare-empty {
    align-items: stretch;
    padding: 14px;
  }

  .motion-compare-empty a {
    min-height: 38px;
  }

  .profile-more > summary,
  .account-data-controls > summary {
    grid-template-columns: minmax(0, 1fr) 18px;
    gap: 8px;
  }

  .profile-more > summary em,
  .account-data-controls > summary em {
    grid-column: 1;
    grid-row: 2;
    text-align: left;
  }

  .profile-more > summary::after,
  .account-data-controls > summary::after {
    grid-column: 2;
    grid-row: 1 / span 2;
  }
}

/* v218 final cascade — keep the first-session route above historical layers. */
#analysisForm .training-journey {
  display: grid;
  gap: 8px;
  margin: -2px 0 18px;
  padding: 0 0 15px;
  border-bottom: 1px solid var(--al-line);
}

#analysisForm .training-journey ol {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
}

#analysisForm .training-journey li {
  min-height: 42px;
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  padding: 8px 12px 8px 0;
  border-top: 1px solid var(--al-line);
  border-bottom: 1px solid var(--al-line);
  color: #8a8f8d;
}

#analysisForm .training-journey li + li {
  padding-left: 12px;
  border-left: 1px solid var(--al-line);
}

#analysisForm .training-journey li b {
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  border: 1px solid var(--al-line-strong);
  border-radius: 50%;
  color: #858b89;
  font-size: 8px;
}

#analysisForm:not(.has-selected-video) .training-journey [data-training-step="select"],
#analysisForm.has-selected-video:not(.is-protocol-ready) .training-journey [data-training-step="confirm"],
#analysisForm.is-protocol-ready .training-journey [data-training-step="report"] {
  border-bottom-color: var(--al-gold);
  color: var(--al-ink);
}

#analysisForm:not(.has-selected-video) .training-journey [data-training-step="select"] b,
#analysisForm.has-selected-video:not(.is-protocol-ready) .training-journey [data-training-step="confirm"] b,
#analysisForm.is-protocol-ready .training-journey [data-training-step="report"] b {
  border-color: var(--al-gold);
  background: var(--al-gold);
  color: #fff;
}

#analysisForm.has-selected-video .training-journey [data-training-step="select"] b,
#analysisForm.is-protocol-ready .training-journey [data-training-step="confirm"] b {
  border-color: var(--al-court);
  background: transparent;
  color: transparent;
}

#analysisForm.has-selected-video .training-journey [data-training-step="select"] b::after,
#analysisForm.is-protocol-ready .training-journey [data-training-step="confirm"] b::after {
  content: "✓";
  color: var(--al-court);
  font-size: 11px;
}

#analysisForm .upload-preflight {
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--al-line);
  border-radius: 5px;
  background: #fbfaf6;
  box-shadow: none;
}

#analysisForm .preflight-checks {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}

#analysisForm .upload-preflight .preflight-check {
  min-height: 48px;
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border: 0;
  border-radius: 0;
  background: transparent;
}

#analysisForm .upload-preflight .preflight-check + .preflight-check {
  border-top: 1px solid var(--al-line);
}

#analysisForm .upload-preflight .preflight-check > em {
  color: var(--al-ink);
  font-size: 10px;
  font-style: normal;
  font-weight: 660;
  white-space: nowrap;
}

#analysisForm .analysis-progress {
  border: 1px solid var(--al-line-strong);
  border-radius: 5px;
  background: #f2f4ef;
  box-shadow: none;
}

#analysisForm .analysis-progress-steps span {
  border-radius: 0;
  box-shadow: none;
}

.result .report-truth-status {
  padding: 0;
  overflow: hidden;
  border-radius: 6px;
  box-shadow: none;
}

.result .report-truth-head {
  padding: 15px 16px 13px;
  border-bottom: 1px solid var(--al-line);
}

.result .report-truth-grid {
  gap: 0;
  border-top: 0;
}

.result .report-truth-grid article {
  min-height: 132px;
  padding: 16px;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.result .report-truth-grid article + article {
  border-left: 1px solid var(--al-line);
}

.result .report-truth-grid article > span {
  border: 1px solid var(--al-line-strong);
  border-radius: 50%;
  background: transparent;
}

.result .empty-report {
  min-height: 330px;
  display: grid;
  align-content: center;
  padding: clamp(22px, 4vw, 42px);
  border: 1px solid var(--al-line);
  border-radius: 5px;
  background: #f5f6f1;
}

.result .empty-report-copy ol {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 12px 0 0;
  padding: 0;
  border-top: 1px solid var(--al-line);
  border-bottom: 1px solid var(--al-line);
  list-style: none;
}

@media (max-width: 760px) {
  #analysisForm .training-journey li {
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 5px;
    padding: 7px 6px 7px 0;
  }

  #analysisForm .training-journey li + li {
    padding-left: 6px;
  }

  #analysisForm .training-journey li b {
    width: 20px;
    height: 20px;
  }

  .result .report-truth-grid {
    grid-template-columns: 1fr;
  }

  .result .report-truth-grid article {
    min-height: 0;
    padding: 14px;
  }

  .result .report-truth-grid article + article {
    border-top: 1px solid var(--al-line);
    border-left: 0;
  }

  .result .empty-report {
    min-height: 280px;
    padding: 20px 16px;
  }

  .result .empty-report-copy ol {
    grid-template-columns: 1fr;
  }
}

body.is-auth-entry .auth-journey {
  display: grid;
  gap: 10px;
  margin-top: 20px;
  padding-top: 14px;
  border-top: 1px solid rgba(244, 239, 225, .14);
}

body.is-auth-entry .auth-journey > small {
  color: var(--al-gold-bright);
  font-size: 8px;
  font-weight: 680;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body.is-auth-entry .auth-journey ol {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
}

body.is-auth-entry .auth-journey li {
  min-width: 0;
  display: grid;
  gap: 5px;
  padding-right: 10px;
}

body.is-auth-entry .auth-journey li + li {
  padding-left: 10px;
  border-left: 1px solid rgba(244, 239, 225, .13);
}

body.is-auth-entry .auth-journey li b {
  color: rgba(215, 183, 111, .76);
  font-size: 8px;
}

body.is-auth-entry .auth-journey li span {
  color: rgba(244, 239, 225, .76);
  font-size: 9px;
  font-weight: 540;
  line-height: 1.42;
}

body.is-auth-entry .auth-mode-hint {
  min-height: 27px;
  display: flex;
  align-items: center;
  margin: 8px 0 1px;
  padding: 0 0 8px 13px;
  border-bottom: 1px solid var(--al-line);
  line-height: 1.45;
}

body.is-auth-entry .auth-mode-hint::before {
  content: "";
  width: 4px;
  height: 4px;
  flex: 0 0 auto;
  margin-right: 8px;
  border-radius: 50%;
  background: var(--al-gold);
}

#analysisForm .training-journey > small {
  color: var(--al-ink-soft);
  font-size: 8px;
  font-weight: 660;
  letter-spacing: .05em;
  text-transform: uppercase;
}

#analysisForm .training-journey li span {
  min-width: 0;
  font-size: 10px;
  font-weight: 610;
  line-height: 1.3;
}

#analysisForm .preflight-header {
  min-height: 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 12px;
  border-bottom: 1px solid var(--al-line);
  background: #f1f2ed;
}

#analysisForm .preflight-header strong {
  color: var(--al-ink);
  font-size: 10px;
  font-weight: 650;
}

#analysisForm .preflight-header em {
  color: var(--al-ink-soft);
  font-size: 8px;
  font-style: normal;
  font-weight: 620;
}

#analysisForm .upload-preflight .preflight-check > b {
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  border: 1px solid var(--al-line-strong);
  border-radius: 50%;
  background: transparent;
  color: var(--al-ink-soft);
  font-size: 9px;
}

#analysisForm .upload-preflight .preflight-check.is-pass > b {
  border-color: var(--al-court);
  color: var(--al-court);
}

#analysisForm .upload-preflight .preflight-check.is-fail {
  background: #fbf2ec;
}

#analysisForm .upload-preflight .preflight-check.is-fail > b {
  border-color: #a95536;
  color: #a95536;
}

#analysisForm .upload-preflight .preflight-check > span {
  min-width: 0;
  display: grid;
  gap: 2px;
}

#analysisForm .upload-preflight .preflight-check > span strong {
  color: var(--al-ink);
  font-size: 9px;
  font-weight: 630;
}

#analysisForm .upload-preflight .preflight-check > span small {
  color: var(--al-ink-soft);
  font-size: 8px;
  font-weight: 500;
}

#analysisForm .preflight-verdict {
  margin: 0;
  padding: 9px 12px;
  border-top: 1px solid var(--al-line);
  color: var(--al-court);
  font-size: 9px;
  font-weight: 620;
}

.result .report-truth-head > span {
  align-self: start;
  padding: 0 0 2px 10px;
  border-left: 2px solid var(--al-gold);
  border-radius: 0;
  background: transparent;
  color: var(--al-ink);
}

.result .report-truth-grid article strong {
  color: var(--al-ink);
  font-size: 13px;
  font-weight: 630;
}

.result .report-truth-grid article p,
.result .report-truth-grid article em {
  color: var(--al-ink-soft);
  font-size: 9px;
  line-height: 1.55;
}

.result .report-truth-grid .is-coach.is-confirmed {
  box-shadow: inset 3px 0 0 var(--al-court);
}

.result .empty-report-copy {
  max-width: 650px;
  display: grid;
  gap: 9px;
}

.result .empty-report-copy > strong {
  color: var(--al-ink);
  font-size: clamp(24px, 3vw, 34px);
  font-weight: 610;
  letter-spacing: -.025em;
}

.result .empty-report-copy > p {
  max-width: 53em;
  color: var(--al-ink-soft);
  font-size: 11px;
  line-height: 1.62;
}

.result .empty-report-copy li {
  min-width: 0;
  display: grid;
  gap: 6px;
  padding: 12px;
}

.result .empty-report-copy li:first-child {
  padding-left: 0;
}

.result .empty-report-copy li + li {
  border-left: 1px solid var(--al-line);
}

.result .empty-report-copy li b {
  color: var(--al-gold);
  font-size: 8px;
}

.result .empty-report-copy li span {
  color: var(--al-ink);
  font-size: 9px;
  font-weight: 560;
  line-height: 1.5;
}

@media (max-width: 760px) {
  body.is-auth-entry .auth-journey {
    margin-top: 13px;
    padding-top: 10px;
  }

  body.is-auth-entry .auth-journey li {
    padding-right: 6px;
  }

  body.is-auth-entry .auth-journey li + li {
    padding-left: 6px;
  }

  body.is-auth-entry .auth-journey li span {
    font-size: 8px;
  }

  body.is-auth-entry .account-command {
    display: none;
  }

  #analysisForm .training-journey li span {
    font-size: 8px;
  }

  .result .report-truth-grid .is-coach.is-confirmed {
    box-shadow: inset 0 3px 0 var(--al-court);
  }

  .result .empty-report-copy li {
    grid-template-columns: 22px minmax(0, 1fr);
    gap: 8px;
    padding: 9px 0;
  }

  .result .empty-report-copy li + li {
    border-top: 1px solid var(--al-line);
    border-left: 0;
  }
}

/* v220 — member home follows one visible training loop */
.member-home-command {
  align-items: stretch;
}

.member-home-copy {
  align-content: start;
}

.member-home-copy > strong {
  max-width: 13ch;
}

.member-home-copy > p {
  max-width: 60ch;
  margin-bottom: 0;
  color: var(--al-ink-soft);
}

.member-home-focus {
  max-width: 620px;
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 3px 16px;
  margin-top: 17px;
  padding: 13px 0;
  border-top: 1px solid var(--al-line);
  border-bottom: 1px solid var(--al-line);
}

.member-home-focus small {
  grid-row: 1 / 3;
  padding-top: 3px;
  color: var(--al-gold);
  font-size: 8px;
  font-weight: 720;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.member-home-focus b {
  color: var(--al-ink);
  font-size: 14px;
  font-weight: 680;
  line-height: 1.35;
}

.member-home-focus span {
  color: var(--al-ink-soft);
  font-size: 9px;
  line-height: 1.5;
}

.member-home-training-loop {
  overflow: hidden;
  border: 1px solid var(--al-line);
  border-radius: 7px;
  background: var(--al-paper);
  box-shadow: var(--al-shadow-sm);
}

.member-home-training-loop > header {
  display: grid;
  grid-template-columns: minmax(220px, .72fr) minmax(0, 1.28fr);
  align-items: end;
  gap: 24px;
  padding: 18px 20px 16px;
  border-bottom: 1px solid var(--al-line);
}

.member-home-training-loop > header > div {
  display: grid;
  gap: 4px;
}

.member-home-training-loop > header small {
  color: var(--al-court);
  font-size: 8px;
  font-weight: 720;
  letter-spacing: .075em;
  text-transform: uppercase;
}

.member-home-training-loop > header strong {
  color: var(--al-ink);
  font-family: var(--font-display);
  font-size: 21px;
  font-weight: 650;
  line-height: 1.15;
  letter-spacing: -.02em;
}

.member-home-training-loop > header p {
  max-width: 62ch;
  margin: 0;
  color: var(--al-ink-soft);
  font-size: 9px;
  line-height: 1.55;
}

.member-home-training-loop ol {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
}

.member-home-training-loop li {
  position: relative;
  min-width: 0;
  min-height: 142px;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  align-content: start;
  gap: 11px;
  padding: 18px 16px 16px;
  background: #fbfaf6;
}

.member-home-training-loop li + li {
  border-left: 1px solid var(--al-line);
}

.member-home-training-loop li::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 3px;
  background: transparent;
}

.member-home-training-loop li.is-active {
  background: #f4f1e7;
}

.member-home-training-loop li.is-active::before {
  background: var(--al-gold);
}

.member-home-training-loop li.is-complete::before {
  background: var(--al-court);
}

.member-home-training-loop li > b {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border: 1px solid var(--al-line-strong);
  border-radius: 50%;
  color: var(--al-ink-soft);
  font-size: 8px;
  font-weight: 700;
}

.member-home-training-loop li.is-active > b {
  border-color: var(--al-gold);
  background: var(--al-gold);
  color: #fff;
}

.member-home-training-loop li.is-complete > b {
  border-color: var(--al-court);
  color: var(--al-court);
}

.member-home-training-loop li > div {
  min-width: 0;
  display: grid;
  gap: 4px;
}

.member-home-training-loop li small {
  color: var(--al-ink-soft);
  font-size: 7px;
  font-weight: 680;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.member-home-training-loop li.is-active small {
  color: #9a6c22;
}

.member-home-training-loop li strong {
  color: var(--al-ink);
  font-size: 12px;
  font-weight: 680;
  line-height: 1.3;
}

.member-home-training-loop li p {
  margin: 0;
  color: var(--al-ink-soft);
  font-size: 8px;
  line-height: 1.5;
}

.member-home-training-loop li > a {
  position: absolute;
  right: 13px;
  bottom: 12px;
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border: 1px solid var(--al-line-strong);
  border-radius: 50%;
  color: var(--al-ink);
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
}

.member-home-training-loop li.is-active > a {
  border-color: var(--al-court);
  background: var(--al-court);
  color: #fff;
}

.member-home-momentum {
  border-color: var(--al-line);
  border-radius: 7px;
  background: #f5f5ef;
  box-shadow: none;
}

.member-home-momentum > header {
  padding-bottom: 13px;
  border-bottom-color: var(--al-line);
}

.member-home-momentum header strong {
  font-weight: 650;
}

.member-home-momentum-grid article {
  background: transparent;
}

@media (max-width: 760px) {
  .member-home-copy > strong {
    max-width: 11ch;
    font-size: clamp(28px, 7.8vw, 34px);
  }

  .member-home-copy > p {
    font-size: 10px;
    line-height: 1.5;
  }

  .member-home-focus {
    grid-template-columns: 1fr;
    gap: 4px;
    margin-top: 13px;
    padding: 10px 0;
  }

  .member-home-focus small {
    grid-row: auto;
    padding: 0;
  }

  .member-home-focus b {
    font-size: 12px;
  }

  .member-home-focus span {
    font-size: 10px;
  }

  .member-home-training-loop > header {
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 15px;
  }

  .member-home-training-loop > header strong {
    font-size: 19px;
  }

  .member-home-training-loop > header p {
    font-size: 10px;
  }

  .member-home-training-loop ol {
    grid-template-columns: 1fr;
  }

  .member-home-training-loop li {
    min-height: 84px;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 10px;
    padding: 13px 48px 12px 14px;
  }

  .member-home-training-loop li + li {
    border-top: 1px solid var(--al-line);
    border-left: 0;
  }

  .member-home-training-loop li::before {
    inset: 0 auto 0 0;
    width: 3px;
    height: auto;
  }

  .member-home-training-loop li > b {
    width: 28px;
    height: 28px;
  }

  .member-home-training-loop li strong {
    font-size: 13px;
  }

  .member-home-training-loop li p {
    font-size: 10px;
  }

  .member-home-training-loop li > a {
    right: 12px;
    bottom: 50%;
    transform: translateY(50%);
  }
}

@media (max-width: 390px) {
  .member-home-command {
    grid-template-columns: 1fr;
  }

  .member-home-guide {
    min-height: 184px;
  }
}

/* v221 — app-like information hierarchy */
.app-hub-header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
}

.app-hub-header > div {
  display: grid;
  gap: 7px;
}

.app-hub-header small,
.profile-detail-header > small {
  color: var(--al-gold);
  font-size: 10px;
  font-weight: 760;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.app-hub-header h2,
.profile-detail-header h2 {
  margin: 0;
  color: var(--al-ink);
  font-family: var(--font-display);
  font-size: clamp(28px, 3vw, 42px);
  font-weight: 650;
  line-height: 1.05;
  letter-spacing: -.035em;
}

.app-hub-header p {
  max-width: 62ch;
  margin: 0;
  color: var(--al-ink-soft);
  font-size: 13px;
  line-height: 1.55;
}

.training-hub {
  grid-column: 1 / -1;
  width: min(1040px, 100%);
  display: grid;
  gap: 28px;
  margin: 0 auto;
  padding: clamp(24px, 4vw, 48px);
  border: 1px solid var(--al-line);
  border-radius: 18px;
  background: #fbfaf6;
}

/* v289 — three-layer training flow: hub, filming setup, and focused upload. */
.training-session-setup {
  grid-column: 1 / -1;
  width: min(760px, 100%);
  display: grid;
  gap: 18px;
  margin: 0 auto;
  padding: clamp(24px, 4vw, 42px);
  border: 1px solid var(--al-line);
  border-radius: 18px;
  background: #fbfaf6;
}

.training-session-setup[hidden],
#trainingHub[hidden],
#analysisForm[hidden],
#report[hidden] {
  display: none !important;
}

.training-setup-header {
  display: grid;
  gap: 7px;
  padding-bottom: 2px;
}

.training-setup-header small {
  color: var(--al-gold);
  font-size: 10px;
  font-weight: 760;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.training-setup-header h2 {
  margin: 0;
  color: var(--al-ink);
  font-family: var(--font-display);
  font-size: clamp(30px, 4vw, 46px);
  font-weight: 650;
  line-height: 1.04;
  letter-spacing: -.035em;
}

.training-setup-header p {
  max-width: 48ch;
  margin: 0;
  color: var(--al-ink-soft);
  font-size: 12px;
  line-height: 1.5;
}

.training-session-setup > .forehand-v1-brief {
  margin: 0;
}

.training-setup-continue {
  width: 100%;
  min-height: 50px;
  border-radius: 12px;
  font-size: 13px;
  font-weight: 760;
  cursor: pointer;
}

.training-hub-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.training-entry-card {
  position: relative;
  min-height: 226px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  grid-template-rows: auto auto 1fr auto;
  gap: 6px 16px;
  padding: 24px;
  border: 1px solid var(--al-line-strong);
  border-radius: 14px;
  background: #fff;
  color: var(--al-ink);
  text-align: left;
  cursor: pointer;
}

.training-entry-card:hover,
.training-entry-card:focus-visible,
.profile-hub-grid button:hover,
.profile-hub-grid button:focus-visible {
  border-color: var(--al-gold);
  transform: translateY(-2px);
}

.training-entry-card > span {
  grid-row: 1 / 5;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
  color: var(--al-gold);
  font-size: 11px;
  font-weight: 760;
}

.training-entry-card > small {
  color: var(--al-court);
  font-size: 9px;
  font-weight: 760;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.training-entry-card > strong {
  font-family: var(--font-display);
  font-size: 25px;
  font-weight: 650;
  letter-spacing: -.025em;
}

.training-entry-card > p {
  max-width: 38ch;
  margin: 4px 0 0;
  color: var(--al-ink-soft);
  font-size: 12px;
  line-height: 1.55;
}

.training-entry-card > em {
  align-self: end;
  color: var(--al-ink);
  font-size: 11px;
  font-style: normal;
  font-weight: 720;
}

.training-entry-card.is-primary {
  border-color: var(--al-ink);
  background: var(--al-ink);
  color: #fff;
}

.training-entry-card.is-primary > strong,
.training-entry-card.is-primary > em {
  color: #fff;
}

.training-entry-card.is-primary > p {
  color: rgba(255, 255, 255, .68);
}

.training-entry-card.is-primary > span,
.training-entry-card.is-primary > small {
  color: #e2c87c;
}

.training-hub-progress > button {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 34px;
  align-items: center;
  gap: 18px;
  padding: 18px 20px;
  border: 1px solid var(--al-line);
  border-radius: 12px;
  background: #f3f5f1;
  color: var(--al-ink);
  text-align: left;
  cursor: pointer;
}

.training-hub-progress span {
  display: grid;
  gap: 3px;
}

.training-hub-progress small {
  color: var(--al-gold);
  font-size: 9px;
  font-weight: 740;
}

.training-hub-progress strong {
  font-size: 14px;
  font-weight: 650;
}

.training-hub-progress em {
  color: var(--al-ink-soft);
  font-size: 11px;
  font-style: normal;
}

.training-hub-progress b {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--al-ink);
  color: #fff;
}

.workspace:not(.is-training-workspace-open) > #trainingSessionSetup,
.workspace:not(.is-training-workspace-open) > #analysisForm,
.workspace:not(.is-training-workspace-open) > #report {
  display: none !important;
}

.workspace.is-training-workspace-open > #trainingHub {
  display: none !important;
}

.workspace.is-training-setup-open > #trainingSessionSetup {
  display: grid;
}

.workspace.is-training-workspace-open:not(.is-training-setup-open) > #trainingSessionSetup,
.workspace.is-training-setup-open > #analysisForm,
.workspace.is-training-setup-open > #report {
  display: none !important;
}

.workspace.is-training-workspace-open:not(.is-training-report-open) > #report {
  display: none !important;
}

.workspace.is-training-workspace-open:not(.is-training-report-open) > #analysisForm {
  grid-column: 1 / -1;
  width: min(800px, 100%);
  margin: 0 auto;
}

.workspace.is-training-report-open > #analysisForm {
  display: none !important;
}

.workspace.is-training-report-open > #report {
  grid-column: 1 / -1;
  width: min(1040px, 100%);
  margin: 0 auto;
}

.app-detail-back {
  width: max-content;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 9px 12px;
  border: 1px solid var(--al-line-strong);
  border-radius: 999px;
  background: transparent;
  color: var(--al-ink);
  cursor: pointer;
}

.app-detail-back span {
  font-size: 15px;
}

.app-detail-back em {
  font-size: 10px;
  font-style: normal;
  font-weight: 700;
}

.training-workspace-back {
  margin: 0 0 18px;
}

.training-report-back {
  margin: 0 0 18px;
}

.member-home-command-compact {
  min-height: 390px;
}

.member-home-guide-compact {
  min-height: 280px;
}

.member-home-guide-compact > span {
  position: absolute;
  right: 18px;
  bottom: 16px;
  padding: 7px 10px;
  border-radius: 999px;
  background: var(--al-ink);
  color: #fff;
  font-size: 9px;
  font-weight: 700;
}

.member-home-overview-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid var(--al-line);
  border-radius: 14px;
  overflow: hidden;
  background: #fbfaf6;
}

.member-home-overview-actions a {
  min-height: 152px;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) 24px;
  align-content: center;
  gap: 5px 12px;
  padding: 20px;
  color: var(--al-ink);
  text-decoration: none;
}

.member-home-overview-actions a + a {
  border-left: 1px solid var(--al-line);
}

.member-home-overview-actions span {
  grid-row: 1 / 3;
  color: var(--al-gold);
  font-size: 10px;
  font-weight: 760;
}

.member-home-overview-actions strong {
  font-size: 14px;
  font-weight: 680;
}

.member-home-overview-actions p {
  margin: 0;
  color: var(--al-ink-soft);
  font-size: 10px;
  line-height: 1.45;
}

.member-home-overview-actions em {
  grid-column: 3;
  grid-row: 1 / 3;
  align-self: center;
  font-size: 18px;
  font-style: normal;
}

body.is-player-authenticated[data-app-screen="my"] .my-space > .my-space-title,
body.is-player-authenticated[data-app-screen="my"] .player-profile > .section-title {
  display: none;
}

.profile-hub {
  display: grid;
  gap: 24px;
  padding: clamp(22px, 3vw, 36px);
  border: 1px solid var(--al-line);
  border-radius: 16px;
  background: #fbfaf6;
}

.profile-hub-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.profile-hub-grid button {
  min-height: 142px;
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) auto;
  align-items: start;
  gap: 12px;
  padding: 18px;
  border: 1px solid var(--al-line-strong);
  border-radius: 12px;
  background: #fff;
  color: var(--al-ink);
  text-align: left;
  cursor: pointer;
}

.profile-hub-grid button > span {
  color: var(--al-gold);
  font-size: 10px;
  font-weight: 760;
}

.profile-hub-grid button > div {
  display: grid;
  gap: 5px;
}

.profile-hub-grid strong {
  font-size: 16px;
  font-weight: 670;
}

.profile-hub-grid p {
  margin: 0;
  color: var(--al-ink-soft);
  font-size: 10px;
  line-height: 1.45;
}

.profile-hub-grid em {
  margin-top: 7px;
  color: var(--al-court);
  font-size: 10px;
  font-style: normal;
  font-weight: 700;
}

.profile-hub-grid button > b {
  color: var(--al-gold);
  font-size: 14px;
}

.profile-detail-header {
  display: grid;
  gap: 10px;
  padding: 0 0 22px;
  border-bottom: 1px solid var(--al-line);
}

.profile-detail-header .app-detail-back {
  margin-bottom: 10px;
}

.history[hidden] {
  display: none !important;
}

body.is-player-authenticated[data-app-screen="my"]:not(.is-profile-detail-account) .top-account-panel,
body.is-player-authenticated[data-app-screen="my"]:not(.is-profile-detail-account) .account-trust-links {
  display: none !important;
}

.profile-detail-logout {
  width: 100%;
  min-height: 46px;
  margin-top: 12px;
  border: 1px solid var(--al-line-strong);
  border-radius: 10px;
  background: transparent;
  color: #8d4139;
  font-weight: 680;
  cursor: pointer;
}

@media (max-width: 760px) {
  .training-hub {
    gap: 20px;
    padding: 20px 15px;
    border-right: 0;
    border-left: 0;
    border-radius: 0;
  }

  .training-session-setup {
    gap: 15px;
    padding: 18px 14px;
    border-right: 0;
    border-left: 0;
    border-radius: 0;
  }

  .training-setup-header h2 {
    font-size: 29px;
  }

  .training-setup-header p {
    font-size: 11px;
  }

  .app-hub-header h2,
  .profile-detail-header h2 {
    font-size: 29px;
  }

  .app-hub-header p {
    font-size: 11px;
  }

  .training-hub-actions,
  .profile-hub-grid,
  .member-home-overview-actions {
    grid-template-columns: 1fr;
  }

  .training-entry-card {
    min-height: 162px;
    padding: 17px;
  }

  .training-entry-card > strong {
    font-size: 21px;
  }

  .training-hub-progress > button {
    grid-template-columns: minmax(0, 1fr) 30px;
    gap: 10px;
    padding: 15px;
  }

  .training-hub-progress em {
    grid-column: 1;
  }

  .training-hub-progress b {
    grid-column: 2;
    grid-row: 1 / 3;
    width: 30px;
    height: 30px;
  }

  .member-home-command-compact {
    min-height: 0;
  }

  .member-home-guide-compact {
    min-height: 210px;
  }

  .member-home-overview-actions a {
    min-height: 92px;
    padding: 15px;
  }

  .member-home-overview-actions a + a {
    border-top: 1px solid var(--al-line);
    border-left: 0;
  }

  .profile-hub {
    gap: 19px;
    padding: 18px 14px;
    border-right: 0;
    border-left: 0;
    border-radius: 0;
  }

  .profile-hub-grid button {
    min-height: 108px;
    padding: 15px;
  }
}

/* v222 — player hub and focused community details */
.community-hub {
  width: min(820px, 100%);
}

.community-content {
  gap: 14px;
}

.community-hub.is-community-detail-open .community-intro {
  display: none;
}

.community-hub-account {
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: 16px;
  background:
    radial-gradient(circle at 92% 0%, rgba(226, 200, 124, .14), transparent 34%),
    var(--al-ink);
  color: #fff;
}

.community-hub-account-main {
  display: grid;
  grid-template-columns: 66px minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 18px;
}

.community-hub-account .community-account-avatar {
  width: 66px;
  height: 72px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 10px;
  background: #eef2ed;
}

.community-hub-account .community-account-avatar .player-avatar-art {
  width: 100%;
  height: 100%;
}

.community-hub-account-main > div:nth-child(2) {
  min-width: 0;
  display: grid;
  gap: 4px;
}

.community-hub-account-main small {
  color: #e2c87c;
  font-size: 9px;
  font-weight: 760;
  letter-spacing: .06em;
}

.community-hub-account-main > div:nth-child(2) > strong {
  overflow: hidden;
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 640;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.community-hub-account .community-account-id {
  width: max-content;
  max-width: 100%;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(255, 255, 255, .68);
}

.community-hub-account .community-account-id span {
  overflow: hidden;
  font-size: 10px;
  font-weight: 680;
  text-overflow: ellipsis;
}

.community-hub-account .community-account-id em {
  color: #e2c87c;
  font-size: 9px;
  font-style: normal;
}

.community-profile-open {
  min-height: 38px;
  padding: 8px 12px;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 999px;
  background: transparent;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  cursor: pointer;
}

.community-hub-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid rgba(255, 255, 255, .1);
}

.community-hub-stats button,
.community-hub-stats > span {
  min-height: 68px;
  display: grid;
  align-content: center;
  gap: 3px;
  padding: 10px 16px;
  border: 0;
  background: transparent;
  color: #fff;
  text-align: left;
  cursor: pointer;
}

.community-hub-stats > * + * {
  border-left: 1px solid rgba(255, 255, 255, .1);
}

.community-hub-stats > span {
  cursor: default;
}

.community-hub-stats small {
  color: rgba(255, 255, 255, .56);
  font-size: 9px;
}

.community-hub-stats strong {
  color: #e2c87c;
  font-size: 17px;
}

.community-search-panel.is-community-hub-search {
  padding: 15px;
  border: 1px solid var(--al-line);
  border-radius: 13px;
  background: #fbfaf6;
}

.community-search-panel.is-community-hub-search form > label {
  display: none;
}

.community-hub-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.community-hub-grid > button {
  min-height: 126px;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  align-items: start;
  gap: 10px;
  padding: 18px;
  border: 1px solid var(--al-line-strong);
  border-radius: 13px;
  background: #fff;
  color: var(--al-ink);
  text-align: left;
  cursor: pointer;
  transition: border-color 160ms ease, transform 160ms ease;
}

.community-hub-grid > button:hover,
.community-hub-grid > button:focus-visible {
  border-color: var(--al-gold);
  transform: translateY(-2px);
}

.community-hub-grid > button > em {
  color: var(--al-gold);
  font-size: 10px;
  font-style: normal;
  font-weight: 760;
}

.community-hub-grid > button > span {
  display: grid;
  gap: 6px;
}

.community-hub-grid > button strong {
  font-family: var(--font-display);
  font-size: 18px;
  font-weight: 650;
  letter-spacing: -.015em;
}

.community-hub-grid > button small {
  color: var(--al-ink-soft);
  font-size: 10px;
  line-height: 1.5;
}

.community-hub-grid > button > b {
  min-width: 24px;
  color: var(--al-gold);
  font-size: 15px;
  text-align: right;
}

.community-hub-grid > button.is-primary {
  border-color: var(--al-court);
  background: #eef4ef;
}

.community-hub-hint {
  margin: 0;
  color: var(--al-ink-soft);
  font-size: 10px;
  text-align: center;
}

.community-detail-back {
  margin-bottom: 2px;
}

.community-detail-heading {
  display: grid;
  gap: 6px;
  padding: 4px 0 18px;
  border-bottom: 1px solid var(--al-line);
}

.community-detail-heading small {
  color: var(--al-gold);
  font-size: 9px;
  font-weight: 760;
  letter-spacing: .08em;
}

.community-detail-heading h3 {
  margin: 0;
  color: var(--al-ink);
  font-family: var(--font-display);
  font-size: 30px;
  font-weight: 650;
  letter-spacing: -.03em;
}

.community-detail-heading p {
  max-width: 54ch;
  margin: 0;
  color: var(--al-ink-soft);
  font-size: 11px;
  line-height: 1.5;
}

.community-detail-body {
  display: grid;
  gap: 16px;
}

.community-view-tabs.is-relations {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.community-visibility-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 16px;
  border: 1px solid var(--al-line);
  border-radius: 12px;
  background: #fbfaf6;
}

.community-visibility-panel > div {
  display: grid;
  gap: 4px;
}

.community-visibility-panel strong {
  color: var(--al-ink);
  font-size: 13px;
}

.community-visibility-panel span {
  color: var(--al-ink-soft);
  font-size: 9px;
  line-height: 1.45;
}

.community-visibility-panel button {
  min-height: 38px;
  padding: 8px 12px;
  border: 1px solid var(--al-line-strong);
  border-radius: 9px;
  background: transparent;
  color: #8d4139;
  font-size: 10px;
  font-weight: 700;
  cursor: pointer;
}

@media (max-width: 620px) {
  .community-hub {
    gap: 12px;
    padding-top: 18px;
  }

  .community-intro {
    gap: 4px;
  }

  .community-intro h2 {
    font-size: 26px;
  }

  .community-intro p {
    max-width: 32em;
    font-size: 10px;
  }

  .community-hub-account {
    border-radius: 13px;
  }

  .community-hub-account-main {
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 11px;
    padding: 14px;
  }

  .community-hub-account .community-account-avatar {
    width: 54px;
    height: 60px;
  }

  .community-hub-account-main > div:nth-child(2) > strong {
    font-size: 18px;
  }

  .community-profile-open {
    grid-column: 1 / -1;
    width: 100%;
    min-height: 36px;
    border-radius: 8px;
  }

  .community-hub-stats button,
  .community-hub-stats > span {
    min-height: 58px;
    padding: 8px 10px;
  }

  .community-hub-stats strong {
    font-size: 15px;
  }

  .community-hub-grid {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .community-hub-grid > button {
    min-height: 92px;
    align-items: center;
    padding: 14px;
  }

  .community-hub-grid > button strong {
    font-size: 16px;
  }

  .community-detail-heading h3 {
    font-size: 25px;
  }

  .community-visibility-panel {
    grid-template-columns: 1fr;
  }
}

/* v223 — native motion, touch feedback, upload telemetry, and lifecycle restraint */
:root {
  --motion-press: 110ms;
  --motion-settle: 220ms;
  --motion-page: 280ms;
  --motion-spring: cubic-bezier(.2, .82, .2, 1);
}

::view-transition-old(root) {
  animation: v223-view-out var(--motion-page) ease both;
}

::view-transition-new(root) {
  animation: v223-view-in var(--motion-page) var(--motion-spring) both;
}

body.is-native-shell {
  overscroll-behavior-y: none;
  -webkit-tap-highlight-color: transparent;
}

body.is-native-shell button,
body.is-native-shell [data-app-nav],
body.is-native-shell [role="button"] {
  touch-action: manipulation;
  transition:
    transform var(--motion-press) ease,
    filter var(--motion-press) ease,
    border-color var(--motion-settle) ease,
    background-color var(--motion-settle) ease;
}

body.is-native-shell button:active:not(:disabled),
body.is-native-shell [data-app-nav]:active,
body.is-native-shell [role="button"]:active {
  transform: translateY(1px) scale(.985);
  filter: brightness(.97);
}

.progress-kicker {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 10px;
}

.progress-kicker > div {
  min-width: 0;
  display: grid;
  gap: 3px;
}

#analysisNotifyButton {
  min-height: 34px;
  padding: 7px 10px;
  border: 1px solid rgba(196, 154, 58, .35);
  border-radius: 999px;
  background: #fffaf0;
  color: #72531d;
  font-size: 10px;
  font-weight: 800;
  white-space: nowrap;
}

#analysisNotifyButton.is-enabled {
  border-color: rgba(15, 115, 92, .28);
  background: #eaf3ef;
  color: #0f735c;
}

.analysis-progress-live-metrics {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid var(--al-line, rgba(37, 43, 45, .12));
  border-radius: 5px;
  background: rgba(255, 255, 255, .64);
}

.analysis-progress-live-metrics[hidden] {
  display: none;
}

.analysis-progress-live-metrics span {
  min-width: 0;
  display: grid;
  gap: 3px;
  padding: 9px 11px;
}

.analysis-progress-live-metrics span + span {
  border-left: 1px solid var(--al-line, rgba(37, 43, 45, .12));
}

.analysis-progress-live-metrics small {
  color: rgba(37, 43, 45, .58) !important;
  font-size: 9px;
  font-weight: 700;
}

.analysis-progress-live-metrics b {
  width: auto !important;
  height: auto !important;
  background: transparent !important;
  color: var(--al-ink, #252b2d);
  font-size: 13px;
  font-weight: 760;
}

/* v259 — light progress surface with explicit, accessible foreground colours. */
#analysisForm .analysis-progress {
  color: #252b2d;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, .84), rgba(246, 244, 236, .96)),
    #f6f4ec;
}

#analysisForm .analysis-progress::before {
  background:
    linear-gradient(90deg, rgba(24, 63, 53, .035) 1px, transparent 1px),
    linear-gradient(0deg, rgba(24, 63, 53, .03) 1px, transparent 1px);
  background-size: 34px 34px;
}

#analysisForm .progress-kicker span {
  color: #6d4e17;
}

#analysisForm .progress-kicker em,
#analysisForm .analysis-progress > small {
  color: #56625e;
}

#analysisForm .analysis-progress-head strong {
  color: #182521;
}

#analysisForm .analysis-progress-head span {
  color: #8a6118;
}

#analysisForm .analysis-progress > i {
  border: 1px solid rgba(24, 63, 53, .08);
  background: #dde3de;
}

#analysisForm .analysis-progress > i > b {
  background: linear-gradient(90deg, #c49a3a, #0f735c);
}

#analysisForm .analysis-progress-steps span {
  border-color: rgba(37, 43, 45, .14);
  background: rgba(255, 255, 255, .76);
  color: #59625f;
}

#analysisForm .analysis-progress-steps span.is-active {
  border-color: rgba(159, 112, 24, .48);
  background: #fff5d9;
  color: #674914;
  box-shadow: inset 0 -2px 0 rgba(196, 154, 58, .2);
}

#analysisForm .analysis-progress-steps span.is-done {
  border-color: rgba(15, 115, 92, .28);
  background: #eaf3ef;
  color: #0c5f4c;
}

#analysisForm .analysis-progress-steps span.is-done::before {
  color: #0f735c;
}

#analysisForm .analysis-progress-recovery > div {
  border-color: rgba(126, 51, 31, .18);
  background: rgba(255, 255, 255, .72);
}

#analysisForm .analysis-progress-recovery small {
  color: #9c452b;
}

#analysisForm .analysis-progress-recovery strong {
  color: #49271e;
}

#analysisForm .analysis-progress-actions button {
  border-color: rgba(37, 43, 45, .18);
  background: #ffffff;
  color: #25302c;
}

#analysisForm .analysis-progress.is-error {
  border-color: rgba(174, 74, 43, .34);
  background: #fff3ed;
}

#analysisForm .analysis-progress.is-error .progress-kicker span,
#analysisForm .analysis-progress.is-error .analysis-progress-head strong,
#analysisForm .analysis-progress.is-error .analysis-progress-head span {
  color: #8b351f;
}

#analysisForm .analysis-progress.is-error > small,
#analysisForm .analysis-progress.is-error .progress-kicker em {
  color: #70463a;
}

#analysisForm .analysis-progress.is-uploading {
  border-color: rgba(196, 154, 58, .34);
}

#analysisForm .analysis-progress.is-processing {
  border-color: rgba(15, 115, 92, .28);
}

#analysisForm .analysis-progress.is-complete {
  border-color: rgba(15, 115, 92, .42);
  background: #edf5f0;
  animation: v223-complete-settle .42s var(--motion-spring) both;
}

#analysisForm .analysis-progress.is-complete #analysisProgressBar {
  background: #0f735c;
}

body.is-app-backgrounded *,
body.is-app-backgrounded *::before,
body.is-app-backgrounded *::after {
  animation-play-state: paused !important;
}

@keyframes v223-view-out {
  from { opacity: 1; transform: translate3d(0, 0, 0); }
  to { opacity: 0; transform: translate3d(0, 5px, 0); }
}

@keyframes v223-view-in {
  from { opacity: 0; transform: translate3d(0, 8px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes v223-complete-settle {
  0% { transform: scale(.992); }
  58% { transform: scale(1.006); }
  100% { transform: scale(1); }
}

@media (max-width: 720px) {
  .progress-kicker {
    grid-template-columns: 1fr;
  }

  #analysisNotifyButton {
    width: max-content;
  }
}

@media (prefers-reduced-motion: reduce) {
  ::view-transition-old(root),
  ::view-transition-new(root),
  #analysisForm .analysis-progress.is-complete {
    animation: none !important;
  }

  body.is-native-shell button,
  body.is-native-shell [data-app-nav],
  body.is-native-shell [role="button"] {
    transition: none !important;
  }
}

/* Native iOS uses one safe-area owner (CSS), not automatic scroll insets.
   Keep the document from overscrolling; leave ordinary scrolling and the
   existing gesture-driven refresh handler intact. */
html.is-native-ios { overscroll-behavior-y: none; }
html.is-native-ios body > .mobile-tabs {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  background: #fffefa !important;
}

/* v265 — final global contract: keep the same four primary tabs fixed on every app screen. */
@media (max-width: 760px) {
  html {
    scroll-padding-bottom: calc(96px + env(safe-area-inset-bottom));
  }

  body:not(.is-auth-entry):not(.is-auth-boot) {
    padding-bottom: calc(82px + env(safe-area-inset-bottom)) !important;
  }

  body:not(.is-auth-entry):not(.is-auth-boot) > main,
  body:not(.is-auth-entry):not(.is-auth-boot) > #mainContent {
    padding-bottom: calc(104px + env(safe-area-inset-bottom)) !important;
  }

  body:not(.is-auth-entry):not(.is-auth-boot) > .mobile-tabs {
    position: fixed !important;
    inset: auto 0 0 0 !important;
    z-index: 1200 !important;
    width: 100% !important;
    max-width: none !important;
    min-height: 68px !important;
    margin: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    padding: 6px 8px calc(6px + env(safe-area-inset-bottom)) !important;
    border: 0 !important;
    border-top: 1px solid var(--al-line, rgba(37, 43, 45, .12)) !important;
    border-radius: 0 !important;
    background: rgba(255, 254, 250, .97) !important;
    box-shadow: 0 -7px 22px rgba(27, 37, 33, .07) !important;
    transform: translate3d(0, 0, 0) !important;
    opacity: 1 !important;
    visibility: visible !important;
    isolation: isolate;
    -webkit-backdrop-filter: blur(22px) saturate(1.18);
    backdrop-filter: blur(22px) saturate(1.18);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
  }
}

/* v272 — keep phone controls tappable and reclaim vertical space in landscape. */
@media (max-width: 760px) {
  .language-toggle,
  body.is-auth-entry .auth-mode-switch button,
  body.is-auth-entry .account-form input,
  body.is-auth-entry .auth-actions .primary,
  body.is-auth-entry .account-trust-grid a,
  .app-detail-back,
  #report a,
  #report button {
    min-height: 44px;
  }
}

@media (max-width: 900px) and (max-height: 520px) {
  .topbar {
    min-height: 60px;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 16px;
  }

  .topbar nav {
    align-self: auto;
    flex: 0 0 auto;
  }

  body.is-auth-entry[data-app-screen="my"] main {
    min-height: auto;
    padding-top: 12px;
  }
}

/* v275 — keep the complete training loop inside the iOS/Android WebView viewport. */
@media (max-width: 760px) {
  html,
  body {
    max-width: 100%;
    overflow-x: hidden;
  }

  main,
  .workspace,
  .workspace > *,
  #analysisForm,
  #report,
  #reportContent,
  .tool,
  .result,
  .video-source-picker,
  .forehand-v1-brief,
  .quick-video-tags,
  .report-delivery-stack,
  .report-hero-v2,
  .report-hero-copy,
  .report-hero-media,
  .report-play-layer,
  .report-play-layer > article,
  .hero-verdict,
  .hero-verdict > div,
  .hero-next-step,
  .report-quick-facts,
  .report-actions {
    min-width: 0;
    max-width: 100%;
  }

  .workspace {
    grid-template-columns: minmax(0, 1fr);
  }

  .workspace.is-training-workspace-open:not(.is-training-report-open) > #analysisForm,
  .workspace.is-training-report-open > #report {
    width: 100%;
  }

  #report > .section-title {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  #report > .section-title > span {
    white-space: normal;
  }

  #report > .section-title > button {
    max-width: 100%;
    white-space: normal;
  }

  .report-hero-v2,
  .report-hero-media,
  .report-play-layer,
  .style-match-panel,
  .delivery-summary {
    grid-template-columns: minmax(0, 1fr);
  }

  .report-play-layer > article + article {
    border-top: 1px solid var(--al-line);
    border-left: 0;
  }

  .hero-verdict h2,
  .hero-verdict p,
  .hero-next-step strong,
  .style-match-copy,
  .style-match-copy > strong,
  .report-actions a,
  .report-actions button {
    overflow-wrap: anywhere;
  }

  .capture-essentials,
  .video-source-actions,
  .stroke-mode-options,
  .quick-video-tags fieldset,
  .protocol-confirmations,
  .training-journey ol {
    min-width: 0;
    max-width: 100%;
  }

  .capture-essentials,
  .video-source-actions {
    grid-template-columns: minmax(0, 1fr);
  }
}



/* v296 — calmer hierarchy, consistent surfaces, and tactile mobile feedback. */
:root {
  --al-control-height: 46px;
  --al-control-radius: 12px;
  --al-surface-shadow: 0 18px 48px rgba(17, 45, 37, .12);
}

main > [data-app-screen].is-screen-entering {
  animation: al-screen-enter .38s cubic-bezier(.2, .76, .25, 1) both;
}

.profile-secondary.is-detail-entering,
.community-content.is-detail-entering {
  animation: al-detail-enter .34s cubic-bezier(.2, .76, .25, 1) both;
}

@keyframes al-screen-enter {
  from { opacity: .45; transform: translate3d(0, 10px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes al-detail-enter {
  from { opacity: .35; transform: translate3d(12px, 0, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

:where(main, .mobile-tabs, dialog) :where(button, a[href], summary) {
  -webkit-tap-highlight-color: transparent;
  transition: transform .16s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease, opacity .2s ease;
}

:where(main, .mobile-tabs, dialog) :where(button:not(:disabled), a[href], summary):active {
  transform: scale(.975);
}

:where(main, dialog) :where(button, a[href], input, select, textarea, summary):focus-visible {
  outline: 3px solid rgba(32, 118, 93, .2);
  outline-offset: 2px;
}

.profile-hub-glance {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid var(--al-line);
  border-radius: 14px;
  background: #fff;
}

.profile-hub-glance button {
  min-width: 0;
  min-height: 74px;
  display: grid;
  align-content: center;
  justify-items: start;
  gap: 4px;
  padding: 13px 15px;
  border: 0;
  background: transparent;
  color: var(--al-ink);
  text-align: left;
}

.profile-hub-glance button + button {
  border-left: 1px solid var(--al-line);
}

.profile-hub-glance small {
  overflow: hidden;
  color: var(--al-ink-soft);
  font-size: 9px;
  font-weight: 680;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.profile-hub-glance strong {
  color: var(--al-court);
  font-size: 21px;
  line-height: 1;
}

.profile-hub-glance em {
  color: var(--al-ink-soft);
  font-size: 9px;
  font-style: normal;
  font-weight: 650;
}

.profile-secondary {
  display: grid;
  gap: 12px;
}

.profile-detail-group {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--al-line);
  border-radius: 16px;
  background: #fffefa;
}

.profile-detail-group > summary,
.profile-detail-group.is-lead > header {
  min-height: 56px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 17px;
  color: var(--al-ink);
  cursor: pointer;
  list-style: none;
}

.profile-detail-group > summary::-webkit-details-marker {
  display: none;
}

.profile-detail-group > summary strong,
.profile-detail-group.is-lead > header strong {
  font-size: 13px;
  font-weight: 760;
}

.profile-detail-group > summary > span {
  width: 10px;
  height: 10px;
  flex: 0 0 auto;
  border-right: 1.5px solid var(--al-court);
  border-bottom: 1.5px solid var(--al-court);
  transform: rotate(45deg) translate(-2px, -2px);
}

.profile-detail-group[open] > summary > span {
  transform: rotate(225deg) translate(-1px, -1px);
}

.profile-detail-group[open] > summary {
  border-bottom: 1px solid var(--al-line);
}

.profile-detail-group-content,
.profile-detail-group.is-lead > div {
  display: grid;
  gap: 12px;
  padding: 12px;
}

.profile-detail-group[open] > .profile-detail-group-content {
  animation: al-fold-open .28s ease both;
}

.profile-detail-group.is-lead {
  border-color: rgba(20, 91, 76, .18);
  background: linear-gradient(145deg, #f5f8f3, #fffefa 58%);
}

.profile-detail-group.is-lead > header {
  min-height: 44px;
  padding-bottom: 4px;
  color: var(--al-court);
  cursor: default;
}

.profile-detail-group :where(section, details) {
  min-width: 0;
  max-width: 100%;
}

@keyframes al-fold-open {
  from { opacity: .2; transform: translateY(-5px); }
  to { opacity: 1; transform: translateY(0); }
}

:where(
  .match-card-dialog,
  .beta-review-dialog,
  .avatar-studio,
  .avatar-look-preview-dialog,
  .community-practice-dialog,
  .media-selection-dialog,
  .ace-store-dialog
) {
  border-radius: 20px;
  box-shadow: 0 30px 90px rgba(8, 27, 21, .3);
}

:where(
  .match-card-dialog,
  .beta-review-dialog,
  .avatar-studio,
  .avatar-look-preview-dialog,
  .community-practice-dialog,
  .media-selection-dialog,
  .ace-store-dialog
)::backdrop {
  background: rgba(9, 25, 20, .6);
  -webkit-backdrop-filter: blur(7px);
  backdrop-filter: blur(7px);
}

:where(
  .match-card-dialog,
  .beta-review-dialog,
  .avatar-studio,
  .avatar-look-preview-dialog,
  .community-practice-dialog,
  .media-selection-dialog,
  .ace-store-dialog
)[open] {
  animation: al-dialog-in .28s cubic-bezier(.2, .76, .25, 1) both;
}

@keyframes al-dialog-in {
  from { opacity: 0; transform: translateY(18px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

:where(
  .match-card-head,
  .beta-review-head,
  .avatar-studio-head,
  .avatar-look-preview-shell > header,
  .community-practice-shell > header,
  .ace-store-head
) {
  min-height: 68px;
  border-bottom-color: var(--al-line) !important;
  background: rgba(255, 254, 250, .96);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}

:where(
  .match-card-head,
  .beta-review-head,
  .avatar-studio-head,
  .avatar-look-preview-shell > header,
  .community-practice-shell > header,
  .ace-store-head
) > button,
:where(#matchCardClose, #avatarStudioClose, #avatarLookPreviewClose, #communityPracticeClose, #aceStoreClose) {
  width: 40px;
  min-width: 40px;
  height: 40px;
  padding: 0;
  border: 1px solid var(--al-line);
  border-radius: 50%;
  background: #fff;
  color: var(--al-ink);
}

:where(
  .match-card-controls,
  .community-practice-shell,
  .qiulian-composer,
  .community-profile-editor,
  .account-data-controls,
  .ace-gear-address
) :where(label, fieldset) {
  min-width: 0;
}

:where(
  .match-card-controls,
  .community-practice-shell,
  .qiulian-composer,
  .community-profile-editor,
  .account-data-controls,
  .ace-gear-address
) :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]), select, textarea) {
  width: 100%;
  min-width: 0;
  min-height: var(--al-control-height);
  box-sizing: border-box;
  padding: 11px 13px;
  border: 1px solid rgba(37, 52, 47, .16);
  border-radius: var(--al-control-radius);
  background: #fff;
  color: var(--al-ink);
  box-shadow: inset 0 1px 0 rgba(22, 45, 38, .02);
}

:where(
  .match-card-controls,
  .community-practice-shell,
  .qiulian-composer,
  .community-profile-editor,
  .account-data-controls,
  .ace-gear-address
) :where(input, select, textarea):focus {
  border-color: rgba(20, 91, 76, .56);
  box-shadow: 0 0 0 4px rgba(20, 91, 76, .08);
}

.surface-skeleton {
  display: grid;
  gap: 10px;
  padding: 4px 0;
}

.surface-skeleton-label {
  margin: 0;
  padding: 5px 3px;
  color: var(--al-ink-soft);
  font-size: 10px;
}

.surface-skeleton-card {
  min-height: 116px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 12px;
  align-content: start;
  padding: 16px;
  overflow: hidden;
  border: 1px solid var(--al-line);
  border-radius: 16px;
  background: #fffefa;
  animation: al-skeleton-card-in .32s ease both;
  animation-delay: var(--skeleton-delay);
}

.surface-skeleton-avatar,
.surface-skeleton-copy i,
.surface-skeleton-card > b {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 999px;
  background: #e9ece7;
}

.surface-skeleton-avatar {
  width: 42px;
  height: 42px;
  grid-row: 1;
}

.surface-skeleton-copy {
  display: grid;
  gap: 8px;
  padding-top: 5px;
}

.surface-skeleton-copy i {
  width: 42%;
  height: 10px;
}

.surface-skeleton-copy i + i {
  width: 72%;
  height: 8px;
}

.surface-skeleton-card > b {
  grid-column: 1 / -1;
  height: 118px;
  border-radius: 12px;
}

.surface-skeleton-avatar::after,
.surface-skeleton-copy i::after,
.surface-skeleton-card > b::after {
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(-100%);
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .75), transparent);
  animation: al-skeleton-shimmer 1.35s ease-in-out infinite;
}

@keyframes al-skeleton-shimmer {
  to { transform: translateX(100%); }
}

@keyframes al-skeleton-card-in {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

.qiulian-life-empty-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 5px;
}

.qiulian-life-empty-actions button {
  margin-top: 0;
}

.qiulian-life-empty-actions button.is-secondary {
  border: 1px solid rgba(20, 91, 76, .2);
  background: rgba(255, 255, 255, .78);
  color: var(--al-court);
}

.qiulian-post {
  animation: al-feed-card-in .36s cubic-bezier(.2, .76, .25, 1) both;
}

.qiulian-post:nth-child(2) { animation-delay: 45ms; }
.qiulian-post:nth-child(3) { animation-delay: 90ms; }

@keyframes al-feed-card-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

.qiulian-post-photo-frame,
.qiulian-match-card-visual,
.motion-compare-card {
  background-color: #edf0eb;
}

:where(.qiulian-post-photo, .qiulian-match-card-visual img, .motion-compare-card img) {
  opacity: .12;
  transition: opacity .34s ease, transform .45s cubic-bezier(.2, .76, .25, 1);
}

:where(.qiulian-post-photo, .qiulian-match-card-visual img, .motion-compare-card img).is-media-ready {
  opacity: 1;
}

.qiulian-post-photo-frame.is-media-ready:hover .qiulian-post-photo {
  transform: scale(1.008);
}

@media (max-width: 760px) {
  .profile-hub-glance button {
    min-height: 66px;
    padding: 11px 10px;
  }

  .profile-hub-glance strong {
    font-size: 18px;
  }

  .profile-detail-group {
    border-right: 0;
    border-left: 0;
    border-radius: 0;
  }

  .profile-detail-group > summary,
  .profile-detail-group.is-lead > header {
    padding-right: 15px;
    padding-left: 15px;
  }

  .profile-detail-group-content,
  .profile-detail-group.is-lead > div {
    padding: 10px 0 0;
  }

  :where(
    .match-card-dialog,
    .beta-review-dialog,
    .avatar-studio,
    .avatar-look-preview-dialog,
    .community-practice-dialog,
    .media-selection-dialog,
    .ace-store-dialog
  ) {
    max-width: 100%;
    border-radius: 18px 18px 0 0;
  }

  .surface-skeleton-card {
    border-right: 0;
    border-left: 0;
    border-radius: 0;
  }

  .qiulian-life-empty-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
  }

  .qiulian-life-empty-actions button {
    width: 100%;
  }

  :where(
    .match-card-controls,
    .community-practice-shell,
    .qiulian-composer,
    .community-profile-editor,
    .account-data-controls,
    .ace-gear-address
  ) :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]), select, textarea) {
    font-size: 16px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  main > [data-app-screen].is-screen-entering,
  .profile-secondary.is-detail-entering,
  .community-content.is-detail-entering,
  .qiulian-post,
  .profile-detail-group[open] > .profile-detail-group-content,
  :where(dialog)[open],
  .surface-skeleton-card {
    animation: none !important;
  }

  .surface-skeleton-avatar::after,
  .surface-skeleton-copy i::after,
  .surface-skeleton-card > b::after {
    animation-duration: 2.6s;
  }
}

/* v290 — warmer entry, lived-in QiuLian, layered My, and a coach-led report opening. */
.auth-welcome-moments {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 22px;
}

.auth-welcome-moments span {
  padding: 8px 11px;
  border: 1px solid rgba(244, 239, 225, .18);
  border-radius: 999px;
  background: rgba(255, 255, 255, .06);
  color: rgba(247, 242, 232, .82);
  font-size: 10px;
  font-weight: 610;
  line-height: 1;
}

.qiulian-caption-prompts {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: -2px;
}

.qiulian-caption-prompts button {
  min-height: 31px;
  padding: 0 10px;
  border: 1px solid rgba(20, 91, 76, .16);
  border-radius: 999px;
  background: #f4f7f2;
  color: var(--al-court);
  font-size: 9px;
  font-weight: 680;
}

.qiulian-life-empty {
  display: grid;
  grid-template-columns: minmax(150px, .82fr) minmax(0, 1.18fr);
  gap: 22px;
  align-items: center;
  min-height: 250px;
  padding: 22px;
  overflow: hidden;
  border: 1px solid rgba(20, 91, 76, .14);
  border-radius: 18px;
  background: linear-gradient(145deg, #f7f0df, #fffdf8 50%, #e9f2ec);
}

.qiulian-life-empty-art {
  position: relative;
  min-height: 184px;
  overflow: hidden;
  border-radius: 14px;
  background:
    linear-gradient(90deg, transparent 49.4%, rgba(255, 255, 255, .78) 49.5% 50.5%, transparent 50.6%),
    linear-gradient(0deg, transparent 49.4%, rgba(255, 255, 255, .78) 49.5% 50.5%, transparent 50.6%),
    #267c64;
  box-shadow: inset 0 0 0 9px #ba6e47, inset 0 0 0 11px rgba(255, 255, 255, .78);
}

.qiulian-life-empty-art::before,
.qiulian-life-empty-art::after {
  content: "";
  position: absolute;
  border: 2px solid rgba(255, 255, 255, .76);
  border-radius: 50%;
}

.qiulian-life-empty-art::before {
  width: 66px;
  height: 66px;
  right: -24px;
  bottom: -18px;
}

.qiulian-life-empty-art::after {
  width: 42px;
  height: 42px;
  top: 18px;
  left: 18px;
  border-color: #ead49c;
  background: radial-gradient(circle at 35% 35%, #fff6ad, #d8c33e);
  box-shadow: 36px 42px 0 -17px rgba(255, 255, 255, .9);
}

.qiulian-life-empty-art span {
  position: absolute;
  right: 18px;
  bottom: 18px;
  width: 54px;
  height: 74px;
  border: 5px solid rgba(13, 73, 62, .76);
  border-right-width: 9px;
  border-radius: 50% 50% 12px 12px;
  transform: rotate(-18deg);
}

.qiulian-life-empty > div:last-child {
  display: grid;
  justify-items: start;
  gap: 8px;
}

.qiulian-life-empty small {
  color: var(--al-gold);
  font-size: 9px;
  font-weight: 760;
  letter-spacing: .08em;
}

.qiulian-life-empty strong {
  color: var(--al-ink);
  font-family: var(--al-display);
  font-size: clamp(22px, 3vw, 30px);
  line-height: 1.14;
}

.qiulian-life-empty p {
  margin: 0;
  color: var(--al-ink-soft);
  font-size: 11px;
  line-height: 1.58;
}

.qiulian-life-empty button {
  min-height: 40px;
  margin-top: 5px;
  padding: 0 16px;
  border: 0;
  border-radius: 999px;
  background: var(--al-court);
  color: #fff;
  font-size: 10px;
  font-weight: 740;
}

.profile-hub-identity {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 14px 16px;
  border: 1px solid var(--al-line);
  border-radius: 16px;
  background: linear-gradient(120deg, #f8f5eb, #fffdf8 68%);
}

.profile-hub-identity-avatar {
  width: 58px;
  height: 62px;
  overflow: hidden;
  border-radius: 12px;
  background: #e7efe9;
}

.profile-hub-identity-avatar .player-avatar-art,
.profile-hub-identity-avatar .avatar-portrait {
  width: 100%;
  height: 100%;
}

.profile-hub-identity > div:nth-child(2) {
  min-width: 0;
  display: grid;
  justify-items: start;
  gap: 2px;
}

.profile-hub-identity small {
  color: var(--al-gold);
  font-size: 8px;
  font-weight: 750;
}

.profile-hub-identity strong {
  color: var(--al-ink);
  font-size: 18px;
}

.profile-hub-identity > div:nth-child(2) button {
  min-height: 0;
  padding: 2px 0;
  border: 0;
  background: transparent;
  color: var(--al-ink-soft);
  font-size: 9px;
  text-align: left;
}

.profile-hub-wardrobe {
  min-height: 36px;
  padding: 0 12px;
  border: 1px solid rgba(20, 91, 76, .2);
  border-radius: 999px;
  background: #fff;
  color: var(--al-court);
  font-size: 9px;
  font-weight: 720;
}

.profile-hub > .app-hub-header small,
.profile-hub-more > small {
  color: var(--al-ink-soft);
  font-size: 9px;
  font-weight: 720;
  letter-spacing: .06em;
}

.profile-hub-more {
  display: grid;
  gap: 0;
  padding-top: 4px;
}

.profile-hub-more > small {
  margin-bottom: 7px;
}

.profile-hub-more > button {
  min-height: 60px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 10px 2px;
  border: 0;
  border-top: 1px solid var(--al-line);
  background: transparent;
  color: var(--al-ink);
  text-align: left;
}

.profile-hub-more > button span {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.profile-hub-more strong {
  font-size: 13px;
}

.profile-hub-more em {
  color: var(--al-ink-soft);
  font-size: 9px;
  font-style: normal;
}

.profile-hub-more b {
  color: var(--al-gold);
  font-size: 12px;
}

.report-hero-v2 .hero-verdict {
  grid-template-columns: minmax(0, 1.35fr) minmax(170px, .65fr);
}

.coach-opening {
  align-self: center;
  padding: 4px 0;
}

.coach-opening h2 {
  max-width: 15ch;
}

.coach-opening p {
  max-width: 52ch;
}

@media (max-width: 760px) {
  .auth-welcome-moments {
    gap: 6px;
    margin-top: 14px;
  }

  .auth-welcome-moments span {
    padding: 7px 9px;
    font-size: 9px;
  }

  .qiulian-life-empty {
    grid-template-columns: minmax(0, 1fr);
    gap: 15px;
    padding: 15px;
  }

  .qiulian-life-empty-art {
    min-height: 150px;
  }

  .profile-hub-identity {
    grid-template-columns: 50px minmax(0, 1fr) auto;
    padding: 12px;
  }

  .profile-hub-identity-avatar {
    width: 50px;
    height: 54px;
  }

  .profile-hub-wardrobe {
    max-width: 76px;
    padding: 0 9px;
  }

  .profile-hub-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .profile-hub-grid button {
    min-height: 96px;
  }

  .report-hero-v2 .hero-verdict {
    grid-template-columns: minmax(0, 1fr);
  }

  .report-hero-v2 .coach-score-summary {
    order: 2;
  }
}

/* v279 — compact upload flow, bounded mobile layout, and shareable report identity. */
.video-source-picker,
.video-source-picker > *,
.video-source-actions,
.video-source-action,
.video-source-selection,
.video-source-selection > *,
#uploadMeta,
.report-delivery-stack,
.report-delivery-stack > *,
.motion-identity-card,
.motion-identity-card > *,
.kinetic-chain-card,
.kinetic-chain-card > *,
.kinetic-chain-track,
.kinetic-chain-track > *,
.report-source-evidence,
.report-source-evidence > *,
.report-evidence-content,
.report-evidence-content > * {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

.video-source-picker {
  gap: 10px;
  padding: 14px;
  overflow: hidden;
}

.video-source-picker > header strong {
  font-size: clamp(18px, 3.6vw, 23px);
}

.video-source-picker > header p {
  line-height: 1.4;
}

.video-source-action {
  min-height: 68px;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 1px 9px;
  padding: 10px 11px;
}

.video-source-icon {
  width: 34px;
  height: 34px;
  border-radius: 9px;
  transform: scale(.9);
}

.video-source-selection {
  display: grid;
  align-content: center;
  gap: 3px;
  min-height: 74px;
  width: 100%;
  padding: 11px 13px;
  overflow: hidden;
}

.video-source-selection > span,
.video-source-selection > strong,
.video-source-selection > em {
  display: block;
  width: 100%;
}

.video-source-selection > span {
  font-size: .58rem;
}

.video-source-selection > strong {
  overflow: hidden;
  font-size: .96rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#uploadMeta {
  overflow: hidden;
  line-height: 1.4;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.video-source-picker.has-selection > header {
  display: none;
}

.video-source-picker.has-selection .video-source-selection {
  order: -1;
  border-style: solid;
  border-color: rgba(20, 91, 76, .38);
  background: #f2f6f2;
}

.video-source-picker.has-selection .video-source-action {
  min-height: 54px;
}

.video-source-picker.has-selection .video-source-action > small {
  display: none;
}

.background-upload-notice {
  font-size: .66rem;
}

.report-hero-v2.is-summary-only {
  grid-template-columns: minmax(0, 1fr);
}

.motion-identity-card {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(220px, .75fr);
  gap: 16px 22px;
  padding: 18px;
  border: 1px solid rgba(183, 140, 45, .38);
  border-radius: 6px;
  background: linear-gradient(135deg, #f9f4e5, #fffefa 58%, #edf4ef);
}

.motion-identity-main small,
.motion-identity-main strong,
.motion-identity-main p,
.motion-identity-proof > small {
  display: block;
}

.motion-identity-main small,
.motion-identity-proof > small {
  color: var(--al-gold);
  font-size: .6rem;
  font-weight: 740;
  letter-spacing: .13em;
}

.motion-identity-main strong {
  margin-top: 5px;
  color: var(--al-ink);
  font-family: var(--font-display);
  font-size: clamp(30px, 5vw, 48px);
  font-weight: 680;
  letter-spacing: -.045em;
  line-height: 1;
}

.motion-identity-main p {
  margin: 10px 0 0;
  color: var(--al-ink-soft);
  font-size: .74rem;
  line-height: 1.55;
}

.motion-identity-proof {
  align-self: center;
}

.motion-identity-proof > div {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 9px;
}

.motion-identity-proof span {
  display: inline-flex;
  gap: 5px;
  align-items: center;
  padding: 6px 8px;
  border: 1px solid var(--al-line);
  border-radius: 999px;
  background: rgba(255, 255, 255, .75);
  color: var(--al-ink-soft);
  font-size: .66rem;
  font-weight: 620;
}

.motion-identity-proof span.is-strong {
  border-color: rgba(20, 91, 76, .3);
  color: var(--al-court);
}

.motion-identity-proof span b {
  color: var(--al-ink);
}

.motion-identity-disclaimer {
  grid-column: 1 / -1;
  margin: 0;
  padding-top: 10px;
  border-top: 1px solid rgba(183, 140, 45, .2);
  color: var(--al-ink-soft);
  font-size: .6rem;
  line-height: 1.45;
}

.motion-identity-card.is-pending {
  grid-template-columns: minmax(0, 1fr) minmax(220px, .8fr);
  align-items: center;
}

.motion-identity-card.is-pending strong {
  display: block;
  margin-top: 4px;
  color: var(--al-ink);
  font-size: 1.15rem;
}

.motion-identity-card.is-pending p {
  margin: 0;
  color: var(--al-ink-soft);
  font-size: .72rem;
  line-height: 1.5;
}

.kinetic-chain-card {
  display: grid;
  gap: 14px;
  padding: 18px;
  border: 1px solid var(--al-line);
  border-radius: 6px;
  background: var(--al-paper);
}

.kinetic-chain-head {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: end;
}

.kinetic-chain-head small,
.kinetic-chain-head strong {
  display: block;
}

.kinetic-chain-head small {
  color: var(--al-gold);
  font-size: .6rem;
  font-weight: 720;
  letter-spacing: .11em;
}

.kinetic-chain-head strong {
  margin-top: 4px;
  color: var(--al-ink);
  font-size: 1.2rem;
}

.kinetic-chain-head p {
  max-width: 420px;
  margin: 0;
  color: var(--al-ink-soft);
  font-size: .7rem;
  line-height: 1.45;
  text-align: right;
}

.kinetic-chain-track {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.kinetic-chain-track::before {
  content: "";
  position: absolute;
  top: 25px;
  right: 8%;
  left: 8%;
  height: 2px;
  background: linear-gradient(90deg, var(--al-gold), var(--al-court));
  opacity: .38;
}

.kinetic-chain-track article {
  position: relative;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  gap: 7px;
  align-items: center;
  padding: 11px;
  border: 1px solid var(--al-line);
  border-radius: 5px;
  background: #fffefa;
}

.kinetic-chain-track article > span {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--al-court);
  color: #fff;
  font-size: .68rem;
  font-weight: 720;
}

.kinetic-chain-track article.is-watch > span {
  background: var(--al-gold);
}

.kinetic-chain-track article.is-priority > span {
  background: #a85d38;
}

.kinetic-chain-track article small,
.kinetic-chain-track article strong {
  display: block;
}

.kinetic-chain-track article small {
  color: var(--al-ink-soft);
  font-size: .58rem;
}

.kinetic-chain-track article strong {
  margin-top: 2px;
  color: var(--al-ink);
  font-size: 1.05rem;
}

.kinetic-chain-track article > em {
  color: var(--al-court);
  font-size: .56rem;
  font-style: normal;
  font-weight: 700;
}

.kinetic-chain-track article > p {
  grid-column: 1 / -1;
  display: -webkit-box;
  overflow: hidden;
  margin: 3px 0 0;
  color: var(--al-ink-soft);
  font-size: .62rem;
  line-height: 1.42;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.kinetic-chain-disclaimer {
  color: var(--al-ink-soft);
  font-size: .6rem;
  line-height: 1.45;
}

.kinetic-chain-card.is-pending > p {
  margin: 0;
  color: var(--al-ink-soft);
  font-size: .72rem;
}

.report-source-evidence {
  border: 1px solid var(--al-line);
  border-radius: 5px;
  background: #f5f6f2;
}

.report-source-evidence > summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  min-height: 64px;
  padding: 12px 14px;
  cursor: pointer;
  list-style: none;
}

.report-source-evidence > summary::-webkit-details-marker {
  display: none;
}

.report-source-evidence > summary small,
.report-source-evidence > summary strong,
.report-source-evidence > summary p {
  display: block;
}

.report-source-evidence > summary small {
  color: var(--al-gold);
  font-size: .58rem;
  font-weight: 700;
}

.report-source-evidence > summary strong {
  margin-top: 3px;
  color: var(--al-ink);
  font-size: .9rem;
}

.report-source-evidence > summary p {
  margin: 4px 0 0;
  color: var(--al-ink-soft);
  font-size: .66rem;
  line-height: 1.45;
}

.report-source-evidence > summary > span {
  color: var(--al-court);
  font-size: .66rem;
  font-weight: 680;
  white-space: nowrap;
}

.report-source-evidence > .report-hero-media {
  padding: 0 12px 12px;
}

.report-source-evidence .media-link {
  max-width: 100%;
  overflow-wrap: anywhere;
}

@media (max-width: 760px) {
  main,
  .workspace,
  #analysisForm,
  #report,
  #reportContent,
  .video-source-picker,
  .report-delivery-stack,
  .report-evidence-drawer {
    width: 100%;
    overflow-x: clip;
  }

  .video-source-actions,
  .capture-essentials {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .video-source-action {
    min-height: 62px;
    grid-template-columns: 30px minmax(0, 1fr);
    padding: 8px;
  }

  .video-source-icon {
    width: 30px;
    height: 30px;
  }

  .video-source-action > strong {
    overflow-wrap: anywhere;
    font-size: .72rem;
  }

  .video-source-action > small {
    display: none;
  }

  .motion-identity-card,
  .motion-identity-card.is-pending {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    padding: 15px;
  }

  .motion-identity-main strong {
    font-size: clamp(30px, 11vw, 44px);
  }

  .kinetic-chain-head {
    display: grid;
    gap: 6px;
  }

  .kinetic-chain-head p {
    max-width: none;
    text-align: left;
  }

  .kinetic-chain-track {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .kinetic-chain-track::before {
    display: none;
  }

  .report-evidence-drawer > summary {
    grid-template-columns: minmax(0, 1fr) 22px;
  }

  .report-evidence-drawer > summary em {
    grid-column: 1 / -1;
    grid-row: 2;
    text-align: left;
  }

  .report-source-evidence > summary {
    grid-template-columns: minmax(0, 1fr);
  }

  .report-source-evidence > summary > span {
    white-space: normal;
  }
}

@media (max-width: 380px) {
  .kinetic-chain-track {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* v280 — coach-like score language and a first-class QiuLian entry. */
.topbar nav .topbar-qiulian-link {
  position: relative;
  display: inline-flex;
  gap: 7px;
  align-items: center;
  padding: 8px 12px;
  border: 1px solid rgba(20, 91, 76, .22);
  border-radius: 999px;
  background: rgba(20, 91, 76, .08);
  color: var(--al-court);
}

.topbar nav .topbar-qiulian-link.is-active {
  background: var(--al-court);
  color: #fff;
}

.qiulian-nav-badge {
  display: grid;
  place-items: center;
  min-width: 17px;
  height: 17px;
  padding: 0 4px;
  border: 2px solid #fffefa;
  border-radius: 999px;
  background: #c6812b;
  color: #fff;
  font-size: 9px;
  font-style: normal;
  font-weight: 800;
  line-height: 1;
}

.qiulian-nav-badge[hidden] {
  display: none !important;
}

.member-home-qiulian-entry {
  position: relative;
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  min-width: 0;
  padding: 20px 22px;
  overflow: hidden;
  border: 1px solid rgba(20, 91, 76, .3);
  border-radius: 14px;
  background:
    radial-gradient(circle at 88% 22%, rgba(215, 183, 111, .28), transparent 27%),
    linear-gradient(135deg, #0d493e, #176f5d);
  box-shadow: 0 14px 34px rgba(20, 91, 76, .15);
  color: #fff;
  text-decoration: none;
}

.member-home-qiulian-entry::after {
  content: "";
  position: absolute;
  right: -24px;
  bottom: -46px;
  width: 150px;
  height: 150px;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 50%;
}

.member-home-qiulian-mark {
  position: relative;
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  border: 1px solid rgba(255, 255, 255, .25);
  border-radius: 18px;
  background: rgba(255, 255, 255, .1);
}

.member-home-qiulian-mark i {
  position: absolute;
  width: 19px;
  height: 19px;
  border: 2px solid #ead49c;
  border-radius: 50%;
}

.member-home-qiulian-mark i:nth-child(1) {
  transform: translate(-10px, -6px);
}

.member-home-qiulian-mark i:nth-child(2) {
  transform: translate(10px, -6px);
}

.member-home-qiulian-mark i:nth-child(3) {
  width: 28px;
  height: 13px;
  border-width: 0 0 2px 2px;
  border-radius: 0 0 0 16px;
  transform: translateY(13px) rotate(-5deg);
}

.member-home-qiulian-copy,
.member-home-qiulian-copy small,
.member-home-qiulian-copy strong,
.member-home-qiulian-action b,
.member-home-qiulian-action em {
  display: block;
  min-width: 0;
}

.member-home-qiulian-copy small {
  color: #ead49c;
  font-size: 10px;
  font-weight: 760;
  letter-spacing: .08em;
}

.member-home-qiulian-copy strong {
  margin-top: 4px;
  font-size: clamp(19px, 2.4vw, 27px);
  line-height: 1.18;
}

.member-home-qiulian-copy p {
  margin: 6px 0 0;
  color: rgba(255, 255, 255, .76);
  font-size: 11px;
  line-height: 1.5;
}

.member-home-qiulian-action {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 6px;
  justify-items: end;
  text-align: right;
}

.member-home-qiulian-action b {
  color: #ead49c;
  font-size: 10px;
}

.member-home-qiulian-action em {
  min-width: 104px;
  padding: 9px 12px;
  border-radius: 999px;
  background: #fffefa;
  color: var(--al-court);
  font-size: 11px;
  font-style: normal;
  font-weight: 760;
  text-align: center;
}

.member-home-qiulian-entry.has-updates .member-home-qiulian-mark::after {
  content: "";
  position: absolute;
  top: -3px;
  right: -3px;
  width: 10px;
  height: 10px;
  border: 2px solid #0d493e;
  border-radius: 50%;
  background: #f0b64a;
}

.coach-score-summary {
  display: grid;
  align-content: start;
  gap: 5px;
  min-width: 190px;
  padding: 14px 15px;
  border: 1px solid rgba(20, 91, 76, .2);
  border-left: 4px solid var(--al-court);
  border-radius: 8px;
  background: #f4f7f2;
}

.coach-score-summary > small {
  color: var(--al-court);
  font-size: 9px;
  font-weight: 760;
  letter-spacing: .08em;
}

.coach-score-summary > strong {
  color: var(--al-ink);
  font-size: 18px;
  line-height: 1.2;
}

.coach-score-summary > p {
  margin: 2px 0 4px;
  color: var(--al-ink-soft);
  font-size: 10px;
  line-height: 1.48;
}

.coach-score-summary > span {
  justify-self: start;
  padding: 4px 7px;
  border-radius: 999px;
  background: rgba(20, 91, 76, .09);
  color: var(--al-court);
  font-size: 9px;
  font-weight: 720;
}

.coach-score-summary > em {
  color: var(--al-ink-soft);
  font-size: 8px;
  font-style: normal;
  line-height: 1.4;
}

.coach-score-summary.band-foundation,
.coach-score-summary.band-building,
.coach-score-summary.band-review {
  border-left-color: var(--al-gold);
  background: #faf6eb;
}

.hero-verdict {
  grid-template-columns: minmax(190px, .72fr) minmax(0, 1.28fr);
}

.motion-identity-proof span b {
  font-size: .58rem;
  font-weight: 700;
}

.kinetic-chain-track article strong {
  font-size: .72rem;
  line-height: 1.25;
}

@media (max-width: 760px) {
  .mobile-tabs .mobile-qiulian-tab {
    position: relative;
    margin: -3px 2px 1px;
    border: 1px solid rgba(20, 91, 76, .2);
    background: #e8f1eb;
    color: var(--al-court);
  }

  .mobile-tabs .mobile-qiulian-tab.is-active {
    background: var(--al-court);
    color: #fff;
    box-shadow: 0 8px 18px rgba(20, 91, 76, .2);
  }

  .mobile-tabs .mobile-qiulian-tab.is-active::before {
    background: #ead49c;
  }

  .mobile-qiulian-tab .qiulian-nav-badge {
    position: absolute;
    top: 2px;
    right: 12px;
  }

  .member-home-qiulian-entry {
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 12px;
    padding: 16px;
  }

  .member-home-qiulian-mark {
    width: 46px;
    height: 46px;
    border-radius: 14px;
    transform: scale(.9);
  }

  .member-home-qiulian-action {
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    justify-items: start;
    padding-top: 10px;
    border-top: 1px solid rgba(255, 255, 255, .15);
    text-align: left;
  }

  .member-home-qiulian-action em {
    justify-self: end;
  }

  .hero-verdict {
    grid-template-columns: minmax(0, 1fr);
  }

  .coach-score-summary {
    min-width: 0;
  }
}

/* v281 — QiuLian becomes the signed-in home feed; messages become a primary tab. */
.qiulian-home-screen {
  width: min(720px, 100%);
  margin: 24px auto 34px;
}

.qiulian-home-screen > .community-intro {
  display: none;
}

.qiulian-stream-header {
  display: grid;
  gap: 14px;
  padding: 19px 20px;
  border: 1px solid rgba(20, 91, 76, .22);
  border-radius: 18px;
  background:
    radial-gradient(circle at 90% 8%, rgba(234, 212, 156, .24), transparent 28%),
    linear-gradient(135deg, #0d493e, #176f5d);
  color: #fff;
  box-shadow: 0 14px 34px rgba(20, 91, 76, .12);
}

.qiulian-stream-profile {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 13px;
  align-items: center;
}

.qiulian-stream-profile > div {
  width: 52px;
  height: 52px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .26);
  border-radius: 50%;
  background: #edf4ef;
}

.qiulian-stream-profile p,
.qiulian-stream-profile small,
.qiulian-stream-profile strong,
.qiulian-stream-profile span {
  display: block;
  min-width: 0;
  margin: 0;
}

.qiulian-stream-profile small {
  color: #ead49c;
  font-size: 9px;
  font-weight: 780;
  letter-spacing: .1em;
}

.qiulian-stream-profile strong {
  margin-top: 2px;
  font-family: var(--al-display);
  font-size: 25px;
}

.qiulian-stream-profile span {
  margin-top: 3px;
  color: rgba(255, 255, 255, .72);
  font-size: 10px;
  line-height: 1.45;
}

.qiulian-stream-header nav {
  display: flex;
  gap: 8px;
  padding-left: 65px;
}

.qiulian-stream-header nav button {
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: 999px;
  background: rgba(255, 255, 255, .09);
  color: #fff;
  font-size: 10px;
  font-weight: 720;
}

.qiulian-composer-collapsible {
  margin: 12px 0;
  border-radius: 16px;
}

.qiulian-composer-collapsible > summary {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 34px;
  gap: 11px;
  align-items: center;
  min-height: 72px;
  padding: 13px 15px;
  cursor: pointer;
  list-style: none;
  background: #fff;
}

.qiulian-composer-collapsible > summary::-webkit-details-marker {
  display: none;
}

.qiulian-composer-collapsible > summary > div {
  width: 42px;
  height: 42px;
  overflow: hidden;
  border-radius: 50%;
  background: #edf4ef;
}

.qiulian-composer-collapsible > summary p,
.qiulian-composer-collapsible > summary small,
.qiulian-composer-collapsible > summary strong,
.qiulian-composer-collapsible > summary span {
  display: block;
  min-width: 0;
  margin: 0;
}

.qiulian-composer-collapsible > summary small {
  color: var(--al-gold);
  font-size: 9px;
  font-weight: 760;
}

.qiulian-composer-collapsible > summary strong {
  margin-top: 2px;
  color: var(--al-ink);
  font-size: 14px;
}

.qiulian-composer-collapsible > summary span {
  margin-top: 2px;
  color: var(--al-ink-soft);
  font-size: 9px;
}

.qiulian-composer-collapsible > summary > b {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--al-court);
  color: #fff;
  font-size: 20px;
  font-weight: 400;
  transition: transform .18s ease;
}

.qiulian-composer-collapsible[open] > summary > b {
  transform: none;
}

.qiulian-composer-collapsible[open] > summary {
  border-bottom: 1px solid var(--al-line);
}

.qiulian-home-feed {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.qiulian-home-feed > header {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: end;
  padding: 12px 2px;
}

.qiulian-home-feed > header small,
.qiulian-home-feed > header strong,
.qiulian-home-feed > header span {
  display: block;
}

.qiulian-home-feed > header small {
  color: var(--al-gold);
  font-size: 9px;
  font-weight: 760;
}

.qiulian-home-feed > header strong {
  margin-top: 2px;
  color: var(--al-ink);
  font-size: 20px;
}

.qiulian-home-feed > header span {
  max-width: 260px;
  color: var(--al-ink-soft);
  font-size: 9px;
  text-align: right;
}

.qiulian-home-feed .qiulian-feed {
  display: grid;
  gap: 12px;
}

.qiulian-home-feed .qiulian-post {
  margin: 0;
}

.messages-hub {
  width: min(760px, 100%);
  margin: 28px auto 36px;
}

.messages-intro {
  display: grid;
  gap: 5px;
  margin-bottom: 16px;
}

.messages-intro small {
  color: var(--al-gold);
  font-size: 10px;
  font-weight: 760;
  letter-spacing: .1em;
}

.messages-intro h2 {
  margin: 0;
  color: var(--al-ink);
  font-size: clamp(28px, 4vw, 40px);
}

.messages-intro p {
  max-width: 620px;
  margin: 0;
  color: var(--al-ink-soft);
  font-size: 11px;
  line-height: 1.55;
}

.messages-content {
  display: grid;
  gap: 12px;
}

.messages-overview,
.messages-section,
.messages-empty {
  border: 1px solid var(--al-line);
  border-radius: 14px;
  background: #fffefa;
}

.messages-overview {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: center;
  padding: 18px;
}

.messages-overview.has-unread {
  border-color: rgba(20, 91, 76, .28);
  background: #f0f6f1;
}

.messages-overview small,
.messages-overview strong,
.messages-overview p {
  display: block;
  margin: 0;
}

.messages-overview small {
  color: var(--al-gold);
  font-size: 9px;
  font-weight: 760;
}

.messages-overview strong {
  margin-top: 3px;
  color: var(--al-ink);
  font-size: 19px;
}

.messages-overview p {
  margin-top: 5px;
  color: var(--al-ink-soft);
  font-size: 10px;
  line-height: 1.45;
}

.messages-overview button,
.messages-empty a {
  min-height: 38px;
  padding: 0 13px;
  border: 0;
  border-radius: 999px;
  background: var(--al-court);
  color: #fff;
  font-size: 10px;
  font-weight: 740;
  text-decoration: none;
  white-space: nowrap;
}

.messages-section {
  padding: 16px;
}

.messages-section > header {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
  margin-bottom: 10px;
}

.messages-section > header strong {
  color: var(--al-ink);
  font-size: 15px;
}

.messages-section > header p {
  margin: 3px 0 0;
  color: var(--al-ink-soft);
  font-size: 9px;
  line-height: 1.45;
}

.messages-section > header > span {
  display: grid;
  place-items: center;
  min-width: 24px;
  height: 24px;
  padding: 0 6px;
  border-radius: 999px;
  background: #edf3ed;
  color: var(--al-court);
  font-size: 10px;
  font-weight: 760;
}

.messages-content > .qiulian-notifications {
  margin: 0;
  border-radius: 14px;
  box-shadow: none;
}

.messages-empty-state p,
.messages-empty-thread {
  margin: 0;
  padding: 18px;
  border-radius: 10px;
  background: #f5f5f1;
  color: var(--al-ink-soft);
  font-size: 10px;
  line-height: 1.5;
}

.messages-empty {
  display: grid;
  gap: 8px;
  justify-items: start;
  padding: 20px;
}

.messages-empty p {
  margin: 0;
  color: var(--al-ink-soft);
  font-size: 10px;
}

.topbar nav .topbar-messages-link {
  position: relative;
  display: inline-flex;
  gap: 6px;
  align-items: center;
}

/* v292 — keep authentication copy honest and make the first QiuLian step feel complete. */
.auth-welcome-moments[hidden] {
  display: none !important;
}

.community-join-points {
  display: grid;
  gap: 8px;
  margin: 3px 0 2px;
  padding: 0;
  list-style: none;
}

.community-join-points li {
  position: relative;
  min-width: 0;
  padding-left: 19px;
  color: var(--al-ink-soft, #5f6965);
  font-size: 11px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.community-join-points li::before {
  content: "✓";
  position: absolute;
  top: 0;
  left: 0;
  color: var(--al-court, #145b4c);
  font-weight: 850;
}

.community-join-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  align-items: center;
}

.community-join-actions a {
  min-height: 44px;
  display: inline-grid;
  place-items: center;
  padding: 10px 16px;
  border: 1px solid var(--al-line-strong, rgba(37, 43, 45, .16));
  border-radius: 7px;
  color: var(--al-ink, #252b2d);
  font-size: 11px;
  font-weight: 760;
  text-decoration: none;
}

@media (max-width: 760px) {
  body:not(.is-auth-entry):not(.is-auth-boot) .topbar nav > .topbar-qiulian-link,
  body:not(.is-auth-entry):not(.is-auth-boot) .topbar nav > .topbar-messages-link {
    display: none !important;
  }

  .qiulian-home-screen.is-community-join-gate {
    min-height: max(360px, calc(100dvh - 142px));
    margin-top: 0;
    margin-bottom: 0;
    padding-top: 10px;
    padding-bottom: 14px;
  }

  .qiulian-home-screen.is-community-join-gate .community-content,
  .qiulian-home-screen.is-community-join-gate .community-join-card {
    min-height: max(360px, calc(100dvh - 166px));
  }

  .qiulian-home-screen.is-community-join-gate .community-join-card {
    grid-template-columns: 86px minmax(0, 1fr);
    gap: 13px;
    align-content: center;
    padding: 18px 15px;
  }

  .qiulian-home-screen.is-community-join-gate .community-join-avatar {
    width: 86px;
    align-self: center;
  }

  .qiulian-home-screen.is-community-join-gate .community-join-card > div:last-child {
    min-width: 0;
  }

  .qiulian-home-screen.is-community-join-gate .community-join-card strong {
    font-size: 20px;
    overflow-wrap: anywhere;
  }

  .qiulian-home-screen.is-community-join-gate .community-join-card p,
  .qiulian-home-screen.is-community-join-gate .community-join-points li {
    font-size: 10px;
  }

  .qiulian-home-screen.is-community-join-gate .community-join-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .qiulian-home-screen.is-community-join-gate .community-join-actions > * {
    width: 100%;
    max-width: 100%;
    text-align: center;
  }
}

@media (max-width: 350px) {
  .qiulian-home-screen.is-community-join-gate .community-join-card {
    grid-template-columns: 70px minmax(0, 1fr);
    gap: 10px;
    padding-right: 12px;
    padding-left: 12px;
  }

  .qiulian-home-screen.is-community-join-gate .community-join-avatar {
    width: 70px;
  }
}

@media (max-width: 760px) {
  .qiulian-home-screen,
  .messages-hub {
    width: 100%;
    margin: 10px 0 24px;
  }

  .qiulian-stream-header {
    padding: 15px;
    border-radius: 0;
  }

  .qiulian-stream-header nav {
    padding-left: 0;
  }

  .qiulian-stream-header nav button {
    flex: 1;
  }

  .qiulian-composer-collapsible {
    margin: 9px 0;
    border-right: 0;
    border-left: 0;
    border-radius: 0;
  }

  .qiulian-home-feed > header {
    padding: 12px 14px;
  }

  .qiulian-home-feed > header span {
    max-width: 150px;
  }

  .qiulian-home-feed .qiulian-feed {
    gap: 9px;
  }

  .qiulian-home-feed .qiulian-post {
    border-right: 0;
    border-left: 0;
    border-radius: 0;
  }

  .messages-intro {
    padding: 12px 14px 0;
  }

  .messages-content {
    gap: 9px;
  }

  .messages-overview,
  .messages-section,
  .messages-content > .qiulian-notifications,
  .messages-empty {
    border-right: 0;
    border-left: 0;
    border-radius: 0;
  }

  .messages-overview {
    align-items: flex-start;
    padding: 15px;
  }

  .mobile-messages-tab {
    position: relative;
  }

  .mobile-messages-tab .qiulian-nav-badge {
    position: absolute;
    top: 2px;
    right: 12px;
  }
}

/* v283 — deliberate photo and video selection with an explicit preview step. */
.media-selection-dialog {
  width: min(680px, calc(100% - 28px));
  max-width: none;
  max-height: min(860px, calc(100dvh - 28px));
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 20px;
  background: transparent;
  box-shadow: 0 28px 80px rgba(12, 28, 24, .28);
}

.media-selection-dialog::backdrop {
  background: rgba(10, 21, 18, .62);
  backdrop-filter: blur(8px);
}

.media-selection-shell {
  display: grid;
  grid-template-rows: auto minmax(220px, 1fr) auto auto;
  max-height: min(860px, calc(100dvh - 28px));
  overflow: auto;
  background: #fffefa;
}

.media-selection-shell > header {
  position: sticky;
  top: 0;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(70px, auto) minmax(0, 1fr) minmax(92px, auto);
  gap: 10px;
  align-items: center;
  min-height: 70px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--al-line);
  background: rgba(255, 254, 250, .96);
  backdrop-filter: blur(12px);
}

.media-selection-shell > header > div {
  min-width: 0;
  text-align: center;
}

.media-selection-shell > header small,
.media-selection-shell > header h2 {
  display: block;
  margin: 0;
}

.media-selection-shell > header small {
  color: var(--al-gold);
  font-size: 9px;
  font-weight: 780;
  letter-spacing: .08em;
}

.media-selection-shell > header h2 {
  margin-top: 2px;
  overflow: hidden;
  color: var(--al-ink);
  font-size: 17px;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.media-selection-cancel,
.media-selection-confirm {
  min-height: 40px;
  padding: 0 11px;
  border: 0;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 760;
}

.media-selection-cancel {
  justify-self: start;
  background: #f0f1ed;
  color: var(--al-ink-soft);
}

.media-selection-confirm {
  justify-self: end;
  background: var(--al-court);
  color: #fff;
}

.media-selection-confirm:disabled {
  opacity: .46;
}

.media-selection-preview {
  display: grid;
  place-items: center;
  min-height: 280px;
  overflow: hidden;
  background: #101613;
}

.media-selection-preview img,
.media-selection-preview video {
  display: block;
  width: 100%;
  max-width: 100%;
  max-height: min(60dvh, 620px);
  object-fit: contain;
  background: #101613;
}

.media-selection-preview img[hidden],
.media-selection-preview video[hidden] {
  display: none;
}

.media-selection-meta {
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 16px 18px 12px;
}

.media-selection-meta strong,
.media-selection-meta span,
.media-selection-meta p {
  display: block;
  min-width: 0;
  margin: 0;
}

.media-selection-meta strong {
  overflow: hidden;
  color: var(--al-ink);
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.media-selection-meta span {
  color: var(--al-gold);
  font-size: 10px;
  font-weight: 720;
}

.media-selection-meta p {
  color: var(--al-ink-soft);
  font-size: 10px;
  line-height: 1.5;
}

.media-selection-shell > footer {
  display: flex;
  gap: 14px;
  align-items: center;
  justify-content: space-between;
  padding: 12px 18px 18px;
}

.media-selection-shell > footer button {
  min-height: 40px;
  padding: 0 13px;
  border: 1px solid var(--al-line);
  border-radius: 999px;
  background: #fff;
  color: var(--al-court);
  font-size: 11px;
  font-weight: 740;
  white-space: nowrap;
}

.media-selection-shell > footer p {
  max-width: 380px;
  margin: 0;
  color: var(--al-ink-soft);
  font-size: 9px;
  line-height: 1.45;
  text-align: right;
}

@media (max-width: 760px) {
  .media-selection-dialog {
    width: 100%;
    height: 100dvh;
    max-height: 100dvh;
    margin: 0;
    border-radius: 0;
  }

  .media-selection-shell {
    min-height: 100dvh;
    max-height: 100dvh;
    grid-template-rows: auto minmax(260px, 1fr) auto auto;
  }

  .media-selection-shell > header {
    min-height: calc(64px + env(safe-area-inset-top));
    padding-top: calc(10px + env(safe-area-inset-top));
  }

  .media-selection-preview {
    min-height: 300px;
  }

  .media-selection-shell > footer {
    padding-bottom: calc(18px + env(safe-area-inset-bottom));
  }
}

/* v284 — remove protocol-like framing and keep the everyday flow conversational. */
.train-section-title {
  margin-bottom: 11px;
  padding-bottom: 11px;
}

.train-section-title > small {
  display: none;
}

#analysisForm > .forehand-v1-brief {
  gap: 8px;
  margin-bottom: 10px;
  padding: 11px 13px;
}

.forehand-v1-head {
  padding: 0 0 7px;
}

.forehand-v1-head strong {
  font-size: 14px;
}

.video-source-picker > header small:empty,
.video-source-picker > header p:empty,
#uploadProtocolLabel:empty,
.my-space-title small:empty {
  display: none;
}

.video-source-action > small {
  display: none;
}

.video-source-action {
  grid-template-rows: 1fr;
}

.video-source-action > strong {
  align-self: center;
}

.video-source-selection {
  min-height: 58px;
}

.messages-intro {
  margin-bottom: 10px;
}

.messages-intro h2 {
  font-size: 27px;
}

.messages-zero-state {
  min-height: 360px;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 8px;
  padding: 28px;
  border: 1px solid var(--al-line);
  border-radius: 16px;
  background: #fffefa;
  text-align: center;
}

.messages-zero-state > span {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  margin-bottom: 4px;
  border-radius: 50%;
  background: #edf3ed;
  color: var(--al-court);
  font-size: 24px;
}

.messages-zero-state strong {
  color: var(--al-ink);
  font-size: 18px;
}

.messages-zero-state p {
  max-width: 260px;
  margin: 0;
  color: var(--al-ink-soft);
  font-size: 11px;
  line-height: 1.5;
}

.messages-zero-state a {
  min-height: 40px;
  display: inline-grid;
  place-items: center;
  margin-top: 7px;
  padding: 0 16px;
  border-radius: 999px;
  background: var(--al-court);
  color: #fff;
  font-size: 11px;
  font-weight: 740;
  text-decoration: none;
}

.qiulian-stream-header {
  gap: 10px;
  padding: 15px 18px;
}

.qiulian-stream-profile {
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 10px;
}

.qiulian-stream-profile > div {
  width: 42px;
  height: 42px;
}

.qiulian-stream-profile strong {
  margin-top: 0;
  font-size: 22px;
}

.qiulian-stream-profile span {
  margin-top: 1px;
}

.qiulian-stream-header nav {
  padding-left: 52px;
}

.qiulian-home-feed > header {
  align-items: center;
}

.qiulian-partner-entry {
  width: max-content;
  min-height: 36px;
  display: block;
  margin: 18px auto 0;
  padding: 0 12px;
  border: 0;
  background: transparent;
  color: var(--al-ink-soft);
  font-size: 10px;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.profile-hub {
  gap: 14px;
  padding: 22px;
}

.profile-hub-grid button {
  min-height: 112px;
  grid-template-columns: minmax(0, 1fr) auto;
}

.retest-loop.is-compact {
  display: flex;
  gap: 18px;
  align-items: center;
  justify-content: space-between;
  padding: 18px;
}

.retest-loop.is-compact .retest-loop-copy {
  max-width: 460px;
}

.retest-loop.is-compact .retest-loop-actions {
  flex: 0 0 auto;
}

@media (max-width: 760px) {
  #analysisForm.tool {
    padding: 14px;
  }

  .train-section-title > span {
    font-size: 25px;
  }

  .train-section-title > p {
    margin-top: 4px;
    line-height: 1.4;
  }

  .capture-essentials {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .capture-essentials > span {
    min-height: 48px;
    padding: 7px 8px;
  }

  .capture-essentials > span + span {
    border-top: 0;
    border-left: 1px solid var(--al-line);
  }

  .capture-guide {
    display: none;
  }

  .video-source-picker {
    padding: 12px 14px;
  }

  .video-source-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .video-source-action {
    min-height: 62px;
  }

  .messages-intro {
    padding: 12px 14px 0;
  }

  .messages-zero-state {
    min-height: 430px;
    border-right: 0;
    border-left: 0;
    border-radius: 0;
  }

  .qiulian-stream-header {
    padding: 13px 15px;
  }

  .qiulian-stream-header nav {
    padding-left: 0;
  }

  .profile-hub {
    gap: 12px;
    padding: 18px 14px;
  }

  .profile-hub-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 9px;
  }

  .profile-hub-grid button {
    min-height: 86px;
    padding: 14px;
  }

  .retest-loop.is-compact {
    display: grid;
    gap: 12px;
  }

  .retest-loop.is-compact .retest-loop-actions {
    width: 100%;
  }
}

/* v285 · two-part Ace commerce */
.ace-store-dialog,
.ace-store-shell,
.ace-store-content,
.ace-store-section,
.ace-gear-card,
.ace-gear-card-copy,
.ace-gear-address,
.ace-gear-orders {
  min-width: 0;
  max-width: 100%;
}

.ace-store-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  padding: 5px;
  overflow: visible;
  border: 1px solid rgba(37, 43, 45, .1);
  border-radius: 12px;
  background: #ece9e1;
}

.ace-store-tabs button {
  min-width: 0;
  min-height: 44px;
  padding: 9px 12px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: #68706d;
  font-size: 12px;
  font-weight: 850;
}

.ace-store-tabs button.is-active {
  background: #fff;
  color: #173e34;
  box-shadow: 0 6px 18px rgba(26, 48, 42, .09);
}

.ace-balance-breakdown {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

/* v286 · free-first storefront gate */
.ace-balance-breakdown.is-free-only {
  grid-template-columns: minmax(0, 1fr);
}

.ace-balance-breakdown.is-free-only > span {
  background: linear-gradient(135deg, #173e34, #245c4d);
}

.ace-balance-breakdown.is-free-only small {
  color: rgba(255, 255, 255, .65);
}

.ace-balance-breakdown.is-free-only strong {
  color: #f0d28a;
  font-size: 24px;
}

.ace-balance-breakdown > span {
  display: grid;
  gap: 3px;
  padding: 13px 15px;
  border: 1px solid rgba(37, 43, 45, .09);
  border-radius: 12px;
  background: #fff;
}

.ace-balance-breakdown small,
.ace-gear-hero > span small {
  color: #7d837f;
  font-size: 9px;
  font-weight: 750;
}

.ace-balance-breakdown strong,
.ace-gear-hero > span strong {
  color: #98691f;
  font-size: 18px;
}

.ace-pack-grid button:disabled {
  opacity: .72;
}

.ace-gear-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px;
  align-items: center;
  padding: 20px;
  overflow: hidden;
  border-radius: 16px;
  background:
    radial-gradient(circle at 100% 0%, rgba(222, 184, 102, .27), transparent 42%),
    linear-gradient(135deg, #173e34, #242d2b);
  color: #fff;
}

.ace-gear-hero > div {
  min-width: 0;
  display: grid;
  gap: 5px;
}

.ace-gear-hero > div small {
  color: #dbbd78;
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.ace-gear-hero > div strong {
  font-size: 25px;
  line-height: 1.08;
}

.ace-gear-hero p {
  max-width: 48ch;
  margin: 0;
  color: rgba(255, 255, 255, .68);
  font-size: 10px;
  line-height: 1.5;
}

.ace-gear-hero > span {
  min-width: 120px;
  display: grid;
  gap: 3px;
  padding: 12px 14px;
  border: 1px solid rgba(255, 255, 255, .13);
  border-radius: 12px;
  background: rgba(255, 255, 255, .08);
}

.ace-gear-hero > span small {
  color: rgba(255, 255, 255, .62);
}

.ace-gear-hero > span strong {
  color: #f0d28a;
}

.ace-gear-policy {
  border: 1px solid rgba(168, 116, 30, .14);
  background: #fff8e9;
  color: #765e36;
}

.ace-gear-catalog {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.ace-gear-card {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 13px;
  padding: 13px;
  overflow: hidden;
  border: 1px solid rgba(37, 43, 45, .09);
  border-radius: 14px;
  background: #fff;
}

.ace-gear-card-art {
  min-height: 148px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 11px;
  background:
    linear-gradient(145deg, rgba(238, 209, 141, .32), rgba(21, 85, 69, .07)),
    #f5f3ea;
}

.ace-gear-card-art span {
  display: grid;
  width: 54px;
  height: 54px;
  place-items: center;
  border: 2px solid #be954a;
  border-radius: 50%;
  color: #174b3d;
  font-size: 24px;
  font-weight: 900;
}

.ace-gear-card.is-pending .ace-gear-card-art {
  filter: grayscale(.42);
  opacity: .78;
}

.ace-gear-card-copy {
  display: grid;
  align-content: start;
  gap: 6px;
}

.ace-gear-card-copy > small {
  color: #a0742f;
  font-size: 8px;
  font-weight: 850;
  letter-spacing: .06em;
}

.ace-gear-card-copy > strong {
  overflow-wrap: anywhere;
  color: #27302d;
  font-size: 14px;
  line-height: 1.25;
}

.ace-gear-card-copy > p {
  margin: 0;
  color: #737a77;
  font-size: 9px;
  line-height: 1.45;
}

.ace-gear-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.ace-gear-meta span {
  padding: 4px 6px;
  border-radius: 999px;
  background: #f2efe7;
  color: #6d726f;
  font-size: 8px;
}

.ace-gear-card-copy > a {
  width: fit-content;
  max-width: 100%;
  color: #17614f;
  font-size: 9px;
  font-weight: 750;
  overflow-wrap: anywhere;
}

.ace-gear-card-copy > button,
.ace-gear-address form > button {
  min-height: 36px;
  padding: 8px 10px;
  border: 0;
  border-radius: 8px;
  background: #174b3d;
  color: #fff;
  font-size: 9px;
  font-weight: 850;
}

.ace-gear-card-copy > button:disabled {
  background: #eceae4;
  color: #858a87;
}

.ace-gear-address,
.ace-gear-orders {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid rgba(37, 43, 45, .09);
  border-radius: 14px;
  background: #fff;
}

.ace-gear-address form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.ace-gear-address label {
  min-width: 0;
  display: grid;
  gap: 5px;
}

.ace-gear-address label.is-wide,
.ace-gear-address form > button {
  grid-column: 1 / -1;
}

.ace-gear-address label span {
  color: #6e7571;
  font-size: 9px;
  font-weight: 750;
}

.ace-gear-address input {
  width: 100%;
  min-width: 0;
  min-height: 42px;
  padding: 9px 11px;
  border: 1px solid rgba(37, 43, 45, .14);
  border-radius: 9px;
  background: #fbfaf6;
  color: #26302d;
  font-size: 12px;
}

.ace-gear-orders > p {
  margin: 0;
  color: #7a807d;
  font-size: 10px;
}

.ace-gear-orders article {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 0;
  border-top: 1px solid rgba(37, 43, 45, .08);
}

.ace-gear-orders article > span {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.ace-gear-orders article strong {
  color: #303936;
  font-size: 11px;
}

.ace-gear-orders article small {
  color: #7b817e;
  font-size: 9px;
}

.ace-gear-orders article b {
  flex: 0 0 auto;
  color: #9a6a23;
  font-size: 11px;
}

@media (max-width: 760px) {
  .ace-store-dialog {
    width: min(100% - 16px, 620px);
    max-height: calc(100dvh - 18px);
  }

  .ace-store-shell {
    max-height: calc(100dvh - 18px);
  }

  .ace-store-head {
    padding: 15px 16px;
  }

  .ace-store-balance {
    min-height: 90px;
  }

  .ace-store-content {
    gap: 13px;
    padding: 13px;
  }

  .ace-store-tabs {
    position: static;
    padding: 4px;
  }

  .ace-store-tabs button {
    min-height: 42px;
    font-size: 11px;
  }

  .ace-pack-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
  }

  .ace-pack-grid article {
    min-height: 116px;
    padding: 10px 7px;
  }

  .ace-pack-grid strong {
    font-size: 17px;
  }

  .ace-gear-hero {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    padding: 17px;
  }

  .ace-gear-hero > span {
    min-width: 0;
  }

  .ace-gear-catalog {
    grid-template-columns: minmax(0, 1fr);
  }

  .ace-gear-card {
    grid-template-columns: 94px minmax(0, 1fr);
  }

  .ace-gear-card-art {
    min-height: 132px;
  }

  .ace-gear-address form {
    grid-template-columns: minmax(0, 1fr);
  }

  .ace-gear-address input {
    font-size: 16px;
  }

  .ace-gear-address label.is-wide,
  .ace-gear-address form > button {
    grid-column: auto;
  }
}

@media (max-width: 350px) {
  .ace-pack-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .ace-pack-grid article {
    min-height: 100px;
  }

  .ace-gear-card {
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 10px;
    padding: 10px;
  }

  .ace-gear-card-art {
    min-height: 112px;
  }
}

/* v296 final narrow-screen text guard. */
@media (max-width: 430px) {
  html[lang="en"] .profile-growth {
    grid-template-columns: minmax(0, 1fr);
  }

  html[lang="en"] .profile-path-card {
    grid-column: auto;
  }

  html[lang="en"] :where(.profile-level-card, .profile-streak-card) button {
    width: 100%;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
  }
}

/* v297 — privacy-first account verification and reward review. */
.account-verification-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px 14px;
  align-items: center;
  margin-bottom: 12px;
  padding: 16px;
  border: 1px solid rgba(18, 107, 87, 0.16);
  border-radius: 12px;
  background: linear-gradient(145deg, rgba(232, 242, 235, 0.92), #ffffff);
}

.account-verification-card > div {
  min-width: 0;
  display: grid;
  gap: 4px;
}

.account-verification-card small,
.account-verification-card strong,
.account-verification-card p,
.account-verification-card em {
  margin: 0;
  overflow-wrap: anywhere;
}

.account-verification-card small {
  color: var(--court);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.account-verification-card strong {
  color: var(--text-strong);
  font-size: 18px;
}

.account-verification-card p {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

.account-verification-card em {
  width: fit-content;
  margin-top: 4px;
  padding: 5px 8px;
  border-radius: 999px;
  background: rgba(181, 126, 45, 0.12);
  color: #8f6429;
  font-size: 10px;
  font-style: normal;
  font-weight: 900;
}

.account-verification-card > button,
.account-verification-card > span {
  min-width: 42px;
  min-height: 42px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 10px;
  background: #10201d;
  color: #ffffff;
  font-size: 11px;
  font-weight: 900;
}

.account-verification-card > button {
  padding: 0 13px;
  cursor: pointer;
}

.account-verification-card > button:disabled {
  cursor: wait;
  opacity: 0.58;
}

.account-verification-card.is-verified > span {
  background: var(--court);
  font-size: 18px;
}

.account-verification-card.is-unavailable {
  background: #f6f3ec;
}

.account-verification-card.is-unavailable > span {
  background: rgba(16, 32, 29, 0.08);
  color: var(--muted);
}

.account-verification-card .account-verification-message {
  grid-column: 1 / -1;
  color: var(--court);
  font-weight: 800;
}

.abuse-operations {
  display: grid;
  gap: 12px;
  margin: 16px 0;
  padding: 14px;
  border: 1px solid rgba(181, 126, 45, 0.2);
  border-radius: 12px;
  background: rgba(255, 251, 241, 0.76);
}

.abuse-risk-list {
  display: grid;
  gap: 9px;
}

.abuse-risk-card {
  display: grid;
  gap: 9px;
  padding: 12px;
  border: 1px solid rgba(16, 32, 29, 0.1);
  border-left: 4px solid rgba(18, 107, 87, 0.45);
  border-radius: 9px;
  background: #ffffff;
}

.abuse-risk-card.is-watch {
  border-left-color: #b57e2d;
}

.abuse-risk-card.is-high_risk {
  border-left-color: #a34525;
}

.abuse-risk-card header,
.abuse-risk-card footer,
.abuse-risk-card p {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
}

.abuse-risk-card header {
  justify-content: space-between;
}

.abuse-risk-card header strong {
  font-size: 18px;
}

.abuse-risk-card header em,
.abuse-risk-reasons span {
  padding: 5px 8px;
  border-radius: 999px;
  background: rgba(181, 126, 45, 0.1);
  color: #8f6429;
  font-size: 9px;
  font-style: normal;
  font-weight: 900;
}

.abuse-risk-card p small {
  min-width: 90px;
  color: var(--muted);
  font-size: 9px;
}

.abuse-risk-card p b {
  font-size: 11px;
  overflow-wrap: anywhere;
}

.abuse-risk-reasons {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.abuse-risk-card footer {
  justify-content: flex-end;
  flex-wrap: wrap;
  border-top: 1px solid rgba(16, 32, 29, 0.08);
  padding-top: 9px;
}

.abuse-risk-card footer small {
  margin-right: auto;
  color: var(--muted);
  font-size: 9px;
}

.abuse-risk-card footer button {
  min-height: 34px;
  border: 1px solid rgba(16, 32, 29, 0.14);
  border-radius: 8px;
  padding: 0 10px;
  background: #ffffff;
  color: var(--ink);
  font-size: 10px;
  font-weight: 900;
  cursor: pointer;
}

.abuse-risk-card footer button.is-primary {
  border-color: #10201d;
  background: #10201d;
  color: #ffffff;
}

.beta-user-card > header em.risk-watch {
  background: rgba(181, 126, 45, 0.12);
  color: #8f6429;
}

.beta-user-card > header em.risk-high_risk {
  background: rgba(163, 69, 37, 0.12);
  color: #a34525;
}

@media (max-width: 560px) {
  .account-verification-card {
    grid-template-columns: minmax(0, 1fr);
  }

  .account-verification-card > button,
  .account-verification-card > span {
    width: 100%;
  }

  .abuse-risk-card footer {
    align-items: stretch;
  }

  .abuse-risk-card footer small {
    width: 100%;
    margin: 0;
  }

  .abuse-risk-card footer button {
    flex: 1 1 120px;
  }
}

/* v301 — final brand: graphite, warm ivory, champagne gold, bright gold.
   Legacy --al-court/--al-ball names remain compatible aliases, not green/yellow.
   Keep semantic success/info/warning/error separate from brand accents. */
:root {
  --al-graphite: #252b2d;
  --al-ivory: #f7f2e8;
  --al-gold: #b88a3e;
  --al-gold-light: #d7b76f;
  --al-court: #252b2d;
  --al-court-deep: #1c2224;
  --al-ink-soft: #666964;
  --al-ball: #d7b76f;
  --al-court-tint: #f7f2e8;
  --al-success: #276749;
  --al-success-tint: #edf6f0;
  --al-info: #245f9e;
  --al-info-tint: #eef5fc;
  --al-warning: #805619;
  --al-warning-tint: #fff5df;
  --al-error: #a33f31;
  --al-error-tint: #fff0ec;
}
body { background: #fcfbf8; }
/* Keep the keyboard shortcut off canvas even when other link transforms apply. */
.skip-link:not(:focus) { clip-path: inset(50%); }
.skip-link:focus { clip-path: none; }

/* The current destination is the only filled tab, on every player screen. */
.mobile-tabs a[data-app-nav] {
  margin: 0;
  border: 1px solid transparent;
  border-radius: 12px;
  background: transparent;
  color: var(--al-ink-soft);
  box-shadow: none;
}
.mobile-tabs a[data-app-nav].is-active {
  border-color: var(--al-court);
  background: var(--al-court);
  color: #fff;
  box-shadow: 0 4px 12px rgba(37, 43, 45, .12);
}
.mobile-tabs a[data-app-nav].is-active::before { background: var(--al-ball); }
.topbar [data-app-nav].is-active {
  color: var(--al-court);
  background: var(--al-court-tint);
  border-color: var(--al-court);
}
:where(main, .mobile-tabs, .topbar, dialog) :where(button, a[href], input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--al-court);
  outline-offset: 3px;
}

.qiulian-stream-header {
  border-radius: 18px;
  background: var(--al-court);
  box-shadow: 0 6px 20px rgba(37,43,45,.1);
}
.qiulian-stream-profile span { color: #e5e1d8; font-size: 12px; line-height: 1.6; }
.qiulian-stream-header nav button { min-height: 44px; font-size: 13px; }
.qiulian-stream-header nav button:first-child {
  background: var(--al-ivory);
  border-color: var(--al-ivory);
  color: var(--al-court-deep);
}
.qiulian-composer-collapsible {
  overflow: hidden;
  border: 1px solid var(--al-line);
  box-shadow: 0 3px 12px rgba(37,43,45,.035);
}
.qiulian-composer-collapsible > summary { border-radius: 16px; min-height: 88px; }
.qiulian-home-screen .qiulian-composer-collapsible { border-radius: 16px; }
.qiulian-composer-collapsible > summary strong { font-size: 16px; }
.qiulian-composer-collapsible > summary span { font-size: 12px; line-height: 1.55; }
.qiulian-composer-collapsible > summary > b { background: var(--al-ball); color: var(--al-court-deep); }
.qiulian-life-empty { background: #fff; border-color: var(--al-line); }
.qiulian-life-empty small { color: var(--al-court); font-size: 12px; }
.qiulian-life-empty p { font-size: 14px; line-height: 1.7; }
.qiulian-life-empty-actions button { min-height: 44px; font-size: 13px; }

/* Visible feed/composer surfaces previously hard-coded the old green palette. */
.qiulian-achievement-preview,
.qiulian-achievement-card,
.qiulian-report-card { background: var(--al-court); color: #fff; }
.qiulian-achievement-preview small,
.qiulian-achievement-card small,
.qiulian-report-card small { color: var(--al-ball); }
.qiulian-photo-picker { background: var(--al-ivory); border-color: #8b877d; }
.qiulian-photo-picker > span { background: var(--al-court); color: #fff; }
.qiulian-photo-picker.has-photo > div { background: rgba(37,43,45,.9); }
.qiulian-photo-picker button:not(.is-secondary),
.qiulian-composer-footer button,
.qiulian-comments form button { background: var(--al-court); color: #fff; }
.qiulian-photo-picker button.is-secondary { background: var(--al-ivory); color: var(--al-court); }
.qiulian-post-actions button[data-qiulian-cheer] { background: var(--al-ivory); color: var(--al-court); }

.training-entry-card { border-radius: 18px; padding: 22px; }
.training-entry-card.is-primary {
  border-color: #252b2d;
  background: #252b2d;
  box-shadow: none;
}
.training-entry-card > span { color: var(--al-ink-soft); background: #f7f2e8; border-color: transparent; }
.training-entry-card.is-primary > span { color: #252b2d; background: #d7b76f; }
.training-entry-card.is-primary > small { color: #d7b76f; }
.training-entry-card.is-primary > p { color: #ebe9e2; }
.training-entry-card > small { font-size: 12px; letter-spacing: .02em; }
.training-entry-card > p { font-size: 14px; line-height: 1.6; }
.training-entry-card > em { font-size: 14px; }
.training-hub-progress .training-native-nav > button { background: #f7f2e8; border-color: #ded8ca; border-radius: 16px; }
.training-hub-progress b { background: #252b2d; }
.training-hub-progress small, .training-hub .app-hub-header small, .training-setup-header small { color: var(--al-ink-soft); font-size: 12px; }
.training-hub-progress em { font-size: 13px; line-height: 1.5; }
.training-hub-progress > p { color: var(--al-ink-soft); font-size: 12px; line-height: 1.65; }
.training-setup-continue.primary, #analysisForm > button.primary[type="submit"] {
  background: var(--al-court);
  border-color: var(--al-court);
  color: #fff;
  min-height: 50px;
  font-size: 15px;
}
.training-setup-continue.primary:hover, #analysisForm > button.primary[type="submit"]:not(:disabled):hover { background: var(--al-court-deep); }
#analysisForm > button.primary[type="submit"]:disabled { background: #e6e2d9; border-color: #e6e2d9; color: #696a65; box-shadow: none; }
.capture-essentials > span { background: var(--al-court-tint); border-color: #ded9cf; }
.capture-essentials b { color: var(--al-court-deep); }
.capture-essentials em { color: var(--al-ink-soft); font-size: 12px; line-height: 1.5; }
.capture-guide summary { color: var(--al-court); min-height: 44px; align-content: center; font-size: 14px; }
.protocol-confirmations label { border-radius: 12px; }
.protocol-confirmations label:has(input:checked) { background: var(--al-court-tint); border-color: var(--al-court); }
input[type="checkbox"], input[type="radio"] { accent-color: var(--al-court); }
#analysisForm .analysis-progress > i > b { background: var(--al-court); }
#analysisForm .analysis-progress-steps span.is-active { background: var(--al-info-tint); color: var(--al-info); border-color: #a9c6e4; box-shadow: none; }
#analysisForm .analysis-progress-steps span.is-done { background: var(--al-success-tint); color: var(--al-success); }
/* These existing completion checks previously shared the brand action token. */
#analysisForm.has-selected-video .training-journey [data-training-step="select"] b,
#analysisForm.is-protocol-ready .training-journey [data-training-step="confirm"] b { border-color: var(--al-success); }
#analysisForm.has-selected-video .training-journey [data-training-step="select"] b::after,
#analysisForm.is-protocol-ready .training-journey [data-training-step="confirm"] b::after { color: var(--al-success); }
#analysisForm .upload-preflight .preflight-check.is-pass > b,
.member-home-training-loop li.is-complete > b { border-color: var(--al-success); color: var(--al-success); }
.member-home-training-loop li.is-complete::before { background: var(--al-success); }
#analysisForm .analysis-progress.is-error { background: var(--al-error-tint); border-color: var(--al-error); }
.actionable-evidence-warning { color: var(--al-warning); background: var(--al-warning-tint); }

@media (max-width: 760px) {
  .qiulian-home-screen { width: calc(100% - 28px); margin: 16px auto 34px; }
  .qiulian-stream-header { padding: 18px 16px; border-radius: 18px; }
  .qiulian-stream-header nav { padding-left: 0; }
  .qiulian-composer-collapsible { margin: 16px 0; }
  .qiulian-home-feed > header { padding: 8px 0 14px; }
  .qiulian-life-empty { padding: 16px; gap: 16px; }
  .qiulian-life-empty strong { font-size: 23px; line-height: 1.3; text-wrap: pretty; }
  .training-entry-card { min-height: 178px; gap: 8px 14px; padding: 20px 18px; }
  .training-entry-card > strong { font-size: 24px; }
  .mobile-tabs a[data-app-nav] { min-height: 56px; }
  .mobile-tabs a[data-app-nav] em { font-size: 11px; }
  .community-join-card p, .community-join-points li,
  .qiulian-home-screen.is-community-join-gate .community-join-card p,
  .qiulian-home-screen.is-community-join-gate .community-join-points li { font-size: 13px; line-height: 1.65; }
  .qiulian-home-screen.is-community-join-gate .community-join-card { grid-template-columns: 1fr; gap: 18px; padding: 24px; align-content: center; }
  .qiulian-home-screen.is-community-join-gate .community-join-avatar { width: 88px; height: 112px; }
}
@media (prefers-reduced-motion: reduce) {
  main > [data-app-screen].is-screen-entering, .profile-secondary.is-detail-entering, .community-content.is-detail-entering { animation: none; }
}


/* QiuLian social UI — bounded feed layout, 2026-09-08.
   Keep all additions in this block; do not change training or global brand tokens. */
.qiulian-home-screen:has(.qiulian-hub),
.qiulian-home-screen.qiulian-hub {
  width: min(1060px, calc(100% - 40px));
  margin: 12px auto 40px;
  padding-top: 0;
}

.qiulian-hub {
  min-width: 0;
  color: var(--al-graphite);
  font-family: var(--al-font);
}

:is(.qiulian-hub, .qiulian-person-sheet, .qiulian-thread-sheet) :is(button, summary, input:not([type="checkbox"]):not([type="radio"]), select) {
  min-width: 44px;
  min-height: 44px;
}

:is(.qiulian-hub, .qiulian-person-sheet, .qiulian-thread-sheet) :is(button, summary) {
  touch-action: manipulation;
}

:is(.qiulian-hub, .qiulian-person-sheet, .qiulian-thread-sheet) :is(button, summary, a, input, select, textarea):focus-visible {
  outline: 3px solid var(--al-graphite);
  outline-offset: 3px;
}

:is(.qiulian-hub, .qiulian-person-sheet, .qiulian-thread-sheet) :is(input, textarea, select) {
  max-width: 100%;
  border-color: var(--al-ink-soft);
  background: var(--al-paper);
  color: var(--al-graphite);
}

:is(.qiulian-hub, .qiulian-person-sheet, .qiulian-thread-sheet) :is(input, textarea)::placeholder {
  color: var(--al-ink-soft);
  opacity: 1;
}

.qiulian-hub > header,
.qiulian-hub .qiulian-hub-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px 20px;
  padding: 0 0 20px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--al-graphite);
  box-shadow: none;
}

.qiulian-hub > header :is(h2, h3, p),
.qiulian-hub .qiulian-hub-header :is(h2, h3, p) { margin: 0; }
.qiulian-hub > header :is(h2, h3),
.qiulian-hub .qiulian-hub-header :is(h2, h3) { font-size: 28px; line-height: 1.2; letter-spacing: -.03em; }
.qiulian-hub > header p,
.qiulian-hub .qiulian-hub-header p { margin-top: 6px; max-width: 60ch; color: var(--al-ink-soft); font-size: 14px; line-height: 1.6; }
.qiulian-hub > header button,
.qiulian-hub .qiulian-hub-header button { padding: 10px 18px; border: 1px solid var(--al-graphite); border-radius: 7px; color: var(--al-paper); background: var(--al-graphite); font-size: 14px; font-weight: 700; }
.qiulian-hub .qiulian-hub-heading { flex: 1 1 300px; min-width: 0; }
.qiulian-hub .qiulian-hub-heading > small { color: var(--al-ink-soft); font-size: 12px; line-height: 1.6; }
.qiulian-hub .qiulian-stream-header nav { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; }
.qiulian-hub .qiulian-stream-header nav button { min-height: 44px; padding: 10px 14px; border: 1px solid var(--al-ink-soft); border-radius: 7px; color: var(--al-graphite); background: transparent; font-size: 13px; white-space: normal; }
.qiulian-hub .qiulian-stream-header nav button:first-child { border-color: var(--al-graphite); color: var(--al-paper); background: var(--al-graphite); }

.qiulian-hub .qiulian-layout {
  display: grid;
  grid-template-columns: minmax(0, 680px) minmax(240px, 280px);
  align-items: start;
  justify-content: center;
  gap: 32px;
}
.qiulian-hub .qiulian-main-column,
.qiulian-hub .qiulian-sidebar { min-width: 0; }

.qiulian-hub .qiulian-feed-navigation { display: flex; align-items: stretch; gap: 8px; min-width: 0; margin: 0; }
.qiulian-hub .qiulian-feed-navigation .qiulian-feed-tabs { flex: 1 1 0; min-width: 0; }
.qiulian-hub .qiulian-player-search { display: grid; place-items: center; flex: 0 0 44px; min-width: 44px; min-height: 44px; padding: 0; border: 0; border-bottom: 1px solid var(--al-line); border-radius: 0; background: transparent; color: var(--al-graphite); }
.qiulian-hub .qiulian-player-search > svg { display: block; width: 18px; height: 18px; }
.qiulian-hub .qiulian-player-search:hover { background: var(--al-ivory); }

.qiulian-hub .qiulian-feed-tabs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  border-bottom: 1px solid var(--al-line);
  overflow: visible;
}
.qiulian-hub .qiulian-feed-tabs button {
  position: relative;
  min-width: 0;
  padding: 12px 6px;
  border: 0;
  border-radius: 0;
  color: var(--al-ink-soft);
  background: transparent;
  font-size: 14px;
  line-height: 1.4;
  font-weight: 650;
  white-space: normal;
  overflow-wrap: anywhere;
}
.qiulian-hub .qiulian-feed-tabs button:is(.is-active, [aria-pressed="true"]) { color: var(--al-graphite); font-weight: 800; }
.qiulian-hub .qiulian-feed-tabs button:is(.is-active, [aria-pressed="true"])::after { content: ""; position: absolute; right: 20%; bottom: -1px; left: 20%; height: 3px; background: var(--al-gold); }

.qiulian-hub :is(.qiulian-feed-section, .qiulian-home-feed) { margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.qiulian-hub .qiulian-feed { display: grid; gap: 0; }
.qiulian-hub .qiulian-home-feed > header { padding: 14px 0; }
.qiulian-hub .qiulian-home-feed > header strong { font-size: 16px; }
.qiulian-hub .qiulian-home-feed > header :is(small, span) { font-size: 12px; }

:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-post {
  min-width: 0;
  margin: 0;
  padding: 20px 0;
  overflow: visible;
  border: 0;
  border-bottom: 1px solid var(--al-line);
  border-radius: 0;
  background: var(--al-paper);
  box-shadow: none;
  animation: none;
}
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-post > header { grid-template-columns: minmax(0, 1fr) auto auto; padding: 0 20px 12px; gap: 10px; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-post-avatar { width: 44px; height: 44px; background: var(--al-ivory); }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-post > header strong { color: var(--al-graphite); font-size: 15px; line-height: 1.45; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-post > header span { color: var(--al-ink-soft); font-size: 12px; line-height: 1.5; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-post-caption { padding: 0 20px 16px; color: var(--al-graphite); font-size: 16px; line-height: 1.75; overflow-wrap: anywhere; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-post-photo-frame { margin: 0; background: var(--al-ivory); }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-post-photo { height: auto; max-height: 720px; object-fit: contain; background: var(--al-ivory); }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-post-photo-frame.is-media-ready:hover .qiulian-post-photo { transform: none; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-post-photo-fallback { background: var(--al-ivory); color: var(--al-ink-soft); }

:is(.qiulian-hub, .qiulian-person-sheet, .qiulian-thread-sheet) .qiulian-person-link {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  max-width: 100%;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: var(--al-graphite);
  text-align: left;
  font: inherit;
  font-weight: 750;
  text-decoration: none;
  overflow-wrap: anywhere;
}
:is(.qiulian-hub, .qiulian-person-sheet, .qiulian-thread-sheet) .qiulian-person-link:hover { text-decoration: underline; text-underline-offset: 4px; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-post > header .qiulian-person-link { min-width: 0; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-person-link > .qiulian-post-avatar { flex: 0 0 44px; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-person-link > span { min-width: 0; margin: 0; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-person-link small { display: block; margin-top: 2px; color: var(--al-ink-soft); font-size: 12px; font-weight: 500; line-height: 1.5; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-inline-follow { padding: 8px 4px; border: 0; border-radius: 4px; background: transparent; color: var(--al-graphite); font-size: 12px; font-weight: 700; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-post-menu > summary { display: grid; place-items: center; padding: 0; color: var(--al-ink-soft); }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-post-menu > div { top: 44px; width: max-content; min-width: 190px; max-width: min(260px, 78vw); border-color: var(--al-line); border-radius: 8px; background: var(--al-paper); }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-post-menu button { white-space: normal; background: var(--al-paper); }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-post-menu button[data-qiulian-cheer] { color: var(--al-graphite); }

:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-post-actions { display: flex; flex-wrap: wrap; gap: 4px 12px; padding: 8px 16px 0; border: 0; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-post-actions button { min-height: 44px; margin: 0; padding: 8px 4px; border: 0; border-radius: 4px; color: var(--al-graphite); background: transparent; font-size: 13px; line-height: 1.4; font-weight: 650; white-space: normal; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-post-actions button.is-liked { color: var(--al-error); background: transparent; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-post-actions button:last-child { margin-left: 0; }

:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-report-tips { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 4px 8px; padding: 0 20px; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-report-tips:empty,
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-report-tips[hidden] { display: none; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-report-tips > button,
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-report-tips details > summary { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 6px; min-height: 44px; padding: 4px 0; border: 0; border-radius: 5px; color: var(--al-graphite); background: transparent; font-size: 12px; line-height: 1.5; list-style: none; cursor: pointer; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-report-tips summary > span { padding: 5px 8px; border-radius: 4px; background: var(--al-ivory); }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-report-tips details { min-width: 0; max-width: 100%; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-report-tips details[open] { flex: 1 0 100%; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-report-tips details > summary::-webkit-details-marker { display: none; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-report-tips details > :not(summary) { margin: 8px 0 0; padding: 12px; border-left: 2px solid var(--al-gold); color: var(--al-ink-soft); background: var(--al-ivory); font-size: 12px; line-height: 1.75; overflow-wrap: anywhere; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-tip-source p { margin: 0 0 8px; font-size: 12px; line-height: 1.75; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-tip-source button { padding: 8px 10px; border: 1px solid var(--al-ink-soft); border-radius: 5px; background: transparent; color: var(--al-graphite); font-size: 12px; }

:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-comments { margin: 8px 20px 0; padding: 12px 0 0; border-top: 1px solid var(--al-line); background: transparent; }
.qiulian-comments[hidden] { display: none !important; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-comments > summary { display: flex; align-items: center; color: var(--al-ink-soft); font-size: 13px; cursor: pointer; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-comments article { gap: 8px; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-comments article :is(strong, span) { color: var(--al-graphite); font-size: 13px; line-height: 1.65; overflow-wrap: anywhere; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-comments article small { color: var(--al-ink-soft); font-size: 12px; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-comment-author { display: inline-flex; align-items: center; max-width: 100%; min-height: 44px; padding: 4px 0; border: 0; border-radius: 4px; background: transparent; color: var(--al-graphite); font-size: 13px; font-weight: 750; text-align: left; overflow-wrap: anywhere; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-comments article > button { align-self: start; padding: 8px 4px; color: var(--al-error); }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-comments form { display: flex; flex-wrap: wrap; gap: 8px; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-comments form input { flex: 1 1 160px; min-width: 0; width: 0; font-size: 16px; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-comments form button { flex: 0 0 auto; padding: 8px 16px; background: var(--al-graphite); color: var(--al-paper); }

.qiulian-hub .qiulian-composer { margin: 0 0 16px; scroll-margin-top: 96px; border: 1px solid var(--al-line); border-radius: 8px; background: var(--al-paper); box-shadow: none; }
.qiulian-hub .qiulian-composer > summary { min-height: 64px; padding: 10px 16px; grid-template-columns: 40px minmax(0, 1fr) 28px; gap: 10px; border-radius: 8px; background: var(--al-paper); }
.qiulian-hub .qiulian-composer > summary > div { width: 40px; height: 40px; background: var(--al-ivory); }
.qiulian-hub .qiulian-composer > summary strong { margin: 0; font-size: 15px; }
.qiulian-hub .qiulian-composer > summary :is(small, span) { color: var(--al-ink-soft); font-size: 12px; line-height: 1.5; }
.qiulian-hub .qiulian-composer > summary > b { width: 28px; height: 28px; border-radius: 4px; color: var(--al-graphite); background: var(--al-ivory); }
.qiulian-hub #qiulianPostForm { gap: 14px; padding: 16px; }
.qiulian-hub .qiulian-kind-tabs { display: flex; flex-wrap: wrap; gap: 4px; padding: 0; background: transparent; }
.qiulian-hub .qiulian-kind-tabs button { flex: 1 1 80px; min-height: 44px; padding: 8px; border-radius: 5px; color: var(--al-ink-soft); font-size: 13px; box-shadow: none; }
.qiulian-hub .qiulian-kind-tabs button.is-active { color: var(--al-graphite); background: var(--al-ivory); }
.qiulian-hub .qiulian-caption-field textarea { min-height: 108px; border-radius: 7px; padding: 12px; font-size: 16px; line-height: 1.65; }
.qiulian-hub :is(.qiulian-report-picker, .qiulian-caption-field, .qiulian-composer-footer label) > span { color: var(--al-ink-soft); font-size: 12px; line-height: 1.5; }
.qiulian-hub :is(.qiulian-report-picker select, .qiulian-composer-footer select) { min-width: 0; font-size: 16px; border-radius: 7px; }
.qiulian-hub .qiulian-photo-picker:not(.has-photo) { display: flex; flex-wrap: wrap; justify-content: flex-start; min-height: 88px; padding: 12px; gap: 12px; border-radius: 7px; background: var(--al-ivory); }
.qiulian-hub .qiulian-photo-picker:not(.has-photo) > span { width: 32px; height: 32px; border-radius: 4px; background: transparent; color: var(--al-graphite); font-size: 24px; }
.qiulian-hub .qiulian-photo-picker:not(.has-photo) > div { flex: 1 1 160px; text-align: left; }
.qiulian-hub .qiulian-photo-picker button { min-height: 44px; }
.qiulian-hub .qiulian-photo-picker small { color: var(--al-ink-soft); font-size: 12px; line-height: 1.5; }
.qiulian-hub .qiulian-caption-prompts { flex-wrap: wrap; overflow: visible; }
.qiulian-hub .qiulian-caption-prompts button { min-height: 44px; padding: 8px 10px; white-space: normal; color: var(--al-ink-soft); background: transparent; border-color: var(--al-line); font-size: 12px; }
.qiulian-hub .qiulian-composer-footer { gap: 12px; }
.qiulian-hub .qiulian-composer-footer button { min-height: 44px; background: var(--al-graphite); color: var(--al-paper); border-radius: 7px; font-size: 14px; }
.qiulian-hub :is(.qiulian-privacy-hint, .qiulian-form-message) { margin: 0; color: var(--al-ink-soft); font-size: 12px; line-height: 1.7; }
.qiulian-hub .qiulian-attachment-picker { min-width: 0; display: grid; gap: 8px; margin: 0; padding: 12px 0 0; border: 0; border-top: 1px solid var(--al-line); }
.qiulian-hub .qiulian-attachment-picker label:has(input[type="checkbox"]) { display: flex; align-items: center; gap: 8px; min-height: 44px; font-size: 13px; }
.qiulian-hub .qiulian-attachment-picker input[type="checkbox"] { flex: 0 0 18px; width: 18px; min-width: 18px; height: 18px; margin: 0; accent-color: var(--al-graphite); }
.qiulian-hub .qiulian-attachment-picker select { width: 100%; min-width: 0; padding: 8px 10px; border: 1px solid var(--al-ink-soft); border-radius: 7px; font-size: 16px; }
.qiulian-hub .qiulian-attachment-picker small,
.qiulian-hub .qiulian-audience-note { margin: 0; color: var(--al-ink-soft); font-size: 12px; line-height: 1.7; }
.qiulian-hub .qiulian-audience-note { padding: 10px 12px; border-left: 2px solid var(--al-gold); background: var(--al-ivory); }
.qiulian-hub .qiulian-attachment-picker label > span { min-width: 0; }
.qiulian-hub .qiulian-attachment-picker label > span > small { display: block; }
.qiulian-hub .qiulian-feed-context { margin: 0; padding: 14px 20px; color: var(--al-ink-soft); font-size: 13px; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-moderation-note { margin: 0 20px 14px; padding: 10px 12px; border-left: 2px solid var(--al-warning); background: var(--al-warning-tint); color: var(--al-warning); font-size: 13px; line-height: 1.65; }

.qiulian-hub .qiulian-sidebar { display: grid; gap: 24px; padding-left: 24px; border-left: 1px solid var(--al-line); }
.qiulian-hub .qiulian-sidebar > section { min-width: 0; padding: 0 0 20px; border: 0; border-bottom: 1px solid var(--al-line); border-radius: 0; background: transparent; box-shadow: none; }
.qiulian-hub .qiulian-sidebar section > header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 12px; }
.qiulian-hub .qiulian-sidebar :is(h3, h4, p) { margin: 0; }
.qiulian-hub .qiulian-sidebar :is(h3, h4, header > strong) { color: var(--al-graphite); font-size: 15px; line-height: 1.5; }
.qiulian-hub .qiulian-sidebar :is(p, small) { color: var(--al-ink-soft); font-size: 12px; line-height: 1.7; overflow-wrap: anywhere; }
.qiulian-hub .qiulian-sidebar button { white-space: normal; }
.qiulian-hub .qiulian-sidebar header > button { padding: 8px 0; border: 0; background: transparent; color: var(--al-graphite); font-size: 12px; }
.qiulian-hub .qiulian-person-suggestion { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 12px 0; border-bottom: 1px solid var(--al-line); }
.qiulian-hub .qiulian-person-suggestion:last-child { border-bottom: 0; }
.qiulian-hub .qiulian-person-suggestion .qiulian-person-link { min-width: 0; font-size: 13px; }
.qiulian-hub .qiulian-person-suggestion .qiulian-person-link > div { flex: 0 0 36px; width: 36px; height: 44px; overflow: hidden; border-radius: 5px; }
.qiulian-hub .qiulian-person-suggestion .qiulian-person-link > span { min-width: 0; }
.qiulian-hub .qiulian-person-suggestion .qiulian-person-link :is(strong, small) { display: block; overflow-wrap: anywhere; }
.qiulian-hub .qiulian-person-suggestion .qiulian-person-link > .player-avatar-art { flex: 0 0 36px; width: 36px; height: 44px; }
.qiulian-hub .qiulian-person-suggestion > button:last-child { padding: 8px 4px; border: 0; border-radius: 4px; background: transparent; color: var(--al-graphite); font-size: 12px; font-weight: 650; }
#communityContent button[data-community-follow] {
  min-width: 44px;
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid var(--al-graphite);
  border-radius: 6px;
  background: var(--al-graphite);
  color: var(--al-paper);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
  white-space: normal;
  touch-action: manipulation;
}
#communityContent button[data-community-follow]:is([aria-pressed="true"], .is-following) {
  border-color: var(--al-ink-soft);
  background: transparent;
  color: var(--al-graphite);
}
#communityContent button[data-community-follow]:focus-visible { outline: 3px solid var(--al-graphite); outline-offset: 3px; }
/* Search and relation cards are direct destinations from the feed search. */
#communityContent .app-detail-back { min-width: 44px; min-height: 44px; }
#communityContent .community-search-clear { width: 44px; min-width: 44px; height: 44px; min-height: 44px; }
#communityContent .community-search-panel input { padding-right: 56px; }
#communityContent .community-player-menu > summary { width: 44px; min-width: 44px; height: 44px; min-height: 44px; }
#communityContent .community-player-identity { padding-right: 40px; }
#communityContent .community-player-card [data-copy-player-id] { display: inline-flex; align-items: center; justify-content: flex-start; width: fit-content; max-width: 100%; min-width: 44px; min-height: 44px; padding: 6px 8px; }
#communityContent .community-player-actions button,
#communityContent .community-signal-menu > summary,
#communityContent .community-player-menu button { min-width: 44px; min-height: 44px; }
#communityContent :is(.community-search-panel, .community-player-card) :is(button, summary, input):focus-visible { outline: 3px solid var(--al-graphite); outline-offset: 3px; }
.qiulian-hub .qiulian-sidebar .community-player-grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
.qiulian-hub .qiulian-sidebar .community-player-card { min-width: 0; display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 10px; padding: 12px 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.qiulian-hub .qiulian-sidebar .community-player-avatar { width: 40px; height: 48px; }
.qiulian-hub .qiulian-sidebar .community-player-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.qiulian-hub .qiulian-sidebar .community-player-actions button { flex: 1 1 88px; min-height: 44px; font-size: 12px; }
.qiulian-hub .qiulian-life-empty { display: block; padding: 28px 20px; border: 0; border-radius: 0; background: var(--al-paper); box-shadow: none; }
.qiulian-hub .qiulian-life-empty strong { font-size: 21px; line-height: 1.45; }
.qiulian-hub .qiulian-life-empty p { margin-top: 10px; color: var(--al-ink-soft); font-size: 14px; line-height: 1.75; }
.qiulian-hub .qiulian-life-empty-art { display: none; }
.qiulian-hub .qiulian-context-empty { padding: 28px 20px; background: var(--al-paper); color: var(--al-graphite); border-bottom: 1px solid var(--al-line); }
.qiulian-hub .qiulian-context-empty :is(h3, strong) { display: block; margin: 0; font-size: 20px; line-height: 1.5; }
.qiulian-hub .qiulian-context-empty p { margin: 10px 0 16px; color: var(--al-ink-soft); font-size: 14px; line-height: 1.75; }
.qiulian-hub .qiulian-context-empty button { max-width: 100%; padding: 10px 14px; border: 1px solid var(--al-ink-soft); border-radius: 6px; background: transparent; color: var(--al-graphite); font-size: 13px; white-space: normal; }
.qiulian-hub .qiulian-load-more { display: block; width: 100%; margin-top: 12px; padding: 12px; border: 1px solid var(--al-line); border-radius: 6px; background: transparent; color: var(--al-graphite); }
.qiulian-feed-tail { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px 16px; padding: 16px 0 24px; color: #777970; font-size: 12px; }
.qiulian-feed-tail button { min-width: 44px; min-height: 44px; padding: 8px 12px; border: 0; background: transparent; color: #4c5551; font: inherit; text-decoration: underline; text-underline-offset: 4px; touch-action: manipulation; }
.qiulian-feed-tail button:disabled { opacity: .5; }
.qiulian-pull-status { position: fixed; z-index: 1200; left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: 10px; box-sizing: border-box; width: max-content; max-width: calc(100vw - 24px); padding: 8px 14px; border-radius: 24px; background: #f5f2e9; box-shadow: 0 2px 12px #252b2d18; color: #39423d; font-size: 13px; line-height: 1.5; pointer-events: none; }
.qiulian-pull-status button { min-width: 44px; min-height: 44px; border: 0; background: transparent; color: #39423d; font: inherit; text-decoration: underline; pointer-events: auto; touch-action: manipulation; }
.qiulian-pull-status[hidden], .qiulian-pull-status button[hidden] { display: none; }
.qiulian-pull-status { min-width: 44px; min-height: 44px; padding: 8px; opacity: var(--pull-opacity, 1); transform: translate(-50%, var(--pull-y, 12px)); transition: transform 180ms ease-out, opacity 180ms ease-out; }
#communityContent[data-pull-phase] { transform: translateY(var(--pull-shift, 0px)); transition: transform 180ms ease-out; }
#communityContent[data-pull-phase="pulling"] { transition: none; }
.qiulian-pull-status[data-phase="pulling"] { transition: none; }
.qiulian-pull-status[data-phase="leaving"] { opacity: 0; transform: translate(-50%, -8px); }
.qiulian-pull-icon { position: relative; display: block; flex: 0 0 24px; width: 24px; height: 24px; }
.qiulian-pull-ring { display: block; box-sizing: border-box; width: 24px; height: 24px; border: 2px solid currentColor; border-right-color: transparent; border-bottom-color: #39423d40; border-radius: 50%; transform: rotate(var(--pull-angle, 0deg)); }
.qiulian-pull-status[data-phase="loading"] .qiulian-pull-ring { animation: qiulian-refresh-spin 800ms linear infinite; }
.qiulian-pull-check { display: none; width: 24px; height: 24px; }
.qiulian-pull-status[data-phase="done"] .qiulian-pull-ring { display: none; }
.qiulian-pull-status[data-phase="done"] .qiulian-pull-check { display: block; }
.qiulian-pull-status[data-phase="leaving"][data-exit-from="done"] .qiulian-pull-ring { display: none; }
.qiulian-pull-status[data-phase="leaving"][data-exit-from="done"] .qiulian-pull-check { display: block; }
.qiulian-pull-status:not([data-phase="failed"]) .qiulian-pull-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.qiulian-pull-status[data-phase="failed"] { padding: 8px 14px; }
.qiulian-pull-status[data-phase="failed"] .qiulian-pull-icon { display: none; }
@keyframes qiulian-refresh-spin { from { transform: rotate(var(--pull-angle, 0deg)); } to { transform: rotate(calc(var(--pull-angle, 0deg) + 360deg)); } }
@media (prefers-reduced-motion: reduce) {
  .qiulian-pull-status { transition: none; }
  #communityContent[data-pull-phase] { transform: none; transition: none; }
  .qiulian-pull-status[data-phase="loading"] .qiulian-pull-ring { animation: none; }
  .qiulian-pull-status[data-phase="loading"] .qiulian-pull-label { position: static; width: auto; height: auto; overflow: visible; clip-path: none; white-space: normal; }
}
.qiulian-feed-tail button:focus-visible, .qiulian-pull-status button:focus-visible { outline: 2px solid #876323; outline-offset: 2px; }

.qiulian-person-sheet,
.qiulian-thread-sheet { box-sizing: border-box; width: 100%; min-width: 0; max-width: 100%; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--al-graphite); }
:is(.qiulian-person-sheet, .qiulian-thread-sheet) > header,
:is(.qiulian-person-sheet, .qiulian-thread-sheet) .qiulian-sheet-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 16px; border-bottom: 1px solid var(--al-line); }
:is(.qiulian-person-sheet, .qiulian-thread-sheet) :is(h2, h3) { margin: 0; color: var(--al-graphite); font-size: 20px; line-height: 1.4; }
:is(.qiulian-person-sheet, .qiulian-thread-sheet) > header button,
:is(.qiulian-person-sheet, .qiulian-thread-sheet) .qiulian-sheet-header button { flex: 0 0 auto; padding: 8px; border: 0; border-radius: 5px; background: var(--al-ivory); color: var(--al-graphite); }
.qiulian-thread-sheet .qiulian-post { border-bottom: 0; }
.qiulian-person-sheet .community-player-card { margin: 16px 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.qiulian-person-sheet .qiulian-person-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 20px 0; }
.qiulian-person-sheet .qiulian-person-facts > div { min-width: 0; padding: 12px 0; border-bottom: 1px solid var(--al-line); }
.qiulian-person-sheet .qiulian-person-facts dt { color: var(--al-ink-soft); font-size: 12px; line-height: 1.5; }
.qiulian-person-sheet .qiulian-person-facts dd { margin: 5px 0 0; color: var(--al-graphite); font-size: 14px; line-height: 1.65; overflow-wrap: anywhere; }
.qiulian-person-sheet .qiulian-person-actions { display: flex; flex-wrap: wrap; gap: 10px; padding: 12px 0; }
.qiulian-person-sheet .qiulian-person-actions button { flex: 1 1 120px; padding: 10px 14px; border: 1px solid var(--al-ink-soft); border-radius: 7px; background: var(--al-ivory); color: var(--al-graphite); font-size: 14px; white-space: normal; }
.qiulian-person-sheet > p { color: var(--al-ink-soft); font-size: 14px; line-height: 1.75; overflow-wrap: anywhere; }
.qiulian-person-sheet > header { justify-content: flex-start; }
.qiulian-person-sheet .qiulian-person-avatar { flex: 0 0 80px; width: 80px; height: 96px; overflow: hidden; border-radius: 8px; background: var(--al-ivory); }
.qiulian-person-sheet > header > div:last-child { min-width: 0; overflow-wrap: anywhere; }
.qiulian-person-sheet > header :is(small, p) { color: var(--al-ink-soft); font-size: 12px; line-height: 1.65; }
.qiulian-person-sheet .qiulian-person-more > summary { display: flex; align-items: center; color: var(--al-ink-soft); font-size: 13px; cursor: pointer; }
.qiulian-person-sheet .qiulian-person-more button { padding: 8px 12px; margin: 4px 8px 4px 0; border: 1px solid var(--al-ink-soft); border-radius: 5px; background: transparent; color: var(--al-error); font-size: 13px; }

/* Activity can appear outside the feed hub, but remains a QiuLian component. */
.qiulian-notifications:has(.qiulian-notification-row) { padding: 16px; border: 0; border-bottom: 1px solid var(--al-line); border-radius: 0; background: var(--al-paper); box-shadow: none; }
.qiulian-notifications:has(.qiulian-notification-row) > header button { min-height: 44px; padding: 8px; color: var(--al-graphite); font-size: 13px; }
.qiulian-notification-row { display: grid; grid-template-columns: 40px minmax(0, 1fr) 16px; align-items: center; gap: 12px; width: 100%; min-height: 64px; padding: 12px 8px; border: 0; border-bottom: 1px solid var(--al-line); border-radius: 0; background: transparent; color: var(--al-graphite); font: inherit; text-align: left; }
.qiulian-notification-row.is-unread { background: var(--al-ivory); }
.qiulian-notification-row:focus-visible { outline: 3px solid var(--al-graphite); outline-offset: 2px; }
.qiulian-notification-avatar { display: block; width: 40px; height: 48px; overflow: hidden; border-radius: 5px; }
.qiulian-notification-row > span:nth-child(2) { min-width: 0; }
.qiulian-notification-row :is(strong, em, small),
.qiulian-notification-row > span > span { display: block; margin: 0; white-space: normal; overflow-wrap: anywhere; font-size: 12px; line-height: 1.6; }
.qiulian-notification-row strong { color: var(--al-graphite); font-size: 14px; }
.qiulian-notification-row :is(em, small),
.qiulian-notification-row > span > span { color: var(--al-ink-soft); font-style: normal; }
.community-practice-card [data-qiulian-open-post] { min-width: 44px; min-height: 44px; padding: 10px 12px; color: var(--al-graphite); background: var(--al-ivory); }
.messages-plans-link { margin: 0 0 16px; padding: 0 16px; }
.messages-plans-link button,
.community-plans-messages-link a[data-app-nav="messages"] { display: inline-flex; align-items: center; justify-content: center; gap: 8px; max-width: 100%; min-width: 44px; min-height: 44px; padding: 10px 14px; border: 1px solid var(--al-ink-soft); border-radius: 6px; background: transparent; color: var(--al-graphite); font-size: 13px; line-height: 1.5; text-align: center; white-space: normal; text-decoration: none; touch-action: manipulation; }
.community-plans-messages-link { margin: 0 0 16px; color: var(--al-ink-soft); font-size: 13px; line-height: 1.65; }
.messages-plans-link button:focus-visible,
.community-plans-messages-link a[data-app-nav="messages"]:focus-visible { outline: 3px solid var(--al-graphite); outline-offset: 3px; }
#messagesContent :is(button, a, summary),
#communityContent .community-practice-board :is(button, a, summary) { min-width: 44px; min-height: 44px; touch-action: manipulation; }
#messagesContent a,
#communityContent .community-practice-board a { display: inline-flex; align-items: center; }
#messagesContent :is(button, a, summary):focus-visible,
#communityContent .community-practice-board :is(button, a, summary):focus-visible { outline: 3px solid var(--al-graphite); outline-offset: 3px; }

/* Media entry stays visible while the optional full composer is collapsed. */
.qiulian-hub .qiulian-compose-entry { min-width: 0; margin-bottom: 16px; }
.qiulian-hub .qiulian-compose-entry .qiulian-composer { margin-bottom: 0; }
.qiulian-hub .qiulian-compose-shortcuts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  margin-top: 8px;
}
.qiulian-hub .qiulian-compose-shortcuts button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-width: 0;
  min-height: 48px;
  padding: 10px 8px;
  border: 1px solid var(--al-ink-soft);
  border-radius: 6px;
  background: var(--al-paper);
  color: var(--al-graphite);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  white-space: normal;
  overflow-wrap: anywhere;
}
.qiulian-hub .qiulian-compose-shortcuts button:hover { background: var(--al-ivory); }
.qiulian-hub .qiulian-compose-shortcuts[hidden] { display: none; }
.qiulian-hub .qiulian-compose-shortcuts button > svg { flex: 0 0 18px; width: 18px; height: 18px; }
.qiulian-hub .qiulian-video-picker {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  min-width: 0;
  min-height: 100px;
  padding: 12px;
  border: 1px dashed var(--al-ink-soft);
  border-radius: 7px;
  background: var(--al-ivory);
  color: var(--al-graphite);
}
.qiulian-hub .qiulian-video-picker > div { flex: 1 1 160px; min-width: 0; }
.qiulian-hub .qiulian-video-picker > span { color: var(--al-graphite); font-size: 28px; }
.qiulian-hub .qiulian-video-picker :is(strong, small) { display: block; overflow-wrap: anywhere; }
.qiulian-hub .qiulian-video-picker strong { font-size: 14px; line-height: 1.5; }
.qiulian-hub .qiulian-video-picker small { margin-top: 4px; color: var(--al-ink-soft); font-size: 12px; line-height: 1.65; }
.qiulian-hub .qiulian-video-picker button { max-width: 100%; min-height: 44px; margin: 0 6px 6px 0; padding: 10px 12px; border: 1px solid var(--al-graphite); border-radius: 6px; color: var(--al-paper); background: var(--al-graphite); font-size: 13px; white-space: normal; }
.qiulian-hub .qiulian-video-picker button[data-qiulian-video-remove] { background: transparent; color: var(--al-graphite); }
.qiulian-hub .qiulian-media-note { margin: 0; color: var(--al-ink-soft); font-size: 12px; line-height: 1.7; }
.qiulian-hub .qiulian-video-preview {
  display: block;
  flex: 1 0 100%;
  width: 100%;
  min-width: 0;
  max-height: 440px;
  border-radius: 4px;
  background: var(--al-graphite);
  object-fit: contain;
}
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-post-video-frame { min-width: 0; margin: 0; background: var(--al-graphite); }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-post-video {
  display: block;
  width: 100%;
  height: auto;
  min-width: 0;
  max-height: 720px;
  background: var(--al-graphite);
  object-fit: contain;
}
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-video-fallback { padding: 16px; color: var(--al-graphite); background: var(--al-ivory); }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-video-fallback[hidden] { display: none; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-video-fallback p { margin: 0 0 10px; font-size: 13px; line-height: 1.65; }
:is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-video-fallback button { min-height: 44px; padding: 10px 12px; border: 1px solid var(--al-graphite); border-radius: 6px; color: var(--al-paper); background: var(--al-graphite); font-size: 13px; }
#socialImageModerationList .social-image-moderation-card > video { display: block; width: 100%; max-height: 320px; object-fit: contain; background: var(--al-graphite); }
#socialImageModerationList .social-video-review-confirm { display: flex; align-items: flex-start; gap: 8px; min-height: 44px; padding: 10px 0; color: var(--al-graphite); font-size: 13px; line-height: 1.65; }
#socialImageModerationList .social-video-review-confirm input { flex: 0 0 auto; margin-top: 4px; accent-color: var(--al-graphite); }
#socialImageModerationList .social-video-review-confirm span { min-width: 0; color: inherit; font-size: inherit; overflow-wrap: anywhere; }
#socialImageModerationList .social-video-review-confirm input:focus-visible { outline: 3px solid var(--al-graphite); outline-offset: 3px; }

@media (max-width: 920px) {
  .qiulian-hub .qiulian-layout { grid-template-columns: minmax(0, 680px); gap: 28px; }
  .qiulian-hub .qiulian-sidebar { padding: 20px 0 0; border-left: 0; border-top: 1px solid var(--al-line); grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
}

@media (max-width: 640px) {
  .qiulian-home-screen:has(.qiulian-hub),
  .qiulian-home-screen.qiulian-hub { width: calc(100% - 32px); margin: 8px auto 28px; }
  .qiulian-hub > header,
  .qiulian-hub .qiulian-hub-header { padding-bottom: 16px; gap: 12px; }
  .qiulian-hub > header :is(h2, h3),
  .qiulian-hub .qiulian-hub-header :is(h2, h3) { font-size: 25px; }
  .qiulian-hub > header p,
  .qiulian-hub .qiulian-hub-header p { font-size: 13px; }
  .qiulian-hub .qiulian-stream-header nav { width: 100%; gap: 6px; }
  .qiulian-hub .qiulian-stream-header nav button { flex: 1 1 72px; min-width: 0; padding: 10px 8px; font-size: 12px; }
  .qiulian-hub .qiulian-feed-tabs button { padding: 12px 3px; font-size: 13px; }
  .qiulian-hub .qiulian-feed-navigation { gap: 4px; }
  .qiulian-hub .qiulian-feed-navigation .qiulian-feed-tabs button { padding-right: 2px; padding-left: 2px; font-size: 12px; letter-spacing: -.01em; overflow-wrap: normal; }
  .qiulian-hub .qiulian-sidebar { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  :is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-post { padding: 16px 0; }
  :is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-post > header { padding-right: 12px; padding-left: 12px; gap: 8px; }
  :is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-post-caption { padding-right: 12px; padding-left: 12px; font-size: 15px; }
  :is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-post-actions { padding-right: 8px; padding-left: 8px; gap: 4px 8px; }
  :is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-report-tips { padding-right: 12px; padding-left: 12px; }
  :is(.qiulian-hub, .qiulian-thread-sheet) .qiulian-comments { margin-right: 12px; margin-left: 12px; }
  .qiulian-hub .qiulian-composer > summary { padding-right: 12px; padding-left: 12px; }
  .qiulian-hub #qiulianPostForm { padding: 12px; }
  .qiulian-person-sheet .qiulian-person-facts { gap: 12px; }
}
/* Search and private saved posts reuse the existing QiuLian feed. */
#communityContent .qiulian-feed-toolbar { flex-wrap: wrap; gap: 6px 12px; }
#communityContent .qiulian-post-search-entry {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  min-width: 44px; min-height: 44px; padding: 8px 4px; margin-left: auto;
  border: 0; background: transparent; color: var(--al-graphite); font-size: 13px; font-weight: 650;
}
#communityContent .qiulian-post-search-entry svg,
#communityContent .qiulian-bookmark svg { flex: 0 0 18px; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.6; }
#communityContent .qiulian-post-actions .qiulian-bookmark { display: inline-flex; align-items: center; gap: 5px; min-width: 44px; }
#communityContent .qiulian-post-actions .qiulian-bookmark[aria-pressed="true"] { color: #876323; }
#communityContent .qiulian-bookmark[aria-pressed="true"] svg { fill: #f0e4cc; }
#communityContent .qiulian-private-feed { max-width: 680px; margin-right: auto; margin-left: auto; }
#communityContent .qiulian-library-heading { display: block; margin-top: 12px; padding-bottom: 12px; }
#communityContent .qiulian-library-heading p { max-width: 56ch; margin-top: 8px; line-height: 1.65; }
#communityContent #qiulianPostSearchForm { display: grid; gap: 8px; margin: 18px 0 22px; padding: 0; background: transparent; border: 0; }
#communityContent #qiulianPostSearchForm label { font-size: 13px; color: var(--al-graphite); font-weight: 650; }
#communityContent #qiulianPostSearchForm > div { display: flex; align-items: stretch; gap: 8px; min-width: 0; }
#communityContent #qiulianPostSearchForm input { min-width: 0; width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid var(--al-line); border-radius: 8px; background: var(--al-ivory); color: var(--al-graphite); }
#communityContent #qiulianPostSearchForm button { flex: 0 0 auto; min-width: 64px; min-height: 44px; margin: 0; padding: 10px 14px; border: 1px solid #876323; border-radius: 8px; background: #876323; color: #fffdf7; font-size: 14px; }
#communityContent .qiulian-library-privacy { margin: 20px 0 0; color: var(--al-muted); font-size: 12px; line-height: 1.7; }
#communityContent .qiulian-private-feed [data-qiulian-feed-retry] { min-width: 44px; min-height: 44px; margin: 4px; }
#communityContent :is(.qiulian-bookmark, .qiulian-post-search-entry, #qiulianPostSearchForm input, #qiulianPostSearchForm button):focus-visible { outline: 2px solid #876323; outline-offset: 3px; }
@media (max-width: 390px) {
  #communityContent .qiulian-feed-toolbar > .qiulian-feed-label { display: none; }
  #communityContent .qiulian-post-search-entry { margin-left: 0; }
  #communityContent .qiulian-feed-toolbar > .qiulian-topic-filter { margin-left: auto; }
  #communityContent #qiulianPostSearchForm button { min-width: 60px; padding-right: 10px; padding-left: 10px; }
}
/* Private, participant-reported practice follow-up. */
:is(#communityContent, #messagesContent) .practice-completion { margin: 12px 0 4px; padding: 12px; border: 1px solid var(--al-line); border-radius: 10px; background: var(--al-ivory); color: var(--al-graphite); }
:is(#communityContent, #messagesContent) .practice-completion > strong { font-size: 14px; line-height: 1.6; }
:is(#communityContent, #messagesContent) .practice-completion > p { display: block; margin: 6px 0; line-height: 1.7; font-size: 13px; overflow-wrap: anywhere; }
:is(#communityContent, #messagesContent) .practice-completion > small { display: block; margin-top: 8px; color: var(--al-muted); font-size: 12px; line-height: 1.6; }
:is(#communityContent, #messagesContent) :is(.practice-completion-actions, .practice-followup-actions) { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
:is(#communityContent, #messagesContent) :is(.practice-completion-actions, .practice-followup-actions) button,
:is(#communityContent, #messagesContent) [data-practice-retry] { min-width: 44px; min-height: 44px; max-width: 100%; padding: 9px 12px; border: 1px solid var(--al-line); border-radius: 8px; background: transparent; color: var(--al-graphite); font-size: 13px; line-height: 1.5; white-space: normal; }
:is(#communityContent, #messagesContent) .practice-completion-actions button[aria-pressed="true"] { border-color: #876323; background: #f0e4cc; color: #674916; }
:is(#communityContent, #messagesContent) :is([data-practice-again], [data-practice-retry]) { color: #876323; }
:is(#communityContent, #messagesContent) .practice-private-notice { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; color: var(--al-muted); font-size: 13px; line-height: 1.7; }
#communityPracticeForm [data-practice-timezone] { grid-column: 1 / -1; margin: 0; color: var(--al-muted); font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }
#communityPracticeForm :is(input, select, textarea) { min-width: 0; max-width: 100%; min-height: 44px; }
:is(#communityContent, #messagesContent) .practice-followup-actions:empty { display: none; }
:is(#communityContent, #messagesContent) [data-practice-feedback]:focus-visible,
:is(#communityContent, #messagesContent) [data-practice-cancel]:focus-visible,
:is(#communityContent, #messagesContent) [data-practice-again]:focus-visible { outline: 2px solid #876323; outline-offset: 3px; }
/* Lightweight, self-reported racket records; separate from avatar inventory. */
:is(.player-bag, .player-public-bag, .qiulian-bag-attachment) { color: var(--al-graphite); }
.player-bag { width: 100%; max-width: 680px; margin: 0 auto; min-width: 0; }
body.is-profile-detail-bag,
body.is-profile-detail-bag :is(main, .my-space, .player-profile, #profileSummary, #profileSecondary) { background: #fffdf8; background-image: none; }
body.is-profile-detail-bag { min-height: 100vh; min-height: 100dvh; }
body.is-profile-detail-bag #profileSummary,
body.is-profile-detail-bag #profileSecondary { width: 100%; max-width: 728px; margin-left: auto; margin-right: auto; padding-left: 24px; padding-right: 24px; box-sizing: border-box; }
body.is-profile-detail-bag #profileSecondary > .player-bag { border: 0; border-radius: 0; background: transparent; box-shadow: none; padding: 0 0 32px; }
body.is-profile-detail-bag .profile-detail-header { padding: 0 0 12px; margin-bottom: 0; border-bottom: 0; }
body.is-profile-detail-bag .my-space-title { display: none !important; }
body.is-profile-detail-bag .player-bag > p { margin: 10px 0; }
:is(.player-bag-privacy, .player-bag form small, .player-bag-form-heading > p, .player-bag-public-notice, .player-bag-capacity, .qiulian-bag-picker > small) { display: block; color: #646963; font-size: 12px; font-weight: 400; line-height: 1.65; overflow-wrap: anywhere; }
.player-bag-intro { display: flex; align-items: center; justify-content: space-between; gap: 8px 16px; min-height: 44px; padding: 0 0 6px; }
.player-bag .player-bag-privacy { display: flex; align-items: center; gap: 7px; margin: 0; min-width: 0; }
.player-bag-privacy svg { display: block; width: 16px; height: 16px; flex: 0 0 16px; stroke: currentColor; stroke-width: 1.3; }
.player-bag-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.player-bag-record { margin: 0; padding: 18px 0 16px; border: 0; border-bottom: 1px solid var(--al-line); border-radius: 0; background: transparent; box-shadow: none; min-width: 0; overflow-wrap: anywhere; }
.player-bag-record > header { display: grid; grid-template-columns: 92px minmax(0, 1fr); align-items: center; gap: 22px; margin: 0; padding: 0; border: 0; background: transparent; }
.player-bag-racket-sleeve { display: flex; align-items: center; justify-content: center; width: 92px; height: 124px; border-radius: 18px; background: linear-gradient(150deg, #f3eee3, #faf8f1); }
.player-bag-racket-mark { display: block; width: 68px; height: 108px; flex: 0 0 auto; color: #515955; }
.player-bag-record-title { display: grid; min-width: 0; gap: 8px; }
.player-bag-record .player-bag-record-title > strong { color: var(--al-graphite); font-size: 24px; line-height: 1.35; letter-spacing: -.035em; font-weight: 600; }
.player-bag-record .player-bag-visibility, .player-bag-record > small { display: block; color: #646963; font-size: 12px; font-weight: 400; line-height: 1.6; }
.player-bag-record dl { margin: 18px 0 0; padding-top: 14px; border-top: 1px solid var(--al-line); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.player-bag-record dl > div { display: grid; align-content: start; gap: 3px; min-width: 0; font-size: 14px; line-height: 1.6; }
.player-bag-record dt { color: #646963; font-size: 11px; font-weight: 400; }
.player-bag-record dd { margin: 0; color: var(--al-graphite); font-weight: 500; }
.player-bag-note { margin: 18px 0 0; padding: 0; border: 0; }
.player-bag-note > small { display: block; color: #646963; font-size: 11px; font-weight: 400; line-height: 1.6; }
.player-bag-record .player-bag-impressions { margin: 4px 0 0; white-space: pre-wrap; color: var(--al-graphite); line-height: 1.75; font-size: 15px; font-weight: 400; }
.player-bag-actions { justify-content: flex-start; margin-top: 12px; }
:is(.player-bag, .qiulian-bag-attachment, .qiulian-bag-picker) button { min-width: 44px; min-height: 44px; max-width: 100%; padding: 10px 16px; border: 1px solid var(--al-line); border-radius: 7px; background: transparent; color: var(--al-graphite); font: inherit; font-size: 13px; font-weight: 550; line-height: 1.5; white-space: normal; overflow-wrap: anywhere; box-shadow: none; }
.player-bag :is([type="submit"], [data-bag-add]) { background: var(--al-graphite); border-color: var(--al-graphite); color: #fffdf8; }
.player-bag .player-bag-intro > [data-bag-add] { display: inline-flex; align-items: center; justify-content: center; gap: 5px; flex: 0 0 auto; padding: 8px 0 8px 10px; border-color: transparent; background: transparent; color: var(--al-graphite); }
.player-bag-intro > [data-bag-add] > span { font-size: 18px; line-height: 1; font-weight: 400; }
.player-bag [data-bag-edit] { border-color: transparent; padding-left: 0; padding-right: 12px; }
.player-bag [data-bag-delete] { margin-left: auto; padding-left: 10px; padding-right: 10px; border-color: transparent; color: #646963; font-weight: 400; }
.player-bag button:disabled { opacity: .5; cursor: not-allowed; }
.player-bag .player-bag-empty { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 24px 12px 44px; }
.player-bag-empty .player-bag-racket-mark { width: 80px; height: 120px; margin-bottom: 22px; }
.player-bag-empty > h3 { margin: 0; color: var(--al-graphite); font-size: 22px; font-weight: 600; letter-spacing: -.025em; line-height: 1.4; }
.player-bag-empty > p { max-width: 30ch; margin: 10px 0 24px; color: #646963; font-size: 13px; line-height: 1.8; }
.player-bag-empty > button { min-width: 128px; }
.player-bag .player-bag-status { padding: 30px 0; color: #646963; font-size: 14px; }
#playerBagForm { display: grid; gap: 20px; padding: 16px 0 4px; }
#playerBagForm :is(h3, p, small, label, fieldset) { margin: 0; }
#playerBagForm .player-bag-form-heading { display: grid; gap: 6px; padding: 0; border: 0; background: transparent; }
#playerBagForm .player-bag-form-heading > h3 { color: var(--al-graphite); font-size: 22px; font-weight: 600; line-height: 1.4; letter-spacing: -.02em; }
#playerBagForm label, .qiulian-bag-picker label { display: grid; gap: 8px; min-width: 0; font-size: 13px; font-weight: 500; line-height: 1.6; }
#playerBagForm :is(input:not([type="checkbox"]), select, textarea), .qiulian-bag-picker select { box-sizing: border-box; width: 100%; min-width: 0; min-height: 46px; max-width: 100%; border: 1px solid #d4d7cf; border-radius: 7px; padding: 10px 12px; background: #fffefa; color: var(--al-graphite); font: inherit; font-size: 16px; font-weight: 400; line-height: 1.5; box-shadow: none; }
#playerBagForm textarea { resize: vertical; }
#playerBagForm .player-bag-setup { display: grid; gap: 16px; min-width: 0; padding: 20px 0 0; border: 0; border-top: 1px solid var(--al-line); border-radius: 0; background: transparent; }
#playerBagForm .player-bag-setup > legend { float: left; width: 100%; margin: 0 0 2px; padding: 0; color: var(--al-graphite); font-size: 14px; font-weight: 600; line-height: 1.6; }
.player-bag-tension { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(118px, 1fr); gap: 12px; }
#playerBagForm .player-bag-sharing { display: grid; gap: 9px; padding-top: 20px; border-top: 1px solid var(--al-line); }
#playerBagForm .player-bag-public { display: flex; align-items: center; min-height: 44px; gap: 10px; }
#playerBagForm .player-bag-public input { width: 22px; height: 22px; flex: 0 0 22px; margin: 0; accent-color: var(--al-graphite); }
#playerBagForm .player-bag-public span { min-width: 0; }
#playerBagForm .player-bag-actions { margin-top: 2px; padding-top: 4px; }
#playerBagForm .player-bag-actions > [type="submit"] { min-width: 112px; }
.player-bag .player-bag-error { padding: 12px 14px; border: 1px solid #d9d2c6; border-radius: 7px; background: #f7f3eb; line-height: 1.7; font-size: 13px; color: var(--al-graphite); overflow-wrap: anywhere; }
.qiulian-bag-picker { display: grid; gap: 8px; margin: 14px 0; }
.qiulian-bag-attachment { margin: 12px 16px; }
.player-bag-record.is-projection { padding: 16px 0; }
.player-bag-record.is-projection > header { grid-template-columns: 28px minmax(0, 1fr); gap: 10px; }
.player-bag-record.is-projection .player-bag-racket-sleeve { width: 28px; height: 40px; border-radius: 0; background: transparent; }
.player-bag-record.is-projection .player-bag-racket-mark { width: 28px; height: 40px; }
.player-bag-record.is-projection .player-bag-record-title > strong { font-size: 16px; }
.player-bag-record.is-projection dl { margin-top: 12px; padding-top: 0; border-top: 0; gap: 12px; }
.player-bag-record.is-projection dd { font-size: 13px; }
.player-bag-record.is-projection .player-bag-note { margin-top: 14px; }
.player-bag-record.is-projection .player-bag-impressions { font-size: 14px; }
.player-bag-record.is-projection > small { margin-top: 14px; font-size: 11px; }
.qiulian-bag-attachment .player-bag-record { margin-bottom: 6px; border-bottom: 0; }
.player-public-bag { margin: 22px 0; }
@media (max-width: 600px) {
  body.is-profile-detail-bag #profileSummary,
  body.is-profile-detail-bag #profileSecondary { padding-left: 16px; padding-right: 16px; }
  .player-bag-record > header { grid-template-columns: 72px minmax(0, 1fr); gap: 16px; }
  .player-bag-racket-sleeve { width: 72px; height: 104px; border-radius: 14px; }
  .player-bag-racket-mark { width: 60px; height: 96px; }
  .player-bag-record dl { gap: 10px; }
  .player-bag-record .player-bag-record-title > strong { font-size: 21px; }
  .player-bag-record.is-projection dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .player-bag-record.is-projection .player-bag-record-title > strong { font-size: 16px; }
}
:is(.player-bag, .qiulian-bag-picker) :is(button, input, textarea, select):focus-visible { outline: 2px solid var(--al-graphite); outline-offset: 3px; }
/* End QiuLian social UI. */

/* v278 — prevent iOS Safari/WKWebView from zooming the whole page on form focus. */
@media (max-width: 760px) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),
  select,
  textarea {
    font-size: 16px !important;
  }
}
/* Official, source-led education. Kept within existing four-tab surfaces. */
.xiaoa-editor-avatar { display: block; width: 100%; height: 100%; object-fit: contain; background: #F7F2E8; }
.qiulian-person-link .xiaoa-editor-badge, .xiaoa-editor-badge { display: block; color: #59564d; font-size: 10px; line-height: 1.5; font-weight: 600; white-space: normal; }
.xiaoa-article { min-width: 0; color: #252B2D; }
.xiaoa-article-heading { padding: 14px 0 0; }
.xiaoa-article-heading > small, .xiaoa-learning-entry small, .xiaoa-learning-heading small { color: #686257; font-size: 10px; font-weight: 650; letter-spacing: .07em; }
.xiaoa-article-heading h3 { margin: 7px 0 10px; font-size: clamp(21px, 3vw, 30px); line-height: 1.3; letter-spacing: -.035em; overflow-wrap: anywhere; }
.xiaoa-article-heading p { margin: 0 0 18px; font-size: 14px; line-height: 1.8; color: #5a5e5c; }
.xiaoa-article-figure { margin: 0 0 18px; min-width: 0; }
.xiaoa-article-figure img { display: block; width: 100%; max-height: 420px; aspect-ratio: 16 / 10; object-fit: contain; background: #F7F2E8; border-radius: 10px; }
.xiaoa-article-figure figcaption { margin-top: 7px; color: #73746e; font-size: 11px; line-height: 1.6; }
.xiaoa-read-more { display: flex; width: 100%; min-height: 44px; justify-content: space-between; align-items: center; margin: 2px 0 16px; padding: 11px 15px; border: 1px solid #252B2D; border-radius: 7px; background: #252B2D; color: #fffdf8; text-align: left; font: inherit; font-size: 13px; }
.xiaoa-article-body { max-width: 66ch; margin: 28px auto; }
.xiaoa-article-body section + section { margin-top: 30px; }
.xiaoa-article-body h4 { margin: 0 0 12px; font-size: 18px; line-height: 1.5; letter-spacing: -.015em; }
.xiaoa-article-body p { margin: 0 0 14px; font-size: 15px; line-height: 1.95; color: #383e3c; overflow-wrap: anywhere; }
.xiaoa-article-sources { padding: 20px 0 8px; border-top: 1px solid #dedbd2; font-size: 11px; line-height: 1.8; color: #61665f; }
.xiaoa-article-sources strong { color: #252B2D; font-size: 13px; }
.xiaoa-article-sources p { margin: 7px 0; }
.xiaoa-article-sources ul { padding-left: 18px; margin: 8px 0; }
.xiaoa-article-sources a { color: #4d584e; text-decoration: underline; overflow-wrap: anywhere; }
.xiaoa-official-card { color: #252B2D; padding: 18px; background: #faf8f3; border: 1px solid #e3dfd6; border-radius: 12px; min-width: 0; }
.xiaoa-official-card > header { display: flex; gap: 14px; align-items: center; }
.xiaoa-official-card .qiulian-person-avatar { flex: 0 0 56px; width: 56px; height: 56px; overflow: hidden; border-radius: 12px; }
.xiaoa-official-card h3 { margin: 0 0 5px; font-size: 21px; }
.xiaoa-official-card > p { color: #60655e; font-size: 13px; line-height: 1.85; }
.xiaoa-official-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.xiaoa-official-actions button, .xiaoa-learning-hub > button, .xiaoa-preference button, .xiaoa-article-unavailable button, .xiaoa-learning-hub > a { min-height: 44px; padding: 10px 14px; border: 1px solid #d3d3cb; border-radius: 7px; background: #fffdf8; color: #252B2D; font: inherit; font-size: 12px; }
.xiaoa-official-actions button:first-child { color: #fffdf8; background: #252B2D; border-color: #252B2D; }
.xiaoa-learning-hub { grid-column: 1 / -1; width: 100%; min-width: 0; margin: 0 0 24px; padding: 0; color: #252B2D; }
.xiaoa-learning-hub .xiaoa-learning-entry { width: 100%; display: flex; gap: 14px; text-align: left; justify-content: space-between; align-items: center; min-height: 100px; padding: 18px 20px; background: #F7F2E8; border: 1px solid #e2d9c6; border-radius: 12px; box-shadow: none; }
.xiaoa-learning-entry > span { min-width: 0; display: grid; gap: 6px; }
.xiaoa-learning-entry strong { font-size: 17px; line-height: 1.4; letter-spacing: -.02em; }
.xiaoa-learning-entry em { font-size: 11px; line-height: 1.6; font-style: normal; color: #64665f; }
.xiaoa-learning-entry > b { font-size: 21px; font-weight: 400; }
.xiaoa-learning-heading { display: flex; gap: 16px; align-items: flex-start; justify-content: space-between; padding: 18px 0; }
.xiaoa-learning-heading > div { min-width: 0; }
.xiaoa-learning-heading h2 { margin: 6px 0 10px; font-size: clamp(23px, 3vw, 32px); letter-spacing: -.04em; }
.xiaoa-learning-heading p { font-size: 13px; line-height: 1.8; color: #64665f; margin: 0; }
.xiaoa-learning-heading > button { flex: 0 0 auto; min-height: 44px; padding: 8px 12px; border: 1px solid #d4d5cd; border-radius: 7px; background: transparent; color: #252B2D; font-size: 12px; }
.xiaoa-preference { padding: 16px; margin: 8px 0 20px; background: #F7F2E8; border: 1px solid #e2d9c6; border-radius: 10px; }
.xiaoa-preference strong { font-size: 14px; }
.xiaoa-preference p { font-size: 12px; line-height: 1.8; margin: 6px 0 12px; color: #5c625b; }
.xiaoa-stage-options { display: flex; flex-wrap: wrap; gap: 8px; }
.xiaoa-stage-options button[aria-pressed="true"] { color: #fffdf8; background: #252B2D; border-color: #252B2D; }
.xiaoa-stage-options button:disabled { opacity: .55; cursor: wait; }
.xiaoa-learning-list { display: grid; gap: 0; }
.xiaoa-learning-row { min-width: 0; border-bottom: 1px solid #e2e2d9; }
.xiaoa-learning-row > button { width: 100%; min-height: 96px; padding: 20px 2px; border: 0; border-radius: 0; background: transparent; color: #252B2D; display: flex; text-align: left; align-items: center; justify-content: space-between; gap: 15px; }
.xiaoa-learning-row > button > span { min-width: 0; display: grid; gap: 7px; }
.xiaoa-learning-row small { color: #797c73; font-size: 10px; }
.xiaoa-learning-row strong { font-size: 17px; line-height: 1.5; letter-spacing: -.02em; overflow-wrap: anywhere; }
.xiaoa-learning-row p { font-size: 12px; line-height: 1.8; color: #62685f; margin: 0; }
.xiaoa-learning-empty, .xiaoa-readonly-note, .xiaoa-article-unavailable { color: #64695f; font-size: 13px; line-height: 1.8; padding: 18px 0; }
@media (max-width: 480px) {
  .xiaoa-learning-hub .xiaoa-learning-entry { padding: 15px; }
  .xiaoa-stage-options { display: grid; grid-template-columns: 1fr; }
  .xiaoa-stage-options button { width: 100%; text-align: left; }
  .qiulian-person-link .xiaoa-editor-badge { font-size: 9px; }
  .xiaoa-article-body p { font-size: 14px; }
}
/* Racket discovery: sourced, explainable options inside the existing training and gear surfaces. */
.racket-discovery-hub { grid-column: 1 / -1; margin: 18px 0 24px; color: #252b2d; scroll-margin-top: 88px; min-width: 0; }
.racket-discovery-hub *, .racket-entry * { box-sizing: border-box; }
.racket-entry { display: flex; align-items: center; justify-content: space-between; gap: 20px; width: 100%; padding: 24px 26px; border: 1px solid #ded3bc; border-radius: 18px; background: #f7f2e8; color: #252b2d; text-align: left; cursor: pointer; }
.racket-entry small, .racket-heading small { display: block; color: #68583b; font-size: 11px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.racket-entry strong { display: block; margin-top: 8px; font-size: clamp(20px, 3vw, 26px); font-weight: 650; letter-spacing: -.035em; line-height: 1.25; }
.racket-entry em { display: block; margin-top: 9px; color: #5e625f; font-size: 13px; font-style: normal; line-height: 1.6; }
.racket-entry b { color: #68583b; font-weight: 400; font-size: 27px; flex: none; }
.racket-entry.is-compact { border-radius: 12px; padding: 15px 18px; margin: 10px 0 18px; gap: 14px; }
.racket-entry.is-compact strong { font-size: 17px; margin-top: 5px; }
.racket-entry:focus-visible, .racket-discovery-hub button:focus-visible, .racket-discovery-hub a:focus-visible, .racket-discovery-hub summary:focus-visible, .racket-discovery-hub select:focus-visible, .racket-discovery-hub input:focus-visible { outline: 3px solid #936c2d; outline-offset: 3px; }
.racket-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; padding: 27px 25px 24px; border: 1px solid #ded3bc; border-radius: 18px 18px 0 0; background: #f7f2e8; }
.racket-heading h2 { font-size: clamp(25px, 3.2vw, 34px); font-weight: 600; letter-spacing: -.055em; line-height: 1.22; margin: 12px 0; }
.racket-heading p { color: #5e625f; font-size: 13px; line-height: 1.7; margin: 0; max-width: 62ch; }
.racket-discovery-hub button, .racket-discovery-hub select, .racket-discovery-hub input { font: inherit; font-size: 13px; color: #252b2d; }
.racket-discovery-hub button { min-height: 44px; padding: 10px 14px; border: 1px solid #c9cac5; border-radius: 9px; background: #fffefa; line-height: 1.4; white-space: normal; cursor: pointer; }
.racket-discovery-hub button:hover:not(:disabled) { background: #f1eee7; border-color: #90938c; }
.racket-discovery-hub button:disabled { cursor: wait; opacity: .52; }
.racket-discovery-hub button[aria-pressed=true] { border-color: #252b2d; background: #ecece7; }
.racket-discovery-hub .racket-primary { background: #252b2d; color: #fffdf8; border-color: #252b2d; font-weight: 600; }
.racket-discovery-hub .racket-primary:hover:not(:disabled) { background: #3a4142; border-color: #3a4142; }
.racket-heading > button { flex: none; padding: 8px 11px; background: transparent; border-color: #c7bfae; }
.racket-intro { display: grid; grid-template-columns: auto 1fr; gap: 24px; padding: 32px 25px; background: #fffefa; border: 1px solid #dfdfd7; border-top: 0; }
.racket-intro-number { font: 300 62px/1 Georgia, serif; color: #ac8c53; }
.racket-intro h3 { margin: 0 0 12px; font-size: 23px; font-weight: 550; letter-spacing: -.03em; }
.racket-intro p { color: #62665f; margin: 0 0 23px; font-size: 14px; line-height: 1.8; max-width: 64ch; }
.racket-finder { background: #fffefa; border: 1px solid #dfdfd7; border-top: 0; padding: 25px; }
.racket-form-intro h3 { font-size: 20px; margin: 0 0 8px; font-weight: 600; }
.racket-form-intro p, .racket-field-note { color: #62665f; font-size: 12px; line-height: 1.7; margin: 0; }
.racket-finder fieldset { min-width: 0; border: 0; border-top: 1px solid #e5e3dc; margin: 28px 0 0; padding: 18px 0 0; }
.racket-finder legend { font-size: 13px; font-weight: 650; padding: 0 12px 0 0; }
.racket-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.racket-finder label, .racket-search label { display: grid; gap: 9px; font-size: 12px; color: #555c58; }
.racket-finder select, .racket-finder input, .racket-search input { width: 100%; min-width: 0; min-height: 46px; padding: 11px 12px; border: 1px solid #c9cac5; border-radius: 8px; background: #fff; }
.racket-field-note { margin-top: 12px; }
.racket-form-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.racket-finder > .racket-form-actions { margin-top: 26px; }
.racket-view-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; padding: 18px 0; }
.racket-view-actions label { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin-left: auto; font-size: 11px; color: #62665f; }
.racket-view-actions select { min-height: 44px; border: 1px solid #c9cac5; border-radius: 8px; padding: 8px; background: #fffefa; }
.racket-search { margin: 0 0 22px; }
.racket-search > div { display: flex; gap: 9px; margin-top: 8px; }
.racket-search button { flex: none; }
.racket-result-caption { font-size: 12px; line-height: 1.7; color: #62665f; margin: 3px 0 18px; }
.racket-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 16px; align-items: start; }
.racket-card { min-width: 0; background: #fffefa; border: 1px solid #dedfd7; border-radius: 15px; overflow: hidden; }
.racket-card > header { padding: 23px 22px 0; }
.racket-card header small { display: block; font-size: 10px; line-height: 1.65; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; color: #63685f; overflow-wrap: anywhere; }
.racket-card h3 { font-size: 25px; font-weight: 550; letter-spacing: -.04em; line-height: 1.16; margin: 9px 0 16px; overflow-wrap: anywhere; }
.racket-image-pending { display: block; color: #737568; font-size: 10px; padding: 9px 0; border-top: 1px dashed #d5d5ca; border-bottom: 1px dashed #d5d5ca; line-height: 1.5; }
.racket-card-summary { font-size: 14px; line-height: 1.75; padding: 17px 22px; margin: 0; color: #363e3c; }
.racket-explanation { padding: 0 22px 7px; }
.racket-explanation > div { margin: 0 0 17px; }
.racket-explanation small { color: #76603c; font-size: 10px; font-weight: 700; letter-spacing: .03em; }
.racket-explanation p { font-size: 12px; line-height: 1.85; color: #5b635e; margin: 5px 0 0; }
.racket-specs { border-top: 1px solid #e5e5de; margin: 0 22px; font-size: 12px; }
.racket-specs summary { min-height: 46px; padding: 14px 0; cursor: pointer; font-weight: 600; }
.racket-specs > p { color: #62665f; font-size: 11px; line-height: 1.7; }
.racket-specs dl { margin: 13px 0; }
.racket-specs dl > div { display: flex; justify-content: space-between; gap: 16px; padding: 9px 0; border-bottom: 1px solid #edede5; }
.racket-specs dt { color: #62665f; }
.racket-specs dd { margin: 0; text-align: right; flex: none; }
.racket-specs ul { padding: 0 0 10px 15px; }
.racket-specs li { padding: 5px 0; overflow-wrap: anywhere; }
.racket-specs a { color: #414d48; text-decoration: underline; }
.racket-specs li small { display: block; color: #74776f; margin-top: 4px; }
.racket-reference-prices { margin: 17px 0; font-size: 11px; line-height: 1.75; }
.racket-reference-prices strong { font-weight: 600; }
.racket-reference-prices small { display: block; color: #666d62; margin-top: 4px; }
.racket-card footer { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px 22px 20px; }
.racket-card footer button { flex: 1 1 105px; font-size: 11px; padding: 10px; }
.racket-card footer .racket-discussion-link { flex-basis: 100%; border-color: transparent; background: transparent; color: #555f58; text-decoration: underline; }
.racket-notices, .racket-error { padding: 17px 18px; border-left: 3px solid #b88a3e; background: #f7f2e8; margin: 0 0 20px; font-size: 12px; line-height: 1.8; }
.racket-notices p, .racket-error p { margin: 0; }
.racket-notices summary { min-height: 28px; cursor: pointer; font-weight: 600; }
.racket-notices[open] p { margin-top: 10px; }
.has-results .racket-heading { padding: 18px 20px; }
.has-results .racket-heading h2 { font-size: 25px; margin: 7px 0; }
.has-results .racket-heading p { font-size: 11px; line-height: 1.6; }
.has-results .racket-heading small { font-size: 10px; }
.has-results .racket-view-actions { padding: 12px 0; }
.has-results .racket-notices { padding: 10px 14px; margin-bottom: 14px; }
.racket-error { border-color: #975438; margin-top: 18px; background: #fbf3ed; }
.racket-error button { margin-top: 12px; }
.racket-loading { padding: 28px 8px; color: #62665f; font-size: 13px; }
.racket-empty { padding: 32px 25px; background: #fffefa; border: 1px solid #dfdfd7; border-radius: 12px; }
.racket-empty h3 { margin: 0 0 12px; font-size: 19px; font-weight: 550; }
.racket-empty p { margin: 0; color: #62665f; line-height: 1.85; font-size: 13px; }
.racket-empty a { display: inline-flex; align-items: center; min-height: 44px; margin-top: 12px; color: #252b2d; }
.racket-selection { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; padding: 18px; margin-top: 20px; border: 1px solid #c9c4b5; background: #f7f2e8; border-radius: 12px; }
.racket-selection > span { margin-right: auto; font-size: 13px; font-weight: 600; }
.racket-selection small { display: block; margin-top: 5px; font-size: 10px; font-weight: 400; color: #62665f; line-height: 1.6; }
.racket-more { display: block; width: 100%; margin-top: 18px; }
.racket-comparison { margin: 0 0 22px; min-width: 0; }
.racket-comparison h3 { font-size: 21px; font-weight: 600; margin: 12px 0; letter-spacing: -.035em; }
.racket-comparison > p { color: #62665f; font-size: 12px; line-height: 1.7; }
.racket-comparison-scroll { overflow-x: auto; max-width: 100%; border: 1px solid #d4d4ca; border-radius: 12px; -webkit-overflow-scrolling: touch; }
.racket-comparison table { border-collapse: collapse; width: 100%; min-width: 550px; background: #fffefa; table-layout: fixed; font-size: 11px; line-height: 1.7; }
.racket-comparison th, .racket-comparison td { text-align: left; vertical-align: top; padding: 13px 15px; border-bottom: 1px solid #e2e3db; border-right: 1px solid #e2e3db; overflow-wrap: anywhere; }
.racket-comparison thead th { background: #eeece3; font-weight: 500; }
.racket-comparison th strong, .racket-comparison th small { display: block; }
.racket-comparison th strong { font-size: 16px; line-height: 1.3; margin: 5px 0; font-weight: 600; }
.racket-comparison tbody th { font-weight: 500; color: #62665f; }
.racket-guide-note { font-size: 11px; line-height: 1.8; color: #6b7067; padding: 18px 3px 0; }
@media (max-width: 650px) {
  .racket-grid { grid-template-columns: minmax(0, 1fr); }
  .racket-heading { padding: 22px 18px; gap: 12px; }
  .racket-heading h2 { font-size: 27px; }
  .racket-heading > button { font-size: 11px; }
  .racket-intro, .racket-finder, .racket-empty { padding: 23px 18px; }
  .racket-intro { grid-template-columns: 1fr; gap: 17px; }
  .racket-intro-number { font-size: 44px; }
  .racket-intro h3 { font-size: 23px; }
  .racket-form-grid { grid-template-columns: minmax(0, 1fr); }
  .racket-view-actions label { margin-left: 0; }
  .racket-entry { padding: 22px 20px; }
  .racket-selection > span { width: 100%; }
  .racket-discovery-hub input, .racket-discovery-hub select { font-size: 16px; }
}
/* Product references and source filters: additive media iteration, 2026-09-10. */
.editorial-product-figure{margin:14px 0 18px;min-width:0;background:#fff;border:1px solid #e6e4da;border-radius:12px;overflow:hidden}
.editorial-product-frame{position:relative;min-width:0;aspect-ratio:1/1;background:#fff}
.editorial-product-frame img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;padding:20px;max-height:450px}
.editorial-product-frame [hidden]{display:none!important}
.editorial-product-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;inset:0;padding:24px;background:#f7f2e8;color:#656b61;text-align:center;font-size:13px;line-height:1.7}
.editorial-product-fallback button{min-height:44px;margin-top:10px;border:1px solid #7f8479;border-radius:8px;color:#252b2d;background:#fffefa;padding:9px 15px;cursor:pointer}
.editorial-product-figure figcaption{display:flex;flex-wrap:wrap;gap:5px 8px;padding:12px 15px;background:#faf8f2;color:#62685e;font-size:10px;line-height:1.6;letter-spacing:0;text-transform:none}
.editorial-product-figure figcaption>span{width:100%}.editorial-product-figure figcaption>a{color:#4b5a50;text-decoration:underline;overflow-wrap:anywhere}.editorial-product-figure figcaption>small{font-size:10px;font-weight:400;letter-spacing:0;text-transform:none;color:#62685e}
.racket-card .editorial-product-figure{margin-top:14px}.racket-card .editorial-product-frame{aspect-ratio:1/1}.racket-card .editorial-product-frame img{max-height:320px}
.racket-comparison .editorial-product-figure{margin:14px 0 0}.racket-comparison .editorial-product-frame img{padding:12px;max-height:235px}.racket-comparison .editorial-product-figure figcaption{padding:8px;font-size:9px}.racket-comparison .editorial-product-figure figcaption small{font-size:9px}
.qiulian-post .xiaoa-article:not(.is-full)>.editorial-product-figure{margin-top:4px;margin-bottom:17px}.qiulian-post .xiaoa-article:not(.is-full) .editorial-product-frame{aspect-ratio:5/4}.qiulian-post .xiaoa-article:not(.is-full) .editorial-product-frame img{max-height:none;padding:22px 28px}
.qiulian-post .xiaoa-article:not(.is-full) .xiaoa-article-heading h3{font-size:23px;letter-spacing:-.035em;line-height:1.35;margin:8px 0}.qiulian-post .xiaoa-article:not(.is-full) .xiaoa-article-heading p{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;font-size:13px;line-height:1.75}.qiulian-post .xiaoa-article-heading small{font-size:10px;line-height:1.7;letter-spacing:.03em;color:#76603c}
.qiulian-content-toggle{display:inline-flex;align-items:center;gap:5px;min-height:44px;padding:8px 9px;border:0;border-radius:8px;background:transparent;color:#555f56;font-size:11px;cursor:pointer}.qiulian-content-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.4}.qiulian-content-toggle[aria-expanded=true]{background:#f1eadb;color:#463d2d}
.qiulian-content-filter{margin:3px 0 15px;padding:16px;border:1px solid #d8d8cd;border-radius:12px;background:#fbf9f3}.qiulian-content-filter>strong{font-size:12px;color:#4e584f}.qiulian-content-filter>div{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.qiulian-content-filter button{min-height:44px;padding:9px 13px;border:1px solid #d0d2c7;border-radius:8px;background:#fffefa;color:#252b2d;font-size:12px;cursor:pointer}.qiulian-content-filter button[aria-pressed=true]{background:#252b2d;color:#fffefa;border-color:#252b2d}.qiulian-content-filter p{margin:12px 0 0;font-size:11px;line-height:1.8;color:#626b60}
.qiulian-content-selection{display:flex;align-items:center;flex-wrap:wrap;gap:7px 10px;margin:1px 0 14px}.qiulian-content-selection button{display:flex;align-items:center;gap:10px;min-height:38px;padding:8px 11px;border:1px solid #c8b38a;border-radius:8px;background:#f4ebd9;color:#534529;font-size:11px;cursor:pointer}.qiulian-content-selection button span{font-size:17px;line-height:1}.qiulian-content-selection small{font-size:10px;color:#687060;line-height:1.7}
@media(max-width:390px){.qiulian-feed-toolbar{flex-wrap:wrap;gap:6px}.qiulian-content-toggle{padding:7px 5px}.qiulian-content-toggle>span{font-size:10px}.qiulian-post .xiaoa-article:not(.is-full) .xiaoa-article-heading h3{font-size:21px}.editorial-product-frame img{padding:14px}.editorial-product-figure figcaption{padding:9px 11px}}
/* A readable feed leads with the model/story, with a complete but compact product view. */
.qiulian-post .xiaoa-article:not(.is-full)>.editorial-product-figure{margin-top:14px;margin-bottom:12px}
.qiulian-post .xiaoa-article:not(.is-full) .editorial-product-frame{aspect-ratio:auto;height:240px}
.qiulian-post .xiaoa-article:not(.is-full) .editorial-product-frame img{padding:16px 24px}
.qiulian-post .xiaoa-article:not(.is-full) .editorial-product-figure figcaption{padding:8px 12px}
.qiulian-post .xiaoa-article:not(.is-full) .xiaoa-article-heading p{-webkit-line-clamp:3}
/* Keep the reserved frame aligned with the existing contained image cap on wide screens. */
.editorial-product-frame{width:100%;max-height:450px}
.racket-card .editorial-product-frame{max-height:320px}
.racket-comparison .editorial-product-frame{max-height:235px}

/* Source-led equipment reading: compact choices first, detail when requested. */
.racket-discovery-hub .racket-heading{padding:12px 0 14px;border:0;border-bottom:1px solid #dedbd2;border-radius:0;background:transparent;gap:12px}
.racket-discovery-hub .racket-heading h2{font-size:28px;line-height:1.2;margin:7px 0 5px;letter-spacing:-.04em}
.racket-discovery-hub .racket-heading small{display:block;max-width:44ch;font-size:11px;line-height:1.65;color:#62533b;font-weight:600;letter-spacing:0}
.racket-discovery-hub .racket-heading p{font-size:12px;line-height:1.5;color:#606661}
.racket-discovery-hub .racket-heading>button{border-color:#d2cfc4;background:#fffdf8;min-width:48px}
.racket-discovery-hub .racket-view-actions{padding:12px 0;gap:8px}
.racket-view-actions>button:first-child{font-weight:600;border-color:#252b2d}
.racket-discovery-hub .racket-view-actions label{gap:6px;flex-wrap:nowrap;white-space:nowrap}
.racket-discovery-hub .racket-view-actions select{max-width:172px;padding:7px;font-size:12px!important}
.racket-search{margin-bottom:16px}
.racket-search>label{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.racket-search>div{margin-top:0;gap:8px}
.racket-search input{font-size:14px!important}
.racket-card{border-color:#deded6;border-radius:12px;box-shadow:0 2px 8px #252b2d04}
.racket-card>header{padding:18px 18px 0;display:grid;grid-template-columns:minmax(0,1fr) 110px;gap:14px;align-items:start}
.racket-card-identity{min-width:0}
.racket-card > header:not(:has(.editorial-product-figure)) { grid-template-columns: minmax(0, 1fr); }
.racket-card header small{font-size:10px;letter-spacing:.05em;color:#656b63}
.racket-card h3{font-size:23px;line-height:1.15;margin:8px 0 13px;letter-spacing:-.035em}
.racket-card-facts{display:flex;flex-wrap:wrap;gap:12px;margin:0}
.racket-card-facts>div{display:grid;gap:3px;min-width:0}
.racket-card-facts dt{font-size:10px;color:#687067;line-height:1.4}
.racket-card-facts dd{margin:0;font-size:13px;line-height:1.4;font-weight:600;color:#252b2d}
.racket-card .editorial-product-figure{margin:0;border:0;border-radius:8px;min-width:0;background:#fff}
.racket-card .editorial-product-frame{height:156px;max-height:156px;aspect-ratio:auto}
.racket-card .editorial-product-frame img{height:156px;max-height:156px;padding:6px;object-fit:contain}
.racket-card .editorial-product-figure figcaption{padding:4px 0 0;background:transparent;line-height:1.4}
.racket-card .editorial-product-figure figcaption a{font-size:9px;min-height:44px;display:flex;align-items:center;color:#596154;text-decoration:underline}
.racket-card .editorial-product-figure figcaption small{font-size:9px;color:#73776e}
.racket-card .editorial-product-fallback p{font-size:10px;line-height:1.5;margin:0 0 7px}
.racket-card .editorial-product-fallback button{font-size:10px;min-height:44px;padding:7px}
.racket-card .racket-card-summary{padding:15px 18px 0;font-size:13px;line-height:1.7;color:#38413c}
.racket-card-tradeoff{padding:10px 18px 0;margin:0;font-size:12px;line-height:1.7;color:#63675e}
.racket-card-tradeoff small{display:block;margin-bottom:3px;font-size:10px;font-weight:600;color:#706044}
.racket-card footer{padding:14px 18px 12px;gap:8px}
.racket-card footer button{min-height:44px;flex:1 1 90px;font-size:12px;padding:9px}
.racket-card .racket-specs{margin:0 18px;border-color:#e5e3db}
.racket-card .racket-specs summary{font-size:11px;line-height:1.5;min-height:44px;padding:13px 0;color:#555e54}
.racket-card .racket-explanation{padding:6px 0 0}
.racket-card .racket-specs .racket-discussion-link{width:100%;margin:3px 0 16px;font-size:11px;min-height:44px;text-align:left;background:transparent}
.racket-reading-note{border-top:1px solid #dedbd2;margin-top:18px;padding:0 3px}
.racket-reading-note summary{min-height:44px;padding:13px 0;font-size:11px;font-weight:600;cursor:pointer}
.racket-reading-note p{margin:0 0 12px;max-width:76ch}
.racket-comparison-scroll{border-color:#dedbd2;background:#fffefa}
.racket-comparison thead th{background:#f6f2e9}
.racket-comparison .editorial-product-frame{aspect-ratio:auto;height:150px;max-height:150px}
.racket-comparison .editorial-product-frame img{height:150px;max-height:150px;padding:8px;object-fit:contain}
.racket-comparison .editorial-product-figure figcaption{padding:4px 6px;line-height:1.5}
.racket-comparison .editorial-product-figure figcaption a{min-height:44px;display:flex;align-items:center;font-size:10px}
.qiulian-post .xiaoa-article.is-full{max-width:760px;margin-left:auto;margin-right:auto}
.qiulian-post .xiaoa-article.is-full .xiaoa-article-heading{padding-top:20px}
.qiulian-post .xiaoa-article.is-full .xiaoa-article-heading h3{font-size:clamp(25px,3.2vw,35px);line-height:1.28;letter-spacing:-.04em;margin:9px 0 12px}
.qiulian-post .xiaoa-article.is-full .xiaoa-article-heading p{max-width:64ch;font-size:15px;line-height:1.8;margin-bottom:18px;color:#60675f}
.xiaoa-article.is-full .xiaoa-article-body{max-width:64ch;margin:28px auto}
.xiaoa-article.is-full .xiaoa-article-body p{font-size:16px;line-height:1.95;margin-bottom:18px;color:#343d37}
.xiaoa-article.is-full .xiaoa-article-body h4{font-size:20px;line-height:1.45;margin-bottom:14px}
.xiaoa-article.is-full .xiaoa-article-body section+section{margin-top:32px}
.xiaoa-article.is-full .xiaoa-article-sources{background:#f7f4ed;border:1px solid #e5e0d5;border-radius:10px;padding:17px 18px;margin:24px 0}
.qiulian-post .xiaoa-reading-actions{position:sticky;top:76px;z-index:8;display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 16px;padding:7px;background:#fffdf8f5;border:1px solid #dedbd2;border-radius:10px;box-shadow:0 4px 12px #252b2d08;backdrop-filter:blur(10px)}
.qiulian-post .xiaoa-reading-actions button{flex:1 1 75px;min-height:44px;justify-content:center;padding:8px;font-size:12px;line-height:1.4;white-space:normal}
.qiulian-post .xiaoa-reading-actions .qiulian-bookmark{margin-left:0}
.qiulian-post:has(.xiaoa-article.is-full)>.qiulian-comments{scroll-margin-top:152px;padding-top:20px;border-top:1px solid #dedbd2}
.qiulian-post .xiaoa-article:not(.is-full) .xiaoa-article-heading{padding-top:14px}
.qiulian-post .xiaoa-article:not(.is-full) .xiaoa-article-heading h3{font-weight:600}
.qiulian-post .xiaoa-article:not(.is-full) .xiaoa-read-more{margin-bottom:8px}
@media(max-width:650px){
  .racket-discovery-hub .racket-heading h2{font-size:25px}
  .racket-discovery-hub .racket-heading small{font-size:10px;max-width:28ch}
  .racket-discovery-hub .racket-view-actions label{margin-left:auto;font-size:10px}
  .racket-discovery-hub .racket-view-actions>button{font-size:12px;padding:8px 11px}
  .racket-card>header{grid-template-columns:minmax(0,1fr) 104px;padding:16px 16px 0;gap:12px}
  .racket-card h3{font-size:23px}
  .racket-card .racket-card-summary{padding:12px 16px 0}
  .racket-card-tradeoff{padding:9px 16px 0}
  .racket-card footer{padding:13px 16px 11px}
  .racket-card .racket-specs{margin:0 16px}
  .racket-card .editorial-product-frame,.racket-card .editorial-product-frame img{height:144px;max-height:144px}
  .racket-comparison-scroll{overflow:visible;border:0;border-radius:0}
  .racket-comparison table{display:block;min-width:0;width:100%;table-layout:auto;background:transparent}
  .racket-comparison thead,.racket-comparison tbody{display:block}
  .racket-comparison thead tr{display:flex;gap:8px;margin-bottom:15px;align-items:stretch}
  .racket-comparison thead th:first-child{display:none}
  .racket-comparison thead th{display:block;flex:1 1 0;min-width:0;padding:10px 8px;border:1px solid #e1ddd1;border-radius:9px;font-size:10px}
  .racket-comparison thead th strong{font-size:14px;line-height:1.3;margin:5px 0}
  .racket-comparison .editorial-product-frame,.racket-comparison .editorial-product-frame img{height:110px;max-height:110px}
  .racket-comparison .editorial-product-frame img{padding:5px}
  .racket-comparison .editorial-product-figure{border:0}
  .racket-comparison .editorial-product-figure figcaption{padding:3px 0;background:transparent}
  .racket-comparison .editorial-product-figure figcaption a{font-size:9px}
  .racket-comparison .editorial-product-figure figcaption small{font-size:9px}
  .racket-comparison tbody tr{display:block;border:1px solid #e1ded3;border-radius:9px;margin-bottom:10px;overflow:hidden;background:#fffefa}
  .racket-comparison tbody th{display:block;padding:10px 13px;background:#f4f0e6;border:0;font-size:12px;font-weight:600;color:#343d37}
  .racket-comparison tbody td{display:grid;grid-template-columns:minmax(0,1fr) minmax(70px,.75fr);gap:14px;border:0;border-top:1px solid #eeece3;padding:11px 13px;font-size:12px;text-align:right;line-height:1.65}
  .racket-comparison tbody td:before{content:attr(data-racket-model);font-size:11px;text-align:left;color:#657063;font-weight:400;overflow-wrap:anywhere}
  .racket-comparison tbody tr:last-child td{grid-template-columns:1fr;text-align:left;gap:4px}
  .qiulian-post .xiaoa-reading-actions{top:62px;padding:6px;gap:4px;border-radius:8px}
  .qiulian-post .xiaoa-reading-actions button{font-size:11px;flex-basis:65px;padding:7px 4px}
  .qiulian-post .xiaoa-article.is-full .xiaoa-article-heading h3{font-size:26px}
  .qiulian-post .xiaoa-article.is-full .xiaoa-article-heading p{font-size:14px}
  .xiaoa-article.is-full .xiaoa-article-body p{font-size:15px;line-height:1.9}
  .xiaoa-article.is-full .xiaoa-article-body h4{font-size:19px}
  .qiulian-post:has(.xiaoa-article.is-full)>.qiulian-comments{scroll-margin-top:132px}
  .racket-discovery-hub .racket-search input,.racket-discovery-hub .racket-view-actions select{font-size:16px!important}
}
/* The same saved-post control is also rendered in the training reader. */
.qiulian-post .xiaoa-reading-actions .qiulian-bookmark{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:44px;white-space:nowrap}
.qiulian-post .xiaoa-reading-actions .qiulian-bookmark svg{display:block;flex:0 0 18px;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6}
.qiulian-post .xiaoa-reading-actions .qiulian-bookmark span{white-space:nowrap}
.qiulian-post .xiaoa-reading-actions .qiulian-bookmark[aria-pressed="true"]{color:#876323}
.qiulian-post .xiaoa-reading-actions .qiulian-bookmark[aria-pressed="true"] svg{fill:#f0e4cc}
/* Keep the viewport as the reading toolbar's scroll container, without changing dialog locks. */
@supports(overflow:clip){
  @media(max-width:760px){
    body[data-app-screen="home"]:not(.has-avatar-studio):not(:has(dialog[open])):has(#communityContent .qiulian-thread-sheet .xiaoa-article.is-full),
    body[data-app-screen="train"]:not(.has-avatar-studio):not(:has(dialog[open])):has(#racketDiscoveryHub.is-reading .xiaoa-article.is-full){overflow-x:clip;overflow-y:visible}
  }
}

/* Browse comfort: editorial reading */
.qiulian-post .xiaoa-article { box-sizing: border-box; padding: 0 20px 12px; }
.qiulian-post .xiaoa-article .xiaoa-article-intro { min-width: 0; }
.qiulian-post .xiaoa-article .xiaoa-article-heading { padding-top: 14px; }
.qiulian-post .xiaoa-article .xiaoa-article-heading > small { display: block; color: #787165; font-size: 10px; line-height: 1.65; letter-spacing: 0; font-weight: 400; }
.qiulian-post .xiaoa-article:not(.is-full) .xiaoa-article-heading h3 { font-size: clamp(21px, 2.6vw, 25px); line-height: 1.4; letter-spacing: -.025em; margin: 8px 0 10px; font-weight: 600; }
.qiulian-post .xiaoa-article:not(.is-full) .xiaoa-article-heading p { display: block; -webkit-line-clamp: unset; margin: 0 0 10px; font-size: 14px; line-height: 1.8; color: #60665f; }
.qiulian-post .xiaoa-article .editorial-product-figure { width: 100%; max-width: 340px; margin: 18px auto 12px; border: 0; border-radius: 0; background: transparent; overflow: visible; }
.qiulian-post .xiaoa-article .editorial-product-frame { width: 100%; height: 310px; max-height: none; aspect-ratio: auto; background: #fff; border-radius: 10px; overflow: hidden; }
.qiulian-post .xiaoa-article .editorial-product-frame img { width: 100%; height: 100%; max-height: none; padding: 4px; object-fit: contain; object-position: center; }
.qiulian-post .xiaoa-article .editorial-product-figure figcaption { padding: 9px 0 0; background: transparent; line-height: 1.7; color: #797a70; }
.qiulian-post .xiaoa-article .editorial-product-figure figcaption > a { display: inline-flex; align-items: center; min-height: 32px; text-underline-offset: 3px; }
.qiulian-post .xiaoa-article:not(.is-full) .editorial-product-frame { height: 280px; }
.qiulian-post .xiaoa-article:not(.is-full) .editorial-product-figure { max-width: 280px; margin-top: 12px; margin-bottom: 2px; }
.qiulian-post .xiaoa-article:not(.is-full) .editorial-product-figure figcaption { justify-content: center; padding-top: 2px; }
.qiulian-post .xiaoa-article .xiaoa-read-more { width: auto; display: inline-flex; justify-content: flex-start; gap: 18px; min-height: 44px; margin: 2px 0 0; padding: 8px 0; border: 0; border-radius: 0; background: transparent; color: #252b2d; font-size: 13px; font-weight: 600; }
.qiulian-post .xiaoa-article .xiaoa-read-more > span { color: #9a7840; font-size: 17px; font-weight: 400; }
.qiulian-post .xiaoa-article .xiaoa-title-link { display: block; width: 100%; min-height: 44px; padding: 0; border: 0; border-radius: 0; background: transparent; color: inherit; font: inherit; letter-spacing: inherit; line-height: inherit; text-align: inherit; overflow-wrap: inherit; cursor: pointer; }
.qiulian-post .xiaoa-article.is-full { max-width: 740px; padding: 0 28px 18px; }
.qiulian-post .xiaoa-article.is-full .xiaoa-article-heading { max-width: 62ch; margin-inline: auto; padding-top: 18px; }
.qiulian-post .xiaoa-article.is-full .xiaoa-article-heading h3 { font-size: clamp(25px, 3.2vw, 34px); line-height: 1.35; letter-spacing: -.03em; margin: 8px 0 14px; font-weight: 600; }
.qiulian-post .xiaoa-article.is-full .xiaoa-article-heading p { margin-bottom: 12px; color: #60665f; font-size: 15px; line-height: 1.85; }
.qiulian-post .xiaoa-article.is-full .xiaoa-article-figure { max-width: 560px; margin: 22px auto; }
.qiulian-post .xiaoa-article.is-full .xiaoa-article-figure img { border-radius: 8px; }
.qiulian-post .xiaoa-article.is-full .xiaoa-article-body { max-width: 62ch; margin: 28px auto; }
.qiulian-post .xiaoa-article.is-full .xiaoa-article-body p { font-size: 16px; line-height: 1.9; color: #353d37; margin-bottom: 18px; }
.qiulian-post .xiaoa-article.is-full .xiaoa-article-body h4 { font-size: 19px; line-height: 1.5; margin-bottom: 12px; font-weight: 600; }
.qiulian-post .xiaoa-article.is-full .xiaoa-article-body section + section { margin-top: 30px; }
.qiulian-post .xiaoa-article.is-full .xiaoa-article-sources { max-width: 62ch; margin: 28px auto 6px; padding: 0; border: 0; border-top: 1px solid #e5e0d5; border-radius: 0; background: transparent; color: #6a7067; }
.qiulian-post .xiaoa-article .xiaoa-article-sources > summary { min-height: 52px; padding: 14px 0; cursor: pointer; line-height: 1.7; }
.qiulian-post .xiaoa-article .xiaoa-article-sources > summary strong { font-size: 12px; font-weight: 500; }
.qiulian-post .xiaoa-article .xiaoa-article-sources > summary > span { display: block; margin-left: 14px; font-size: 10px; font-weight: 400; }
.qiulian-post .xiaoa-article .xiaoa-article-sources ul { margin: 0 0 16px; padding-left: 18px; }
.qiulian-post .xiaoa-article .xiaoa-article-sources li + li { margin-top: 12px; }
.qiulian-post .xiaoa-article .xiaoa-article-sources a { font-size: 12px; line-height: 1.8; text-underline-offset: 3px; }
.qiulian-post .xiaoa-article .xiaoa-source-date { display: block; font-size: 10px; color: #777c72; }
.qiulian-post .xiaoa-article :is(.xiaoa-title-link, .xiaoa-read-more, .xiaoa-article-sources > summary, .xiaoa-article-sources a, .editorial-product-figure a):focus-visible { outline: 2px solid #b88a3e; outline-offset: 4px; }
@media (min-width: 760px) {
  .qiulian-post .xiaoa-article.has-product-image:not(.is-full) .xiaoa-article-intro { display: grid; grid-template-columns: minmax(0, 1fr) 230px; gap: 22px; align-items: center; }
  .qiulian-post .xiaoa-article.has-product-image:not(.is-full) .editorial-product-figure { max-width: none; margin: 6px 0 0; }
  .qiulian-post .xiaoa-article.has-product-image:not(.is-full) .editorial-product-frame { height: 230px; }
}
@media (max-width: 650px) {
  .qiulian-post .xiaoa-article { padding-inline: 18px; }
  .qiulian-post .xiaoa-article.is-full { padding-inline: 20px; }
  .qiulian-post .xiaoa-article.is-full .xiaoa-article-heading h3 { font-size: 26px; }
  .qiulian-post .xiaoa-article.is-full .xiaoa-article-heading p { font-size: 14px; }
  .qiulian-post .xiaoa-article.is-full .xiaoa-article-body p { font-size: 15px; line-height: 1.9; }
  .qiulian-post .xiaoa-article.is-full .xiaoa-article-body h4 { font-size: 18px; }
}
@media (max-width: 350px) {
  .qiulian-post .xiaoa-article, .qiulian-post .xiaoa-article.is-full { padding-inline: 16px; }
  .qiulian-post .xiaoa-article.is-full .xiaoa-article-heading h3 { font-size: 24px; }
  .qiulian-post .xiaoa-article .editorial-product-frame { height: 276px; }
  .qiulian-post .xiaoa-article:not(.is-full) .editorial-product-frame { height: 264px; }
}
/* End browse comfort: editorial reading */

/* Courtside is a reading feed. Personal tools live in My and Messages. */
#communityContent .qiulian-browse-home { width: 100%; max-width: 720px; margin: 0 auto; }
.xiaoa-article-unavailable.is-rechecking { box-sizing: border-box; overflow: hidden; }
.xiaoa-article-unavailable.is-rechecking > p { color: #64695f; font-size: 13px; }
.xiaoa-loading-lines { display: grid; gap: 12px; padding: 12px 0; }
.xiaoa-loading-lines > i { display: block; width: 86%; height: 10px; border-radius: 3px; background: #e7e3d9; }
.xiaoa-loading-lines > i:nth-child(2) { width: 96%; }
.xiaoa-loading-lines > i:nth-child(3) { width: 62%; }
#communityContent .qiulian-browse-home .qiulian-layout { grid-template-columns: minmax(0, 1fr); gap: 0; }
#communityContent .qiulian-browse-home .qiulian-composer > summary { min-height: 70px; padding-top: 14px; padding-bottom: 14px; align-items: center; }
#communityContent .qiulian-browse-home .qiulian-composer > summary p { margin: 0; }
#communityContent .qiulian-browse-home .qiulian-composer > summary strong { font-size: 15px; line-height: 1.5; font-weight: 500; }
#communityContent .qiulian-browse-home .qiulian-context-empty { padding: 48px 20px; background: transparent; border: 0; box-shadow: none; }
#communityContent .qiulian-browse-home .qiulian-context-empty h3 { font-size: 21px; line-height: 1.5; }
#communityContent .qiulian-browse-home .qiulian-context-empty p { max-width: 38ch; margin: 10px auto 20px; font-size: 14px; line-height: 1.8; }
#communityContent .qiulian-xiaoa-shortcut { display: inline-flex; align-items: center; justify-content: center; min-width: 64px; min-height: 44px; padding: 8px; border: 0; border-radius: 6px; background: transparent; color: var(--al-graphite); font-size: 13px; font-weight: 650; white-space: nowrap; }
#communityContent .qiulian-xiaoa-shortcut[aria-pressed="true"] { background: #eee5d5; color: #694d23; }
#communityContent .qiulian-xiaoa-shortcut:hover { background: #f1ece3; }
#communityContent .qiulian-xiaoa-shortcut:focus-visible { outline: 2px solid #876323; outline-offset: 2px; }
.qiulian-discover-courts { display: flex; justify-content: flex-end; margin: 8px 0 16px; }
.qiulian-discover-courts button { min-height: 44px; padding: 8px 12px; border: 0; background: transparent; color: var(--al-graphite); font-size: 14px; }
@media(max-width:600px) {
  #communityContent .qiulian-browse-home .qiulian-feed-toolbar { gap: 4px; }
  #communityContent .qiulian-browse-home .qiulian-post-search-entry { width: 44px; padding: 0; margin-left: auto; font-size: 0; }
  #communityContent .qiulian-browse-home .qiulian-post-search-entry svg { width: 18px; height: 18px; }
  #communityContent .qiulian-browse-home .qiulian-topic-filter { margin-left: 0; }
  #communityContent .qiulian-browse-home .qiulian-context-empty { padding: 40px 12px; }
}

/* Browse comfort: one invitation to post, then the feed. */
#communityContent .qiulian-browse-home .qiulian-feed-navigation { margin-bottom: 8px; }
#communityContent .qiulian-browse-home .qiulian-compose-entry { margin: 0; }
#communityContent .qiulian-browse-home .qiulian-composer { border: 0; border-radius: 0; background: transparent; margin: 0; }
#communityContent .qiulian-browse-home .qiulian-composer > summary { min-height: 56px; grid-template-columns: 32px minmax(0, 1fr) 44px; gap: 10px; padding: 8px 4px; border: 0; border-radius: 10px; background: transparent; }
#communityContent .qiulian-browse-home .qiulian-composer > summary > div { width: 32px; height: 32px; border-radius: 50%; overflow: hidden; background: #ece8df; }
#communityContent .qiulian-browse-home .qiulian-composer > summary > p { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 10px; }
#communityContent .qiulian-browse-home .qiulian-composer > summary strong { font-size: 14px; color: #5f6662; font-weight: 450; }
#communityContent .qiulian-browse-home .qiulian-composer > summary > p > span { font-size: 11px; color: #745621; background: #f0e8d8; border-radius: 4px; padding: 1px 5px; }
#communityContent .qiulian-browse-home .qiulian-composer > summary > b { display: grid; place-items: center; width: 44px; height: 44px; color: var(--al-graphite); background: transparent; }
#communityContent .qiulian-browse-home .qiulian-composer > summary > b svg { display: block; width: 20px; height: 20px; }
#communityContent .qiulian-browse-home .qiulian-composer > summary:hover { background: #ece8df80; }
#communityContent .qiulian-browse-home .qiulian-composer[open] { margin-bottom: 12px; padding: 0 16px 16px; background: #fffdf8; border: 1px solid #deddd6; border-radius: 14px; }
#communityContent .qiulian-browse-home .qiulian-composer[open] > summary { border-bottom: 1px solid #e9e6df; border-radius: 0; margin-bottom: 12px; }
#communityContent .qiulian-browse-home #qiulianPostForm { gap: 14px; padding: 0; }
#communityContent .qiulian-browse-home .qiulian-kind-tabs { padding: 0; gap: 4px; background: transparent; border: 0; }
#communityContent .qiulian-browse-home .qiulian-kind-tabs button { flex: 1 1 55px; min-height: 44px; padding: 8px 6px; border: 0; border-radius: 8px; background: transparent; color: #626963; font-weight: 500; font-size: 12px; }
#communityContent .qiulian-browse-home .qiulian-kind-tabs button[aria-pressed="true"] { background: #eeebe3; color: var(--al-graphite); }
#communityContent .qiulian-browse-home .qiulian-caption-field { gap: 6px; }
#communityContent .qiulian-browse-home .qiulian-caption-field > span { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
#communityContent .qiulian-browse-home .qiulian-caption-field textarea { min-height: 112px; padding: 12px 0; border: 0; border-bottom: 1px solid #e6e3dc; border-radius: 0; background: transparent; color: var(--al-graphite); font-size: 16px; line-height: 1.75; resize: vertical; }
#communityContent .qiulian-browse-home .qiulian-compose-options { padding: 0; border: 0; background: transparent; min-width: 0; }
#communityContent .qiulian-browse-home .qiulian-compose-options > summary { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 6px 0; color: var(--al-graphite); font-size: 13px; cursor: pointer; }
#communityContent .qiulian-browse-home .qiulian-compose-options > summary::after { content: "+"; margin-left: auto; font-size: 18px; font-weight: 400; }
#communityContent .qiulian-browse-home .qiulian-compose-options[open] > summary::after { content: "−"; }
#communityContent .qiulian-browse-home .qiulian-compose-options > summary span { color: #6a706a; font-size: 11px; }
#communityContent .qiulian-browse-home .qiulian-compose-options > :not(summary) { margin-top: 10px; }
#communityContent .qiulian-browse-home .qiulian-compose-options > summary::-webkit-details-marker { display: none; }
#communityContent .qiulian-browse-home .qiulian-compose-inspiration { color: #656c66; font-size: 12px; }
#communityContent .qiulian-browse-home .qiulian-compose-inspiration summary { display: flex; align-items: center; min-height: 44px; cursor: pointer; }
#communityContent .qiulian-browse-home .qiulian-compose-inspiration summary::after { content: "›"; margin-left: 8px; }
#communityContent .qiulian-browse-home .qiulian-compose-inspiration[open] summary::after { content: "⌄"; }
#communityContent .qiulian-browse-home .qiulian-compose-inspiration summary::-webkit-details-marker { display: none; }
#communityContent .qiulian-browse-home .qiulian-compose-inspiration .qiulian-caption-prompts { margin-top: 4px; }
#communityContent .qiulian-browse-home .qiulian-composer-footer { padding-top: 10px; border-top: 1px solid #e9e6df; align-items: end; }
#communityContent .qiulian-browse-home .qiulian-composer-footer > label { flex: 1 1 125px; max-width: 220px; }
#communityContent .qiulian-browse-home .qiulian-composer-footer > button { min-width: 100px; border-radius: 10px; flex: 0 1 auto; margin-left: auto; }
#communityContent .qiulian-browse-home .qiulian-audience-note { margin: 0; font-size: 12px; line-height: 1.7; }
#communityContent .qiulian-browse-home .qiulian-privacy-hint { margin: 0; line-height: 1.6; }
#communityContent .qiulian-browse-home .qiulian-feed-toolbar { flex-wrap: nowrap; gap: 6px; min-height: 48px; margin: 0 0 8px; padding: 0 2px; }
#communityContent .qiulian-browse-home .qiulian-xiaoa-shortcut { min-width: 64px; padding: 8px 6px; font-size: 12px; font-weight: 550; }
#communityContent .qiulian-browse-home .qiulian-post-search-entry { margin-left: auto; background: transparent; border: 0; color: #646b66; }
#communityContent .qiulian-browse-home .qiulian-topic-filter { margin-left: 0; flex: 0 1 auto; min-width: 0; }
#communityContent .qiulian-browse-home .qiulian-content-toggle { min-height: 44px; padding: 8px 6px; border-radius: 8px; color: #876323; font-size: 13px; font-weight: 600; }
#communityContent .qiulian-browse-home .qiulian-content-toggle > span { font-size: inherit; white-space: nowrap; }
#communityContent .qiulian-browse-home .qiulian-content-toggle > svg { width: 14px; height: 14px; flex: 0 0 14px; }
#communityContent .qiulian-browse-home .qiulian-topic-exit { min-width: 44px; min-height: 44px; padding: 8px; border: 0; background: transparent; }
#communityContent .qiulian-browse-home .qiulian-topic-exit > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
#communityContent .qiulian-browse-home .qiulian-browse-filters { margin: 0 0 16px; padding: 16px; border: 1px solid #e1ddd2; border-radius: 12px; background: #fffdf8; }
#communityContent .qiulian-browse-home .qiulian-browse-filters[hidden] { display: none; }
#communityContent .qiulian-browse-home .qiulian-browse-topic { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 16px; margin-bottom: 16px; color: #5f6662; font-size: 12px; }
#communityContent .qiulian-browse-home .qiulian-browse-topic select { min-width: 0; width: 100%; min-height: 44px; padding: 8px 10px; background: #f8f6f0; border: 1px solid #d9d9d1; border-radius: 8px; color: var(--al-graphite); font: inherit; font-size: 16px; }
#communityContent .qiulian-browse-home .qiulian-browse-filters > strong { font-size: 12px; font-weight: 500; color: #5f6662; }
#communityContent .qiulian-browse-home .qiulian-browse-filters > div { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
#communityContent .qiulian-browse-home .qiulian-browse-filters > div button { flex: 1 1 80px; min-height: 44px; padding: 8px; border: 0; border-radius: 8px; color: #59615c; background: #f3f1eb; font-size: 12px; }
#communityContent .qiulian-browse-home .qiulian-browse-filters > div button[aria-pressed="true"] { color: #fffdf8; background: var(--al-graphite); }
#communityContent .qiulian-browse-home .qiulian-browse-filters > p { margin: 12px 0 0; font-size: 12px; line-height: 1.7; color: #656c66; }
#communityContent .qiulian-browse-home :is(button, summary, textarea, select):focus-visible { outline: 2px solid #876323; outline-offset: 3px; }
@media (max-width: 600px) {
  #communityContent .qiulian-browse-home .qiulian-post-search-entry { flex: 0 0 44px; width: 44px; padding: 0; }
  #communityContent .qiulian-browse-home .qiulian-post-search-entry > span { display: none; }
  #communityContent .qiulian-browse-home .qiulian-composer[open] { padding: 0 12px 12px; }
  #communityContent .qiulian-browse-home .qiulian-kind-tabs { flex-wrap: wrap; }
  #communityContent .qiulian-browse-home .qiulian-kind-tabs button { flex-basis: 48px; font-size: 11px; }
}
@media (prefers-reduced-motion: no-preference) {
  #communityContent .qiulian-browse-home :is(.qiulian-composer > summary, .qiulian-content-toggle, .qiulian-xiaoa-shortcut, .qiulian-kind-tabs button) { transition: background-color 140ms ease, color 140ms ease; }
}
/* End browse comfort: feed. */

/* Quiet UI: one navigation language and a personal, optional bag editor. */
.player-bag { --al-graphite: #252b2d; --al-line: #e3e0d7; }
.mobile-tabs a[data-app-nav] {
  margin: 0;
  border: 1px solid transparent;
  border-radius: 12px;
  background: transparent;
  color: #656a68;
  box-shadow: none;
}
.mobile-tabs a[data-app-nav].is-active {
  border-color: transparent;
  background: #eee9df;
  color: #252b2d;
  box-shadow: none;
}
.mobile-tabs a[data-app-nav].is-active::before { background: #b88a3e; }
.mobile-tabs a[data-app-nav] .mobile-tab-icon { color: inherit; transform: none; }
.mobile-tabs a[data-app-nav]:focus-visible { outline: 2px solid #876323; outline-offset: -2px; }
.topbar nav a[data-app-nav] { min-height: 44px; align-items: center; border: 1px solid transparent; border-radius: 10px; color: #656a68; background: transparent; box-shadow: none; font-size: 14px; font-weight: 600; }
.topbar nav a[data-app-nav].is-active { color: #252b2d; background: #eee9df; border-color: transparent; }
.topbar nav a[data-app-nav] > span { color: inherit; font-weight: inherit; }
.topbar .language-toggle { background: transparent; border-color: transparent; color: #555c58; font-weight: 600; }
body.is-profile-detail-bag .app-detail-back {
  min-width: 44px;
  min-height: 44px;
  padding: 8px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #5c635e;
  box-shadow: none;
  font-size: 14px;
}
body.is-profile-detail-bag .app-detail-back em { font-size: 14px; font-weight: 500; }
body.is-profile-detail-bag .profile-detail-header h2 { margin-top: 12px; font-weight: 600; }
body.is-profile-detail-bag #profileSecondary { animation: none; }
body.is-profile-detail-bag [data-bag-editor-title] { scroll-margin-top: 90px; }
#playerBagForm { gap: 22px; }
#playerBagForm .player-bag-form-heading > p { font-size: 13px; }
#playerBagForm :is(input:not([type="checkbox"]), select, textarea) { border-color: #deded6; border-radius: 10px; background: #fffefa; }
#playerBagForm textarea::placeholder { color: #71766e; opacity: 1; }
#playerBagForm .player-bag-setup-disclosure { padding: 0; border: 0; border-top: 1px solid #e3e0d7; border-bottom: 1px solid #e3e0d7; border-radius: 0; background: transparent; }
#playerBagForm .player-bag-setup-disclosure > summary { display: flex; align-items: center; gap: 12px; min-height: 54px; padding: 12px 0; color: #252b2d; font-size: 14px; font-weight: 500; cursor: pointer; list-style: none; }
#playerBagForm .player-bag-setup-disclosure > summary::-webkit-details-marker { display: none; }
#playerBagForm .player-bag-setup-disclosure > summary small { margin-left: auto; font-size: 12px; font-weight: 400; }
#playerBagForm .player-bag-setup-disclosure > summary::after { content: ""; width: 7px; height: 7px; margin-right: 4px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); }
#playerBagForm .player-bag-setup-disclosure[open] > summary::after { transform: rotate(225deg); }
#playerBagForm .player-bag-setup-disclosure .player-bag-setup { padding: 4px 0 20px; border: 0; }
#playerBagForm .player-bag-setup > legend.sr-only { position: absolute; float: none; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
#playerBagForm .player-bag-sharing { border: 0; padding-top: 0; }
#playerBagForm .player-bag-sharing > small { font-size: 11px; }
#playerBagForm .player-bag-sharing-help { border: 0; padding: 0; background: transparent; }
#playerBagForm .player-bag-sharing-help > summary { min-height: 44px; padding: 10px 0; color: #62685f; font-size: 12px; line-height: 1.8; font-weight: 400; cursor: pointer; }
#playerBagForm .player-bag-sharing-help small { margin: 0 0 8px; }
#playerBagForm .player-bag-actions { gap: 12px; }
#playerBagForm .player-bag-actions > [type="submit"] { border-radius: 10px; min-height: 48px; }
#playerBagForm .player-bag-actions > [data-bag-cancel] { border-color: transparent; color: #5c635e; }
#playerBagForm :is(input, select, textarea, summary, button):focus-visible,
body.is-profile-detail-bag .app-detail-back:focus-visible { outline: 2px solid #876323; outline-offset: 3px; }
@media (max-width: 760px) {
  body:not(.is-auth-entry):not(.is-auth-boot) > .mobile-tabs { background: #fffdf8; box-shadow: 0 -1px 0 #252b2d0d; border-color: #e4e1d8; }
  .mobile-tabs a[data-app-nav] { min-height: 52px; }
}
@media (min-width: 761px) { .topbar nav a[data-app-nav] { display: inline-flex; } }
/* End quiet UI. */

/* Feed reading polish: a compact product preview, not a smaller article. */
.qiulian-feed .qiulian-post .xiaoa-article.has-product-image:not(.is-full) .xiaoa-article-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 116px;
  column-gap: 20px;
  row-gap: 0;
  align-items: start;
}
.qiulian-feed .qiulian-post .xiaoa-article.has-product-image:not(.is-full) .xiaoa-article-heading { display: contents; }
.qiulian-feed .qiulian-post .xiaoa-article.has-product-image:not(.is-full) .xiaoa-article-heading > small { grid-column: 1 / -1; margin-top: 10px; color: #6d6e65; font-size: 11px; }
.qiulian-feed .qiulian-post .xiaoa-article.has-product-image:not(.is-full) .xiaoa-article-heading h3 { grid-column: 1 / -1; margin: 7px 0 16px; }
.qiulian-feed .qiulian-post .xiaoa-article.has-product-image:not(.is-full) .xiaoa-article-heading p { grid-column: 1; margin: 0; line-height: 1.8; }
.qiulian-feed .qiulian-post .xiaoa-article.has-product-image:not(.is-full) .editorial-product-figure { grid-column: 2; grid-row: 3; width: 100%; max-width: none; margin: 0; }
.qiulian-feed .qiulian-post .xiaoa-article.has-product-image:not(.is-full) .editorial-product-frame { height: 144px; border-radius: 8px; }
.qiulian-feed .qiulian-post .xiaoa-article.has-product-image:not(.is-full) .editorial-product-frame img { padding: 0; object-fit: contain; }
.qiulian-feed .qiulian-post .xiaoa-article.has-product-image:not(.is-full) .editorial-product-figure figcaption { padding: 2px 0 0; text-align: center; }
.qiulian-feed .qiulian-post .xiaoa-article.has-product-image:not(.is-full) .editorial-product-figure figcaption > a { min-height: 44px; font-size: 10px; line-height: 1.5; color: #62685f; }
.qiulian-feed .qiulian-post .xiaoa-article.has-product-image:not(.is-full) .xiaoa-read-more { margin-top: 8px; }
.qiulian-feed .qiulian-post .xiaoa-article.has-product-image:not(.is-full) .editorial-product-fallback { padding: 6px; gap: 6px; }
.qiulian-feed .qiulian-post .xiaoa-article.has-product-image:not(.is-full) .editorial-product-fallback p { margin: 0; font-size: 11px; line-height: 1.5; }
.qiulian-feed .qiulian-post .xiaoa-article.has-product-image:not(.is-full) .editorial-product-fallback button { min-height: 44px; max-width: 100%; flex-shrink: 0; margin-top: 0; padding: 6px; font-size: 11px; }
.qiulian-thread-sheet .xiaoa-article.is-full h3[tabindex="-1"]:focus { outline: none; }
@media (min-width: 760px) {
  .qiulian-feed .qiulian-post .xiaoa-article.has-product-image:not(.is-full) .xiaoa-article-intro { grid-template-columns: minmax(0, 1fr) 160px; column-gap: 32px; }
  .qiulian-feed .qiulian-post .xiaoa-article.has-product-image:not(.is-full) .editorial-product-frame { height: 164px; }
}
@media (max-width: 350px) {
  .qiulian-feed .qiulian-post .xiaoa-article.has-product-image:not(.is-full) .xiaoa-article-intro { grid-template-columns: minmax(0, 1fr) 96px; column-gap: 14px; }
  .qiulian-feed .qiulian-post .xiaoa-article.has-product-image:not(.is-full) .editorial-product-frame { height: 132px; }
  .qiulian-feed .qiulian-post:has(> .xiaoa-article.has-product-image:not(.is-full)) > header { grid-template-columns: minmax(0, 1fr) 92px; row-gap: 0; align-items: start; }
  .qiulian-feed .qiulian-post:has(> .xiaoa-article.has-product-image:not(.is-full)) > header > .qiulian-person-link { grid-column: 1; grid-row: 1 / span 2; align-self: center; }
  .qiulian-feed .qiulian-post:has(> .xiaoa-article.has-product-image:not(.is-full)) > header > .qiulian-post-menu { grid-column: 2; grid-row: 1; justify-self: end; }
  .qiulian-feed .qiulian-post:has(> .xiaoa-article.has-product-image:not(.is-full)) > header > .qiulian-inline-follow { grid-column: 2; grid-row: 2; justify-self: end; }
}
/* End feed reading polish. */

/* Tennis character: three reading surfaces, existing interactions. */
/* The feed reads as one conversation, with controls subordinate to content. */
#communityContent .qiulian-browse-home { --tennis-ink: #252b2d; --tennis-muted: #626963; --tennis-rule: #dedbd3; }
#communityContent .qiulian-browse-home .qiulian-feed-tabs { grid-template-columns: repeat(4, auto); column-gap: 4px; }
#communityContent .qiulian-browse-home .qiulian-feed-tabs button { min-height: 44px; font-weight: 500; }
#communityContent .qiulian-browse-home .qiulian-feed-tabs button[aria-pressed="true"] { font-weight: 650; }
#communityContent .qiulian-browse-home .qiulian-feed { gap: 0; }
#communityContent .qiulian-browse-home .qiulian-feed > .qiulian-post {
  margin: 0; padding: 12px 0 20px; border: 0; border-bottom: 1px solid var(--tennis-rule);
  border-radius: 0; background: transparent; box-shadow: none;
}
#communityContent .qiulian-browse-home .qiulian-feed > .qiulian-post > header { padding: 0 4px 8px; }
#communityContent .qiulian-browse-home .qiulian-post-caption { padding: 0 4px; margin-block: 0 16px; font-size: 16px; line-height: 1.8; }
#communityContent .qiulian-browse-home .qiulian-post-actions { padding: 8px 0 0; gap: 4px 16px; }
#communityContent .qiulian-browse-home .qiulian-post-actions button { font-weight: 500; }
#communityContent .qiulian-browse-home .qiulian-feed .qiulian-topic-tag { margin-inline: 4px; }
#communityContent .qiulian-browse-home .qiulian-post-photo-frame,
#communityContent .qiulian-browse-home .qiulian-post-video-frame { border-radius: 12px; overflow: hidden; }
#communityContent .qiulian-browse-home .xiaoa-article:not(.is-full) { padding: 0 4px; margin-block: 0; background: transparent; }
#communityContent .qiulian-browse-home .xiaoa-article:not(.is-full) .xiaoa-article-heading h3 { margin: 8px 0 14px; font-size: 23px; line-height: 1.45; letter-spacing: -.025em; }
#communityContent .qiulian-browse-home .xiaoa-article:not(.is-full) .xiaoa-article-heading p { font-size: 14px; line-height: 1.85; color: var(--tennis-muted); }
#communityContent .qiulian-browse-home .xiaoa-article:not(.is-full) .xiaoa-article-heading > small { margin-top: 0; color: var(--tennis-muted); font-size: 11px; letter-spacing: .015em; }
#communityContent .qiulian-browse-home .xiaoa-article.has-product-image:not(.is-full) .xiaoa-article-intro { column-gap: 20px; row-gap: 0; }
#communityContent .qiulian-browse-home .xiaoa-article:not(.is-full) .editorial-product-frame { height: 132px; border-radius: 10px; background: #fff; }
#communityContent .qiulian-browse-home .xiaoa-article:not(.is-full) .editorial-product-figure { align-self: start; }
#communityContent .qiulian-browse-home .xiaoa-article:not(.is-full) .editorial-product-figure figcaption { margin-top: 6px; line-height: 1.5; }
#communityContent .qiulian-browse-home .xiaoa-article:not(.is-full) .xiaoa-read-more { min-height: 44px; margin: 8px 0 0; padding: 8px 0; gap: 14px; font-weight: 500; }

/* An article has a lead, a reference image, then a quiet long-form measure. */
.qiulian-thread-sheet .qiulian-post:has(.xiaoa-article.is-full) { border: 0; border-radius: 0; box-shadow: none; background: #fffdf8; }
.qiulian-thread-sheet .qiulian-post .xiaoa-article.is-full { max-width: 820px; margin-inline: auto; padding: 12px 28px 24px; }
.qiulian-thread-sheet .qiulian-post .xiaoa-article.is-full .xiaoa-article-heading > small { display: block; color: #626963; font-size: 11px; line-height: 1.7; letter-spacing: .035em; }
.qiulian-thread-sheet .qiulian-post .xiaoa-article.is-full .xiaoa-article-heading h3 { margin: 12px 0 18px; font-size: clamp(27px, 3.3vw, 38px); line-height: 1.35; font-weight: 650; letter-spacing: -.035em; text-wrap: pretty; }
.qiulian-thread-sheet .qiulian-post .xiaoa-article.is-full .xiaoa-article-heading > p { margin: 0; padding-left: 14px; border-left: 2px solid #b88a3e; color: #626963; font-size: 15px; line-height: 1.85; }
.qiulian-thread-sheet .qiulian-post .xiaoa-article.is-full .editorial-product-figure { margin: 24px 0 0; }
.qiulian-thread-sheet .qiulian-post .xiaoa-article.is-full .editorial-product-frame { height: 260px; border-radius: 12px; background: #fff; }
.qiulian-thread-sheet .qiulian-post .xiaoa-article.is-full .editorial-product-frame img { object-fit: contain; }
.qiulian-thread-sheet .qiulian-post .xiaoa-article.is-full .editorial-product-figure figcaption { color: #626963; font-size: 11px; line-height: 1.7; }
.qiulian-thread-sheet .qiulian-post .xiaoa-article.is-full .xiaoa-reading-actions { margin: 22px 0 0; padding: 8px 0; border-block: 1px solid #e4e0d7; border-inline: 0; border-radius: 0; box-shadow: none; }
.qiulian-thread-sheet .qiulian-post .xiaoa-article.is-full .xiaoa-article-body { max-width: 62ch; margin: 36px auto; }
.qiulian-thread-sheet .qiulian-post .xiaoa-article.is-full .xiaoa-article-body section + section { margin-top: 36px; }
.qiulian-thread-sheet .qiulian-post .xiaoa-article.is-full .xiaoa-article-body h4 { margin: 0 0 14px; font-size: 21px; line-height: 1.5; font-weight: 600; letter-spacing: -.02em; }
.qiulian-thread-sheet .qiulian-post .xiaoa-article.is-full .xiaoa-article-body h4::before { content: ""; display: block; width: 24px; height: 2px; margin-bottom: 12px; background: #b88a3e; }
.qiulian-thread-sheet .qiulian-post .xiaoa-article.is-full .xiaoa-article-body p { font-size: 16px; line-height: 1.95; color: #343a38; margin-bottom: 18px; }
.qiulian-thread-sheet .qiulian-post .xiaoa-article.is-full .xiaoa-article-sources { border-color: #dedbd3; }
.qiulian-thread-sheet .qiulian-post .xiaoa-article.is-full[lang="en"] .xiaoa-article-heading h3 { font-family: Georgia, "Times New Roman", serif; font-weight: 500; letter-spacing: -.025em; }

/* A personal equipment record, not a catalog tile or a parameter dashboard. */
body.is-profile-detail-bag .player-bag-record:not(.is-projection) { margin-top: 22px; padding: 0 0 16px; border-bottom: 1px solid #dedbd3; }
body.is-profile-detail-bag .player-bag-record:not(.is-projection) > header { min-height: 148px; grid-template-columns: 92px minmax(0, 1fr); gap: 20px; padding: 20px; border-radius: 12px; background: #f0ece3; }
body.is-profile-detail-bag .player-bag-record:not(.is-projection) .player-bag-racket-sleeve { width: 92px; height: 124px; background: transparent; border-radius: 0; }
body.is-profile-detail-bag .player-bag-record:not(.is-projection) .player-bag-racket-mark { width: 78px; height: 116px; color: #505b55; }
body.is-profile-detail-bag .player-bag-record:not(.is-projection) .player-bag-record-title > strong { font-size: 25px; line-height: 1.4; font-weight: 600; letter-spacing: -.025em; }
body.is-profile-detail-bag .player-bag-record:not(.is-projection) .player-bag-visibility { color: #5c635e; font-size: 12px; }
body.is-profile-detail-bag .player-bag-record:not(.is-projection) .player-bag-note { margin: 24px 4px 0; }
body.is-profile-detail-bag .player-bag-record:not(.is-projection) .player-bag-note > small { color: #626963; font-size: 12px; }
body.is-profile-detail-bag .player-bag-record:not(.is-projection) .player-bag-impressions { margin-top: 8px; font-size: 16px; line-height: 1.85; }
body.is-profile-detail-bag .player-bag-record:not(.is-projection) dl { margin: 22px 4px 0; padding-top: 18px; gap: 18px; }
body.is-profile-detail-bag .player-bag-record:not(.is-projection) dt { font-size: 12px; color: #626963; }
body.is-profile-detail-bag .player-bag-record:not(.is-projection) dd { font-variant-numeric: tabular-nums; line-height: 1.65; }
body.is-profile-detail-bag .player-bag-record:not(.is-projection) .player-bag-actions { margin: 14px 4px 0; }
body.is-profile-detail-bag #playerBagForm { gap: 24px; }
body.is-profile-detail-bag #playerBagForm > label > span { font-size: 14px; }
body.is-profile-detail-bag #playerBagForm :is(input:not([type="checkbox"]), textarea, select) { border-color: #d4d1c8; border-radius: 9px; background: #fffefa; }
body.is-profile-detail-bag .player-bag-empty { margin-top: 20px; padding: 36px 20px; border-radius: 12px; background: #f4f0e7; }

@media (min-width: 760px) {
  #communityContent .qiulian-browse-home .qiulian-feed > .qiulian-post { padding-block: 28px; }
  #communityContent .qiulian-browse-home .xiaoa-article:not(.is-full) .xiaoa-article-heading h3 { font-size: 27px; }
  .qiulian-thread-sheet .qiulian-post .xiaoa-article.is-full.has-product-image .xiaoa-article-intro { display: grid; grid-template-columns: minmax(0, 1fr) 250px; gap: 32px; align-items: center; }
  .qiulian-thread-sheet .qiulian-post .xiaoa-article.is-full.has-product-image .editorial-product-figure { margin: 0; }
  .qiulian-thread-sheet .qiulian-post .xiaoa-article.is-full .editorial-product-frame { height: 290px; }
}
@media (max-width: 600px) {
  .qiulian-thread-sheet .qiulian-post .xiaoa-article.is-full { padding-inline: 20px; }
  body.is-profile-detail-bag .player-bag-record:not(.is-projection) > header { grid-template-columns: 76px minmax(0, 1fr); gap: 16px; padding: 16px; }
  body.is-profile-detail-bag .player-bag-record:not(.is-projection) .player-bag-racket-sleeve { width: 76px; }
  body.is-profile-detail-bag .player-bag-record:not(.is-projection) .player-bag-record-title > strong { font-size: 22px; }
  body.is-profile-detail-bag .player-bag-record:not(.is-projection) dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.is-profile-detail-bag .player-bag-record:not(.is-projection) dl > div:first-child { grid-column: 1 / -1; }
}
@media (max-width: 350px) {
  #communityContent .qiulian-browse-home .xiaoa-article:not(.is-full) .xiaoa-article-heading h3 { font-size: 21px; }
  #communityContent .qiulian-browse-home .xiaoa-article.has-product-image:not(.is-full) .xiaoa-article-intro { column-gap: 14px; }
  .qiulian-thread-sheet .qiulian-post .xiaoa-article.is-full { padding-inline: 16px; }
  .qiulian-thread-sheet .qiulian-post .xiaoa-article.is-full .xiaoa-article-heading h3 { font-size: 25px; }
  .qiulian-thread-sheet .qiulian-post .xiaoa-article.is-full .editorial-product-frame { height: 228px; }
  body.is-profile-detail-bag .player-bag-record:not(.is-projection) > header { grid-template-columns: 62px minmax(0, 1fr); gap: 12px; padding: 14px; }
  body.is-profile-detail-bag .player-bag-record:not(.is-projection) .player-bag-racket-sleeve { width: 62px; }
  body.is-profile-detail-bag .player-bag-record:not(.is-projection) .player-bag-racket-mark { width: 60px; }
  body.is-profile-detail-bag .player-bag-record:not(.is-projection) .player-bag-record-title > strong { font-size: 20px; }
}
/* End tennis character. */

/* Feed preview: browse here, read in the existing detail. */
.qiulian-feed .qiulian-post.is-post-preview .xiaoa-article:not(.is-full) { margin: 0; padding: 0 4px; }
#communityContent .qiulian-feed .qiulian-post.is-post-preview .xiaoa-article-intro { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto min-content 1fr; gap: 8px 16px; align-items: start; }
#communityContent .qiulian-feed .qiulian-post.is-post-preview .has-product-image .xiaoa-article-intro { grid-template-columns: minmax(0, 1fr) 104px; }
#communityContent .qiulian-feed .qiulian-post.is-post-preview .xiaoa-article-heading { display: contents; }
#communityContent .qiulian-feed .qiulian-post.is-post-preview .xiaoa-article-heading > small { grid-column: 1 / -1; margin: 0; font-size: 10px; line-height: 1.7; }
#communityContent .qiulian-feed .qiulian-post.is-post-preview .xiaoa-article-heading h3 { grid-column: 1; grid-row: 2; min-width: 0; margin: 0; font-size: 19px; line-height: 1.45; letter-spacing: -.02em; }
#communityContent .qiulian-feed .qiulian-post.is-post-preview .xiaoa-title-link { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; min-height: 44px; max-height: none; font-size: inherit; line-height: inherit; }
#communityContent .qiulian-feed .qiulian-post.is-post-preview .xiaoa-article-heading > p { grid-column: 1; grid-row: 3; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; margin: 0; font-size: 14px; line-height: 1.75; }
#communityContent .qiulian-feed .qiulian-post.is-post-preview .editorial-product-figure { grid-column: 2; grid-row: 2 / span 2; margin: 0; width: 100%; max-width: none; }
#communityContent .qiulian-feed .qiulian-post.is-post-preview .editorial-product-frame { height: 112px; border-radius: 8px; }
#communityContent .qiulian-feed .qiulian-post.is-post-preview .editorial-product-figure figcaption { margin: 0; padding: 0; }
#communityContent .qiulian-feed .qiulian-post.is-post-preview .editorial-product-figure figcaption > a { min-height: 44px; font-size: 10px; }
#communityContent .qiulian-feed .qiulian-post.is-post-preview .qiulian-preview-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 2px 4px 0; }
#communityContent .qiulian-feed .qiulian-post.is-post-preview .qiulian-preview-meta .qiulian-topic-tag { min-width: 44px; min-height: 44px; max-width: calc(100% - 112px); margin: 0; font-size: 12px; }
#communityContent .qiulian-feed .qiulian-post.is-post-preview .qiulian-preview-meta .xiaoa-read-more { width: auto; min-width: 44px; min-height: 44px; margin: 0 0 0 auto; padding: 8px 0 8px 8px; border: 0; border-radius: 4px; background: transparent; color: #252b2d; gap: 8px; font-size: 13px; font-weight: 500; }
.qiulian-post.is-post-preview .qiulian-caption-preview { padding: 0 4px; }
.qiulian-post.is-post-preview .qiulian-caption-link { display: block; width: 100%; min-height: 44px; padding: 0; border: 0; border-radius: 0; background: transparent; color: inherit; text-align: start; font: inherit; }
#communityContent .qiulian-feed .qiulian-post.is-post-preview .qiulian-caption-link .qiulian-post-caption { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; margin: 0; padding: 0; font-size: 16px; line-height: 1.75; white-space: pre-wrap; overflow-wrap: anywhere; }
.qiulian-post.is-post-preview .qiulian-caption-more { display: flex; align-items: center; gap: 8px; min-height: 36px; color: #626963; font-size: 13px; }
.qiulian-post.is-post-preview :is(.qiulian-caption-link, .xiaoa-read-more):focus-visible { outline: 2px solid #876323; outline-offset: 3px; }
.qiulian-thread-sheet .qiulian-post.is-post-detail > .qiulian-post-caption { white-space: pre-wrap; overflow-wrap: anywhere; }
.qiulian-thread-sheet .qiulian-post.is-post-detail > .qiulian-post-caption:focus { outline: none; }
@media (min-width: 760px) {
  #communityContent .qiulian-feed .qiulian-post.is-post-preview .has-product-image .xiaoa-article-intro { grid-template-columns: minmax(0, 1fr) 120px; }
  #communityContent .qiulian-feed .qiulian-post.is-post-preview .xiaoa-article-heading h3 { font-size: 22px; }
  #communityContent .qiulian-feed .qiulian-post.is-post-preview .editorial-product-frame { height: 128px; }
}
/* End feed preview. */

/* Feed finesse: identity, model names and measured previews. */
.qiulian-post.is-post-preview .qiulian-caption-more[hidden] { display: none; }
#communityContent .qiulian-feed .qiulian-post.is-post-preview.is-editorial .qiulian-author-name { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 8px; row-gap: 0; }
#communityContent .qiulian-feed .qiulian-post.is-post-preview.is-editorial .qiulian-author-name .xiaoa-editor-badge { display: inline; margin: 0; padding: 0; border: 0; background: transparent; color: #626963; font-size: 11px; line-height: 1.6; font-weight: 400; }
#communityContent .qiulian-feed .qiulian-post.is-post-preview.is-editorial .qiulian-person-link > span:last-child > small { margin-top: 3px; font-size: 11px; line-height: 1.65; }
#communityContent .qiulian-feed .qiulian-post.is-post-preview .xiaoa-title-link.has-model-title { display: block; overflow: visible; -webkit-line-clamp: unset; }
.xiaoa-title-model { display: block; overflow-wrap: anywhere; }
.xiaoa-title-question { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1; overflow: hidden; margin-top: 4px; color: #626963; font-family: inherit; font-size: 14px; line-height: 1.65; font-weight: 400; letter-spacing: 0; }
#communityContent .qiulian-feed .qiulian-post.is-post-preview .qiulian-preview-meta { flex-wrap: wrap; row-gap: 0; }
#communityContent .qiulian-feed .qiulian-post.is-post-preview .qiulian-preview-meta .qiulian-topic-tag { max-width: 100%; }
@media (max-width: 350px) {
  #communityContent .qiulian-feed .qiulian-post.is-post-preview.is-editorial > header { grid-template-columns: minmax(0, 1fr) 44px; column-gap: 12px; }
  #communityContent .qiulian-feed .qiulian-post.is-post-preview.is-editorial > header > .qiulian-person-link { grid-row: 1; }
  #communityContent .qiulian-feed .qiulian-post.is-post-preview.is-editorial > header > .qiulian-inline-follow { grid-column: 1 / -1; grid-row: 2; justify-self: end; }
}
/* End feed finesse. */

/* Feed rhythm: compact reading, bounded social media. */
/* Use the same rhythm in discovery, filtered results and saved posts. */
#communityContent .qiulian-feed > .qiulian-post.is-post-preview { padding-block: 16px 12px; }
#communityContent .qiulian-feed > .qiulian-post.is-post-preview > header { padding-inline: 4px; }
#communityContent .qiulian-feed .qiulian-post.is-post-preview .qiulian-post-actions { padding: 0; gap: 4px 12px; }
#communityContent .qiulian-feed .qiulian-post.is-post-preview .qiulian-post-actions .qiulian-bookmark { margin-left: auto; }
#communityContent .qiulian-feed .qiulian-post.is-post-preview > .qiulian-topic-tag { margin-inline: 4px; }
#communityContent .qiulian-feed .qiulian-post.is-post-preview .qiulian-preview-meta { margin-top: 0; }
/* Reserve a stable preview before lazy images or video metadata arrive.
   Contain preserves the complete picture; the existing detail is unchanged. */
#communityContent .qiulian-feed .qiulian-post.is-post-preview :is(.qiulian-post-photo, .qiulian-post-video) {
  width: 100%; height: auto; aspect-ratio: 1; max-height: 480px; object-fit: contain;
}
#communityContent .qiulian-feed .qiulian-post.is-post-preview :is(.qiulian-post-photo-frame, .qiulian-post-video-frame) {
  border-radius: 10px; overflow: hidden;
}
@media (min-width: 760px) {
  #communityContent .qiulian-feed > .qiulian-post.is-post-preview { padding-block: 22px 16px; }
}
/* End feed rhythm. */

/* Feed editorial: questions first, media in proportion. */
/* Model/version remains complete, but the reader's question takes priority. */
#communityContent .qiulian-feed .is-post-preview .xiaoa-title-model {
  color: #626963; font-size: 12px; line-height: 1.6; font-weight: 500; letter-spacing: 0;
}
#communityContent .qiulian-feed .is-post-preview .xiaoa-title-question {
  margin-top: 4px; color: #252b2d; font-size: 18px; line-height: 1.5; font-weight: 600;
  -webkit-line-clamp: 2; letter-spacing: -.015em;
}
#communityContent .qiulian-feed .qiulian-post.is-post-preview .has-product-image .xiaoa-article-heading > p {
  font-size: 13px; line-height: 1.7;
}
#communityContent .qiulian-feed .qiulian-post.is-post-preview :is(.qiulian-post-photo, .qiulian-post-video) {
  aspect-ratio: var(--qiulian-media-ratio, 1);
}
@media (min-width: 760px) {
  #communityContent .qiulian-feed .is-post-preview .xiaoa-title-question { font-size: 20px; }
}
/* End feed editorial. */

/* Multi-photo: compact previews, complete pictures on demand. */
#communityContent .qiulian-photo-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 4px; margin: 12px 0; }
#communityContent .qiulian-photo-grid[data-photo-count="1"] { grid-template-columns: minmax(0,1fr); }
#communityContent .qiulian-photo-grid:is([data-photo-count="2"],[data-photo-count="4"]) { grid-template-columns: repeat(2,minmax(0,1fr)); }
#communityContent .qiulian-photo-open { display:block; min-width:0; min-height:44px; padding:0; border:0; border-radius:8px; overflow:hidden; background:#eae6dd; cursor:zoom-in; }
#communityContent .qiulian-photo-grid .qiulian-post-photo-frame { margin:0; height:100%; }
#communityContent .qiulian-post .qiulian-photo-grid:not([data-photo-count="1"]) .qiulian-post-photo { width:100%; height:100%; aspect-ratio:1; max-height:none; object-fit:cover; border-radius:0; }
#communityContent .qiulian-photo-grid:not([data-photo-count="1"]) .qiulian-photo-open { aspect-ratio:1; }
#communityContent .qiulian-photo-grid:not([data-photo-count="1"]) .qiulian-post-photo-fallback { font-size:11px; padding:4px; }
#communityContent .qiulian-photo-picker.has-photo { display:flex; flex-direction:column; align-items:stretch; height:auto; min-height:0; padding:0; border:0; border-radius:0; background:transparent; }
#communityContent .qiulian-photo-picker.has-photo > div { position:static; background:transparent; backdrop-filter:none; padding:0; border-radius:0; flex-wrap:wrap; }
#communityContent .qiulian-photo-picker.has-photo > .qiulian-photo-draft { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; width:100%; }
#communityContent .qiulian-photo-draft > div { min-width:0; }
#communityContent .qiulian-photo-draft img { display:block; width:100%; height:auto; min-height:0; max-height:none; aspect-ratio:1; object-fit:cover; border-radius:7px; }
#communityContent .qiulian-photo-draft nav { display:flex; justify-content:space-between; gap:2px; }
#communityContent .qiulian-photo-draft button { min-width:44px; min-height:44px; padding:4px; }
#communityContent .qiulian-photo-picker .qiulian-photo-draft button { background:transparent; color:#454e49; }
#communityContent .qiulian-photo-draft select { flex:1; min-width:0; min-height:44px; border:0; background:transparent; color:#454e49; padding:4px; }
#communityContent .qiulian-photo-draft > div > span { font-size:12px; color:#626963; }
@media(min-width:600px) { #communityContent .qiulian-photo-picker.has-photo > .qiulian-photo-draft { grid-template-columns:repeat(3,minmax(0,1fr)); } }
.qiulian-photo-gallery { width:100vw; max-width:none; height:100dvh; max-height:none; margin:0; padding:16px; border:0; border-radius:0; color:#f7f2e8; background:#191d1e; box-sizing:border-box; }
.qiulian-photo-gallery[open] { display:flex; flex-direction:column; gap:12px; }
.qiulian-photo-gallery::backdrop { background:#191d1e; }
.qiulian-photo-gallery :is(header,footer) { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-shrink:0; }
.qiulian-photo-gallery header { padding-top:env(safe-area-inset-top); }
.qiulian-photo-gallery footer { padding-bottom:env(safe-area-inset-bottom); }
.qiulian-photo-gallery button { min-width:44px; min-height:44px; border:1px solid #677170; border-radius:8px; background:transparent; color:#f7f2e8; padding:8px 14px; }
.qiulian-photo-gallery button:disabled { opacity:.4; }
.qiulian-gallery-image { flex:1; min-height:0; display:flex; align-items:center; justify-content:center; overflow:auto; touch-action:pan-y pinch-zoom; }
.qiulian-gallery-image img { display:block; width:100%; height:100%; object-fit:contain; }
.qiulian-gallery-image.is-zoomed { display:block; touch-action:auto; }
.qiulian-gallery-image.is-zoomed img { width:200%; height:200%; max-width:none; object-fit:contain; }
body:has(.qiulian-photo-gallery[open]) { overflow:hidden; }
#communityContent .qiulian-preview-meta { display:flex; flex-wrap:wrap; align-items:center; gap:4px 14px; }
#communityContent .qiulian-preview-meta .xiaoa-read-more { margin-left:auto; }
#communityContent .qiulian-source-disclosure { min-width:0; font-size:12px; color:#626963; }
#communityContent .qiulian-source-disclosure > summary { display:flex; align-items:center; min-height:44px; cursor:pointer; list-style:none; }
#communityContent .qiulian-source-disclosure > summary::after { content:'⌄'; margin-left:5px; }
#communityContent .qiulian-source-disclosure[open] { flex-basis:100%; order:3; }
#communityContent .qiulian-source-disclosure > div { padding:10px 12px; border-left:2px solid #d1c9ba; overflow-wrap:anywhere; }
#communityContent .qiulian-source-disclosure :is(p,small) { display:block; margin:4px 0; }
#communityContent .qiulian-source-disclosure a { display:flex; align-items:center; min-height:44px; color:#454e49; text-decoration:underline; }
#communityContent .is-post-preview .xiaoa-article-heading h3 { margin-top:0; }
.social-photo-review-set { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:16px; }
.social-photo-review-set img { width:100%; max-height:360px; object-fit:contain; }
.social-photo-review-set label > span { display:flex; align-items:center; min-height:44px; gap:8px; }
/* End multi-photo. */

/* Social surfaces: a quiet editor, a person-first profile, and a legible invite.
   Presentation only. Keep existing audience, consent, drafts and chat gates. */
#communityContent :is(.qiulian-thread-sheet, .qiulian-person-sheet) {
  box-sizing: border-box;
  width: 100%;
  max-width: 680px;
  margin-inline: auto;
  padding: 12px 20px 28px;
  border: 0;
  border-radius: 0;
  background: transparent;
}
#communityContent :is(.qiulian-thread-sheet, .qiulian-person-sheet) > .app-detail-back {
  min-height: 44px;
  margin: 0 0 18px -8px;
  padding: 8px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  font-size: 13px;
}
#communityContent .qiulian-thread-sheet > .is-post-detail {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
#communityContent .qiulian-thread-sheet .is-post-detail > header { padding: 0 0 20px; }
#communityContent .qiulian-thread-sheet .is-post-detail > .qiulian-post-caption {
  margin: 0 0 22px;
  padding: 0;
  font-size: 17px;
  line-height: 1.85;
  font-weight: 400;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
#communityContent .qiulian-thread-sheet .qiulian-comments {
  margin: 16px 0 0;
  padding: 20px 0 0;
  border-top: 1px solid var(--al-line);
  background: transparent;
}
#communityContent .qiulian-thread-sheet .qiulian-comments > article { padding: 0 0 18px; gap: 12px; }
#communityContent .qiulian-thread-sheet .qiulian-comments article p > span { font-size: 14px; line-height: 1.8; }
#communityContent .qiulian-thread-sheet .qiulian-comments article p > small { margin-top: 6px; }
#communityContent .qiulian-thread-sheet .qiulian-comments form { gap: 8px; }
#communityContent .qiulian-thread-sheet .qiulian-comments form :is(input, button) { min-height: 44px; border-radius: 8px; }
#communityContent .qiulian-player-profile > header {
  justify-content: flex-start;
  gap: 18px;
  padding: 0;
  border: 0;
}
#communityContent .qiulian-player-profile > header > div:last-child { min-width: 0; }
#communityContent .qiulian-player-profile .qiulian-person-avatar { flex: 0 0 76px; width: 76px; height: 88px; border-radius: 10px; }
#communityContent .qiulian-player-profile > header h3 { font-size: 24px; line-height: 1.3; font-weight: 650; overflow-wrap: anywhere; }
#communityContent .qiulian-player-profile > header p { margin: 7px 0 0; }
#communityContent .qiulian-player-profile > header small { font-size: 12px; font-weight: 400; color: var(--al-ink-soft); }
#communityContent .qiulian-player-profile .qiulian-person-bio { margin: 22px 0 0; font-size: 15px; line-height: 1.8; white-space: pre-wrap; overflow-wrap: anywhere; }
#communityContent .qiulian-player-profile .qiulian-person-actions { display: flex; flex-wrap: wrap; gap: 10px; padding: 0; margin: 22px 0 26px; }
#communityContent .qiulian-player-profile .qiulian-person-actions button { flex: 1 1 110px; min-height: 46px; border-radius: 8px; padding: 10px 12px; font-size: 14px; font-weight: 600; }
#communityContent .qiulian-player-profile .qiulian-person-actions [aria-pressed="true"] { background: transparent; border-color: var(--al-line); color: var(--al-graphite); }
#communityContent .qiulian-player-profile .qiulian-person-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 20px; margin: 0; padding: 24px 0; border-top: 1px solid var(--al-line); }
#communityContent .qiulian-player-profile .qiulian-person-facts > div { padding: 0; border: 0; min-width: 0; }
#communityContent .qiulian-player-profile .qiulian-person-facts > p { grid-column: 1 / -1; margin: 0; font-size: 14px; line-height: 1.8; }
#communityContent .qiulian-player-profile .qiulian-person-facts dt { font-size: 12px; font-weight: 400; line-height: 1.5; }
#communityContent .qiulian-player-profile .qiulian-person-facts dd { margin: 5px 0 0; font-size: 15px; line-height: 1.65; overflow-wrap: anywhere; }
#communityContent .qiulian-player-profile .qiulian-person-privacy { margin: 20px 0 0; font-size: 12px; line-height: 1.7; }
#communityContent .qiulian-player-profile .qiulian-person-more > summary { min-height: 44px; font-size: 12px; }
#communityContent .qiulian-player-profile .player-public-bag { padding-top: 24px; border-top: 1px solid var(--al-line); }
#communityContent .qiulian-player-profile .player-public-bag > h4 { margin: 0 0 16px; font-size: 16px; }

#communityContent .qiulian-composer-collapsible[open] { border-color: var(--al-line); box-shadow: none; }
#communityContent .qiulian-browse-home .qiulian-composer-collapsible[open] > summary { background: transparent; }
#communityContent #qiulianPostForm { gap: 14px; padding: 0 16px 18px; }
#communityContent #qiulianPostForm .qiulian-kind-tabs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0 4px; padding: 0; border-bottom: 1px solid var(--al-line); border-radius: 0; }
#communityContent #qiulianPostForm .qiulian-kind-tabs button { min-width: 0; min-height: 44px; padding: 8px 2px; border: 0; border-bottom: 2px solid transparent; border-radius: 0; background: transparent; color: var(--al-ink-soft); font-size: 12px; font-weight: 500; overflow-wrap: anywhere; white-space: normal; }
#communityContent #qiulianPostForm .qiulian-kind-tabs button.is-active { border-bottom-color: var(--al-graphite); color: var(--al-graphite); font-weight: 650; }
#communityContent #qiulianPostForm .qiulian-caption-field textarea { min-height: 132px; padding: 12px 2px; border: 1px solid transparent; border-radius: 4px; background: transparent; font-size: 16px; font-weight: 400; line-height: 1.75; box-shadow: none; }
#communityContent #qiulianPostForm .qiulian-caption-field textarea::placeholder { font-weight: 400; color: #717771; opacity: 1; }
#communityContent #qiulianPostForm .qiulian-compose-options { margin: 0; }
#communityContent #qiulianPostForm .qiulian-compose-options > summary { font-size: 13px; font-weight: 500; }
#communityContent #qiulianPostForm .qiulian-compose-inspiration { margin: 0; }
#communityContent #qiulianPostForm .qiulian-compose-inspiration > summary { min-height: 44px; display: flex; align-items: center; font-size: 12px; }
#communityContent #qiulianPostForm .qiulian-composer-footer { display: flex; flex-direction: row; flex-wrap: wrap; align-items: flex-end; gap: 12px; padding-top: 16px; border-top: 1px solid var(--al-line); }
#communityContent #qiulianPostForm .qiulian-composer-footer > label { flex: 1 1 150px; min-width: 0; max-width: none; display: grid; grid-template-columns: 1fr; gap: 6px; margin: 0; }
#communityContent #qiulianPostForm .qiulian-composer-footer > label > span { font-size: 12px; text-align: left; }
#communityContent #qiulianPostForm .qiulian-composer-footer select { width: 100%; min-height: 44px; height: 44px; margin: 0; padding: 8px 28px 8px 10px; font-size: 14px; border-radius: 8px; background-color: transparent; }
#communityContent #qiulianPostForm .qiulian-composer-footer > button { flex: 0 1 100px; width: auto; min-width: 72px; min-height: 44px; margin: 0; padding: 10px 18px; border-radius: 8px; font-size: 14px; }
#communityContent #qiulianPostForm .qiulian-audience-note { margin: 0; padding: 0; background: transparent; border: 0; font-size: 12px; line-height: 1.65; }
#communityContent #qiulianPostForm .qiulian-privacy-hint { font-size: 12px; line-height: 1.65; }
#communityContent #qiulianPostForm #qiulianPublishFeedback { margin: 0; padding: 10px 12px; border-left: 3px solid #9a482c; background: #fff3ec; color: #803b28; font-size: 14px; line-height: 1.65; overflow-wrap: anywhere; scroll-margin-block: 100px; }

/* Restrict the dialog changes to invitations: accepted-invite chat is untouched. */
#communityPracticeDialog:has(#communityPracticeForm) { width: min(500px, calc(100% - 24px)); background: var(--al-paper, #fffdf8); border-radius: 14px; }
#communityPracticeDialog:has(#communityPracticeForm) .community-practice-shell > header { padding: 14px 20px; background: var(--al-paper, #fffdf8); border: 0; }
#communityPracticeDialog:has(#communityPracticeForm) .community-practice-shell > header small { display: none; }
#communityPracticeDialog:has(#communityPracticeForm) .community-practice-shell > header h2 { margin: 0; font-size: 22px; font-weight: 650; }
#communityPracticeDialog:has(#communityPracticeForm) .community-practice-shell > header button { border: 0; border-radius: 8px; background: transparent; }
#communityPracticeDialog:has(#communityPracticeForm) #communityPracticeContent { gap: 16px; padding: 0 20px 24px; }
#communityPracticeDialog:has(#communityPracticeForm) .community-practice-person { grid-template-columns: 48px minmax(0, 1fr); gap: 12px; }
#communityPracticeDialog:has(#communityPracticeForm) .community-practice-person > div { height: 54px; border-radius: 8px; background: var(--al-ivory); }
#communityPracticeDialog:has(#communityPracticeForm) .community-practice-person strong { font-size: 16px; font-weight: 600; overflow-wrap: anywhere; }
#communityPracticeDialog:has(#communityPracticeForm) :is(.community-practice-person span, .community-practice-dialog-hint) { font-size: 12px; line-height: 1.65; color: var(--al-ink-soft); }
#communityPracticeDialog #communityPracticeForm { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; }
#communityPracticeDialog #communityPracticeForm > label { gap: 7px; margin: 0; font-size: 13px; font-weight: 500; min-width: 0; }
#communityPracticeDialog #communityPracticeForm > label:has([name="proposedDate"]),
#communityPracticeDialog #communityPracticeForm > label:has([name="goal"]) { grid-column: 1 / -1; }
#communityPracticeDialog #communityPracticeForm :is(.community-practice-venue-field, .community-practice-note),
#communityPracticeDialog #communityPracticeForm > p,
#communityPracticeDialog #communityPracticeForm > div { grid-column: 1 / -1; }
#communityPracticeDialog #communityPracticeForm :is(input, select, textarea) { min-width: 0; max-width: 100%; box-sizing: border-box; min-height: 46px; padding: 10px; font-size: 16px; font-weight: 400; border-radius: 8px; background: transparent; color: var(--al-graphite); }
#communityPracticeDialog #communityPracticeForm textarea { min-height: 74px; }
#communityPracticeDialog #communityPracticeForm .practice-timezone { font-size: 12px; font-weight: 400; line-height: 1.6; color: var(--al-ink-soft); }
#communityPracticeDialog #communityPracticeForm #communityPracticeMessage { font-size: 13px; line-height: 1.6; }
#communityPracticeDialog #communityPracticeForm #communityPracticeMessage:empty { display: none; }
#communityPracticeDialog #communityPracticeForm button { min-height: 46px; font-size: 14px; font-weight: 600; }
#communityPracticeDialog #communityPracticeForm button[type="submit"] { background: var(--al-graphite); border-color: var(--al-graphite); color: var(--al-paper, #fffdf8); }
#communityPracticeDialog #communityPracticeForm button[type="button"] { background: transparent; }
@media (max-width: 360px) {
  #communityContent :is(.qiulian-thread-sheet, .qiulian-person-sheet) { padding-inline: 16px; }
  #communityContent #qiulianPostForm { padding-inline: 12px; }
  #communityContent #qiulianPostForm .qiulian-composer-footer > label { flex-basis: 140px; }
  #communityContent #qiulianPostForm .qiulian-composer-footer > button { flex-basis: 80px; }
  #communityPracticeDialog:has(#communityPracticeForm) #communityPracticeContent { padding-inline: 16px; }
}
/* A sent invitation needs acknowledgement, not a training celebration. */
.app-feedback.is-compact .app-feedback-card { grid-template-columns: minmax(0, 1fr) 44px; min-height: 72px; padding: 12px 12px 12px 18px; border: 0; border-radius: 10px; background: var(--al-graphite, #252b2d); box-shadow: 0 4px 20px rgb(37 43 45 / 12%); }
.app-feedback.is-compact :is(.app-feedback-mark, .app-feedback-particles, .app-feedback-copy small, .app-feedback-sound) { display: none; }
.app-feedback.is-compact .app-feedback-copy strong { font-size: 15px; font-weight: 600; line-height: 1.5; }
.app-feedback.is-compact .app-feedback-copy p { font-size: 13px; font-weight: 400; line-height: 1.6; }
.app-feedback.is-compact .app-feedback-actions { justify-content: center; }
.app-feedback.is-compact .app-feedback-close { width: 44px; height: 44px; color: var(--al-paper, #fffdf8); }
/* End social surfaces. */

/* Back navigation: remove stacked page offsets, not the safe-area header.
   Main-page controls stay in normal flow and keep their original handlers. */
#mainContent .app-detail-back {
  min-width: 44px;
  min-height: 44px;
  padding: 8px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  box-shadow: none;
}
#mainContent .app-detail-back em { font-size: 14px; line-height: 1.5; font-weight: 500; }
#mainContent .app-detail-back:focus-visible { outline: 2px solid #876323; outline-offset: 2px; }
#community:has(#communityContent .app-detail-back) { margin-top: 8px; padding-top: 0; }
#communityContent :is(.qiulian-thread-sheet, .qiulian-person-sheet):has(> .app-detail-back) { padding-top: 0; }
#communityContent :is(.qiulian-thread-sheet, .qiulian-person-sheet) > .app-detail-back { margin-bottom: 12px; }
#communityContent .qiulian-private-feed:has(> .app-detail-back) { padding-top: 0; }
body.is-profile-detail-open #my { margin-top: 8px; }
body.is-profile-detail-open #my > .my-space-title { display: none !important; }
body.is-profile-detail-open .profile-detail-header .app-detail-back { margin-bottom: 0; }
#analyze.is-training-workspace-open { margin-top: 0; }
#analyze.is-training-workspace-open > :is(#trainingSessionSetup, #analysisForm, #report) { padding-top: 8px; }
/* End back navigation. */

/* Icon-only page return. Keep the localized destination as accessible text. */
#mainContent .app-detail-back {
  position: relative;
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
  padding: 0;
  justify-content: center;
  gap: 0;
}
#mainContent .app-detail-back > span { font-size: 20px; line-height: 1; }
#mainContent .app-detail-back > em {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
/* End icon-only return. */

/* My tennis plans: a quiet agenda, not a dashboard. Matches only. */
#communityContent .is-practice-agenda-heading { display: block; width: calc(100% - 32px); max-width: 680px; margin: 0 auto 8px; padding: 0; border: 0; text-align: left; }
#communityContent .is-practice-agenda-heading h3 { margin: 0; font-size: 24px; line-height: 1.35; letter-spacing: -.025em; }
#communityContent .is-practice-agenda { max-width: 680px; width: calc(100% - 32px); margin: 0 auto; padding: 0; gap: 22px; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
#communityContent .is-practice-agenda .community-practice-section { min-width: 0; overflow: visible; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
#communityContent .is-practice-agenda .community-practice-section > summary {
  justify-content: flex-start; gap: 8px; min-height: 44px; padding: 0; border: 0;
  color: var(--al-graphite); font-size: 14px; line-height: 1.5; font-weight: 650;
}
#communityContent .is-practice-agenda .community-practice-section > summary span { display: inline; min-width: 0; height: auto; padding: 0; border-radius: 0; background: transparent; color: var(--al-muted); font-size: 12px; font-weight: 400; }
#communityContent .is-practice-agenda .community-practice-section > summary::after { content: ""; width: 6px; height: 6px; margin: 0 4px 4px auto; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); }
#communityContent .is-practice-agenda .community-practice-section[open] > summary::after { margin-bottom: -2px; transform: rotate(225deg); }
#communityContent .is-practice-agenda .community-practice-list { padding: 0; gap: 0; }
#communityContent .is-practice-agenda .community-practice-card {
  grid-template-columns: 40px minmax(0, 1fr); gap: 12px; padding: 18px 0;
  border: 0; border-bottom: 1px solid var(--al-line); border-radius: 0; background: transparent; box-shadow: none;
}
#communityContent .is-practice-agenda .community-practice-avatar { width: 40px; height: 44px; border-radius: 50%; background: transparent; }
#communityContent .is-practice-agenda .community-practice-copy { gap: 7px; }
#communityContent .is-practice-agenda .community-practice-copy header { flex-wrap: wrap; align-items: baseline; gap: 3px 12px; }
#communityContent .is-practice-agenda .community-practice-copy header strong { color: var(--al-graphite); font-size: 16px; line-height: 1.5; font-weight: 650; overflow-wrap: anywhere; }
#communityContent .is-practice-agenda .community-practice-copy header span { color: var(--al-muted); font-size: 12px; font-weight: 400; white-space: normal; }
#communityContent .is-practice-agenda .community-practice-copy > p { gap: 3px 12px; }
#communityContent .is-practice-agenda .community-practice-copy > p > * { padding: 0; border-radius: 0; background: transparent; color: var(--al-muted); font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
#communityContent .is-practice-agenda .community-practice-copy > p > b { flex-basis: 100%; color: var(--al-graphite); font-size: 16px; font-weight: 550; }
#communityContent .is-practice-agenda .community-practice-copy > .community-practice-venue { color: var(--al-graphite); font-size: 14px; line-height: 1.6; font-weight: 400; overflow-wrap: anywhere; }
#communityContent .is-practice-agenda .community-practice-copy > small { color: var(--al-muted); font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
#communityContent .is-practice-agenda .community-practice-response { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 5px; }
#communityContent .is-practice-agenda :is(.community-practice-response button, .community-practice-message) { min-width: 64px; min-height: 44px; max-width: 100%; width: auto; justify-self: start; padding: 10px 16px; border: 1px solid var(--al-line); border-radius: 8px; background: transparent; color: var(--al-graphite); font-size: 14px; line-height: 1.5; font-weight: 550; white-space: normal; }
#communityContent .is-practice-agenda :is(.community-practice-response button:first-child, [data-community-message-invite]) { border-color: var(--al-graphite); background: var(--al-graphite); color: var(--al-ivory); }
#communityContent .is-practice-agenda .practice-completion { margin: 8px 0 0; padding: 12px 0 0; border: 0; border-top: 1px solid var(--al-line); border-radius: 0; background: transparent; }
#communityContent .is-practice-agenda .practice-completion > strong { font-weight: 550; }
#communityContent .is-practice-agenda .community-practice-copy > .practice-agenda-note { display: block; margin-top: 4px; color: var(--al-muted); font-size: 12px; line-height: 1.6; }
#communityContent .is-practice-agenda .practice-followup-actions { gap: 4px 16px; margin-top: 0; }
#communityContent .is-practice-agenda .practice-followup-actions button { padding: 8px 0; border-color: transparent; color: var(--al-muted); }
#communityContent .is-practice-agenda .practice-followup-actions [data-practice-again] { color: var(--al-graphite); }
#communityContent .is-practice-agenda [data-practice-section="history"] { border-top: 1px solid var(--al-line); }
#communityContent .is-practice-agenda button:disabled { opacity: .5; cursor: wait; }
#communityContent .is-practice-agenda :is(button, summary):focus-visible { outline: 2px solid #876323; outline-offset: 3px; }
#communityContent .practice-agenda-empty { padding: 38px 0 48px; }
#communityContent .practice-agenda-empty h4 { margin: 0; color: var(--al-graphite); font-size: 20px; line-height: 1.5; font-weight: 550; }
#communityContent .practice-agenda-empty p { max-width: 34ch; margin: 10px 0 24px; color: var(--al-muted); font-size: 15px; line-height: 1.7; }
#communityContent .practice-agenda-empty button { min-height: 44px; padding: 10px 16px; border: 1px solid var(--al-graphite); border-radius: 8px; background: var(--al-graphite); color: var(--al-ivory); font-size: 14px; }
/* End matches agenda. */

/* Compact page rhythm. Keep the safe-area shell, 44px returns and content flow.
   Paired controls occupy the same grid row without absolute positioning. */
#communityContent:has(> .community-detail-back) { row-gap: 12px; }
#communityContent > .community-detail-back { grid-area: 1 / 1; align-self: start; margin: 0; }
#communityContent > .community-detail-heading {
  grid-area: 1 / 1; align-self: start; width: auto; max-width: none;
  margin: 0 0 0 52px; padding: 0; border: 0; display: block;
}
#communityContent > .community-detail-heading > small { display: none; }
#communityContent > .community-detail-heading h3 { display: flex; align-items: center; min-height: 44px; margin: 0; font-size: 20px; line-height: 1.35; }
#communityContent > .community-detail-heading p { margin: 4px 16px 0 0; font-size: 13px; line-height: 1.6; }
body.is-profile-detail-open .profile-detail-header { grid-template-columns: 44px minmax(0, 1fr); align-items: center; gap: 8px; padding: 0 0 12px; }
body.is-profile-detail-open .profile-detail-header h2 { margin: 0; font-size: 20px; line-height: 1.35; overflow-wrap: anywhere; }
#communityContent .qiulian-private-feed { display: grid; grid-template-columns: minmax(0, 1fr); row-gap: 12px; }
#communityContent .qiulian-private-feed > .app-detail-back { grid-area: 1 / 1; align-self: start; margin: 0; }
#communityContent .qiulian-private-feed > .qiulian-library-heading { grid-area: 1 / 1; margin: 0 0 0 52px; padding: 0; }
#communityContent .qiulian-library-heading h3 { display: flex; align-items: center; min-height: 44px; margin: 0; font-size: 20px; line-height: 1.35; }
#communityContent .qiulian-library-heading p { margin: 4px 0 0; font-size: 13px; line-height: 1.6; }
#communityContent #qiulianPostSearchForm { margin: 4px 0 8px; }
#communityContent :is(.qiulian-thread-sheet, .qiulian-person-sheet) > .app-detail-back { margin-bottom: 4px; }
#communityContent .qiulian-thread-sheet .is-post-detail > header { padding-bottom: 12px; }
#trainingSessionSetup { row-gap: 14px; }
#trainingSessionSetup > .training-setup-back { grid-area: 1 / 1; margin: 0; align-self: start; }
#trainingSessionSetup > .training-setup-header { grid-area: 1 / 1; margin-left: 52px; padding: 0; gap: 0; }
#trainingSessionSetup .training-setup-header > small { display: none; }
#trainingSessionSetup .training-setup-header h2 { display: flex; align-items: center; min-height: 44px; margin: 0; font-size: 20px; line-height: 1.35; }
/* The existing upload form is block flow. Reuse the fixed 44px return row
   without changing the layout of its fields or adding an overlay hit target. */
#analysisForm > .training-workspace-back { margin: 0; }
#analysisForm > .train-section-title { margin: -44px 0 0 52px; padding: 0; border: 0; gap: 4px; }
#analysisForm > .train-section-title > span { display: flex; align-items: center; min-height: 44px; margin: 0; font-size: 20px; line-height: 1.35; }
#analysisForm > .train-section-title > p { margin: 0; font-size: 13px; line-height: 1.6; }
/* The training hub had both parent gaps and margins on its guide entries. */
#trainingHub { row-gap: 16px; }
#trainingHub > :is(#xiaoaLearningHub, #racketDiscoveryHub) { margin-block: 0; }
#trainingHub .racket-entry.is-compact { margin-block: 0; }
/* Empty pages still need a clear invitation, not a screen-height spacer. */
#communityContent .practice-agenda-empty { padding-block: 20px 32px; }
body.is-profile-detail-bag .player-bag-empty { margin-top: 12px; padding-block: 24px; }
body.is-profile-detail-bag .player-bag-empty .player-bag-racket-mark { width: 60px; height: 90px; margin-bottom: 16px; }
/* End compact page rhythm. */

/* Product craft: one quiet rhythm for Training, My and Messages. */
body.is-player-authenticated:is([data-app-screen="train"], [data-app-screen="messages"], [data-app-screen="my"]):not(.is-profile-detail-open) { min-height: 100dvh; background: #f5f2ea; }
#trainingHub {
  width: min(760px, 100%); padding: 20px 20px 28px; gap: 20px;
  border: 0; border-radius: 0; background: transparent; box-shadow: none;
}
#trainingHub > .app-hub-header { padding: 0; margin: 0; }
#trainingHub > .app-hub-header small { display: none; }
#trainingHubTitle { font-size: 28px; line-height: 1.25; letter-spacing: -.035em; }
#trainingHub .training-hub-actions { gap: 10px; }
#trainingHub .training-entry-card {
  min-height: 152px; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto 1fr auto;
  gap: 6px; padding: 20px; border-radius: 14px; box-shadow: none;
  background: transparent; border-color: #c9c8c0; transform: none;
}
#trainingHub .training-entry-card.is-primary { background: #252b2d; border-color: #252b2d; }
#trainingHub .training-entry-card > span { display: none; }
#trainingHub .training-entry-card > small { font-size: 11px; font-weight: 500; text-transform: none; letter-spacing: 0; color: #566360; }
#trainingHub .training-entry-card.is-primary > small { color: #e4c991; }
#trainingHub .training-entry-card > strong { font-size: 23px; font-weight: 600; line-height: 1.3; }
#trainingHub .training-entry-card > p { font-size: 13px; font-weight: 400; line-height: 1.55; margin: 0; }
#trainingHub .training-entry-card.is-primary > p { color: #e2e2dc; }
#trainingHub .training-entry-card > em { margin-top: 6px; font-size: 12px; font-weight: 500; }
#trainingHub .training-entry-card:hover:not(:disabled) { border-color: #8d774f; transform: none; }
#trainingHub .training-entry-card.is-primary:hover:not(:disabled) { background: #343c3e; }
#trainingHubProgress .training-native-nav { border: 0; border-radius: 0; background: transparent; box-shadow: none; }
#trainingHubProgress .training-native-nav > button {
  border: 0; border-bottom: 1px solid #d9d7ce; border-radius: 0; padding: 14px 0;
  background: transparent; min-height: 64px; box-shadow: none;
}
#trainingHubProgress .training-native-nav > button small { display: none; }
#trainingHubProgress .training-native-nav > button strong { font-size: 16px; font-weight: 600; }
#trainingHubProgress .training-native-nav > button em { font-size: 12px; font-weight: 400; line-height: 1.5; }
#trainingHubProgress .training-native-nav-meta { font-size: 12px; font-weight: 400; line-height: 1.6; margin: 10px 0 0; color: #656962; }
#trainingHub > #xiaoaLearningHub, #trainingHub > #racketDiscoveryHub { margin: 0; }
#trainingHub .xiaoa-learning-entry, #trainingHub .racket-entry {
  min-height: 82px; padding: 13px 0; margin: 0; border: 0; border-bottom: 1px solid #d9d7ce;
  border-radius: 0; background: transparent; box-shadow: none;
}
#trainingHub .xiaoa-learning-entry > span { gap: 4px; }
#trainingHub .xiaoa-learning-entry small, #trainingHub .racket-entry small { font-size: 10px; font-weight: 500; text-transform: none; letter-spacing: 0; color: #67675e; }
#trainingHub .xiaoa-learning-entry strong, #trainingHub .racket-entry strong { font-size: 16px; font-weight: 600; line-height: 1.45; margin-top: 4px; }
#trainingHub .xiaoa-learning-entry em, #trainingHub .racket-entry em { font-size: 12px; font-weight: 400; line-height: 1.55; margin: 4px 0 0; }
/* Main My stays a personal index; existing detail and bag layouts keep their own rules. */
body:not(.is-profile-detail-open) #my { width: min(760px, 100%); margin-inline: auto; }
body:not(.is-profile-detail-open) #my > .my-space-title { padding-inline: 20px; margin-block: 20px 8px; }
#profileSummary > .profile-hub-identity {
  margin: 0 20px; padding: 14px 0 20px; grid-template-columns: 60px minmax(0, 1fr) auto;
  gap: 14px; border: 0; border-bottom: 1px solid #d9d7ce; border-radius: 0;
  background: transparent; box-shadow: none;
}
#profileSummary > .profile-hub-identity .profile-hub-identity-avatar { width: 60px; height: 66px; border-radius: 16px; background: #eae9df; }
#profileSummary > .profile-hub-identity strong { font-size: 20px; line-height: 1.35; overflow-wrap: anywhere; }
#profileSummary > .profile-hub-identity > div:nth-child(2) button { min-height: 44px; padding-block: 8px; font-size: 11px; line-height: 1.4; }
#profileSummary .profile-hub-wardrobe { min-height: 44px; padding: 8px 10px; color: #3c4546; border: 1px solid #c9c8c0; border-radius: 10px; background: transparent; font-size: 11px; line-height: 1.4; max-width: 100px; }
#profileSummary > .profile-hub.is-personal-index { display: grid; gap: 0; padding: 0 20px 24px; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.is-personal-index .profile-hub-more { gap: 0; padding: 0; }
.is-personal-index .profile-hub-more > button {
  min-height: 76px; padding: 15px 0; border: 0; border-bottom: 1px solid #d9d7ce;
  border-radius: 0; background: transparent; transform: none;
}
.is-personal-index .profile-hub-more strong { font-size: 16px; font-weight: 600; line-height: 1.4; }
.is-personal-index .profile-hub-more em { font-size: 12px; font-weight: 400; line-height: 1.5; color: #656962; }
.is-personal-index .profile-hub-more b { font-size: 19px; font-weight: 400; color: #66706c; }
/* Header title and its existing plans action share a row, in DOM reading order. */
#messages { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-content: start; gap: 0 12px; width: min(760px, 100%); padding: 20px 20px 32px; margin: 0 auto; }
#messages > .messages-intro { grid-area: 1 / 1; align-self: center; padding: 0; margin: 0; min-height: 44px; }
#messages .messages-intro h2 { font-size: 28px; line-height: 1.25; margin: 0; }
#messagesContent { display: contents; }
#messagesContent > * { grid-column: 1 / -1; min-width: 0; }
#messagesContent > .messages-plans-link { grid-area: 1 / 2; align-self: center; margin: 0; padding: 0; }
#messages .messages-plans-link button { min-height: 44px; padding: 8px 0 8px 8px; border: 0; border-radius: 0; background: transparent; color: #414b4b; font-size: 13px; }
#messages :is(.messages-overview, .messages-section, .messages-empty, .messages-zero-state) { border: 0; border-radius: 0; background: transparent; box-shadow: none; }
#messages .messages-overview { padding: 18px 0; border-bottom: 1px solid #d9d7ce; }
#messages .messages-overview small { display: none; }
#messages .messages-overview strong { font-size: 16px; margin: 0; }
#messages .messages-overview button { min-height: 44px; border: 1px solid #c9c8c0; border-radius: 10px; background: transparent; color: #414b4b; font-size: 12px; }
#messages .messages-section { padding: 22px 0; border-bottom: 1px solid #d9d7ce; }
#messages .messages-section > header strong { font-size: 16px; }
#messages .messages-zero-state, #messages .messages-empty {
  min-height: 0; padding: 44px 12px 52px; margin: 0; align-content: start;
}
#messages .messages-zero-state > span { width: 44px; height: 44px; background: #e8e7dd; color: #53605b; }
#messages .messages-zero-state strong, #messages .messages-empty strong { font-size: 19px; line-height: 1.4; }
#messages .messages-zero-state p, #messages .messages-empty p { font-size: 13px; line-height: 1.65; max-width: 34ch; }
#messages .messages-zero-state a, #messages .messages-empty a, #messages .messages-load-error button {
  min-height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 10px 16px;
  border: 0; border-radius: 10px; background: #252b2d; color: #fffdf8; font-size: 13px; line-height: 1.4;
}
#messages .messages-load-error { display: grid; justify-items: start; gap: 10px; padding-inline: 0; }
#messages .messages-load-error p { margin: 0; }
#messages .messages-empty-thread, #messages .messages-empty-state p { font-size: 13px; line-height: 1.6; }
#messages > #messagesContent > .qiulian-notifications { padding: 22px 0; border: 0; border-bottom: 1px solid #d9d7ce; border-radius: 0; background: transparent; box-shadow: none; }
#messages .qiulian-notifications > header { margin-bottom: 10px; }
#messages .qiulian-notifications > header strong { font-size: 16px; font-weight: 600; }
#messagesContent:has(> .messages-overview [data-community-mark-read]) > .qiulian-notifications > header [data-community-mark-read] { display: none; }
#messages .qiulian-notification-row { padding: 12px 0; background: transparent; }
#messages .qiulian-notification-row:last-child { border-bottom: 0; }
#messages .qiulian-notification-row.is-unread { border-left: 2px solid #b88a3e; padding-left: 10px; }
#messages .qiulian-notification-row strong { font-weight: 600; }
#messages .messages-empty-thread { padding: 0; border: 0; border-radius: 0; background: transparent; color: #656962; font-weight: 400; }
#messages .messages-section > header > span { width: auto; min-width: 0; height: auto; padding: 0; border-radius: 0; background: transparent; color: #656962; font-weight: 400; font-size: 12px; }
#messages :is(.messages-section > header strong, .messages-overview strong, .messages-zero-state strong, .messages-empty strong) { font-weight: 600; }
#messages :is(.messages-load-error button, .messages-zero-state a) { font-weight: 500; }
.profile-detail-group:has(.profile-growth) { padding: 16px; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.profile-growth { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.profile-growth .profile-level-card { padding: 20px; border: 0; border-radius: 12px; background: #252b2d; gap: 10px; }
.profile-growth .profile-level-card strong { color: #e4c991; font-size: 32px; font-weight: 600; }
.profile-growth :is(.profile-level-card, .profile-streak-card) :is(small, span) { font-weight: 400; line-height: 1.6; }
.profile-growth .profile-level-card small { color: #e0e1db; font-size: 13px; }
.profile-growth .profile-level-card i { height: 5px; }
.profile-growth .profile-level-card i::before { background: #b88a3e; }
.profile-growth .profile-level-card button { min-height: 44px; margin-top: 8px; border: 1px solid #65706c; border-radius: 8px; background: transparent; font-weight: 500; font-size: 13px; color: #fffdf8; }
.profile-growth .profile-streak-card { padding: 0; border: 0; border-radius: 0; background: transparent; gap: 16px; }
.profile-growth .profile-streak-card div { padding: 0; border: 0; }
.profile-growth .profile-streak-card b { font-size: 26px; font-weight: 600; color: #252b2d; }
.profile-growth .profile-streak-card button { min-height: 44px; margin: 0; border: 1px solid #c9c8c0; border-radius: 8px; background: transparent; color: #414b4b; font-weight: 500; font-size: 13px; }
.profile-growth .profile-streak-card button:disabled { color: #626963; border-color: #dddbd1; background: #eae7df; }
.profile-growth .profile-path-card { grid-column: 1 / -1; padding: 12px 0 0; border: 0; border-radius: 0; background: transparent; }
.profile-growth .profile-path-card > .section-title { display: grid; gap: 6px; margin: 0; }
.profile-growth .profile-path-card > .section-title > span { font-size: 16px; font-weight: 600; }
.profile-growth .profile-path-card > .section-title > small { font-size: 12px; font-weight: 400; line-height: 1.6; }
.profile-activity-records { display: grid; grid-template-columns: 1fr; gap: 0; }
.profile-activity-records > article { display: grid; grid-template-columns: 44px minmax(0, 1fr); align-items: center; justify-items: start; min-height: 48px; padding: 8px 0; border: 0; border-bottom: 1px solid #d9d7ce; border-radius: 0; background: transparent; box-shadow: none; text-align: left; }
.profile-activity-records > article::after { display: none; }
.profile-activity-records > article > span { width: auto; aspect-ratio: auto; background: transparent; font-size: 16px; font-weight: 600; }
.profile-activity-records > article > strong { font-size: 13px; line-height: 1.5; font-weight: 400; }
:is(#trainingHub, #profileSummary, #messages) :is(button, a):focus-visible { outline: 2px solid #887044; outline-offset: 4px; }
@media (max-width: 760px) {
  #trainingHub, #messages { padding-inline: 16px; }
  #trainingHub .training-hub-actions { grid-template-columns: 1fr; }
  #trainingHub .training-entry-card { min-height: 136px; padding: 17px 18px; }
  body:not(.is-profile-detail-open) #my > .my-space-title { padding-inline: 16px; }
  #profileSummary > .profile-hub-identity { margin-inline: 16px; gap: 12px; }
  #profileSummary > .profile-hub.is-personal-index { padding-inline: 16px; }
  .profile-growth { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 360px) {
  #profileSummary > .profile-hub-identity { grid-template-columns: 48px minmax(0, 1fr); }
  #profileSummary > .profile-hub-identity .profile-hub-identity-avatar { width: 48px; height: 58px; }
  #profileSummary .profile-hub-wardrobe { grid-column: 2; justify-self: start; max-width: none; }
}
@media (prefers-reduced-motion: reduce) {
  .surface-skeleton-avatar::after, .surface-skeleton-copy i::after, .surface-skeleton-card > b::after { animation: none !important; transform: none !important; }
  #trainingHub .training-entry-card, .is-personal-index .profile-hub-more > button { transition: none; transform: none; }
}
/* End product craft. */
