:root {
  --red: #e91d2b;
  --red-dark: #c91521;
  --ink: #15181c;
  --muted: #6b7078;
  --line: #dedbd4;
  --paper: #f5f3ee;
  --white: #fff;
  --green: #39734c;
  --radius: 12px;
  --shadow: 0 14px 38px rgba(18, 22, 28, .08);
}

/* Homepage v3: concise customer-facing sales page. */
.marketing-body {
  background: #f7f6f2;
  font-family: "PingFang SC", "Microsoft YaHei UI", "Microsoft YaHei", "Noto Sans CJK SC", system-ui, sans-serif;
  font-size: 18px;
  line-height: 1.72;
  -webkit-font-smoothing: antialiased;
}
.marketing-body .site-header {
  height: 72px;
  padding-inline: max(24px, calc((100vw - 1200px) / 2));
  background: rgba(255,255,255,.96);
  border-bottom-color: #e8e5de;
}
.marketing-body .wordmark {
  font-size: 20px;
  font-weight: 900;
  letter-spacing: -.02em;
}
.marketing-body .site-header nav { gap: 25px; font-size: 15px; }
.marketing-body .primary-button,
.marketing-body .secondary-button { min-height: 50px; padding-inline: 24px; border-radius: 6px; }
.marketing-body .primary-button { background: #e91d2b; border-color: #e91d2b; }
.marketing-body .secondary-button { background: transparent; border-color: #cfcac1; }

.sales-page { overflow: hidden; color: #15181c; }
.sales-hero,
.sales-section,
.sales-method__inner { width: min(1200px, calc(100% - 48px)); margin-inline: auto; }
.sales-hero {
  min-height: 690px;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(440px, .95fr);
  align-items: center;
  gap: 80px;
  padding: 88px 0 94px;
}
.sales-kicker {
  margin: 0 0 14px;
  color: #e91d2b;
  font-size: 14px;
  font-weight: 900;
  letter-spacing: .08em;
}
.sales-hero__copy h1 {
  max-width: 720px;
  margin: 0;
  font-size: clamp(52px, 5.6vw, 78px);
  line-height: 1.08;
  letter-spacing: -.055em;
}
.sales-hero__copy h2 {
  margin: 23px 0 12px;
  font-size: clamp(25px, 2.3vw, 33px);
  line-height: 1.3;
  letter-spacing: -.025em;
}
.sales-hero__copy > p:not(.sales-kicker) {
  max-width: 690px;
  margin: 0;
  color: #5e646c;
  font-size: 19px;
}
.sales-actions { display: flex; gap: 13px; margin: 32px 0 31px; }
.sales-hero__facts {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 26px;
  margin: 0;
  padding: 0;
  color: #525860;
  font-size: 14px;
  font-weight: 700;
  list-style: none;
}
.sales-hero__facts li { position: relative; padding-left: 13px; }
.sales-hero__facts li::before { content: ""; position: absolute; left: 0; top: .78em; width: 5px; height: 5px; background: #e91d2b; border-radius: 50%; }

.hero-training-visual {
  position: relative;
  aspect-ratio: 4 / 3;
  margin: 0;
  overflow: hidden;
  background: #15181c;
  border-radius: 16px;
  box-shadow: 0 28px 70px rgba(25, 28, 33, .16);
  isolation: isolate;
}
.hero-training-visual::after {
  content: "";
  position: absolute;
  inset: 46% 0 0;
  z-index: 1;
  background: linear-gradient(to bottom, transparent, rgba(11, 14, 18, .76));
  pointer-events: none;
}
.hero-training-visual img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform .8s cubic-bezier(.2,.7,.2,1), filter .5s ease;
}
.hero-training-visual:hover img { transform: scale(1.025); filter: saturate(1.04); }
.hero-training-visual figcaption {
  position: absolute;
  right: 26px;
  bottom: 24px;
  left: 26px;
  z-index: 2;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  color: #fff;
}
.hero-training-visual figcaption b { font-size: 18px; }
.hero-training-visual figcaption span { color: rgba(255,255,255,.78); font-size: 13px; font-weight: 700; }

.edition-entry {
  width: min(1200px, calc(100% - 48px));
  display: grid;
  grid-template-columns: minmax(210px, .72fr) repeat(2, minmax(0, 1fr));
  margin: 0 auto 18px;
  overflow: hidden;
  background: #fff;
  border: 1px solid #d9d5cc;
  border-radius: 13px;
  box-shadow: 0 18px 46px rgba(20,23,27,.06);
}
.edition-entry > header { display: flex; justify-content: center; flex-direction: column; padding: 27px 29px; background: #171a1e; color: #fff; }
.edition-entry > header .sales-kicker { margin-bottom: 8px; color: #ff5964; }
.edition-entry > header h2 { margin: 0; font-size: 23px; line-height: 1.35; letter-spacing: -.02em; }
.edition-entry__card { position: relative; min-height: 180px; padding: 25px 28px; color: #171a1e; border-left: 1px solid #dedad2; }
.edition-entry__card::before { content: ""; position: absolute; top: 0; right: 0; left: 0; height: 3px; background: #171a1e; }
.edition-entry__card--youth::before { background: #e91d2b; }
.edition-entry__card > span { color: #e91d2b; font-size: 12px; font-weight: 900; }
.edition-entry__card h3 { margin: 8px 0 8px; font-size: 22px; line-height: 1.3; }
.edition-entry__card p { margin: 0; color: #666c73; font-size: 14px; line-height: 1.7; }

.sales-section { padding: 92px 0; }
.sales-heading { max-width: 920px; margin-bottom: 42px; }
.sales-heading h2 {
  max-width: 920px;
  margin: 0;
  font-size: clamp(38px, 3.5vw, 48px);
  line-height: 1.2;
  letter-spacing: -.035em;
  text-wrap: balance;
  word-break: keep-all;
}
.sales-heading > p:not(.sales-kicker) { max-width: 760px; margin: 17px 0 0; color: #636971; }
.sales-heading--center { display: block; max-width: 830px; margin: 0 auto 48px; text-align: center; }
.sales-heading--center h2 { max-width: none; }
.sales-heading--center > p:last-child { margin-top: 17px; }
.sales-heading--compact { max-width: none; display: flex; align-items: end; justify-content: space-between; gap: 40px; }

.sales-benefits { padding-top: 92px; border-top: 1px solid #e1ddd5; }
.benefit-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid #d9d5cc; border-radius: 10px; overflow: hidden; }
.benefit-grid article { min-height: 278px; padding: 27px; background: #fff; border-right: 1px solid #dedad2; transition: background-color .25s ease, transform .3s ease; }
.benefit-grid article:last-child { border-right: 0; }
.benefit-grid article:hover { position: relative; z-index: 1; background: #fcfbf8; transform: translateY(-5px); }
.benefit-grid span { color: #e91d2b; font-size: 13px; font-weight: 900; }
.benefit-grid h3 { margin: 54px 0 12px; font-size: 24px; line-height: 1.3; }
.benefit-grid p { margin: 0; color: #646a72; font-size: 16px; }

.sales-plans { width: auto; padding-inline: max(24px, calc((100vw - 1200px) / 2)); background: #fff; }
.sales-plans > * { max-width: 1200px; margin-inline: auto; }
.goal-pills { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 28px; }
.goal-pills span { padding: 8px 14px; background: #f2f0eb; border-radius: 99px; color: #454b52; font-size: 14px; font-weight: 800; }
.plan-stage {
  --stage-accent: #c94b3e;
  --stage-bg: #f4f0e8;
  --stage-card: #fff;
  --stage-border: #ddd7cd;
  --stage-ink: #15181c;
  --stage-muted: #646a72;
  padding: 34px;
  background: var(--stage-bg);
  border-radius: 16px;
  color: var(--stage-ink);
}
.plan-stage--2 { --stage-accent: #d92735; --stage-bg: #eef0ec; --stage-border: #d5d9d2; }
.plan-stage--3 { --stage-accent: #ff5964; --stage-bg: #171a1e; --stage-card: #20242a; --stage-border: #373c43; --stage-ink: #fff; --stage-muted: #b9bec5; }
.plan-stage + .plan-stage { margin-top: 24px; }
.plan-stage__header { display: grid; grid-template-columns: 78px minmax(0, 1fr) auto; align-items: center; gap: 24px; margin-bottom: 28px; }
.plan-stage__number { color: var(--stage-accent); font-size: 58px; line-height: 1; letter-spacing: -.06em; }
.plan-stage__copy > span { color: var(--stage-accent); font-size: 13px; font-weight: 900; }
.plan-stage__copy h3 { margin: 4px 0 6px; font-size: 28px; line-height: 1.25; }
.plan-stage__copy p { max-width: 650px; margin: 0; color: var(--stage-muted); font-size: 15px; }
.plan-stage__schedule { min-width: 220px; display: grid; grid-template-columns: 1fr 1fr; margin: 0; overflow: hidden; border: 1px solid var(--stage-border); border-radius: 9px; }
.plan-stage__schedule div { padding: 12px 15px; }
.plan-stage__schedule div + div { border-left: 1px solid var(--stage-border); }
.plan-stage__schedule dt, .plan-stage__schedule dd { margin: 0; }
.plan-stage__schedule dt { color: var(--stage-muted); font-size: 11px; font-weight: 700; }
.plan-stage__schedule dd { margin-top: 2px; font-size: 16px; font-weight: 900; }
.plan-catalogue { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.plan-catalogue article { min-height: 285px; display: flex; flex-direction: column; padding: 22px; background: var(--stage-card); border: 1px solid var(--stage-border); border-radius: 10px; transition: transform .28s ease, border-color .28s ease, box-shadow .28s ease; }
.plan-catalogue article:hover { transform: translateY(-5px); border-color: #c8c3ba; box-shadow: 0 18px 38px rgba(20,23,27,.09); }
.plan-catalogue__top { display: flex; justify-content: space-between; align-items: center; }
.plan-catalogue__top span { color: var(--stage-accent); font-size: 13px; font-weight: 900; letter-spacing: .06em; }
.plan-catalogue__top em { max-width: 125px; padding: 4px 8px; background: color-mix(in srgb, var(--stage-accent) 10%, transparent); border-radius: 99px; color: var(--stage-accent); font-size: 11px; font-style: normal; font-weight: 800; text-align: center; }
.plan-catalogue h3 { margin: 31px 0 8px; font-size: 21px; line-height: 1.35; }
.plan-catalogue > article > p { margin: 0; color: var(--stage-muted); font-size: 14px; line-height: 1.65; }
.plan-catalogue__meta { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: auto; padding-top: 18px; }
.plan-catalogue__meta > span { padding: 10px 11px; background: color-mix(in srgb, var(--stage-ink) 5%, transparent); border-radius: 7px; }
.plan-stage--3 .plan-catalogue__meta > span { background: #292e35; }
.plan-catalogue__meta b, .plan-catalogue__meta small { display: block; }
.plan-catalogue__meta b { font-size: 19px; line-height: 1.1; }
.plan-catalogue__meta small { margin-top: 3px; color: var(--stage-muted); font-size: 11px; }
.plan-accordion { overflow: hidden; border: 1px solid #d9d5cd; border-radius: 14px; background: #fff; }
.plan-accordion__item {
  --plan-accent: #b84a40;
  background: #fff;
  border-bottom: 1px solid #ddd9d1;
  transition: background-color .25s ease, box-shadow .25s ease;
}
.plan-accordion__item--2 { --plan-accent: #df2533; }
.plan-accordion__item--3 { --plan-accent: #15181c; }
.plan-accordion__item:last-child { border-bottom: 0; }
.plan-accordion__item[open] { background: #f7f5f0; box-shadow: inset 4px 0 0 var(--plan-accent); }
.plan-accordion__item summary {
  display: grid;
  grid-template-columns: 64px minmax(260px, 1fr) 170px 100px 28px;
  align-items: center;
  gap: 22px;
  min-height: 94px;
  padding: 18px 25px;
  cursor: pointer;
  list-style: none;
  transition: background-color .22s ease;
}
.plan-accordion__item summary::-webkit-details-marker { display: none; }
.plan-accordion__item summary::marker { display: none; content: ""; }
.plan-accordion__item summary:hover { background: #fbfaf7; }
.plan-accordion__item[open] summary { background: #fff; }
.plan-accordion__number { color: var(--plan-accent); font-size: 24px; font-weight: 900; letter-spacing: -.04em; }
.plan-accordion__identity { min-width: 0; }
.plan-accordion__identity small, .plan-accordion__identity strong { display: block; }
.plan-accordion__identity small { margin-bottom: 3px; color: #7a7f85; font-size: 11px; font-weight: 800; letter-spacing: .03em; }
.plan-accordion__identity strong { overflow: hidden; color: #171a1e; font-size: 20px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.plan-accordion__goal { justify-self: start; padding: 6px 11px; background: #f0eee9; border-radius: 99px; color: #4e545c; font-size: 12px; font-weight: 800; white-space: nowrap; }
.plan-accordion__duration { color: #646a72; font-size: 13px; font-weight: 700; white-space: nowrap; }
.plan-accordion__toggle { position: relative; width: 28px; height: 28px; border: 1px solid #cdc8bf; border-radius: 50%; transition: border-color .22s ease, background-color .22s ease, transform .28s ease; }
.plan-accordion__toggle::before, .plan-accordion__toggle::after { content: ""; position: absolute; top: 13px; left: 8px; width: 10px; height: 2px; background: #171a1e; }
.plan-accordion__toggle::after { transform: rotate(90deg); transition: transform .28s ease; }
.plan-accordion__item[open] .plan-accordion__toggle { background: var(--plan-accent); border-color: var(--plan-accent); transform: rotate(180deg); }
.plan-accordion__item[open] .plan-accordion__toggle::before, .plan-accordion__item[open] .plan-accordion__toggle::after { background: #fff; }
.plan-accordion__item[open] .plan-accordion__toggle::after { transform: rotate(0); }
.plan-accordion__content { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(420px, 1fr); gap: 30px 54px; margin-left: 88px; padding: 28px 27px 30px 0; border-top: 1px solid #dfdbd3; }
.plan-accordion__item[open] .plan-accordion__content { animation: plan-accordion-open .32s cubic-bezier(.2,.7,.2,1) both; }
@keyframes plan-accordion-open { from { opacity: 0; transform: translateY(-7px); } to { opacity: 1; transform: translateY(0); } }
.plan-accordion__aim > span { display: block; margin-bottom: 8px; color: var(--plan-accent); font-size: 12px; font-weight: 900; }
.plan-accordion__aim p { max-width: 640px; margin: 0; color: #373c43; font-size: 17px; line-height: 1.75; }
.plan-accordion__facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; border: 1px solid #d9d5cd; border-radius: 9px; background: #fff; }
.plan-accordion__facts div { padding: 13px 14px; border-right: 1px solid #e2ded7; }
.plan-accordion__facts div:last-child { border-right: 0; }
.plan-accordion__facts dt, .plan-accordion__facts dd { margin: 0; }
.plan-accordion__facts dt { color: #777c83; font-size: 10px; font-weight: 700; }
.plan-accordion__facts dd { margin-top: 2px; color: #171a1e; font-size: 14px; font-weight: 900; white-space: nowrap; }
.plan-accordion__sequence { grid-column: 1 / -1; display: flex; align-items: center; gap: 11px; margin: 0; padding: 14px 18px; background: #ece9e2; border-radius: 8px; color: #555b62; font-size: 13px; }
.plan-accordion__sequence b { margin-right: 6px; color: #171a1e; }
.plan-accordion__sequence i { color: var(--plan-accent); font-style: normal; font-weight: 900; }

.sales-more-content { border-top: 1px solid #dfdbd3; }
.sales-more-content .sales-heading--compact > p { max-width: 520px; margin: 0 0 5px; }
.more-content-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: hidden; background: #fff; border: 1px solid #d9d5cc; border-radius: 12px; }
.more-content-grid article { min-height: 250px; padding: 28px; border-right: 1px solid #dedad2; transition: background-color .25s ease, transform .25s ease; }
.more-content-grid article:last-child { border-right: 0; }
.more-content-grid article:hover { position: relative; z-index: 1; background: #fcfbf8; transform: translateY(-4px); }
.more-content-grid span { color: var(--red); font-size: 13px; font-weight: 900; }
.more-content-grid h3 { margin: 38px 0 11px; font-size: 23px; line-height: 1.35; }
.more-content-grid p { margin: 0; color: #656b73; font-size: 15px; line-height: 1.75; }
.more-content-grid--expanded { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.more-content-grid--expanded article { min-height: 220px; border-right: 1px solid #dedad2; border-bottom: 1px solid #dedad2; }
.more-content-grid--expanded article:nth-child(2n) { border-right: 0; }
.more-content-grid--expanded article:nth-last-child(-n+2) { border-bottom: 0; }
.more-content-grid--expanded .more-content-grid__home { background: #fff6f4; }
.more-content-grid--expanded .more-content-grid__home h3 { color: #b71824; }

.sales-method { width: auto; padding: 100px 0; background: #15181c; color: #fff; }
.sales-heading--light > p { color: #b9bec5; }
.sales-heading--light .sales-kicker { color: #ff5964; }
.method-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid #3a3e44; border-radius: 10px; overflow: hidden; }
.method-grid article { min-height: 270px; padding: 28px; border-right: 1px solid #3a3e44; transition: background-color .3s ease; }
.method-grid article:last-child { border-right: 0; }
.method-grid article:hover { background: #1c2025; }
.method-grid b { color: #ff5964; font-size: 14px; }
.method-grid h3 { margin: 57px 0 12px; font-size: 24px; }
.method-grid p { margin: 0; color: #b9bec5; font-size: 16px; }
.method-note { margin: 28px 0 0; padding-left: 18px; border-left: 3px solid #e91d2b; color: #d5d8dc; font-size: 16px; }

.sales-tools { padding-bottom: 84px; }
.tool-showcase { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; margin-bottom: 42px; }
.tool-showcase > article { min-width: 0; overflow: hidden; background: #fff; border: 1px solid #d9d5cc; border-radius: 11px; box-shadow: 0 16px 38px rgba(20,23,27,.05); transition: transform .28s ease, box-shadow .28s ease; }
.tool-showcase > article:hover { transform: translateY(-5px); box-shadow: 0 22px 46px rgba(20,23,27,.09); }
.tool-showcase__bar { min-height: 49px; display: flex; align-items: center; justify-content: space-between; padding: 0 19px; background: #171a1e; color: #fff; }
.tool-showcase__bar span { font-size: 13px; font-weight: 900; }
.tool-showcase__bar b { color: #ff5964; font-size: 12px; }
.tool-showcase__body { min-height: 306px; display: flex; flex-direction: column; padding: 23px; }
.tool-showcase__body > small { color: #e91d2b; font-size: 11px; font-weight: 900; }
.tool-showcase__body h3 { margin: 7px 0 20px; font-size: 21px; line-height: 1.35; }
.tool-showcase__body ul { display: grid; margin: 0; padding: 0; border-top: 1px solid #e2ded7; list-style: none; }
.tool-showcase__body li { display: grid; grid-template-columns: 27px minmax(0, 1fr) auto; align-items: center; gap: 8px; min-height: 53px; border-bottom: 1px solid #e2ded7; }
.tool-showcase__body li b { color: #e91d2b; font-size: 11px; }
.tool-showcase__body li span { overflow: hidden; font-size: 14px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.tool-showcase__body li em { color: #676d75; font-size: 11px; font-style: normal; white-space: nowrap; }
.tool-showcase__progress { height: 8px; margin: 8px 0 24px; overflow: hidden; background: #ece9e3; border-radius: 99px; }
.tool-showcase__progress i { height: 100%; display: block; background: #e91d2b; border-radius: inherit; }
.tool-showcase__body dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: auto 0 0; border: 1px solid #e0dcd4; border-radius: 8px; }
.tool-showcase__body dl div { min-width: 0; padding: 13px 10px; text-align: center; border-right: 1px solid #e0dcd4; }
.tool-showcase__body dl div:last-child { border-right: 0; }
.tool-showcase__body dt { color: #777c83; font-size: 10px; }
.tool-showcase__body dd { margin: 4px 0 0; font-size: 18px; font-weight: 900; }
.tool-showcase__chat { gap: 12px; }
.tool-showcase__chat p { margin: 0; padding: 13px 15px; font-size: 13px; line-height: 1.65; border-radius: 9px; }
.tool-showcase__question { align-self: flex-end; max-width: 82%; background: #171a1e; color: #fff; }
.tool-showcase__answer { background: #f0ede7; color: #3e444b; }
.tool-showcase__chat > small { margin-top: auto; color: #737981; font-weight: 700; line-height: 1.5; }
.tool-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid #d8d4cc; }
.tool-list article { display: grid; grid-template-columns: 48px 1fr; gap: 20px; min-height: 150px; padding: 25px 28px 25px 0; border-bottom: 1px solid #d8d4cc; transition: padding-left .25s ease, background-color .25s ease; }
.tool-list article:nth-child(odd) { margin-right: 32px; }
.tool-list article:hover { padding-left: 12px; background: rgba(255,255,255,.48); }
.tool-list article > span { color: #e91d2b; font-size: 13px; font-weight: 900; }
.tool-list h3 { margin: 0 0 5px; font-size: 21px; }
.tool-list p { margin: 0; color: #656b73; font-size: 15px; }

.purchase-section { border-top: 1px solid #dfdbd3; }
.purchase-intro { display: grid; grid-template-columns: minmax(0, .95fr) minmax(340px, .75fr); column-gap: 72px; align-items: end; margin-bottom: 34px; }
.purchase-intro .sales-kicker { grid-column: 1 / -1; }
.purchase-intro h2 { margin: 0; font-size: clamp(42px, 4.6vw, 58px); line-height: 1.15; letter-spacing: -.045em; }
.purchase-intro > p:not(.sales-kicker) { max-width: 560px; margin: 0 0 5px; color: #626870; }
.purchase-layout { display: grid; grid-template-columns: minmax(0, 1fr) 350px; gap: 24px; align-items: stretch; }
.purchase-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.purchase-option-card { display: flex; flex-direction: column; min-width: 0; padding: 25px; background: #fff; border: 1px solid #d9d5cc; border-radius: 11px; }
.purchase-option-card--adult { border-top: 4px solid var(--ink); }
.purchase-option-card--youth { border-top: 4px solid var(--red); }
.purchase-option-card[id] { scroll-margin-top: 96px; }
.purchase-option-card__head { display: flex; flex-direction: column; gap: 16px; min-height: 148px; }
.purchase-option-card__head span { color: var(--red); font-size: 13px; font-weight: 900; }
.purchase-option-card__head h3 { margin: 5px 0 0; font-size: 23px; line-height: 1.25; }
.purchase-price { display: flex; align-items: baseline; margin-top: 31px; line-height: 1; }
.purchase-option-card .purchase-price { margin-top: auto; }
.purchase-price small { color: #e91d2b; font-size: 25px; font-weight: 900; }
.purchase-price strong { color: #e91d2b; font-size: 62px; letter-spacing: -.06em; }
.purchase-price em { margin-left: 9px; color: #626870; font-size: 14px; font-style: normal; }
.purchase-validity { min-height: 43px; margin: 15px 0 18px; font-weight: 800; }
.purchase-options ul { display: grid; grid-template-columns: 1fr; gap: 9px; margin: 0; padding: 19px 0 0; border-top: 1px solid #dedad2; list-style: none; }
.purchase-options li { position: relative; padding-left: 18px; font-size: 15px; }
.purchase-options li::before { content: "✓"; position: absolute; left: 0; color: #e91d2b; font-weight: 900; }
.purchase-notice { margin: 18px 0 0; padding: 16px 18px; background: #efede7; color: #4f555d; font-size: 14px; line-height: 1.8; }
.purchase-future { margin: 10px 0 0; color: #777c83; font-size: 12px; }
.purchase-contact { display: flex; flex-direction: column; padding: 25px 29px; background: #fff; border: 1px solid #d9d5cc; border-radius: 11px; box-shadow: 0 18px 48px rgba(20,23,27,.07); }
.purchase-contact h3 { margin: 0 0 9px; font-size: 25px; line-height: 1.28; }
.purchase-contact > p:not(.sales-kicker):not(.wechat-id) { margin: 0; color: #626870; font-size: 15px; }
.wechat-id { margin: 15px 0 0; font-size: 15px; }
.purchase-qr { width: 210px; margin: 19px auto 17px; display: grid; justify-items: center; gap: 7px; }
.purchase-qr img { width: 210px; height: 210px; padding: 10px; object-fit: contain; background: #fff; border: 1px solid #dedad2; }
.purchase-qr span { color: #6b7078; font-size: 12px; }
.purchase-qr--empty { height: 210px; align-content: center; background: #f2f0eb; border: 1px dashed #c7c2b8; color: #4e545b; }

.faq-section { padding-top: 72px; border-top: 1px solid #dfdbd3; }
.faq-list { border-top: 1px solid #d9d5cc; }
.faq-list details { border-bottom: 1px solid #d9d5cc; }
.faq-list summary { position: relative; padding: 23px 48px 23px 0; font-size: 18px; font-weight: 800; cursor: pointer; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; position: absolute; right: 4px; top: 16px; color: #e91d2b; font-size: 30px; font-weight: 400; }
.faq-list details[open] summary::after { content: "−"; }
.faq-list details p { max-width: 880px; margin: -5px 0 24px; color: #626870; font-size: 16px; }
.faq-list summary { transition: color .2s ease, padding-left .2s ease; }
.faq-list summary:hover { padding-left: 8px; color: #e91d2b; }
.faq-list details[open] p { animation: faq-enter .25s ease both; }

.sales-articles { padding-top: 72px; border-top: 1px solid #dfdbd3; }
.sales-article-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.sales-article-grid a { min-height: 360px; display: flex; flex-direction: column; overflow: hidden; background: #fff; border: 1px solid #dedad2; border-radius: 10px; transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease; }
.sales-article-grid a:hover { transform: translateY(-5px); border-color: #c8c3ba; box-shadow: 0 18px 38px rgba(20,23,27,.08); }
.sales-article-grid__cover-frame {
  width: 100%;
  aspect-ratio: 16 / 9;
  flex: 0 0 auto;
  overflow: hidden;
  background: #e8e6e0;
}
.sales-article-grid__cover-frame img.sales-article-grid__cover {
  width: 100%;
  height: 100% !important;
  display: block;
  object-fit: cover;
  transition: transform .55s cubic-bezier(.2,.7,.2,1);
}
.sales-article-grid a:hover .sales-article-grid__cover { transform: scale(1.025); }
.sales-article-grid__body { flex: 1; display: flex; flex-direction: column; padding: 22px 24px 24px; }
.sales-article-grid__meta { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.sales-article-grid__meta span { color: #e91d2b; font-size: 13px; font-weight: 800; }
.sales-article-grid__meta time { color: #878b91; font-size: 12px; }
.sales-article-grid h3 { margin: 27px 0 9px; font-size: 21px; line-height: 1.4; }
.sales-article-grid p { margin: 0; color: #656b73; font-size: 15px; }
.sales-article-grid__read { display: flex; align-items: center; gap: 7px; margin-top: auto; padding-top: 24px; color: #30353b; font-size: 14px; }
.sales-article-grid__read span { color: #e91d2b; font-size: 18px; transition: transform .2s ease; }
.sales-article-grid a:hover .sales-article-grid__read span { transform: translateX(4px); }

.marketing-body .site-footer { padding: 48px max(24px, calc((100vw - 1200px) / 2)); }
.marketing-body .site-footer > div:first-child { max-width: 700px; }
.marketing-body .site-footer p { font-size: 15px; }
.marketing-body .site-footer small { display: block; margin-top: 9px; color: #787e86; font-size: 12px; }
.marketing-body .site-footer > div:last-child { font-size: 14px; }

.marketing-body .site-header nav a { position: relative; transition: color .2s ease; }
.marketing-body .site-header nav a::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -10px;
  left: 0;
  height: 2px;
  background: #e91d2b;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .25s ease;
}
.marketing-body .site-header nav a:hover::after,
.marketing-body .site-header nav a.is-active::after { transform: scaleX(1); }
.marketing-body .site-header nav a.is-active { color: #e91d2b; }
.marketing-body .site-header { transition: box-shadow .25s ease, background-color .25s ease; }
.marketing-body .site-header.is-scrolled { background: rgba(255,255,255,.985); box-shadow: 0 10px 30px rgba(20,23,27,.07); }
.marketing-body .primary-button,
.marketing-body .secondary-button { transition: transform .2s ease, background-color .2s ease, border-color .2s ease, box-shadow .2s ease; }
.marketing-body .primary-button:hover,
.marketing-body .secondary-button:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(20,23,27,.1); }

.js .sales-reveal { opacity: 0; transform: translateY(22px); }
.js .sales-reveal.is-visible { opacity: 1; transform: translateY(0); transition: opacity .65s ease, transform .65s cubic-bezier(.2,.7,.2,1); }
.js .sales-reveal:nth-child(2) { transition-delay: .06s; }
.js .sales-reveal:nth-child(3) { transition-delay: .12s; }
.js .sales-reveal:nth-child(4) { transition-delay: .18s; }

@keyframes faq-enter {
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 1100px) {
  .marketing-body .site-header nav { gap: 16px; font-size: 13px; }
  .sales-hero { grid-template-columns: minmax(0, 1fr) 420px; gap: 48px; }
  .sales-hero__copy h1 { font-size: 58px; }
  .edition-entry { grid-template-columns: 1fr 1fr; }
  .edition-entry > header { grid-column: 1 / -1; min-height: 120px; }
  .edition-entry__card:first-of-type { border-left: 0; }
  .benefit-grid { grid-template-columns: repeat(2, 1fr); }
  .benefit-grid article:nth-child(2) { border-right: 0; }
  .benefit-grid article:nth-child(-n+2) { border-bottom: 1px solid #dedad2; }
  .plan-catalogue { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .plan-accordion__item summary { grid-template-columns: 58px minmax(220px, 1fr) 150px 90px 28px; gap: 16px; }
  .plan-accordion__content { grid-template-columns: 1fr; }
  .more-content-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .more-content-grid article:nth-child(2) { border-right: 0; }
  .more-content-grid article:last-child { grid-column: 1 / -1; min-height: 210px; border-top: 1px solid #dedad2; }
  .more-content-grid--expanded article:last-child { grid-column: auto; border-top: 0; }
  .purchase-intro { column-gap: 48px; }
  .purchase-layout { grid-template-columns: minmax(0, 1fr) 330px; }
  .tool-showcase { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tool-showcase > article:last-child { grid-column: 1 / -1; }
  .tool-showcase > article:last-child .tool-showcase__body { min-height: 250px; }
}

@media (max-width: 820px) {
  .marketing-body { font-size: 17px; }
  .marketing-body .site-header { height: 64px; padding-inline: 17px; }
  .marketing-body .wordmark { font-size: 17px; }
  .sales-hero, .sales-section, .sales-method__inner { width: calc(100% - 36px); }
  .edition-entry { width: calc(100% - 36px); grid-template-columns: 1fr; margin-bottom: 0; }
  .edition-entry > header { grid-column: auto; min-height: 0; padding: 24px; }
  .edition-entry > header h2 { font-size: 21px; }
  .edition-entry__card { min-height: 175px; padding: 23px 24px; border-top: 1px solid #dedad2; border-left: 0; }
  .sales-hero { min-height: auto; grid-template-columns: 1fr; gap: 42px; padding: 56px 0 66px; }
  .sales-hero__copy h1 { font-size: clamp(42px, 12vw, 54px); line-height: 1.1; }
  .sales-hero__copy h2 { margin-top: 19px; font-size: 24px; }
  .sales-hero__copy > p:not(.sales-kicker) { font-size: 17px; }
  .sales-actions { margin: 27px 0 25px; }
  .sales-actions > * { flex: 1; padding-inline: 12px; }
  .sales-hero__facts { gap: 8px 20px; font-size: 13px; }
  .hero-training-visual figcaption { right: 20px; bottom: 18px; left: 20px; }
  .sales-section, .sales-method { padding-block: 70px; }
  .sales-heading { margin-bottom: 32px; }
  .sales-heading h2 { font-size: 36px; line-height: 1.24; }
  .sales-heading > p { margin-top: 13px; }
  .sales-heading--center { margin-bottom: 33px; text-align: left; }
  .sales-heading--center > p:last-child { margin-top: 13px; }
  .sales-heading--compact { display: block; }
  .sales-heading--compact .text-button { margin-top: 16px; }
  .more-content-grid { grid-template-columns: 1fr; }
  .more-content-grid article,
  .more-content-grid article:last-child { grid-column: auto; min-height: 205px; border-right: 0; border-top: 0; border-bottom: 1px solid #dedad2; }
  .more-content-grid article:last-child { border-bottom: 0; }
  .more-content-grid h3 { margin-top: 30px; font-size: 22px; }
  .benefit-grid { grid-template-columns: 1fr; }
  .benefit-grid article { min-height: 220px; border-right: 0; border-bottom: 1px solid #dedad2; }
  .benefit-grid article:last-child { border-bottom: 0; }
  .benefit-grid h3 { margin-top: 31px; }
  .sales-plans { width: auto; padding-inline: 18px; }
  .goal-pills { gap: 7px; }
  .goal-pills span { font-size: 13px; }
  .plan-stage { padding: 23px; border-radius: 13px; }
  .plan-stage + .plan-stage { margin-top: 18px; }
  .plan-stage__header { grid-template-columns: 48px minmax(0, 1fr); gap: 14px; margin-bottom: 21px; }
  .plan-stage__number { align-self: start; padding-top: 4px; font-size: 40px; }
  .plan-stage__copy h3 { font-size: 24px; }
  .plan-stage__copy p { font-size: 14px; }
  .plan-stage__schedule { grid-column: 1 / -1; width: 100%; }
  .plan-catalogue { grid-template-columns: 1fr; }
  .plan-catalogue article { min-height: 250px; }
  .plan-accordion { border-radius: 11px; }
  .plan-accordion__item summary { grid-template-columns: 43px minmax(0, 1fr) 28px; gap: 11px; min-height: 88px; padding: 15px 15px; }
  .plan-accordion__number { font-size: 20px; }
  .plan-accordion__identity small { font-size: 10px; }
  .plan-accordion__identity strong { font-size: 18px; white-space: normal; }
  .plan-accordion__goal, .plan-accordion__duration { display: none; }
  .plan-accordion__content { display: block; margin-left: 58px; padding: 22px 15px 25px 0; }
  .plan-accordion__aim p { font-size: 16px; }
  .plan-accordion__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 21px; }
  .plan-accordion__facts div { border-bottom: 1px solid #e2ded7; }
  .plan-accordion__facts div:nth-child(2) { border-right: 0; }
  .plan-accordion__facts div:nth-last-child(-n+2) { border-bottom: 0; }
  .plan-accordion__sequence { display: grid; grid-template-columns: 1fr; gap: 5px; margin-top: 17px; padding: 13px 15px; }
  .plan-accordion__sequence i { display: none; }
  .method-grid { grid-template-columns: 1fr; }
  .method-grid article { min-height: 215px; border-right: 0; border-bottom: 1px solid #3a3e44; }
  .method-grid article:last-child { border-bottom: 0; }
  .method-grid h3 { margin-top: 32px; }
  .method-note { font-size: 15px; }
  .tool-list { grid-template-columns: 1fr; }
  .tool-showcase { grid-template-columns: 1fr; gap: 12px; }
  .tool-showcase > article:last-child { grid-column: auto; }
  .tool-showcase__body, .tool-showcase > article:last-child .tool-showcase__body { min-height: 285px; }
  .tool-list article, .tool-list article:nth-child(odd) { margin-right: 0; padding-right: 0; }
  .purchase-intro { display: block; margin-bottom: 28px; }
  .purchase-intro h2 { font-size: 40px; }
  .purchase-intro > p:not(.sales-kicker) { margin-top: 15px; }
  .purchase-layout { grid-template-columns: 1fr; gap: 22px; }
  .purchase-options { grid-template-columns: 1fr; }
  .purchase-option-card__head { min-height: 0; }
  .purchase-price strong { font-size: 58px; }
  .purchase-contact { padding: 25px; }
  .sales-article-grid { grid-template-columns: 1fr; }
  .marketing-body .site-footer { display: grid; grid-template-columns: 1fr; gap: 28px; padding: 42px 20px 98px; }
  .marketing-body .site-footer > div:last-child { flex-wrap: wrap; }
}

/* Stage training challenges */
.challenge-page { --challenge-soft: #f3f0ea; --challenge-green: #2f7758; }
.dashboard-challenge-card { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-bottom: 18px; padding: 25px 30px; border-left: 4px solid var(--red); }
.dashboard-challenge-card span { color: var(--red); font-size: 13px; font-weight: 900; }
.dashboard-challenge-card h2 { margin: 5px 0; font-size: 25px; }
.dashboard-challenge-card p { margin: 0; color: var(--muted); }
.history-challenge-panel { margin-top: 18px; }
.challenge-catalogue { display: grid; gap: 18px; }
.challenge-card { display: grid; grid-template-columns: 105px minmax(0, 1fr) 220px; align-items: stretch; overflow: hidden; }
.challenge-card-code { display: flex; flex-direction: column; justify-content: space-between; padding: 27px; border-right: 1px solid var(--line); background: var(--ink); color: #fff; }
.challenge-card-code span { color: var(--red); font-size: 26px; font-weight: 950; }
.challenge-card-code em { color: #c7ccd0; font-size: 13px; font-style: normal; font-weight: 800; }
.challenge-card-main { padding: 27px 30px; }
.challenge-card-main h2 { margin: 5px 0 10px; font-size: 28px; }
.challenge-card-main > p:not(.eyebrow) { max-width: 800px; margin: 0; color: var(--muted); line-height: 1.7; }
.challenge-card-goal { display: grid; grid-template-columns: 78px minmax(0,1fr); gap: 12px; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.challenge-card-goal span { color: #454c55; line-height: 1.6; }
.challenge-card-action { display: flex; align-items: stretch; justify-content: center; flex-direction: column; gap: 14px; padding: 25px; border-left: 1px solid var(--line); background: #faf9f6; text-align: center; }
.challenge-card-action > span { color: var(--muted); font-weight: 800; }
.challenge-progress-ring b { display: block; font-size: 24px; }
.challenge-progress-ring span { color: var(--muted); font-size: 13px; }
.challenge-detail-heading > div { max-width: 970px; }
.challenge-overview { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr); margin-bottom: 18px; overflow: hidden; }
.challenge-overview-copy { padding: 34px; background: var(--ink); color: #fff; }
.challenge-overview-copy > span { color: var(--red); font-size: 13px; font-weight: 950; }
.challenge-overview-copy h2 { max-width: 800px; margin: 12px 0 30px; font-size: clamp(27px, 3vw, 40px); line-height: 1.25; }
.challenge-overview-copy dl { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; border: 1px solid #363b40; border-radius: 10px; overflow: hidden; }
.challenge-overview-copy dl div { padding: 18px; border-left: 1px solid #363b40; }
.challenge-overview-copy dl div:first-child { border-left: 0; }
.challenge-overview-copy dt { color: #aeb4ba; font-size: 12px; }
.challenge-overview-copy dd { margin: 5px 0 0; font-size: 17px; font-weight: 900; }
.challenge-overview-notes { display: grid; }
.challenge-overview-notes > div { padding: 32px; }
.challenge-overview-notes > div + div { border-top: 1px solid var(--line); }
.challenge-overview-notes b { font-size: 18px; }
.challenge-overview-notes p { margin: 10px 0 0; color: var(--muted); line-height: 1.75; }
.challenge-overview-notes .warning { background: #fff5e1; }
.challenge-schedule { margin-bottom: 18px; overflow: hidden; }
.challenge-schedule > header, .challenge-timeline > header, .challenge-test > header, .admin-challenge-days > header { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; padding: 27px 30px; border-bottom: 1px solid var(--line); }
.challenge-schedule > header h2, .challenge-timeline > header h2, .challenge-test > header h2, .admin-challenge-days > header h2 { margin: 4px 0 0; font-size: 27px; }
.challenge-schedule > header > p, .challenge-timeline > header > p, .challenge-test > header > p, .admin-challenge-days > header > p { max-width: 640px; margin: 0; color: var(--muted); line-height: 1.65; }
.challenge-day-preview { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); }
.challenge-day-preview article { display: grid; grid-template-columns: 50px minmax(0,1fr) auto; gap: 16px; align-items: center; min-height: 125px; padding: 20px 28px; border-top: 1px solid var(--line); }
.challenge-day-preview article:nth-child(-n+2) { border-top: 0; }
.challenge-day-preview article:nth-child(2n) { border-left: 1px solid var(--line); }
.challenge-day-preview article > span { color: var(--red); font-size: 21px; font-weight: 950; }
.challenge-day-preview small { color: var(--red); font-size: 11px; font-weight: 900; }
.challenge-day-preview b { display: block; margin-top: 4px; font-size: 18px; }
.challenge-day-preview p { margin: 5px 0 0; color: var(--muted); font-size: 14px; line-height: 1.55; }
.challenge-day-preview em { color: var(--muted); font-size: 13px; font-style: normal; font-weight: 800; }
.challenge-day-preview article.deload { background: #fffaf0; }
.challenge-day-preview article.rest { background: #eff7f2; }
.challenge-day-preview article.rest small { color: var(--challenge-green); }
.challenge-start { display: grid; grid-template-columns: minmax(0, 1fr) minmax(400px, .8fr); gap: 40px; align-items: center; padding: 32px; }
.challenge-start h2 { margin: 5px 0 10px; font-size: 28px; }
.challenge-start > div > p:last-child { color: var(--muted); line-height: 1.7; }
.challenge-start form { display: grid; gap: 15px; }
.challenge-levels { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0; padding: 0; border: 0; }
.challenge-levels legend { grid-column: 1/-1; margin-bottom: 8px; font-weight: 900; }
.challenge-levels label { cursor: pointer; }
.challenge-levels input { position: absolute; opacity: 0; }
.challenge-levels span { display: block; min-height: 82px; padding: 15px; border: 1px solid var(--line); border-radius: 9px; background: #fff; }
.challenge-levels input:checked + span { border-color: var(--red); background: #fff3f3; box-shadow: inset 0 0 0 1px var(--red); }
.challenge-levels span b, .challenge-levels span small { display: block; }
.challenge-levels span small { margin-top: 5px; color: var(--muted); line-height: 1.5; }
.challenge-confirm { display: flex; gap: 9px; align-items: flex-start; color: #4d545d; font-size: 13px; line-height: 1.6; }
.challenge-confirm input { margin-top: 4px; }
.challenge-health-note { margin: 0; padding: 12px; border-radius: 7px; background: #fff3dd; color: #805400; font-size: 13px; line-height: 1.6; }
.challenge-heading-actions { display: flex; align-items: center; gap: 12px; }
.challenge-heading-actions form { margin: 0; }
.challenge-progress { margin-bottom: 18px; padding: 28px 30px; }
.challenge-progress > div:first-child { display: grid; grid-template-columns: 140px 180px minmax(0,1fr); align-items: center; gap: 20px; }
.challenge-progress span { color: var(--red); font-weight: 900; }
.challenge-progress b { font-size: 25px; }
.challenge-progress p { margin: 0; color: var(--muted); line-height: 1.6; }
.challenge-progress-bar { height: 8px; margin-top: 21px; border-radius: 99px; background: #ebe8e2; overflow: hidden; }
.challenge-progress-bar span { display: block; height: 100%; border-radius: inherit; background: var(--red); }
.challenge-timeline { margin-bottom: 18px; overflow: hidden; }
.challenge-timeline-list article { display: grid; grid-template-columns: 70px minmax(0,1fr) 160px 115px; gap: 20px; align-items: center; min-height: 128px; padding: 21px 29px; border-top: 1px solid var(--line); transition: background .16s ease; }
.challenge-timeline-list article:hover { background: #fbfaf7; }
.challenge-timeline-list article.completed { background: #f6faf7; }
.challenge-timeline-list article.locked { opacity: .58; }
.challenge-day-number { color: var(--red); font-size: 24px; font-weight: 950; }
.challenge-timeline-list small { color: var(--red); font-weight: 900; }
.challenge-timeline-list h3 { margin: 4px 0; font-size: 20px; }
.challenge-timeline-list p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.55; }
.challenge-day-meta b, .challenge-day-meta span { display: block; }
.challenge-day-meta span { margin-top: 4px; color: var(--muted); font-size: 13px; }
.challenge-timeline-list article > a { color: var(--red); font-weight: 900; text-align: right; }
.challenge-test { overflow: hidden; }
.challenge-test-grid { display: grid; grid-template-columns: 1fr 1fr; }
.challenge-test-grid form { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; padding: 28px; }
.challenge-test-grid form + form { border-left: 1px solid var(--line); }
.challenge-test-grid h3, .challenge-test-grid form > p, .challenge-test-grid form > label:last-of-type, .challenge-test-grid button { grid-column: 1/-1; }
.challenge-test-grid h3 { margin: 0; font-size: 22px; }
.challenge-test-grid label { font-size: 13px; font-weight: 800; }
.challenge-test-grid input, .challenge-test-grid textarea { width: 100%; margin-top: 6px; }
.challenge-day-intro { display: grid; grid-template-columns: repeat(3, 1fr); margin-bottom: 18px; overflow: hidden; }
.challenge-day-intro div { padding: 20px 25px; border-left: 1px solid var(--line); }
.challenge-day-intro div:first-child { border-left: 0; }
.challenge-day-intro span, .challenge-day-intro b { display: block; }
.challenge-day-intro span { color: var(--muted); font-size: 12px; }
.challenge-day-intro b { margin-top: 5px; font-size: 18px; }
.challenge-rest-day { margin-bottom: 18px; padding: 58px 34px; background: #eef7f1; text-align: center; }
.challenge-rest-day > span { color: var(--challenge-green); font-weight: 950; letter-spacing: .16em; }
.challenge-rest-day h2 { margin: 10px 0; font-size: 30px; }
.challenge-rest-day p { color: var(--muted); }
.challenge-block { margin-bottom: 18px; overflow: hidden; }
.challenge-block > header { display: grid; grid-template-columns: 56px minmax(0,1fr) auto; gap: 20px; align-items: center; padding: 25px 28px; border-bottom: 1px solid var(--line); background: var(--ink); color: #fff; }
.challenge-block > header > span { color: var(--red); font-size: 24px; font-weight: 950; }
.challenge-block > header h2 { margin: 4px 0; font-size: 25px; }
.challenge-block > header p:not(.eyebrow) { margin: 0; color: #bdc3c8; }
.challenge-block > header dl { display: flex; margin: 0; }
.challenge-block > header dl div { padding: 0 18px; border-left: 1px solid #343a40; }
.challenge-block > header dt { color: #9da4aa; font-size: 11px; }
.challenge-block > header dd { margin: 4px 0 0; font-weight: 900; }
.challenge-action { border-top: 1px solid var(--line); }
.challenge-action:first-child { border-top: 0; }
.challenge-action.completed { background: #f7faf8; }
.challenge-action-summary { display: grid; grid-template-columns: 50px minmax(0,1fr) 230px; gap: 18px; align-items: center; padding: 23px 28px; }
.challenge-action-summary > span { color: var(--red); font-weight: 950; }
.challenge-action-summary small { color: var(--muted); }
.challenge-action-summary h3 { margin: 3px 0 5px; font-size: 21px; }
.challenge-action-summary p { margin: 0; color: var(--muted); font-size: 14px; }
.challenge-prescription { text-align: right; }
.challenge-prescription b, .challenge-prescription small { display: block; }
.challenge-prescription b { font-size: 19px; }
.challenge-prescription small { margin-top: 5px; color: var(--muted); }
.challenge-action-detail { border-top: 1px solid var(--line); }
.challenge-action-detail > summary { padding: 14px 28px; color: var(--red); cursor: pointer; font-weight: 900; }
.challenge-action-detail-grid { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(350px,.75fr); grid-template-areas:"guidance video" "record record"; gap: 22px 28px; align-items:start; padding: 5px 28px 28px; }
.challenge-action-guidance { grid-area:guidance; }
.challenge-action-detail-grid h4 { margin: 18px 0 5px; font-size: 17px; }
.challenge-action-detail-grid p { margin: 0; color: #4e555e; line-height: 1.7; }
.challenge-action-detail-grid aside { margin-top: 18px; padding: 16px; border-radius: 8px; background: #fff3dc; }
.challenge-coaching-note { margin-top: 15px !important; }
.challenge-video-slot { grid-area:video; }
.challenge-video { overflow:hidden;border:1px solid var(--line);border-radius:9px;background:#fff; }
.challenge-video h4 { margin:0;padding:16px 18px;border-bottom:1px solid var(--line); }
.challenge-video .video-frame { border-radius:0; }
.challenge-video-caption { padding:12px 16px 0;font-size:13px;font-weight:800; }
.challenge-video > a { display: inline-block; margin-top: 9px; color: var(--red); font-weight: 900; }
.challenge-video > a:last-child { margin:9px 16px 15px; }
.challenge-no-video { padding: 18px; border-radius: 9px; background: var(--challenge-soft); }
.challenge-no-video p { margin-top: 7px; font-size: 13px; }
.challenge-record-form { grid-area:record;display:grid;grid-template-columns:minmax(190px,.8fr) minmax(360px,1.35fr) auto minmax(180px,.65fr);gap:18px;align-items:end;margin-top:0;padding:18px;border:1px solid var(--line);border-radius:9px;background:#fff; }
.challenge-record-form h4 { margin: 0; }
.challenge-record-heading span { color:var(--red);font-size:11px;font-weight:900;letter-spacing:.08em; }
.challenge-record-heading h4 { margin:3px 0 0; }
.challenge-record-heading p { margin-top:4px;font-size:13px; }
.challenge-record-values { display:grid;grid-template-columns:1fr 1fr;gap:10px; }
.challenge-record-form label { font-size: 13px; font-weight: 800; }
.challenge-record-form input { width: 100%; margin-top: 5px; }
.challenge-record-form .check-row { display: flex; align-items: center; gap: 8px; }
.challenge-record-form .check-row input { width: auto; margin: 0; }
.challenge-record-form > button { width:100%;min-height:58px;justify-content:center; }
.challenge-complete { display: grid; grid-template-columns: minmax(0,1fr) minmax(470px,.75fr); gap: 45px; align-items: center; padding: 30px; }
.challenge-complete h2 { margin: 5px 0; font-size: 27px; }
.challenge-complete > div > p:last-child { color: var(--muted); line-height: 1.7; }
.challenge-complete form { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.challenge-complete form label { font-size: 13px; font-weight: 800; }
.challenge-complete form input, .challenge-complete form textarea { width: 100%; margin-top: 6px; }
.challenge-complete form label:last-of-type, .challenge-complete form button { grid-column: 1/-1; }
.admin-challenge-list table small { display: block; max-width: 620px; margin-top: 4px; color: var(--muted); }
.admin-challenge-form, .admin-challenge-day-form { margin-bottom: 18px; padding: 28px; }
.admin-challenge-form form, .admin-challenge-day-form form { display: grid; gap: 18px; }
.admin-challenge-form label, .admin-challenge-day-form label { font-weight: 800; }
.admin-challenge-form input, .admin-challenge-form textarea, .admin-challenge-form select, .admin-challenge-day-form input, .admin-challenge-day-form textarea { width: 100%; margin-top: 7px; }
.admin-challenge-form .form-grid, .admin-challenge-day-form .form-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 14px; }
.admin-challenge-form .form-grid.two { grid-template-columns: 1fr 1fr; }
.admin-challenge-days { overflow: hidden; }
.admin-challenge-days > div > a { display: grid; grid-template-columns: 60px minmax(0,1fr) 220px 70px; gap: 18px; align-items: center; padding: 18px 28px; border-top: 1px solid var(--line); color: inherit; }
.admin-challenge-days > div > a:hover { background: #faf9f6; }
.admin-challenge-days a > span { color: var(--red); font-size: 19px; font-weight: 950; }
.admin-challenge-days a small, .admin-challenge-days a b { display: block; }
.admin-challenge-days a small { color: var(--muted); }
.admin-challenge-days a em { color: var(--muted); font-style: normal; }
.admin-challenge-days a strong { color: var(--red); text-align: right; }
.admin-challenge-block { margin-bottom: 18px; overflow: hidden; }
.admin-challenge-block-form { display: grid; grid-template-columns: minmax(0,1fr) minmax(430px,.75fr); gap: 28px; align-items: end; padding: 24px 28px; border-bottom: 1px solid var(--line); background: #faf9f6; }
.admin-challenge-block-form > div:first-child { display: grid; gap: 10px; }
.admin-challenge-block-form label { font-size: 13px; font-weight: 800; }
.admin-challenge-block-form input, .admin-challenge-block-form textarea { width: 100%; margin-top: 6px; }
.admin-challenge-block-settings { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; align-items: end; }
.admin-challenge-block-settings button { grid-column: 1/-1; }
.admin-challenge-block > div > form { display: grid; gap: 15px; padding: 24px 28px; border-top: 1px solid var(--line); }
.admin-challenge-item-title { display: flex; gap: 12px; align-items: center; }
.admin-challenge-item-title span { color: var(--red); font-weight: 950; }
.admin-challenge-item-title h3 { margin: 0; font-size: 21px; }
.admin-prescription-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.admin-prescription-grid fieldset { display: grid; grid-template-columns: repeat(5,1fr); gap: 10px; padding: 16px; border: 1px solid var(--line); border-radius: 9px; }
.admin-prescription-grid legend { padding: 0 7px; font-weight: 900; }
.admin-prescription-grid label { font-size: 12px; font-weight: 800; }
.admin-prescription-grid input { width: 100%; margin-top: 5px; }
.admin-prescription-grid .wide { grid-column: 1/-1; }

@media (max-width: 1050px) {
  .challenge-card { grid-template-columns: 90px minmax(0,1fr); }
  .challenge-card-action { grid-column: 2; align-items: center; justify-content: flex-start; flex-direction: row; border-top: 1px solid var(--line); border-left: 0; text-align: left; }
  .challenge-card-action .primary-button { margin-left: auto; }
  .challenge-overview, .challenge-start, .challenge-complete { grid-template-columns: 1fr; }
  .challenge-action-detail-grid { grid-template-columns:1fr;grid-template-areas:"video" "guidance" "record"; }
  .challenge-record-form { grid-template-columns:1fr;align-items:stretch; }
  .challenge-test-grid { grid-template-columns: 1fr; }
  .challenge-test-grid form + form { border-top: 1px solid var(--line); border-left: 0; }
  .admin-prescription-grid { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
  .dashboard-challenge-card { align-items: stretch; flex-direction: column; padding: 21px 20px; }
  .dashboard-challenge-card .primary-button { width: 100%; justify-content: center; }
  .challenge-card { grid-template-columns: 1fr; }
  .challenge-card-code { flex-direction: row; padding: 15px 20px; border-right: 0; }
  .challenge-card-main { padding: 21px 20px; }
  .challenge-card-main h2 { font-size: 23px; }
  .challenge-card-goal { grid-template-columns: 1fr; gap: 5px; }
  .challenge-card-action { grid-column: 1; align-items: stretch; flex-direction: column; padding: 18px 20px; text-align: center; }
  .challenge-card-action .primary-button { width: 100%; margin-left: 0; justify-content: center; }
  .challenge-overview-copy, .challenge-overview-notes > div { padding: 23px 20px; }
  .challenge-overview-copy h2 { font-size: 26px; }
  .challenge-overview-copy dl { grid-template-columns: repeat(2,1fr); }
  .challenge-overview-copy dl div:nth-child(3) { border-top: 1px solid #363b40; border-left: 0; }
  .challenge-overview-copy dl div:nth-child(4) { border-top: 1px solid #363b40; }
  .challenge-schedule > header, .challenge-timeline > header, .challenge-test > header, .admin-challenge-days > header { align-items: flex-start; flex-direction: column; padding: 21px 20px; }
  .challenge-day-preview { grid-template-columns: 1fr; }
  .challenge-day-preview article, .challenge-day-preview article:nth-child(-n+2), .challenge-day-preview article:nth-child(2n) { grid-template-columns: 42px minmax(0,1fr); border-top: 1px solid var(--line); border-left: 0; padding: 18px 20px; }
  .challenge-day-preview article:first-child { border-top: 0; }
  .challenge-day-preview em { grid-column: 2; }
  .challenge-start { gap: 20px; padding: 22px 20px; }
  .challenge-levels { grid-template-columns: 1fr; }
  .challenge-heading-actions { align-items: stretch; flex-direction: column; width: 100%; }
  .challenge-progress { padding: 22px 20px; }
  .challenge-progress > div:first-child { grid-template-columns: 1fr 1fr; }
  .challenge-progress p { grid-column: 1/-1; }
  .challenge-timeline-list article { grid-template-columns: 43px minmax(0,1fr); gap: 12px; padding: 18px 20px; }
  .challenge-day-meta, .challenge-timeline-list article > a { grid-column: 2; text-align: left; }
  .challenge-test-grid form { grid-template-columns: 1fr; padding: 22px 20px; }
  .challenge-test-grid form > * { grid-column: 1 !important; }
  .challenge-day-intro { grid-template-columns: 1fr; }
  .challenge-day-intro div { padding: 15px 20px; border-top: 1px solid var(--line); border-left: 0; }
  .challenge-day-intro div:first-child { border-top: 0; }
  .challenge-block > header { grid-template-columns: 45px minmax(0,1fr); padding: 20px; }
  .challenge-block > header dl { grid-column: 2; }
  .challenge-block > header dl div:first-child { padding-left: 0; border-left: 0; }
  .challenge-action-summary { grid-template-columns: 36px minmax(0,1fr); padding: 19px 20px; }
  .challenge-prescription { grid-column: 2; text-align: left; }
  .challenge-action-detail > summary { padding: 14px 20px; }
  .challenge-action-detail-grid { padding: 4px 20px 22px; }
  .challenge-record-values { grid-template-columns: 1fr; }
  .challenge-complete { gap: 20px; padding: 22px 20px; }
  .challenge-complete form { grid-template-columns: 1fr; }
  .challenge-complete form > * { grid-column: 1 !important; }
  .admin-challenge-form, .admin-challenge-day-form { padding: 21px 20px; }
  .admin-challenge-form .form-grid, .admin-challenge-form .form-grid.two, .admin-challenge-day-form .form-grid { grid-template-columns: 1fr; }
  .admin-challenge-days > div > a { grid-template-columns: 45px minmax(0,1fr); padding: 17px 20px; }
  .admin-challenge-days a em, .admin-challenge-days a strong { grid-column: 2; text-align: left; }
  .admin-challenge-block > div > form { padding: 20px; }
  .admin-challenge-block-form { grid-template-columns: 1fr; padding: 20px; }
  .admin-challenge-block-settings { grid-template-columns: 1fr; }
  .admin-prescription-grid fieldset { grid-template-columns: 1fr 1fr; }
  .admin-prescription-grid .wide { grid-column: 1/-1; }
}

/* AI training assistant */
.ai-heading { align-items: flex-end; }
.dashboard-ai-card { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-top: 20px; padding: 25px 28px; background: var(--ink); color: #fff; }
.dashboard-ai-card span { color: #ff5a64; font-size: 13px; font-weight: 900; }
.dashboard-ai-card h2 { margin: 5px 0 7px; font-size: 25px; }
.dashboard-ai-card p { max-width: 760px; margin: 0; color: #bdc2c8; line-height: 1.7; }
.dashboard-ai-card .secondary-button.light { border-color: #62676e; color: #fff; white-space: nowrap; }
.dashboard-ai-card .secondary-button.light:hover { border-color: #fff; background: #fff; color: var(--ink); }
.dashboard-coach-card { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-top: 20px; padding: 25px 28px; border-color: #edc9c4; background: #fff7f5; }
.dashboard-coach-card > div > span { color: var(--red); font-size: 13px; font-weight: 900; }
.dashboard-coach-card h2 { margin: 5px 0 7px; font-size: 25px; }
.dashboard-coach-card p { max-width: 760px; margin: 0; color: var(--muted); line-height: 1.7; }
.dashboard-coach-card > a { flex: 0 0 auto; }
.ai-coach-heading > div { max-width: 790px; }
.ai-coach-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 18px; align-items: start; }
.ai-checkin-panel { overflow: hidden; }
.ai-coach-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 25px; padding: 22px 26px; border-bottom: 1px solid var(--line); }
.ai-coach-section-heading > div { display: flex; align-items: center; gap: 13px; }
.ai-coach-section-heading span { display: inline-flex; align-items: center; justify-content: center; min-width: 33px; height: 33px; padding: 0 7px; border-radius: 6px; background: var(--red); color: #fff; font-size: 13px; font-weight: 900; }
.ai-coach-section-heading h2 { margin: 0; font-size: 23px; }
.ai-coach-section-heading p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.6; text-align: right; }
.ai-current-plan { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 15px; margin: 24px 26px 0; padding: 16px 18px; border-radius: 8px; background: #f2f0eb; }
.ai-current-plan > span { color: var(--red); font-size: 13px; font-weight: 900; }
.ai-current-plan b, .ai-current-plan small { display: block; }
.ai-current-plan small { margin-top: 3px; color: var(--muted); }
.ai-current-plan a { color: var(--red); font-weight: 800; }
.ai-no-plan { margin: 24px 26px 0; }
.ai-no-plan a { color: var(--red); font-weight: 800; }
.ai-checkin-form { padding: 8px 26px 26px; }
.ai-checkin-form fieldset { margin: 22px 0 0; padding: 0; border: 0; }
.ai-checkin-form legend { font-size: 17px; font-weight: 900; }
.ai-checkin-form fieldset > p { margin: 4px 0 12px; color: var(--muted); font-size: 14px; }
.ai-rating-options { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.ai-rating-options label { cursor: pointer; }
.ai-rating-options input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.ai-rating-options span { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 54px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--muted); transition: border-color .16s ease, background .16s ease, color .16s ease; }
.ai-rating-options span b { color: var(--ink); font-size: 18px; }
.ai-rating-options label:hover span { border-color: #bcb5aa; }
.ai-rating-options input:focus-visible + span { outline: 3px solid rgba(236, 31, 44, .18); outline-offset: 2px; }
.ai-rating-options input:checked + span { border-color: var(--ink); background: var(--ink); color: #fff; }
.ai-rating-options input:checked + span b { color: #fff; }
.ai-checkin-fields { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 12px; margin-top: 22px; }
.ai-checkin-fields label { font-size: 14px; font-weight: 800; }
.ai-checkin-fields input, .ai-checkin-fields select { width: 100%; margin-top: 7px; }
.ai-pain-check { display: flex; align-items: flex-start; gap: 12px; margin-top: 20px; padding: 15px 17px; border: 1px solid #e3c47f; border-radius: 8px; background: #fff8e9; cursor: pointer; }
.ai-pain-check input { flex: 0 0 auto; width: 19px; height: 19px; margin-top: 2px; }
.ai-pain-check b, .ai-pain-check small { display: block; }
.ai-pain-check small { margin-top: 3px; color: var(--muted); line-height: 1.5; }
.ai-checkin-submit { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 22px; }
.ai-checkin-submit p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.ai-checkin-submit button { flex: 0 0 auto; }
.ai-checkin-history { position: sticky; top: 88px; overflow: hidden; }
.ai-checkin-history-list { display: grid; }
.ai-checkin-history-list a { position: relative; display: grid; gap: 4px; padding: 16px 18px; border-top: 1px solid var(--line); color: var(--ink); }
.ai-checkin-history-list a:first-child { border-top: 0; }
.ai-checkin-history-list a:hover, .ai-checkin-history-list a.active { background: #f3f0ea; }
.ai-checkin-history-list a.active::before { position: absolute; top: 0; bottom: 0; left: 0; width: 3px; background: var(--red); content: ''; }
.ai-checkin-history-list span { color: var(--muted); font-size: 13px; }
.ai-checkin-history-list em { color: var(--red); font-size: 12px; font-style: normal; font-weight: 900; }
.ai-today-advice, .ai-session-review { overflow: hidden; margin-top: 18px; scroll-margin-top: 90px; }
.ai-today-advice.blocked { border-color: #e3c47f; }
.ai-advice-state { display: flex; flex-wrap: wrap; gap: 8px; padding: 19px 26px 0; }
.ai-advice-state span { padding: 8px 11px; border-radius: 999px; background: #f1eee8; color: var(--muted); font-size: 13px; }
.ai-advice-state b { color: var(--ink); }
.ai-advice-content { margin: 18px 26px 0; padding: 22px 24px; }
.ai-today-advice.blocked .ai-advice-content { border: 1px solid #e3c47f; background: #fff8e9; }
.ai-today-advice > .ai-sources, .ai-session-review > .ai-sources { margin: 11px 26px 0; }
.ai-advice-actions { display: flex; flex-wrap: wrap; gap: 10px; padding: 20px 26px 26px; }
.ai-session-review { margin-bottom: 0; }
.ai-review-empty { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 27px 26px; }
.ai-review-empty b { font-size: 18px; }
.ai-review-empty p { max-width: 720px; margin: 7px 0 0; color: var(--muted); line-height: 1.7; }
.ai-review-empty form { flex: 0 0 auto; }
.ai-heading > div:first-child { max-width: 760px; }
.ai-quota { min-width: 126px; padding: 14px 18px; border: 1px solid var(--line); border-radius: 10px; background: #fff; text-align: right; }
.ai-quota b { display: block; font-size: 22px; }
.ai-quota span { color: var(--muted); font-size: 13px; }
.ai-disabled { margin-bottom: 18px; padding: 20px 24px; border: 1px solid #e2c88e; border-radius: 10px; background: #fff4dc; }
.ai-disabled p { margin: 5px 0 0; color: var(--muted); }
.ai-workspace { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: 18px; align-items: start; }
.ai-history { position: sticky; top: 88px; overflow: hidden; padding: 12px; }
.ai-new { width: 100%; justify-content: center; }
.ai-history-list { display: grid; gap: 4px; margin-top: 10px; }
.ai-history-list a { padding: 13px 12px; border-radius: 7px; color: var(--ink); }
.ai-history-list a:hover, .ai-history-list a.active { background: #f0ede7; }
.ai-history-list b { display: block; overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.ai-history-list span { display: block; margin-top: 4px; color: var(--muted); font-size: 12px; }
.ai-history-empty { padding: 20px 8px; color: var(--muted); text-align: center; font-size: 14px; }
.ai-chat { overflow: hidden; min-height: 660px; }
.ai-chat-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 21px 25px; border-bottom: 1px solid var(--line); }
.ai-chat-header small { color: var(--red); font-size: 12px; font-weight: 900; }
.ai-chat-header h2 { margin: 3px 0 0; font-size: 21px; }
.text-button { border: 0; background: none; color: var(--muted); cursor: pointer; font-weight: 700; }
.text-button:hover { color: var(--red); }
.ai-welcome { max-width: 850px; margin: 0 auto; padding: 62px 40px 40px; text-align: center; }
.ai-mark { width: 54px; height: 54px; display: inline-flex; align-items: center; justify-content: center; border-radius: 14px; background: var(--ink); color: #fff; font-weight: 900; }
.ai-welcome h2 { margin: 20px 0 8px; font-size: 30px; }
.ai-welcome > p { max-width: 650px; margin: 0 auto; color: var(--muted); line-height: 1.8; }
.ai-prompts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 32px; text-align: left; }
.ai-prompts button { min-height: 105px; padding: 19px; border: 1px solid var(--line); border-radius: 9px; background: #fff; cursor: pointer; text-align: left; transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.ai-prompts button:hover { transform: translateY(-2px); border-color: #b8b1a6; box-shadow: 0 10px 28px rgba(22,25,28,.08); }
.ai-prompts b, .ai-prompts span { display: block; }
.ai-prompts b { font-size: 16px; }
.ai-prompts span { margin-top: 8px; color: var(--muted); font-size: 14px; line-height: 1.5; }
.ai-messages { display: grid; gap: 22px; max-width: 900px; margin: 0 auto; padding: 30px; }
.ai-message { max-width: 88%; }
.ai-message.user { justify-self: end; }
.ai-message-label { margin-bottom: 9px; color: var(--muted); font-size: 15px; font-weight: 900; }
.ai-message.user .ai-message-label { text-align: right; }
.ai-message-content { padding: 17px 19px; border-radius: 10px; background: #f0ede7; color: #252a30; font-size: 16px; line-height: 1.85; }
.ai-message-content p { margin: 0 0 12px; }
.ai-message-content p:last-child { margin-bottom: 0; }
.ai-message-content h3 { margin: 24px 0 9px; font-size: 18px; line-height: 1.45; }
.ai-message-content h3:first-child { margin-top: 0; }
.ai-message-content ol, .ai-message-content ul { margin: 8px 0 14px; padding-left: 24px; }
.ai-message-content li { margin: 7px 0; padding-left: 3px; }
.ai-message-content code { padding: 2px 5px; border-radius: 4px; background: rgba(20,23,27,.08); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .9em; }
.ai-message-content strong { color: #111419; font-weight: 900; }
.ai-message.user .ai-message-content { background: var(--ink); color: #fff; }
.ai-message.user .ai-message-content strong { color: #fff; }
.ai-message.blocked .ai-message-content { border: 1px solid #e1c17b; background: #fff4dc; }
.ai-message.failed .ai-message-content { border: 1px solid #efb5b8; background: #fff1f1; }
.ai-sources { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.ai-sources > span { padding: 8px 3px; color: var(--muted); font-size: 14px; font-weight: 900; }
.ai-sources a { padding: 8px 12px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--ink); font-size: 14px; font-weight: 800; }
.ai-sources a:hover { border-color: var(--red); color: var(--red); }
.ai-failed-note { display: block; margin-top: 7px; color: var(--red); }
.ai-assessment-reminder { max-width: 840px; margin: 0 auto 4px; padding: 18px 20px; display: flex; align-items: center; justify-content: space-between; gap: 24px; border: 1px solid #e2c88e; border-radius: 9px; background: #fff8e9; }
.ai-assessment-reminder b { display: block; font-size: 16px; }
.ai-assessment-reminder p { margin: 5px 0 0; color: var(--muted); font-size: 14px; line-height: 1.65; }
.ai-assessment-reminder .secondary-button { flex: 0 0 auto; white-space: nowrap; }
.ai-composer { position: sticky; bottom: 0; margin-top: 20px; padding: 20px 24px; border-top: 1px solid var(--line); background: rgba(255,255,255,.97); }
.ai-composer > label { display: block; margin-bottom: 8px; font-size: 13px; font-weight: 800; }
.ai-composer textarea { width: 100%; min-height: 92px; resize: vertical; }
.ai-composer > div { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 10px; }
.ai-composer small { color: var(--muted); line-height: 1.5; }
.ai-composer button { min-width: 120px; }
.ai-composer button:disabled { opacity: .55; cursor: wait; }
.ai-admin-metrics { margin-bottom: 18px; }
.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.metric-card { min-height: 112px; display: flex; flex-direction: column; justify-content: space-between; padding: 20px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.metric-card span { color: var(--muted); font-size: 13px; font-weight: 700; }
.metric-card b { font-size: 28px; }
.admin-two-column { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(330px, .65fr); gap: 18px; margin-bottom: 18px; align-items: start; }
.admin-two-column + .panel, .admin-two-column + .panel + .panel { margin-top: 18px; }
.table-wrap { overflow-x: auto; }
.table-wrap table { width: 100%; border-collapse: collapse; }
.table-wrap th, .table-wrap td { padding: 15px 20px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; }
.table-wrap th { background: #fbfaf7; color: var(--muted); font-size: 13px; }
.table-wrap td small { display: block; margin-top: 3px; color: var(--muted); }
.table-wrap tbody tr:last-child td { border-bottom: 0; }
.text-link { color: var(--red); font-weight: 800; }
.toggle-row { display: flex !important; flex-direction: row !important; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 20px; padding: 16px; border: 1px solid var(--line); border-radius: 8px; }
.toggle-row span, .toggle-row b, .toggle-row small { display: block; }
.toggle-row small { margin-top: 4px; color: var(--muted); }
.toggle-row input { width: 22px; height: 22px; }
.api-status { display: grid; gap: 10px; }
.api-status > div { display: grid; grid-template-columns: 14px 1fr; gap: 2px 10px; padding: 15px; border: 1px solid var(--line); border-radius: 8px; }
.api-status .status-dot { grid-row: 1 / 3; align-self: center; width: 10px; height: 10px; border-radius: 50%; background: #a1a5aa; }
.api-status .status-dot.ok { background: #24864c; }
.api-status small { color: var(--muted); }
.form-note { margin: 16px 0; color: var(--muted); line-height: 1.7; }
.form-note code { padding: 2px 5px; border-radius: 4px; background: #f0ede7; color: var(--ink); }
.api-test-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.api-test-actions form { margin: 0; }
.security-note { margin-top: 22px; padding: 18px; border-radius: 8px; background: #f3f0ea; }
.security-note ul { margin: 10px 0 0; padding-left: 20px; color: var(--muted); line-height: 1.8; }
.admin-ai-transcript { display: grid; gap: 22px; padding: 30px; }
.admin-ai-transcript .ai-message { max-width: 82%; }
.ai-message-label small { margin-left: 8px; font-weight: 500; }
.ai-message-meta { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 8px; color: var(--muted); font-size: 12px; }

@media (max-width: 1100px) {
  .ai-workspace { grid-template-columns: 220px minmax(0, 1fr); }
  .admin-two-column { grid-template-columns: 1fr; }
  .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ai-coach-layout { grid-template-columns: 1fr; }
  .ai-checkin-history { position: static; }
  .ai-checkin-history-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ai-checkin-history-list a:nth-child(2) { border-top: 0; }
}

@media (max-width: 820px) {
  .dashboard-ai-card, .dashboard-coach-card { align-items: stretch; flex-direction: column; padding: 21px; }
  .ai-heading { align-items: flex-start; }
  .ai-quota { min-width: 110px; text-align: left; }
  .ai-workspace { grid-template-columns: 1fr; }
  .ai-history { position: static; }
  .ai-history-list { display: flex; overflow-x: auto; }
  .ai-history-list a { flex: 0 0 180px; }
  .ai-chat { min-height: 560px; }
  .ai-welcome { padding: 40px 18px 24px; }
  .ai-welcome h2 { font-size: 25px; }
  .ai-prompts { grid-template-columns: 1fr; }
  .ai-prompts button { min-height: 90px; }
  .ai-messages { padding: 20px 15px; }
  .ai-message, .admin-ai-transcript .ai-message { max-width: 96%; }
  .ai-message-label { font-size: 14px; }
  .ai-message-content { font-size: 15px; }
  .ai-sources > span, .ai-sources a { font-size: 13px; }
  .ai-assessment-reminder { align-items: stretch; flex-direction: column; margin: 0 15px 4px; padding: 17px; }
  .ai-assessment-reminder .secondary-button { justify-content: center; }
  .ai-composer { padding: 16px; }
  .ai-composer > div { align-items: stretch; flex-direction: column; }
  .ai-composer button { width: 100%; }
  .admin-ai-transcript { padding: 18px; }
  .metric-card { min-height: 96px; padding: 16px; }
  .metric-card b { font-size: 23px; }
  .ai-coach-section-heading { align-items: flex-start; flex-direction: column; gap: 7px; }
  .ai-coach-section-heading p { text-align: left; }
  .ai-rating-options { grid-template-columns: repeat(5, minmax(56px, 1fr)); overflow-x: auto; padding-bottom: 4px; }
  .ai-checkin-fields { grid-template-columns: 1fr; }
  .ai-review-empty { align-items: stretch; flex-direction: column; }
  .ai-review-empty form, .ai-review-empty button { width: 100%; }
}

@media (max-width: 420px) {
  .sales-hero, .sales-section, .sales-method__inner { width: calc(100% - 28px); }
  .sales-hero__copy h1 { font-size: 41px; }
  .sales-actions { display: grid; grid-template-columns: 1fr; }
  .sales-hero__facts { display: grid; grid-template-columns: repeat(2, 1fr); }
  .hero-training-visual figcaption { display: block; }
  .hero-training-visual figcaption b,
  .hero-training-visual figcaption span { display: block; }
  .hero-training-visual figcaption span { margin-top: 2px; }
  .sales-heading h2 { font-size: 32px; }
  .sales-plans { padding-inline: 14px; }
  .purchase-qr, .purchase-qr img { width: 210px; }
  .purchase-qr img { height: 210px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .hero-training-visual img,
  .benefit-grid article,
  .plan-catalogue article,
  .plan-accordion__item,
  .plan-accordion__item summary,
  .plan-accordion__toggle,
  .method-grid article,
  .tool-list article,
  .sales-article-grid a,
  .sales-article-grid__cover-frame,
  .sales-article-grid__cover,
  .marketing-body .primary-button,
  .marketing-body .secondary-button,
  .js .sales-reveal,
  .js .sales-reveal.is-visible { transition: none; transform: none; }
  .js .sales-reveal { opacity: 1; }
  .faq-list details[open] p { animation: none; }
  .plan-accordion__item[open] .plan-accordion__content { animation: none; }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: "Noto Sans SC", "Microsoft YaHei", "PingFang SC", system-ui, sans-serif; font-size: 17px; line-height: 1.7; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
input, select, textarea { width: 100%; border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 12px 14px; color: var(--ink); outline: none; }
input:focus, select:focus, textarea:focus { border-color: var(--ink); box-shadow: 0 0 0 3px rgba(21, 24, 28, .06); }
textarea { resize: vertical; }
label { display: grid; gap: 7px; color: #34383e; font-size: 15px; font-weight: 700; }
h1, h2, h3, p { margin-top: 0; }

.primary-button, .secondary-button, .link-button, .text-button { display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; min-height: 46px; padding: 0 20px; font-weight: 800; border: 1px solid transparent; }
.primary-button { background: var(--red); color: #fff; border-color: var(--red); }
.primary-button:hover { background: var(--red-dark); }
.secondary-button { background: #fff; border-color: var(--line); color: var(--ink); }
.link-button, .text-button { background: transparent; padding-inline: 10px; }
.text-button { border-bottom: 1px solid var(--ink); border-radius: 0; min-height: 38px; }
.compact { min-height: 40px; padding-inline: 16px; }
.full { width: 100%; }
.eyebrow { margin-bottom: 10px; color: var(--red); font-size: 12px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.muted { color: var(--muted); }

.site-header { position: sticky; top: 0; z-index: 20; height: 76px; padding: 0 max(24px, calc((100vw - 1180px) / 2)); display: flex; align-items: center; justify-content: space-between; gap: 30px; background: rgba(250, 249, 246, .96); border-bottom: 1px solid var(--line); backdrop-filter: blur(10px); }
.wordmark { font-size: 18px; font-weight: 900; white-space: nowrap; }
.wordmark span { color: var(--red); margin-left: 4px; }
.site-header nav { display: flex; gap: 30px; font-size: 14px; font-weight: 700; }
.site-header nav a:hover { color: var(--red); }
.header-actions { display: flex; align-items: center; gap: 8px; }
.hero-section, .content-section, .price-section, .contact-section { max-width: 1180px; margin: auto; padding: 96px 24px; }
.hero-section { min-height: 720px; display: grid; grid-template-columns: 1.05fr .95fr; gap: 74px; align-items: center; }
.hero-copy h1 { font-size: clamp(48px, 5.2vw, 76px); line-height: 1.08; letter-spacing: -.04em; margin-bottom: 26px; }
.hero-lead { max-width: 660px; color: #555b63; font-size: 19px; line-height: 1.8; }
.hero-actions { display: flex; gap: 20px; margin: 34px 0 48px; }
.proof-row { display: flex; gap: 0; }
.proof-row div { min-width: 130px; padding-right: 30px; margin-right: 30px; border-right: 1px solid var(--line); }
.proof-row div:last-child { border: 0; }
.proof-row b { display: block; font-size: 28px; line-height: 1; }
.proof-row span { display: block; margin-top: 10px; color: var(--muted); font-size: 13px; }
.recommendation-preview { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 36px; box-shadow: var(--shadow); }
.preview-label { display: inline-block; background: #f7e8e8; color: var(--red); padding: 6px 10px; border-radius: 99px; font-size: 12px; font-weight: 800; }
.recommendation-preview h2 { margin: 22px 0; font-size: 30px; }
.recommendation-preview dl { margin: 0; border-top: 1px solid var(--line); }
.recommendation-preview dl div { display: flex; justify-content: space-between; gap: 24px; padding: 15px 0; border-bottom: 1px solid var(--line); }
.recommendation-preview dt { color: var(--muted); }
.recommendation-preview dd { margin: 0; font-weight: 800; }
.recommendation-result { margin-top: 24px; padding: 22px; background: var(--ink); color: #fff; border-radius: 10px; }
.recommendation-result small { color: #ff8d95; }
.recommendation-result strong { display: block; margin: 6px 0; font-size: 20px; }
.recommendation-result p { margin: 0; color: #d5d8dc; font-size: 14px; }
.section-heading { max-width: 720px; margin-bottom: 44px; }
.section-heading h2 { font-size: clamp(34px, 4vw, 52px); line-height: 1.18; letter-spacing: -.03em; }
.section-heading > p:last-child { color: var(--muted); font-size: 17px; }
.goal-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
.goal-grid article { min-height: 248px; display: flex; flex-direction: column; padding: 26px; background: #fff; border: 1px solid var(--line); border-radius: 10px; }
.goal-grid article span { color: var(--red); font-size: 13px; font-weight: 900; }
.goal-grid h3 { margin: 32px 0 12px; font-size: 21px; }
.goal-grid p { color: var(--muted); font-size: 14px; }
.goal-grid small { margin-top: auto; font-weight: 800; }
.dark-section { padding: 96px max(24px, calc((100vw - 1180px) / 2)); background: var(--ink); color: #fff; }
.section-heading.light p:last-child { color: #c5c9ce; }
.process-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: #363a40; border: 1px solid #363a40; }
.process-grid article { min-height: 220px; background: var(--ink); padding: 28px; }
.process-grid b { color: var(--red); }
.process-grid h3 { margin: 45px 0 8px; font-size: 22px; }
.process-grid p { color: #b9bdc2; font-size: 14px; }
.feature-split { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.feature-split h2 { font-size: 48px; line-height: 1.18; }
.feature-split p, .feature-split li { color: var(--muted); }
.feature-split li { margin-bottom: 8px; }
.block-demo { padding: 26px; background: #eeeae2; border-radius: 14px; }
.block-card { display: grid; grid-template-columns: 50px 1fr; gap: 4px 16px; margin-bottom: 10px; padding: 18px; background: #fff; border: 1px solid var(--line); border-radius: 8px; }
.block-card span { grid-row: span 2; color: var(--red); font-weight: 900; }
.block-card small { color: var(--muted); }
.block-demo > p { margin: 24px 0 0; text-align: center; color: var(--ink); font-weight: 900; }
.price-section { display: grid; grid-template-columns: 1fr 420px; gap: 100px; align-items: center; }
.price-section h2 { font-size: 52px; }
.price-card { background: #fff; border: 1px solid var(--line); border-top: 5px solid var(--red); padding: 34px; border-radius: 12px; box-shadow: var(--shadow); }
.price-card > small { font-weight: 800; }
.price-card > strong { display: block; margin: 18px 0; font-size: 64px; line-height: 1; }
.price-card sup { font-size: 24px; }
.price-card ul { padding-left: 22px; margin: 26px 0; }
.price-card li { margin-bottom: 10px; }
.price-card .primary-button { width: 100%; }
.contact-section { margin-bottom: 80px; display: grid; grid-template-columns: 1fr 260px; gap: 80px; align-items: center; background: var(--red); color: #fff; border-radius: 16px; }
.contact-section .eyebrow { color: #fff; opacity: .75; }
.contact-section h2 { font-size: 42px; }
.contact-section p { margin: 0; color: #ffe7e9; }
.qr-placeholder { aspect-ratio: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; background: #fff; color: var(--ink); border-radius: 10px; }
.qr-placeholder span { margin-top: 6px; color: var(--muted); font-size: 12px; }
.qr-placeholder img { width:calc(100% - 28px);height:calc(100% - 52px);object-fit:contain; }
.site-footer { display: flex; justify-content: space-between; gap: 40px; padding: 50px max(24px, calc((100vw - 1180px) / 2)); background: #101215; color: #fff; }
.site-footer p { max-width: 550px; margin: 8px 0 0; color: #aeb3ba; font-size: 13px; }
.site-footer > div:last-child { display: flex; gap: 24px; }
.mobile-purchase { display: none; }

.plain-body { min-height: 100vh; }
.login-shell { min-height: 100vh; display: grid; grid-template-columns: 1.1fr .9fr; }
.login-intro { padding: 80px max(50px, calc((100vw - 1100px) / 2)); background: var(--ink); color: #fff; display: flex; flex-direction: column; justify-content: center; }
.login-intro .wordmark { position: absolute; top: 44px; }
.login-intro .wordmark span { color: #ff4d59; }
.login-intro h1 { margin: 10px 0 20px; font-size: 58px; line-height: 1.12; }
.login-intro > p:last-child { max-width: 520px; color: #c3c7cc; font-size: 18px; }
.login-card { max-width: 480px; width: calc(100% - 48px); margin: auto; padding: 40px; background: #fff; border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow); }
.login-card h2 { font-size: 32px; }
.login-card > p { color: var(--muted); }
.login-card form { display: grid; gap: 18px; margin: 28px 0; }
.login-card > small { display: block; color: var(--muted); line-height: 1.7; }
.remember-login { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; }
.remember-login input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--red); }
.remember-login span { display: grid; gap: 2px; }
.remember-login small { color: var(--muted); font-weight: 500; }
.error-page { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 30px; }
.error-page > span { color: var(--red); font-size: 20px; font-weight: 900; }
.error-page h1 { margin: 12px 0; font-size: 44px; }

.portal-body { background: #f4f2ed; }
.portal-layout { min-height: 100vh; display: grid; grid-template-columns: 232px 1fr; }
.portal-sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; padding: 26px 16px 20px; background: #15181c; color: #fff; overflow-y: auto; }
.portal-logo { display: grid; padding: 0 12px 22px; border-bottom: 1px solid #30343a; }
.portal-logo span { color: #aeb3ba; font-size: 13px; }
.portal-logo b { font-size: 18px; }
.portal-logo small { color: #ff4d59; margin-top: 2px; }
.portal-sidebar nav { display: grid; gap: 4px; margin-top: 22px; }
.portal-sidebar nav a { padding: 11px 12px; border-radius: 7px; color: #c5c8cd; font-size: 15px; font-weight: 700; }
.portal-sidebar nav a.active { background: #292d33; color: #fff; }
.portal-sidebar nav a.active::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 10px; background: var(--red); border-radius: 50%; vertical-align: 2px; }
.portal-sidebar nav a.disabled { opacity: .6; cursor: default; }
.portal-nav-group { margin: 0; }
.portal-nav-group summary { position: relative; padding: 11px 34px 11px 12px; border-radius: 7px; color: #c5c8cd; font-size: 15px; font-weight: 700; cursor: pointer; list-style: none; }
.portal-nav-group summary::-webkit-details-marker { display: none; }
.portal-nav-group summary::marker { content: ""; }
.portal-nav-group summary::after { content: "+"; position: absolute; right: 13px; top: 9px; color: #858b93; font-size: 19px; font-weight: 500; }
.portal-nav-group[open] summary::after { content: "−"; }
.portal-nav-group summary:hover,
.portal-nav-group summary.active { background: #22262b; color: #fff; }
.portal-subnav { display: grid; gap: 2px; margin: 3px 0 6px 12px; padding-left: 11px; border-left: 1px solid #363b42; }
.portal-sidebar nav .portal-subnav a { padding: 8px 10px; color: #aeb3ba; font-size: 13px; }
.portal-sidebar nav .portal-subnav a.active { background: #292d33; color: #fff; }
.portal-sidebar nav .portal-subnav a.active::before { width: 5px; height: 5px; margin-right: 8px; }
.sidebar-account { margin-top: auto; padding: 18px 12px 0; border-top: 1px solid #30343a; display: grid; gap: 5px; }
.sidebar-account span { font-weight: 800; }
.sidebar-account button { padding: 0; background: transparent; border: 0; color: #9fa4aa; text-align: left; }
.portal-main { min-width: 0; }
.portal-topbar { height: 66px; display: flex; align-items: center; justify-content: space-between; padding: 0 30px; background: #fff; border-bottom: 1px solid var(--line); }
.portal-topbar a { color: var(--muted); font-size: 15px; }
.portal-topbar-links { display:flex;align-items:center;gap:22px; }
.portal-topbar-links a:first-child { color:var(--ink);font-weight:800; }
.menu-toggle { display: none; }
.portal-content { width: min(1400px, calc(100% - 56px)); margin: 0 auto; padding: 46px 0 80px; }
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-bottom: 28px; }
.page-heading h1 { margin-bottom: 8px; font-size: 42px; line-height: 1.12; letter-spacing: -.03em; }
.page-heading p:last-child { margin: 0; color: var(--muted); }
.page-heading-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.page-actions { display: flex; gap: 10px; }
.page-actions form { margin: 0; }
.published-label { max-width: 290px; color: var(--muted); font-size: 13px; line-height: 1.5; }
.flash { max-width: 1400px; margin: 16px auto; padding: 13px 16px; border-radius: 8px; }
.flash.success { background: #e8f3eb; color: #285b38; border: 1px solid #b9d8c2; }
.flash.error { background: #fff0f0; color: #a51620; border: 1px solid #f1bec2; }
.flash ul { margin-bottom: 0; }
.panel { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); }
.panel-heading { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 22px 24px; border-bottom: 1px solid var(--line); }
.panel-heading h2 { margin: 0; font-size: 22px; }
.panel-heading .eyebrow { margin: 0 0 3px; }
.stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 20px; }
.stat-grid article { padding: 24px; background: #fff; border: 1px solid var(--line); border-radius: 10px; }
.stat-grid small, .stat-grid span { display: block; color: var(--muted); }
.stat-grid b { display: block; margin: 10px 0; font-size: 36px; line-height: 1; }
.dashboard-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 20px; }
.quality-list { display: grid; }
.quality-list a { display: flex; align-items: center; gap: 18px; padding: 18px 24px; border-bottom: 1px solid var(--line); }
.quality-list a:last-child { border: 0; }
.quality-list b { color: var(--red); font-size: 24px; }
.workflow-list { list-style: none; margin: 0; padding: 12px 24px 20px; }
.workflow-list li { display: flex; gap: 15px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.workflow-list li:last-child { border: 0; }
.workflow-list li > b { color: var(--red); }
.workflow-list strong { display: block; }
.workflow-list span { color: var(--muted); }
.panel-toolbar { display: flex; justify-content: space-between; gap: 24px; padding: 18px 22px; border-bottom: 1px solid var(--line); }
.panel-toolbar form { display: flex; gap: 8px; width: min(520px, 100%); }
.panel-toolbar > div { display: flex; gap: 7px; }
.filter-chip { border: 1px solid var(--line); background: #fff; border-radius: 99px; padding: 7px 12px; font-size: 13px; }
.filter-chip.active { background: var(--ink); color: #fff; border-color: var(--ink); }
.table-pagination { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 22px; border-top: 1px solid var(--line); }
.table-pagination p { margin: 0; color: var(--muted); font-size: 14px; }
.table-pagination nav { display: flex; align-items: center; gap: 7px; }
.page-link { min-width: 38px; height: 38px; padding: 0 11px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: 6px; background: #fff; color: var(--ink); font-size: 14px; font-weight: 700; }
.page-link:hover { border-color: var(--ink); }
.page-link.active { background: var(--ink); border-color: var(--ink); color: #fff; }
.page-link.disabled { opacity: .4; pointer-events: none; }
.data-table { overflow-x: auto; }
.table-row { min-width: 950px; display: grid; align-items: center; gap: 16px; padding: 17px 24px; border-bottom: 1px solid var(--line); font-size: 15px; }
.table-row:last-child { border: 0; }
.table-row small { display: block; color: var(--muted); }
.table-row > a { color: var(--red); font-weight: 800; }
.table-head { color: var(--muted); font-size: 13px; font-weight: 800; background: #fbfaf7; }
.exercise-table .table-row { grid-template-columns: 70px 1.5fr 1fr .8fr .65fr .7fr .8fr 50px; }
.plan-table .table-row { min-width: 1100px; grid-template-columns: 60px 1.3fr 1.2fr .8fr .7fr .6fr .5fr .8fr 70px; }
.admin-filter-tabs { display: flex; gap: 8px; margin: 0 0 18px; }
.admin-filter-tabs a { padding: 9px 15px; border: 1px solid var(--line); border-radius: 999px; background: #fff; font-size: 14px; font-weight: 800; }
.admin-filter-tabs a.active { border-color: var(--ink); background: var(--ink); color: #fff; }
.member-table .table-row { min-width: 1280px; grid-template-columns: 1fr 1.1fr 1.35fr .85fr .9fr .65fr 1.1fr .75fr 55px; }
.gift-batch-table .table-row { min-width: 980px; grid-template-columns: 1.35fr .9fr 1.2fr .8fr .55fr .55fr .55fr; }
.article-table .table-row { min-width: 1050px; grid-template-columns: 1.6fr .8fr 1fr 1fr .7fr 1fr 50px; }
.status-dot { display: inline-block; width: 7px; height: 7px; margin-right: 7px; border-radius: 50%; background: #999; }
.status-dot.published { background: var(--green); }
.status-dot.draft { background: #c28c23; }
.status-dot.active { background: var(--green); }
.status-dot.disabled { background: #999; }
.editor-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 20px; align-items: start; }
.member-editor-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 20px; align-items: start; }
.article-editor-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 20px; align-items: start; }
.settings-form { display:grid;gap:20px;max-width:1000px; }
.member-editor-aside { display: grid; gap: 20px; }
.product-type-fieldset { margin: 20px 0; padding: 0; border: 0; }
.product-type-fieldset legend { font-weight: 800; }
.product-type-fieldset .choice-card span { align-items: flex-start; flex-direction: column; gap: 4px; min-height: 82px; }
.product-type-fieldset .choice-card small { color: var(--muted); font-weight: 500; line-height: 1.55; }
.membership-type-fieldset { padding-top: 4px; }
.trial-period-field { display: grid; gap: 7px; max-width: 420px; margin-top: 16px; }
.trial-period-field small, .form-section label > small { color: var(--muted); font-weight: 500; line-height: 1.5; }
.member-type-cell b { display: block; }
.member-type-cell small { margin-top: 3px; }
.gift-permission-summary { margin: 20px 0; background: #fbfaf7; }
.gift-permission-summary h3 { margin-top: 0; }
.editor-main { display: grid; gap: 20px; }
.editor-main-form { display: grid; gap: 20px; }
.editor-aside { position: sticky; top: 86px; display: grid; gap: 20px; }
.form-section { padding: 24px; }
.form-section > .panel-heading { margin: -24px -24px 24px; }
.form-section > label { margin-bottom: 18px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.aside-note p, .aside-note li { color: var(--muted); font-size: 14px; }
.variant-list { display: grid; }
.variant-list article { display: grid; grid-template-columns: 1fr auto 50px; align-items: center; gap: 16px; padding: 16px 24px; border-bottom: 1px solid var(--line); }
.variant-list article:last-child { border: 0; }
.variant-list span { display: block; color: var(--muted); font-size: 13px; }
.variant-list em { font-size: 12px; font-style: normal; }
.variant-list button, .plan-item button { background: transparent; border: 0; color: var(--red); font-weight: 800; }
.variant-manager { overflow: hidden; }
.variant-editor-card { border-bottom: 1px solid var(--line); }
.variant-editor-card:last-child { border-bottom: 0; }
.variant-editor-card > summary { display: grid; grid-template-columns: 1fr auto 50px; align-items: center; gap: 18px; padding: 18px 24px; cursor: pointer; list-style: none; }
.variant-editor-card > summary::-webkit-details-marker { display: none; }
.variant-editor-card > summary span { display: block; color: var(--muted); font-size: 14px; }
.variant-editor-card > summary em { color: var(--muted); font-size: 13px; font-style: normal; }
.variant-editor-card > summary strong { color: var(--red); font-size: 14px; }
.variant-editor-card[open] > summary { background: #fbfaf7; }
.variant-editor-content { display: grid; gap: 16px; padding: 22px 24px 26px; background: #fbfaf7; border-top: 1px solid var(--line); }
.variant-form { display: grid; gap: 16px; }
.variant-form > .primary-button { justify-self: start; }
.item-editor { position: relative; }
.item-editor > summary { color: var(--red); font-weight: 800; cursor: pointer; list-style: none; }
.item-editor > summary::-webkit-details-marker { display: none; }
.item-editor-popover { position: absolute; z-index: 12; right: 0; top: 30px; width: 390px; max-height: min(650px, 75vh); overflow-y: auto; padding: 18px; background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow); }
.item-editor-popover form { display: grid; gap: 12px; }
.item-editor-popover form + form { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.item-video-selector label { display: grid; grid-template-columns: 20px 1fr; align-items: start; gap: 8px; font-weight: 500; }
.item-video-selector input { width: auto; margin-top: 4px; }
.danger-text-button { width: 100%; min-height: 40px; background: #fff; border: 1px solid #f0b5b9; border-radius: 7px; color: #a51620; }
.video-manager { overflow: hidden; }
.section-note { margin: 0; padding: 18px 24px; border-bottom: 1px solid var(--line); color: var(--muted); }
.video-editor-card { border-bottom: 1px solid var(--line); }
.video-editor-card:last-child { border-bottom: 0; }
.video-editor-card > summary { display: grid; grid-template-columns: 1fr auto 50px; align-items: center; gap: 18px; padding: 18px 24px; cursor: pointer; list-style: none; }
.video-editor-card > summary::-webkit-details-marker { display: none; }
.video-editor-card > summary span { display: block; color: var(--muted); font-size: 13px; }
.video-editor-card > summary em { color: var(--muted); font-size: 12px; font-style: normal; }
.video-editor-card > summary strong { color: var(--red); font-size: 13px; }
.video-editor-card[open] > summary { background: #fbfaf7; }
.video-editor-content { display: grid; gap: 18px; padding: 22px 24px 26px; background: #fbfaf7; border-top: 1px solid var(--line); }
.video-form { display: grid; gap: 16px; }
.video-form > .primary-button { justify-self: start; }
.embed-preview { width: min(720px, 100%); aspect-ratio: 16 / 9; background: var(--ink); border-radius: 8px; overflow: hidden; }
.embed-preview iframe { width: 100%; height: 100%; border: 0; }
.field-help { margin: -4px 0 0; color: var(--muted); font-size: 13px; }
.builder-overview-editor { margin-bottom: 20px; overflow: hidden; }
.builder-overview-editor > summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 24px; cursor: pointer; list-style: none; }
.builder-overview-editor > summary::-webkit-details-marker { display: none; }
.builder-overview-editor > summary h2 { margin: 3px 0 0; font-size: 24px; }
.builder-overview-editor > summary strong { color: var(--red); }
.builder-overview-editor[open] > summary { border-bottom: 1px solid var(--line); background: #fbfaf7; }
.builder-overview-editor > form { display: grid; gap: 16px; padding: 22px 24px 26px; }
.builder-overview-editor > form > .primary-button { justify-self: start; }
.builder-layout { display: grid; grid-template-columns: 270px minmax(500px, 1fr) 320px; gap: 16px; align-items: start; }
.exercise-library, .prescription-editor { position: sticky; top: 82px; max-height: calc(100vh - 98px); overflow: hidden; }
.exercise-library > input { width: calc(100% - 32px); margin: 16px; }
.library-items { max-height: calc(100vh - 240px); overflow-y: auto; padding: 0 12px 16px; }
.library-items button { width: 100%; display: grid; grid-template-columns: 42px 1fr; gap: 2px 10px; padding: 12px; background: #fff; border: 0; border-bottom: 1px solid var(--line); text-align: left; }
.library-items button:hover { background: #f6f4ef; }
.library-items span { grid-row: span 2; color: var(--red); font-size: 12px; font-weight: 900; }
.library-items small { color: var(--muted); }
.plan-canvas { display: grid; gap: 16px; }
.builder-group-heading { display:flex;justify-content:space-between;gap:16px;padding:10px 18px;background:#efede7;border-bottom:1px solid var(--line); }
.builder-group-heading b { color:var(--red); }
.builder-group-heading span { color:var(--muted);font-size:13px; }
.plan-section > header { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 20px; border-bottom: 1px solid var(--line); }
.plan-section > header > div { display: flex; gap: 16px; }
.plan-section > header span { color: var(--red); font-weight: 900; }
.plan-section > header h2 { margin: 0; font-size: 20px; }
.plan-section > header p { margin: 2px 0 0; color: var(--muted); font-size: 13px; }
.plan-item { position: relative; display: grid; grid-template-columns: 24px 1.4fr 1fr .65fr .9fr 54px; align-items: center; gap: 14px; padding: 15px 18px; border-bottom: 1px solid var(--line); font-size: 14px; }
.drag-handle { color: #aeb3b9; cursor: grab; }
.item-name small, .item-name em { display: block; color: var(--muted); font-style: normal; }
.plan-item > div > small { display: block; color: var(--muted); }
.section-empty { padding: 32px; color: var(--muted); text-align: center; }
.prescription-editor { padding-bottom: 18px; overflow-y: auto; }
.prescription-editor > p, .prescription-editor > form { margin-left: 18px; margin-right: 18px; }
.prescription-editor form { display: grid; gap: 13px; }
.compact-grid { gap: 10px; }
.compact-grid label { font-size: 12px; }
.onboarding-card, .today-card { margin-bottom: 20px; padding: 34px; background: var(--ink); color: #fff; border-radius: 12px; }
.onboarding-card { display: grid; grid-template-columns: 1.2fr .8fr; gap: 50px; align-items: center; }
.onboarding-card span { color: #ff6b75; font-size: 13px; font-weight: 900; }
.onboarding-card h2, .today-card h2 { margin: 8px 0; font-size: 32px; }
.onboarding-card p { color: #c4c8cd; }
.feature-pending { display: inline-block; padding: 9px 12px; border: 1px solid #4a4e54; border-radius: 7px; color: #c4c8cd; }
.onboarding-card ol { list-style: none; margin: 0; padding: 0; }
.onboarding-card li { padding: 13px 0; border-bottom: 1px solid #34383d; }
.onboarding-card li b { display: inline-flex; width: 24px; height: 24px; margin-right: 10px; align-items: center; justify-content: center; background: #2c3035; border-radius: 50%; color: #ff6b75; }
.today-card { display: flex; justify-content: space-between; align-items: center; }
.empty-state { padding: 36px; text-align: center; color: var(--muted); }
.empty-state b { color: var(--ink); }
.member-goals { display: flex; flex-wrap: wrap; gap: 10px; padding: 22px; }
.member-goals span, .member-goals a { padding: 9px 13px; background: #f0eee9; border-radius: 99px; font-weight: 700; }
.member-goals a { background: var(--ink); color: #fff; }
.summary-list { display:grid; }
.summary-list a { display:flex;justify-content:space-between;gap:20px;padding:17px 22px;border-bottom:1px solid var(--line); }
.summary-list a:last-child { border:0; }
.summary-list span { color:var(--muted); }
.assessment-form { display: grid; gap: 16px; }
.assessment-question { display: grid; grid-template-columns: 54px 1fr; gap: 24px; padding: 26px; }
.question-number { color: var(--red); font-weight: 900; }
.assessment-question h2 { margin-bottom: 4px; font-size: 23px; }
.assessment-question p { color: var(--muted); }
.option-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 18px; }
.equipment-options { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.choice-card { display: block; position: relative; }
.choice-card input { position: absolute; opacity: 0; pointer-events: none; }
.choice-card span { display: flex; align-items: center; min-height: 54px; padding: 12px 15px; border: 1px solid var(--line); border-radius: 8px; background: #fff; font-size: 15px; }
.choice-card input:checked + span { border-color: var(--red); box-shadow: inset 0 0 0 1px var(--red); background: #fff6f6; }
.single-input { max-width: 420px; margin-top: 18px; }
.assessment-submit { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 26px; background: var(--ink); color: #fff; border-radius: 12px; }
.assessment-submit p { margin: 4px 0 0; color: #c5c9ce; }
.recommendation-card { display: grid; grid-template-columns: 1.1fr .9fr; gap: 1px; overflow: hidden; background: var(--line); border: 1px solid var(--line); border-radius: 12px; }
.recommendation-card > div { padding: 34px; background: #fff; }
.recommendation-card > div:first-child > span, .manual-review-card > span { color: var(--red); font-size: 13px; font-weight: 900; }
.recommendation-card h2, .manual-review-card h2 { margin: 8px 0 12px; font-size: 32px; }
.recommendation-card dl { margin: 24px 0 0; }
.recommendation-card dl div { display: flex; justify-content: space-between; padding: 11px 0; border-top: 1px solid var(--line); }
.recommendation-card dd { margin: 0; font-weight: 800; }
.recommendation-reason > p { color: var(--muted); }
.notice { margin: 20px 0; padding: 16px; border-radius: 8px; background: #f1f0ec; }
.notice.warning { background: #fff4df; }
.notice p { margin: 4px 0 0; }
.manual-review-card { max-width: 800px; padding: 38px; background: #fff; border: 1px solid var(--line); border-radius: 12px; }
.course-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.course-card { display: flex; flex-direction: column; min-height: 390px; padding: 26px; background: #fff; border: 1px solid var(--line); border-radius: 12px; }
.course-card > div:first-child { display: flex; justify-content: space-between; color: var(--red); font-size: 13px; font-weight: 900; }
.course-card em { color: var(--muted); font-style: normal; }
.course-card h2 { margin: 28px 0 10px; font-size: 25px; }
.course-card > p { color: var(--muted); }
.course-card dl { margin: auto 0 24px; }
.course-card dl div { display: flex; justify-content: space-between; padding: 8px 0; border-top: 1px solid var(--line); }
.course-card dd { margin: 0; font-weight: 800; }
.youth-plan-groups { display: grid; gap: 36px; }
.youth-plan-stage { padding-top: 4px; }
.youth-plan-stage + .youth-plan-stage { padding-top: 34px; border-top: 1px solid var(--line); }
.youth-plan-stage__header { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 22px; align-items: start; margin-bottom: 18px; }
.youth-plan-stage__header > span { display: inline-flex; min-height: 38px; align-items: center; justify-content: center; padding: 7px 11px; background: var(--ink); border-radius: 99px; color: #fff; font-size: 14px; font-weight: 900; }
.youth-plan-stage__header h2 { margin: 0 0 4px; font-size: 25px; }
.youth-plan-stage__header p { margin: 0; color: var(--muted); font-size: 15px; }
.adult-plan-groups { display: grid; gap: 42px; }
.plan-library-group { padding-top: 4px; }
.plan-library-group + .plan-library-group { padding-top: 36px; border-top: 1px solid var(--line); }
.plan-library-group__header { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 22px; align-items: start; margin-bottom: 18px; }
.plan-library-group__header > span { display: inline-flex; min-height: 38px; align-items: center; justify-content: center; padding: 7px 11px; background: var(--ink); border-radius: 99px; color: #fff; font-size: 14px; font-weight: 900; }
.plan-library-group__header h2 { margin: 0 0 4px; font-size: 27px; }
.plan-library-group__header p { margin: 0; color: var(--muted); font-size: 15px; }
.plan-library-group--home { padding: 24px; background: #fff8f6; border: 1px solid #f0c9c4; border-radius: 14px; }
.plan-library-group--home .plan-library-group__header > span { background: var(--red); }
.plan-library-group--home .course-card { border-color: #e8c5c0; }
.course-grid--home { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.course-meta { display: grid; grid-template-columns: repeat(4,1fr); margin-bottom: 20px; }
.course-meta div { padding: 22px; border-right: 1px solid var(--line); }
.course-meta div:last-child { border: 0; }
.course-meta b,.course-meta span { display: block; }
.course-meta b { font-size: 24px; }
.course-meta span { color: var(--muted); font-size: 13px; }
.plan-badminton-benefits { display: grid; grid-template-columns: minmax(230px, .7fr) minmax(0, 1.3fr); align-items: center; gap: 44px; margin-bottom: 20px; padding: 28px 32px; border-left: 4px solid var(--red); }
.plan-badminton-benefits h2 { margin: 5px 0 0; font-size: 28px; }
.plan-badminton-benefits > p { margin: 0; color: #454b53; font-size: 18px; line-height: 1.8; }
.course-plan-notes { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 20px; }
.course-plan-notes article { padding: 22px 24px; }
.course-plan-notes article > b { display: block; margin-bottom: 7px; color: var(--red); }
.course-plan-notes p { margin: 0; color: var(--muted); }
.course-sections { display: grid; gap: 18px; }
.course-section > header { display: flex; gap: 18px; padding: 24px; border-bottom: 1px solid var(--line); }
.course-section > header > span { color: var(--red); font-weight: 900; }
.course-section h2 { margin: 0; }
.course-section header p { margin: 3px 0 0; color: var(--muted); }
.course-exercise { border-bottom: 1px solid var(--line); }
.course-exercise:last-child { border: 0; }
.course-group-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 13px 24px; background: #f1efe9; border-bottom: 1px solid var(--line); }
.course-group-heading div { display: flex; align-items: baseline; gap: 10px; }
.course-group-heading b { color: var(--red); }
.course-group-heading span, .course-group-heading p { margin: 0; color: var(--muted); font-size: 14px; }
.course-exercise > summary { display: grid; grid-template-columns: 38px 1.4fr .85fr .55fr 46px; align-items: center; gap: 18px; padding: 20px 24px; cursor: pointer; list-style: none; }
.course-exercise > summary::-webkit-details-marker { display:none; }
.course-exercise > summary > span { color: var(--muted); font-weight: 800; }
.course-exercise summary div > b { font-size: 17px; line-height: 1.45; }
.course-exercise summary small,.course-exercise summary em,.course-exercise summary div span { display:block;color:var(--muted);font-size:14px;font-style:normal; }
.course-exercise summary strong { color:var(--red);font-size:14px; }
.exercise-guidance { display:grid;grid-template-columns:1fr 300px;gap:30px;padding:26px 62px;background:#fbfaf7;border-top:1px solid var(--line); }
.exercise-guidance h3 { margin: 18px 0 6px; font-size: 18px; }
.exercise-guidance h3:first-child { margin-top:0; }
.exercise-guidance p { margin-bottom:0;color:#4f555d; }
.plan-item-badminton-role { margin-bottom: 22px; padding: 18px; background: #f0ede7; border-left: 3px solid var(--red); border-radius: 8px; }
.plan-item-badminton-role h3 { color: var(--red); }
.plan-item-badminton-role p { margin-top: 6px; line-height: 1.75; }
.reference-library { padding:70px 0 20px; }
.video-grid { display:grid;grid-template-columns:repeat(2,1fr);gap:18px; }
.video-card { overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:10px; }
.video-frame { aspect-ratio:16/9;background:var(--ink); }
.video-frame iframe, .video-frame video { width:100%;height:100%;border:0;display:block;object-fit:contain; }
.vod-lazy-player { position:relative;overflow:hidden; }
.vod-lazy-play { position:absolute;left:50%;top:50%;z-index:2;display:grid;place-items:center;width:52px;height:52px;padding:0 0 0 3px;border:0;border-radius:50%;background:var(--red);color:#fff;transform:translate(-50%,-50%);cursor:pointer;box-shadow:0 8px 20px rgba(0,0,0,.2);transition:transform .18s ease,box-shadow .18s ease; }
.vod-lazy-play i { color:#fff;font-size:20px;font-style:normal;line-height:1; }
.vod-lazy-play:hover { transform:translate(-50%,-50%) scale(1.07);box-shadow:0 10px 25px rgba(0,0,0,.28); }
.vod-lazy-play:focus-visible { outline:3px solid rgba(255,255,255,.9);outline-offset:4px; }
.vod-lazy-play:disabled { cursor:wait;opacity:.9; }
.vod-lazy-play[hidden] { display:none; }
.vod-lazy-status { position:absolute;left:14px;right:14px;bottom:12px;z-index:3;margin:0;padding:9px 12px;border-radius:6px;background:rgba(0,0,0,.76);color:#fff;text-align:center;font-size:14px; }
.video-card > div:last-child { padding:18px; }
.video-card p { margin:3px 0;color:var(--muted); }
.video-card a { color:var(--red);font-weight:800; }
.training-disclaimer { margin-top:40px;padding:22px;border:1px solid #e3cfa9;background:#fff8e9;border-radius:10px; }
.training-disclaimer p { margin:4px 0 0; }
.start-session-card { display:grid;grid-template-columns:1fr 420px;gap:60px;padding:38px;background:var(--ink);color:#fff;border-radius:12px; }
.start-session-card > div > span { color:#ff737c;font-weight:900;font-size:13px; }
.start-session-card h2 { margin:8px 0; font-size:32px; }
.start-session-card p { color:#c5c9ce; }
.start-ai-check { display:inline-flex;margin-top:7px;color:#ff7e86;font-weight:800; }
.start-ai-check:hover { color:#fff; }
.start-session-card form { display:grid;gap:16px;align-content:center; }
.start-session-card label { color:#fff; }
.session-items { display:grid;gap:16px; }
.session-group-guide { display:flex;align-items:center;justify-content:space-between;gap:20px;margin:10px 0 -4px;padding:14px 18px;background:#e8e5de;border-left:4px solid var(--red);border-radius:8px; }
.session-group-guide b { color:var(--red); }
.session-group-guide span { color:var(--muted);font-size:14px; }
.session-item > header { display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:18px;padding:22px 24px;border-bottom:1px solid var(--line); }
.session-item > header > span { color:var(--red);font-weight:900; }
.session-item h2 { margin:0; }
.session-item header p { margin:2px 0 0;color:var(--muted); }
.session-item > details > summary { padding:14px 24px;color:var(--red);font-weight:800;cursor:pointer; }
.set-table { padding:0 24px 24px;overflow-x:auto; }
.set-row { min-width:760px;display:grid;grid-template-columns:40px .8fr 1fr 1fr .9fr .8fr .8fr;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line); }
.set-row input,.set-row select { padding:8px; }
.set-head { color:var(--muted);font-size:13px;font-weight:800; }
.set-done { display:grid;grid-template-columns:18px 1fr;align-items:center;gap:6px; }
.set-done input { width:auto; }
.set-table > button { margin-top:14px; }
.set-field { display:block;margin:0;min-width:0; }
.set-field > input,.set-field > select { width:100%;min-width:0; }
.set-field-label,.mobile-only { display:none; }
.compact-set-input { position: relative; color: var(--ink); }
.compact-set-input input { width: 100%; padding-right: 34px; }
.compact-set-input .set-input-unit { position: absolute; right: 9px; top: 50%; transform: translateY(-50%); color: var(--muted); font-size: 12px; pointer-events: none; }
.readonly-set-table input:disabled, .readonly-set-table select:disabled { color: var(--ink); opacity: 1; background: #f4f2ed; border-color: #e3e0d8; -webkit-text-fill-color: var(--ink); }
.history-session-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 18px; overflow: hidden; }
.history-session-summary > div { padding: 20px 24px; border-right: 1px solid var(--line); }
.history-session-summary > div:nth-child(4) { border-right: 0; }
.history-session-summary span, .history-session-summary b { display: block; }
.history-session-summary span { margin-bottom: 5px; color: var(--muted); font-size: 13px; }
.history-session-summary > p { grid-column: 1 / -1; margin: 0; padding: 19px 24px; border-top: 1px solid var(--line); }
.complete-session { display:grid;gap:18px;margin-top:20px;padding:28px; }
.complete-session h2 { margin:0; }
.complete-session p { margin:3px 0 0;color:var(--muted); }
.guide-page-heading { align-items:center; }
.guide-page-heading > div { max-width:780px; }
.guide-quick-start { display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:48px;margin-bottom:22px;padding:34px;overflow:hidden;background:var(--ink);color:#fff; }
.guide-quick-copy > span { color:#ff626d;font-size:13px;font-weight:900; }
.guide-quick-copy h2 { margin:9px 0 13px;font-size:31px;line-height:1.2; }
.guide-quick-copy p { margin:0;color:#c6cad0;line-height:1.75; }
.guide-steps { display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin:0;padding:0;list-style:none; }
.guide-steps li { min-width:0;padding:8px 16px;border-left:1px solid #383c42; }
.guide-steps b,.guide-steps span,.guide-steps strong,.guide-steps small { display:block; }
.guide-steps b { margin-bottom:30px;color:#ff626d;font-size:14px; }
.guide-steps strong { font-size:16px;line-height:1.4; }
.guide-steps small { margin-top:6px;color:#aeb3ba;font-size:13px;line-height:1.55; }
.guide-layout { display:grid;grid-template-columns:230px minmax(0,1fr);gap:22px;align-items:start; }
.guide-directory { position:sticky;top:88px;padding:22px; }
.guide-directory > b { display:block;margin-bottom:14px;font-size:17px; }
.guide-directory nav { display:grid; }
.guide-directory a { display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:14px;font-weight:800; }
.guide-directory a:last-child { border-bottom:0; }
.guide-directory a:hover { color:var(--red); }
.guide-directory a span { color:var(--red);font-size:12px; }
.guide-sections { display:grid;gap:18px;min-width:0; }
.guide-section { scroll-margin-top:82px;overflow:hidden; }
.guide-section > header { display:flex;align-items:center;gap:18px;padding:24px 28px;border-bottom:1px solid var(--line); }
.guide-section > header > span { flex:0 0 42px;color:var(--red);font-size:14px;font-weight:900; }
.guide-section > header p { margin:0 0 3px;color:var(--red);font-size:13px;font-weight:800; }
.guide-section > header h2 { margin:0;font-size:27px; }
.guide-section-body { padding:28px; }
.guide-section-body > p:first-child { margin-top:0; }
.guide-copy-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px; }
.guide-copy-grid > div { padding:21px;background:#f5f3ee;border-radius:9px; }
.guide-copy-grid h3 { margin:0 0 8px;font-size:19px; }
.guide-copy-grid p { margin:0;color:var(--muted);line-height:1.75; }
.guide-action-row { display:flex;flex-wrap:wrap;gap:12px;margin-top:22px; }
.guide-action-row a { display:inline-flex;align-items:center;min-height:44px;padding:0 17px;border:1px solid var(--ink);border-radius:7px;font-weight:800; }
.guide-action-row a:first-child { background:var(--ink);color:#fff; }
.guide-checklist { display:grid;gap:0;margin:0;padding:0;list-style:none;counter-reset:guide-list; }
.guide-checklist li { display:grid;grid-template-columns:170px minmax(0,1fr);gap:28px;padding:18px 0;border-bottom:1px solid var(--line); }
.guide-checklist li:first-child { padding-top:0; }
.guide-checklist li:last-child { border-bottom:0; }
.guide-checklist b { font-size:17px; }
.guide-checklist span { color:var(--muted);line-height:1.75; }
.guide-note { margin-top:22px;padding:19px 21px;border-left:3px solid var(--red);background:#f5f3ee;border-radius:0 8px 8px 0; }
.guide-note b { font-size:17px; }
.guide-note p { margin:5px 0 0;color:var(--muted); }
.guide-note.warning { border:1px solid #e6c98f;border-left:3px solid #d69618;background:#fff7e5; }
.guide-field-list { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--line);border-radius:9px;overflow:hidden; }
.guide-field-list article { padding:22px; }
.guide-field-list article:nth-child(odd) { border-right:1px solid var(--line); }
.guide-field-list article:nth-child(-n+2) { border-bottom:1px solid var(--line); }
.guide-field-list b { font-size:18px; }
.guide-field-list p { margin:7px 0 0;color:var(--muted);line-height:1.72; }
.guide-rpe { display:grid;grid-template-columns:260px minmax(0,1fr);gap:30px;margin-top:28px;padding:24px;background:var(--ink);color:#fff;border-radius:9px; }
.guide-rpe h3 { margin:6px 0 10px;font-size:24px; }
.guide-rpe p:last-child { margin:0;color:#bfc4ca; }
.rpe-scale { display:grid;grid-template-columns:repeat(6,minmax(0,1fr));align-items:stretch; }
.rpe-scale span { display:flex;flex-direction:column;justify-content:space-between;gap:24px;padding:12px;border-left:1px solid #3a3e44; }
.rpe-scale b { color:#ff626d;font-size:20px; }
.rpe-scale small { color:#c7cbd0;font-size:12px;line-height:1.45; }
.guide-footnote { margin:16px 0 0;padding-left:14px;border-left:2px solid var(--red);color:var(--muted);font-size:14px; }
.guide-question-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:20px; }
.guide-question-grid span { padding:15px 17px;border:1px solid var(--line);border-radius:8px;background:#fbfaf7;font-weight:700; }
.guide-safety-list { display:grid;gap:12px;margin:0;padding:0;list-style:none;counter-reset:safety; }
.guide-safety-list li { position:relative;padding:15px 18px 15px 49px;background:#f5f3ee;border-radius:8px;line-height:1.7; }
.guide-safety-list li::before { counter-increment:safety;content:counter(safety);position:absolute;left:17px;top:16px;color:var(--red);font-size:13px;font-weight:900; }
.account-summary-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 20px; }
.account-summary-grid article { min-height: 190px; padding: 24px; }
.account-summary-grid span { color: var(--muted); font-size: 13px; font-weight: 800; }
.account-summary-grid h2 { margin: 31px 0 9px; font-size: 25px; line-height: 1.25; }
.account-summary-grid p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.65; }
.account-summary-grid .account-ai-active { border-top: 4px solid var(--green); }
.account-summary-grid .account-ai-expired { border-top: 4px solid #b7862c; }
.account-password-panel { overflow: hidden; }
.account-password-panel .panel-heading p:last-child { margin: 6px 0 0; color: var(--muted); }
.account-password-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; padding: 25px; }
.account-password-form > div { grid-column: 1 / -1; display: flex; align-items: center; gap: 18px; }
.account-password-form > div small { color: var(--muted); line-height: 1.6; }
.article-index,.article-page { max-width:1040px;margin:auto;padding:90px 24px; }
.article-hero { max-width:760px;margin-bottom:60px; }
.article-hero h1 { font-size:clamp(42px,6vw,68px);line-height:1.1; }
.article-hero > p:last-child { color:var(--muted);font-size:18px; }
.article-listing { display:grid;gap:18px; }
.article-teaser { display:grid;grid-template-columns:260px 1fr;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:12px; }
.article-teaser > img { width:100%;height:100%;object-fit:cover; }
.article-teaser > div { padding:26px; }
.article-teaser span { color:var(--red);font-size:12px;font-weight:900; }
.article-teaser h2 { margin:9px 0;font-size:27px; }
.article-teaser p { color:var(--muted); }
.article-teaser > div > a:last-child { color:var(--red);font-weight:800; }
.article-page { max-width:840px; }
.article-page article { padding:46px;background:#fff;border:1px solid var(--line);border-radius:14px; }
.article-page header h1 { font-size:clamp(38px,5vw,58px);line-height:1.15; }
.article-page header > div { display:flex;gap:18px;color:var(--muted); }
.article-page header > p { margin-top:24px;color:#555b63;font-size:18px; }
.article-page header > img { width:100%;margin-top:28px;border-radius:9px; }
.article-content { margin-top:40px;font-size:18px;line-height:1.9; }
.article-content p { margin-bottom:24px; }
.article-cta { margin-top:22px;padding:26px;background:var(--ink);color:#fff;border-radius:11px; }
.article-cta p { color:#c5c9ce; }
.member-mobile-nav { display: none; }

.custom-plan-section + .custom-plan-section { margin-top: 70px; }
.compact-heading { margin-bottom: 26px; }
.compact-heading h2 { margin-bottom: 8px; font-size: 34px; }
.custom-plan-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.custom-plan-card { min-height: 420px; }
.custom-plan-card > form { margin-top: 12px; }
.custom-card-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.template-copy-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.template-copy-card { padding: 24px; }
.template-copy-card > div:first-child { display: flex; justify-content: space-between; color: var(--red); font-weight: 900; }
.template-copy-card em { color: var(--muted); font-style: normal; }
.template-copy-card h3 { margin: 22px 0 8px; font-size: 22px; }
.template-copy-card p { min-height: 88px; color: var(--muted); }
.template-copy-card > small { display: block; margin-bottom: 20px; color: var(--muted); }
.template-copy-card form { display: grid; gap: 12px; }
.blank-plan-form { max-width: 900px; display: grid; grid-template-columns: .85fr 1.15fr; gap: 50px; padding: 36px; }
.blank-plan-form p { color: var(--muted); }
.blank-plan-form form { display: grid; gap: 16px; align-content: center; }
.custom-plan-name-editor { display: grid; grid-template-columns: minmax(0, 580px) 1fr; align-items: end; gap: 40px; margin-bottom: 20px; padding: 20px 24px; }
.custom-plan-name-editor form { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 10px; }
.custom-plan-name-editor p { margin: 0; color: var(--muted); }
.member-builder-layout { display: grid; grid-template-columns: minmax(0, 1fr) 350px; gap: 18px; align-items: start; }
.custom-plan-canvas { display: grid; gap: 16px; }
.member-action-picker { position: sticky; top: 82px; max-height: calc(100vh - 98px); overflow-y: auto; padding-bottom: 20px; }
.member-action-picker > form, .member-action-picker > .notice { margin: 18px; }
.member-action-picker > form { display: grid; gap: 13px; }
.member-plan-item { display: grid; grid-template-columns: 58px minmax(180px, 1fr) minmax(190px, .8fr) 62px; align-items: center; gap: 16px; padding: 17px 20px; border-bottom: 1px solid var(--line); }
.item-order span { display: inline-flex; min-width: 38px; min-height: 30px; align-items: center; justify-content: center; background: #efede7; border-radius: 99px; color: var(--muted); font-size: 13px; font-weight: 800; }
.item-prescription b, .item-prescription span { display: block; }
.item-prescription span { color: var(--muted); font-size: 14px; }
.exercise-search-panel { margin-bottom: 20px; padding: 18px; }
.exercise-search-panel form { display: grid; grid-template-columns: 1fr auto; gap: 10px; }
.member-exercise-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.member-exercise-card { display: flex; flex-direction: column; min-height: 360px; padding: 24px; }
.member-exercise-card > div:first-child { display: flex; justify-content: space-between; color: var(--red); font-weight: 900; }
.member-exercise-card em { color: var(--muted); font-style: normal; }
.member-exercise-card h2 { margin: 26px 0 0; font-size: 24px; }
.member-exercise-card > small { color: var(--muted); }
.member-exercise-card > p { color: var(--muted); }
.member-exercise-card dl { margin: auto 0 20px; }
.member-exercise-card dl div { display: flex; justify-content: space-between; padding: 8px 0; border-top: 1px solid var(--line); }
.member-exercise-card dd { margin: 0; font-weight: 800; }
.exercise-detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 18px; align-items: start; }
.exercise-detail-main { display: grid; gap: 18px; }
.exercise-badminton-benefits { padding: 27px 29px; border-left: 4px solid var(--red); }
.exercise-badminton-benefits h2 { margin: 5px 0 8px; font-size: 27px; }
.exercise-badminton-benefits > p:last-child { margin: 0; color: #454b53; font-size: 17px; line-height: 1.8; }
.exercise-content-card { padding: 28px; }
.exercise-content-card > div + div { margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--line); }
.exercise-content-card h2 { margin-bottom: 7px; font-size: 22px; }
.exercise-content-card p { margin: 0; color: #4f555d; }
.exercise-detail-aside { position: sticky; top: 82px; display: grid; gap: 16px; }
.exercise-meta-card { display: grid; grid-template-columns: 1fr 1fr; padding: 22px; }
.exercise-meta-card b, .exercise-meta-card span { padding: 10px 0; border-bottom: 1px solid var(--line); }
.exercise-meta-card b { color: var(--red); font-size: 22px; }
.exercise-meta-card span { color: var(--muted); text-align: right; }
.member-variant-reference { overflow: hidden; }
.member-variant-reference details { border-bottom: 1px solid var(--line); }
.member-variant-reference details:last-child { border-bottom: 0; }
.member-variant-reference summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 24px; cursor: pointer; list-style: none; }
.member-variant-reference summary::-webkit-details-marker { display: none; }
.member-variant-reference summary span { display: block; color: var(--muted); font-size: 14px; }
.member-variant-reference summary strong { color: var(--red); }
.member-variant-reference details > div { padding: 22px 24px; background: #fbfaf7; border-top: 1px solid var(--line); }
.member-variant-reference h3 { margin: 18px 0 6px; }
.member-variant-reference h3:first-child { margin-top: 0; }
.history-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 18px; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 12px; }
.history-stats > div { padding: 24px 26px; border-right: 1px solid var(--line); }
.history-stats > div:last-child { border-right: 0; }
.history-stats span { display: block; margin-bottom: 12px; color: var(--muted); font-size: 14px; font-weight: 700; }
.history-stats strong { font-size: 36px; line-height: 1; }
.history-stats small { margin-left: 5px; color: var(--muted); }
.history-layout { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 18px; align-items: start; }
.history-list-panel { overflow: hidden; }
.history-list-panel > .panel-heading, .frequent-exercises > .panel-heading { padding: 22px 24px; border-bottom: 1px solid var(--line); }
.panel-heading p { margin: 4px 0 0; color: var(--muted); }
.history-list > a { display: grid; grid-template-columns: 62px minmax(190px, 1fr) 180px 16px; align-items: center; gap: 18px; min-height: 94px; padding: 14px 22px; border-bottom: 1px solid var(--line); }
.history-list > a:last-child { border-bottom: 0; }
.history-list > a:hover { background: #fbfaf7; }
.history-list time { padding-right: 18px; border-right: 1px solid var(--line); }
.history-list time b, .history-list time span, .history-session-name strong, .history-session-name span, .history-session-data b, .history-session-data span { display: block; }
.history-list time b { font-size: 19px; }
.history-list time span, .history-session-name span, .history-session-data span { color: var(--muted); font-size: 13px; }
.history-session-name strong { font-size: 17px; }
.history-session-data { text-align: right; }
.list-arrow { color: var(--red); font-size: 25px; }
.frequent-exercises { overflow: hidden; }
.frequent-exercises ol { margin: 0; padding: 0; list-style: none; }
.frequent-exercises li { display: grid; grid-template-columns: 34px 1fr; gap: 12px; padding: 16px 22px; border-bottom: 1px solid var(--line); }
.frequent-exercises li:last-child { border-bottom: 0; }
.frequent-exercises li > span { color: var(--red); font-size: 13px; font-weight: 900; }
.frequent-exercises a b, .frequent-exercises a small { display: block; }
.frequent-exercises a small { margin-top: 2px; color: var(--muted); }

/* Public landing page: the 12 training programmes are the primary product. */
.landing-page { overflow: hidden; }
.landing-hero, .landing-section, .course-content-section, .how-it-works-section { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.landing-hero { min-height: 680px; padding: 88px 0 92px; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(390px, .92fr); gap: 76px; align-items: center; }
.landing-hero-copy h1 { max-width: 700px; margin: 0 0 26px; font-size: clamp(50px, 5.6vw, 76px); line-height: 1.08; letter-spacing: -.045em; }
.landing-lead { max-width: 690px; margin-bottom: 0; color: #525861; font-size: 19px; line-height: 1.85; }
.landing-facts { display: flex; margin-top: 44px; }
.landing-facts div { min-width: 145px; padding-right: 28px; margin-right: 28px; border-right: 1px solid var(--line); }
.landing-facts div:last-child { border-right: 0; margin-right: 0; padding-right: 0; }
.landing-facts b, .landing-facts span { display: block; }
.landing-facts b { font-size: 27px; line-height: 1.1; }
.landing-facts span { margin-top: 8px; color: var(--muted); font-size: 14px; }
.course-path-card { padding: 30px; background: #fff; border: 1px solid var(--line); border-radius: 15px; box-shadow: var(--shadow); }
.course-path-heading { padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.course-path-heading span, .course-path-heading b { display: block; }
.course-path-heading span { margin-bottom: 5px; color: var(--red); font-size: 13px; font-weight: 900; letter-spacing: .12em; }
.course-path-heading b { font-size: 24px; }
.course-path-card ol { margin: 0; padding: 6px 0; list-style: none; }
.course-path-card li { display: grid; grid-template-columns: 66px 1fr; gap: 16px; align-items: center; padding: 17px 0; border-bottom: 1px solid var(--line); }
.course-path-card li:last-child { border-bottom: 0; }
.course-path-card li > b { color: var(--red); font-size: 16px; }
.course-path-card strong, .course-path-card li span { display: block; }
.course-path-card strong { font-size: 17px; }
.course-path-card li span { margin-top: 3px; color: var(--muted); font-size: 14px; }
.course-path-card > p { margin: 16px 0 0; padding: 16px 18px; background: #f5f3ee; border-radius: 8px; color: #555b63; font-size: 14px; }
.real-recommendation { padding: 32px; }
.real-recommendation h2 { font-size: 29px; }
.real-recommendation dl div { padding: 14px 0; }
.real-recommendation dt { font-size: 15px; }
.real-recommendation dd { text-align: right; font-size: 15px; }

.real-goals-section { width: auto; padding: 96px max(24px, calc((100vw - 1180px) / 2)); background: #ebe8e1; }
.real-goals-section > * { max-width: 1180px; margin-inline: auto; }
.real-goal-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px; background: #d3cfc7; border: 1px solid #d3cfc7; }
.real-goal-grid article { min-height: 270px; display: flex; flex-direction: column; padding: 25px; background: #f7f5f0; }
.real-goal-grid span { color: var(--red); font-size: 13px; font-weight: 900; }
.real-goal-grid h3 { margin: 34px 0 12px; font-size: 21px; line-height: 1.35; }
.real-goal-grid p { margin: 0 0 22px; color: var(--muted); font-size: 14px; }
.real-goal-grid b { margin-top: auto; font-size: 13px; }

.landing-section { padding: 100px 0; }
.programme-section { width: auto; padding-inline: max(24px, calc((100vw - 1180px) / 2)); background: #fff; }
.programme-section > * { max-width: 1180px; margin-inline: auto; }
.landing-heading { display: grid; grid-template-columns: minmax(0, 1fr) 440px; gap: 60px; align-items: end; margin-bottom: 42px; }
.landing-heading h2, .course-content-copy h2, .how-it-works-section h2, .price-copy h2 { margin-bottom: 0; font-size: clamp(36px, 4.2vw, 52px); line-height: 1.18; letter-spacing: -.035em; }
.landing-heading > p { margin: 0; color: var(--muted); font-size: 17px; line-height: 1.75; }
.compact-heading { align-items: center; }
.programme-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.programme-grid .programme-card { min-height: 260px; display: flex; flex-direction: column; padding: 26px; background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--ink); border-radius: 11px; }
.programme-grid .programme-card-foundation { border-top-color: #365f8d; }
.programme-grid .programme-card-intermediate { border-top-color: #9a5c20; }
.programme-grid .programme-card-advanced { border-top-color: var(--red); }
.programme-card header { display: flex; justify-content: space-between; align-items: center; }
.programme-card header span { color: var(--red); font-size: 14px; font-weight: 900; letter-spacing: .08em; }
.programme-card header em { padding: 4px 9px; background: #f3f1ec; border-radius: 99px; color: #595f67; font-size: 12px; font-style: normal; font-weight: 800; }
.programme-card h3 { margin: 28px 0 12px; font-size: 23px; line-height: 1.3; }
.programme-card > p { margin-bottom: 24px; color: #5d636b; font-size: 16px; line-height: 1.75; }
.programme-card footer { display: flex; gap: 18px; margin-top: auto; padding-top: 17px; border-top: 1px solid var(--line); color: var(--muted); font-size: 13px; font-weight: 700; }

.course-content-section { width: auto; padding: 100px max(24px, calc((100vw - 1180px) / 2)); display: grid; grid-template-columns: .82fr 1.18fr; gap: 100px; background: var(--ink); color: #fff; }
.course-content-copy { align-self: center; }
.course-content-copy > p:last-child { max-width: 520px; margin-top: 24px; color: #bdc2c8; font-size: 17px; }
.course-content-list { border-top: 1px solid #383c42; }
.course-content-list article { display: grid; grid-template-columns: 50px 1fr; gap: 20px; padding: 23px 0; border-bottom: 1px solid #383c42; }
.course-content-list article > b { color: #ff5964; font-size: 14px; }
.course-content-list h3 { margin-bottom: 5px; font-size: 20px; }
.course-content-list p { margin: 0; color: #b7bcc2; font-size: 15px; }

.support-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.support-grid article { min-height: 250px; padding: 25px; background: #fff; border: 1px solid var(--line); border-radius: 10px; }
.support-grid span { color: var(--red); font-size: 13px; font-weight: 900; }
.support-grid h3 { margin: 44px 0 12px; font-size: 21px; }
.support-grid p { margin: 0; color: var(--muted); font-size: 15px; }

.assessment-section { width: auto; padding: 96px max(24px, calc((100vw - 1180px) / 2)); display: grid; grid-template-columns: .85fr 1.15fr; gap: 90px; background: #ebe8e1; }
.assessment-copy { align-self: center; }
.assessment-copy h2 { margin: 0; font-size: clamp(36px, 4vw, 50px); line-height: 1.2; letter-spacing: -.035em; }
.assessment-copy > p:last-child { max-width: 530px; margin: 24px 0 0; color: var(--muted); font-size: 17px; }
.assessment-questions { border-top: 1px solid #ccc7be; }
.assessment-questions article { display: grid; grid-template-columns: 48px 1fr; gap: 18px; padding: 21px 0; border-bottom: 1px solid #ccc7be; }
.assessment-questions article > span { color: var(--red); font-size: 14px; font-weight: 900; }
.assessment-questions h3 { margin-bottom: 4px; font-size: 19px; }
.assessment-questions p { margin: 0; color: var(--muted); font-size: 15px; }
.training-support-strip { width: min(1180px, calc(100% - 48px)); margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); border-bottom: 1px solid var(--line); }
.training-support-strip div { padding: 31px 28px; border-right: 1px solid var(--line); }
.training-support-strip div:last-child { border-right: 0; }
.training-support-strip span, .training-support-strip b { display: block; }
.training-support-strip span { margin-bottom: 5px; color: var(--red); font-size: 13px; font-weight: 900; }
.training-support-strip b { font-size: 18px; }

.system-value-section { width: min(1180px, calc(100% - 48px)); margin: 0 auto; padding: 100px 0; display: grid; grid-template-columns: .78fr 1.22fr; gap: 86px; }
.system-value-heading { align-self: start; position: sticky; top: 110px; }
.system-value-heading h2 { margin: 0; font-size: clamp(36px, 4vw, 50px); line-height: 1.2; letter-spacing: -.035em; }
.system-value-heading > p:last-child { max-width: 500px; margin: 24px 0 0; color: var(--muted); font-size: 17px; }
.system-value-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.system-value-grid article { min-height: 265px; padding: 25px; background: #fff; border: 1px solid var(--line); border-radius: 10px; }
.system-value-grid span { color: var(--red); font-size: 13px; font-weight: 900; }
.system-value-grid h3 { margin: 38px 0 12px; font-size: 21px; }
.system-value-grid p { margin: 0; color: var(--muted); font-size: 15px; }

.how-it-works-section { width: auto; padding: 82px max(24px, calc((100vw - 1180px) / 2)); display: grid; grid-template-columns: 360px 1fr; gap: 90px; background: #ebe8e1; }
.how-it-works-section ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid #cec9bf; }
.how-it-works-section li { display: grid; grid-template-columns: 38px 1fr; gap: 14px; padding: 20px 14px 20px 0; border-bottom: 1px solid #cec9bf; }
.how-it-works-section li:nth-child(odd) { margin-right: 28px; }
.how-it-works-section li > b { color: var(--red); }
.how-it-works-section li strong, .how-it-works-section li span { display: block; }
.how-it-works-section li strong { margin-bottom: 3px; font-size: 17px; }
.how-it-works-section li span { color: var(--muted); font-size: 14px; }

.article-preview-section { padding-bottom: 40px; }
.article-preview-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; }
.article-preview-grid a { min-height: 220px; padding: 25px; background: #fff; border: 1px solid var(--line); border-radius: 10px; }
.article-preview-grid span { color: var(--red); font-size: 13px; font-weight: 800; }
.article-preview-grid h3 { margin: 26px 0 10px; font-size: 21px; line-height: 1.4; }
.article-preview-grid p { margin: 0; color: var(--muted); font-size: 15px; }

.revised-price { padding-top: 80px; }
.price-copy > p:not(.eyebrow) { max-width: 650px; margin-top: 24px; color: var(--muted); font-size: 17px; }
.audience-note { display: grid; grid-template-columns: 78px 1fr; gap: 16px; margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--line); }
.audience-note b { color: var(--red); font-size: 14px; }
.audience-note span { color: var(--muted); font-size: 14px; }

@media (max-width: 1100px) {
  .goal-grid { grid-template-columns: repeat(3, 1fr); }
  .landing-hero { grid-template-columns: 1fr 410px; gap: 42px; }
  .landing-hero-copy h1 { font-size: 56px; }
  .real-goal-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .programme-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .support-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .course-content-section { gap: 54px; }
  .assessment-section { gap: 54px; }
  .system-value-section { gap: 50px; }
  .how-it-works-section { grid-template-columns: 300px 1fr; gap: 50px; }
  .builder-layout { grid-template-columns: 240px 1fr; }
  .prescription-editor { position: static; grid-column: 1 / -1; max-height: none; }
  .stat-grid { grid-template-columns: repeat(2, 1fr); }
  .template-copy-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .member-builder-layout { grid-template-columns: 1fr; }
  .member-action-picker { position: static; max-height: none; }
  .member-exercise-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .guide-quick-start { grid-template-columns:1fr;gap:28px; }
  .guide-layout { grid-template-columns:1fr; }
  .guide-directory { position:static; }
  .guide-directory nav { grid-template-columns:repeat(4,minmax(0,1fr));column-gap:18px; }
  .guide-rpe { grid-template-columns:1fr; }
  .account-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .account-summary-grid article:last-child { grid-column: 1 / -1; min-height: 150px; }
  .account-summary-grid article:last-child h2 { margin-top: 22px; }
  .account-password-form { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
  body { font-size: 17px; line-height: 1.72; }
  .site-header { height: 64px; padding: 0 18px; }
  .site-header nav, .header-actions .link-button { display: none; }
  .wordmark { font-size: 16px; }
  .landing-hero, .landing-section { width: calc(100% - 40px); }
  .landing-hero { min-height: auto; padding: 62px 0 68px; grid-template-columns: 1fr; gap: 42px; }
  .landing-hero-copy h1 { font-size: 45px; }
  .landing-lead { font-size: 17px; }
  .landing-facts { justify-content: space-between; margin-top: 36px; }
  .landing-facts div { min-width: 0; margin-right: 14px; padding-right: 14px; }
  .landing-facts b { font-size: 22px; }
  .course-path-card { padding: 22px; }
  .real-recommendation { padding: 24px; }
  .real-goals-section { padding: 70px 20px; }
  .real-goal-grid { grid-template-columns: 1fr; }
  .real-goal-grid article { min-height: 205px; }
  .real-goal-grid h3 { margin-top: 26px; }
  .landing-section { padding: 70px 0; }
  .programme-section { width: auto; padding: 70px 20px; }
  .landing-heading { grid-template-columns: 1fr; gap: 18px; margin-bottom: 30px; }
  .landing-heading h2, .course-content-copy h2, .how-it-works-section h2, .price-copy h2 { font-size: 36px; }
  .programme-grid { grid-template-columns: 1fr; }
  .programme-grid .programme-card { min-height: 235px; padding: 23px; }
  .course-content-section { padding: 70px 20px; grid-template-columns: 1fr; gap: 35px; }
  .support-grid { grid-template-columns: 1fr; }
  .support-grid article { min-height: 205px; }
  .support-grid h3 { margin-top: 28px; }
  .how-it-works-section { padding: 70px 20px; grid-template-columns: 1fr; gap: 30px; }
  .how-it-works-section ol { grid-template-columns: 1fr; }
  .how-it-works-section li:nth-child(odd) { margin-right: 0; }
  .assessment-section { padding: 70px 20px; grid-template-columns: 1fr; gap: 34px; }
  .assessment-copy h2 { font-size: 36px; }
  .training-support-strip { width: calc(100% - 40px); grid-template-columns: 1fr; }
  .training-support-strip div { padding: 23px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .training-support-strip div:last-child { border-bottom: 0; }
  .system-value-section { width: calc(100% - 40px); padding: 70px 0; grid-template-columns: 1fr; gap: 34px; }
  .system-value-heading { position: static; }
  .system-value-heading h2 { font-size: 36px; }
  .system-value-grid { grid-template-columns: 1fr; }
  .system-value-grid article { min-height: 220px; }
  .system-value-grid h3 { margin-top: 28px; }
  .article-preview-grid { grid-template-columns: 1fr; }
  .account-summary-grid { grid-template-columns: 1fr; }
  .account-summary-grid article,
  .account-summary-grid article:last-child { grid-column: auto; min-height: 155px; padding: 21px; }
  .account-summary-grid h2,
  .account-summary-grid article:last-child h2 { margin-top: 21px; font-size: 23px; }
  .account-password-form { padding: 20px; }
  .account-password-form > div { align-items: flex-start; flex-direction: column; }
  .revised-price { padding-top: 70px; }
  .hero-section, .content-section, .price-section, .contact-section { padding: 64px 20px; }
  .hero-section { min-height: auto; grid-template-columns: 1fr; gap: 44px; }
  .hero-copy h1 { font-size: 46px; }
  .hero-lead { font-size: 17px; }
  .proof-row { justify-content: space-between; }
  .proof-row div { min-width: 0; padding-right: 16px; margin-right: 16px; }
  .proof-row b { font-size: 24px; }
  .recommendation-preview { padding: 24px; }
  .goal-grid, .process-grid, .course-grid { grid-template-columns: 1fr; }
  .youth-plan-groups { gap: 28px; }
  .youth-plan-stage + .youth-plan-stage { padding-top: 27px; }
  .youth-plan-stage__header { grid-template-columns: 1fr; gap: 10px; margin-bottom: 15px; }
  .youth-plan-stage__header > span { width: max-content; min-height: 34px; }
  .youth-plan-stage__header h2 { font-size: 23px; }
  .adult-plan-groups { gap: 28px; }
  .plan-library-group + .plan-library-group { padding-top: 27px; }
  .plan-library-group__header { grid-template-columns: 1fr; gap: 10px; margin-bottom: 15px; }
  .plan-library-group__header > span { width: max-content; min-height: 34px; }
  .plan-library-group__header h2 { font-size: 23px; }
  .plan-library-group--home { padding: 18px; }
  .course-grid--home { grid-template-columns: 1fr; }
  .goal-grid article { min-height: 190px; }
  .process-grid article { min-height: 160px; }
  .process-grid h3 { margin-top: 28px; }
  .feature-split, .price-section, .contact-section { grid-template-columns: 1fr; gap: 40px; }
  .feature-split h2, .price-section h2 { font-size: 38px; }
  .contact-section { margin: 0 12px 80px; padding: 36px 24px; }
  .qr-placeholder { width: 220px; }
  .site-footer { padding-bottom: 90px; }
  .mobile-purchase { position: fixed; z-index: 30; left: 10px; right: 10px; bottom: 10px; display: flex; justify-content: space-between; align-items: center; padding: 12px 14px; background: var(--ink); color: #fff; border-radius: 9px; box-shadow: var(--shadow); }
  .mobile-purchase a { background: var(--red); padding: 7px 12px; border-radius: 6px; font-weight: 800; }
  .login-shell { grid-template-columns: 1fr; }
  .login-intro { min-height: 330px; padding: 90px 24px 40px; }
  .login-intro .wordmark { top: 24px; }
  .login-intro h1 { font-size: 40px; }
  .login-card { margin: 28px auto; padding: 26px; }
  .portal-layout { display: block; }
  .portal-sidebar { position: fixed; z-index: 50; left: -260px; width: 240px; transition: left .2s ease; }
  .portal-sidebar.open { left: 0; }
  .menu-toggle { display: block; border: 0; background: transparent; font-weight: 800; }
  .portal-topbar { padding: 0 18px; }
  .portal-topbar-links a:last-child { display:none; }
  .portal-content { width: calc(100% - 28px); padding: 28px 0 90px; }
  .page-heading { align-items: flex-start; flex-direction: column; gap: 18px; }
  .page-heading h1 { font-size: 34px; }
  .page-actions { width: 100%; }
  .page-actions > * { flex: 1; }
  .page-actions form > button { width: 100%; }
  .stat-grid, .dashboard-grid, .editor-layout, .member-editor-grid, .article-editor-grid, .onboarding-card { grid-template-columns: 1fr; }
  .editor-aside { position: static; }
  .panel-toolbar { flex-direction: column; }
  .table-pagination { align-items: flex-start; flex-direction: column; }
  .table-pagination nav { flex-wrap: wrap; }
  .builder-layout { grid-template-columns: 1fr; }
  .exercise-library { position: static; max-height: 440px; }
  .plan-item { grid-template-columns: 20px 1fr 60px; }
  .plan-item > div:nth-of-type(n+3) { display: none; }
  .item-editor-popover { position: fixed; left: 14px; right: 14px; top: 82px; width: auto; max-height: calc(100vh - 110px); }
  .form-grid { grid-template-columns: 1fr; }
  .video-editor-card > summary, .variant-editor-card > summary { grid-template-columns: 1fr auto; padding: 16px; }
  .video-editor-card > summary em, .variant-editor-card > summary em { display: none; }
  .video-editor-content, .variant-editor-content { padding: 18px 16px 22px; }
  .today-card { align-items: flex-start; flex-direction: column; gap: 20px; }
  .assessment-question { grid-template-columns: 1fr; gap: 8px; padding: 20px; }
  .option-grid, .equipment-options, .recommendation-card { grid-template-columns: 1fr; }
  .assessment-submit { align-items: flex-start; flex-direction: column; }
  .course-meta { grid-template-columns:repeat(2,1fr); }
  .plan-badminton-benefits { grid-template-columns: 1fr; gap: 14px; padding: 23px 21px; }
  .plan-badminton-benefits h2 { font-size: 24px; }
  .plan-badminton-benefits > p { font-size: 17px; }
  .course-plan-notes { grid-template-columns:1fr; }
  .course-meta div:nth-child(2) { border-right:0; }
  .course-exercise > summary { grid-template-columns:30px 1fr 48px; grid-template-rows:auto auto; gap:6px 12px; padding:18px 16px; }
  .course-exercise > summary > span { grid-row:1 / 3; align-self:start; }
  .course-exercise > summary > div:nth-of-type(2) { display:block; grid-column:2; grid-row:2; }
  .course-exercise > summary > div:nth-of-type(2) b { font-size:15px; }
  .course-exercise > summary > div:nth-of-type(2) span { font-size:13px; }
  .course-exercise > summary > div:nth-of-type(3) { display:none; }
  .course-exercise > summary > strong { grid-column:3; grid-row:1 / 3; align-self:center; }
  .course-group-heading { align-items:flex-start; flex-direction:column; gap:3px; padding:13px 16px; }
  .exercise-guidance,.start-session-card { grid-template-columns:1fr;gap:20px; }
  .session-group-guide { align-items:flex-start;flex-direction:column;gap:3px; }
  .training-session-page .session-item { overflow:hidden; }
  .training-session-page .session-item > header { grid-template-columns:42px minmax(0,1fr);gap:8px 14px;padding:19px 16px; }
  .training-session-page .session-item > header > span { grid-column:1;grid-row:1 / 3;align-self:start;padding-top:4px; }
  .training-session-page .session-item > header > div { grid-column:2;min-width:0; }
  .training-session-page .session-item > header > b { grid-column:2;color:var(--muted);font-size:14px;line-height:1.5; }
  .training-session-page .session-item > details > summary { padding:14px 16px; }
  .training-session-page .set-table { overflow:visible;padding:0 16px 18px;border:0;border-radius:0; }
  .training-session-page .set-head { display:none; }
  .training-session-page .set-row:not(.set-head) { min-width:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px;margin:0 0 12px;padding:16px;border:1px solid var(--line);border-radius:9px;background:#fbfaf7; }
  .training-session-page .set-number { grid-column:1;font-size:17px; }
  .training-session-page .mobile-only { display:inline; }
  .training-session-page .set-target { grid-column:2;text-align:right;font-weight:800; }
  .training-session-page .set-field-label { display:block;margin-bottom:6px;color:var(--muted);font-size:14px;font-weight:800;line-height:1.35; }
  .training-session-page .set-target .set-field-label { display:inline;margin:0 7px 0 0; }
  .training-session-page .set-row input,.training-session-page .set-row select { min-height:46px;padding:10px 12px;font-size:16px; }
  .training-session-page .compact-set-input input { padding-right:38px; }
  .training-session-page .compact-set-input .set-input-unit { top:auto;bottom:13px;transform:none;font-size:13px; }
  .training-session-page .set-done { grid-column:1 / -1;display:flex;align-items:center;gap:9px;min-height:46px;padding:0 13px;border:1px solid var(--line);border-radius:7px;background:#fff;font-weight:800; }
  .training-session-page .set-done input { width:18px;height:18px;min-height:0;margin:0; }
  .training-session-page .set-table > button { width:100%;min-height:48px;margin-top:2px; }
  .history-session-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .history-session-summary > div:nth-child(2) { border-right: 0; }
  .history-session-summary > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .exercise-guidance { padding:20px; }
  .exercise-badminton-benefits { padding: 23px 21px; }
  .exercise-badminton-benefits h2 { font-size: 24px; }
  .video-grid { grid-template-columns:1fr; }
  .article-index,.article-page { padding:60px 18px; }
  .article-teaser { grid-template-columns:1fr; }
  .article-teaser > img { max-height:220px; }
  .article-page article { padding:24px; }
  .member-body .portal-content { padding-bottom: 110px; }
  .ai-coach-heading .secondary-button { width: 100%; justify-content: center; }
  .ai-current-plan { grid-template-columns: 1fr; margin: 19px 16px 0; }
  .ai-no-plan { margin: 19px 16px 0; }
  .ai-checkin-form { padding: 6px 16px 20px; }
  .ai-rating-options { margin-right: -16px; padding-right: 16px; }
  .ai-rating-options span { min-height: 58px; flex-direction: column; gap: 1px; font-size: 12px; }
  .ai-checkin-submit { align-items: stretch; flex-direction: column; }
  .ai-checkin-submit button { width: 100%; }
  .ai-checkin-history-list { grid-template-columns: 1fr; }
  .ai-checkin-history-list a:nth-child(2) { border-top: 1px solid var(--line); }
  .ai-advice-state { padding: 16px 16px 0; }
  .ai-advice-content { margin: 15px 16px 0; padding: 18px 16px; }
  .ai-today-advice > .ai-sources, .ai-session-review > .ai-sources { margin-left: 16px; margin-right: 16px; }
  .ai-advice-actions { display: grid; padding: 18px 16px 20px; }
  .ai-advice-actions > a { justify-content: center; }
  .ai-review-empty { padding: 21px 16px; }
  .guide-page-heading { align-items:flex-start; }
  .guide-quick-start { grid-template-columns:1fr;gap:25px;padding:25px 20px; }
  .guide-quick-copy h2 { font-size:27px; }
  .guide-steps { grid-template-columns:1fr; }
  .guide-steps li { display:grid;grid-template-columns:40px 1fr;gap:10px;padding:14px 0;border-left:0;border-top:1px solid #383c42; }
  .guide-steps b { margin:0; }
  .guide-steps small { margin-top:3px; }
  .guide-layout { grid-template-columns:1fr; }
  .guide-directory { position:static;padding:17px;overflow:hidden; }
  .guide-directory > b { margin-bottom:10px; }
  .guide-directory nav { display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none; }
  .guide-directory nav::-webkit-scrollbar { display:none; }
  .guide-directory a { flex:0 0 auto;gap:7px;padding:9px 12px;border:1px solid var(--line);border-radius:999px;background:#fff; }
  .guide-section { scroll-margin-top:74px; }
  .guide-section > header { gap:12px;padding:20px 17px; }
  .guide-section > header > span { flex-basis:32px; }
  .guide-section > header h2 { font-size:23px; }
  .guide-section-body { padding:20px 17px; }
  .guide-copy-grid,.guide-field-list,.guide-question-grid { grid-template-columns:1fr; }
  .guide-copy-grid { gap:10px; }
  .guide-field-list article:nth-child(odd) { border-right:0; }
  .guide-field-list article:nth-child(-n+3) { border-bottom:1px solid var(--line); }
  .guide-checklist li { grid-template-columns:1fr;gap:5px;padding:15px 0; }
  .guide-rpe { grid-template-columns:1fr;gap:20px;padding:20px 17px; }
  .rpe-scale { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .rpe-scale span { min-height:92px;border-top:1px solid #3a3e44; }
  .guide-action-row { display:grid;grid-template-columns:1fr; }
  .guide-action-row a { justify-content:center; }
  .custom-plan-grid, .template-copy-grid, .blank-plan-form, .custom-plan-name-editor { grid-template-columns: 1fr; }
  .blank-plan-form { gap: 20px; padding: 24px; }
  .custom-card-actions { grid-template-columns: 1fr; }
  .custom-plan-name-editor { align-items: stretch; gap: 16px; }
  .custom-plan-name-editor form { grid-template-columns: 1fr; }
  .member-plan-item { grid-template-columns: 40px 1fr 54px; gap: 10px; padding: 16px; }
  .member-plan-item .item-prescription { grid-column: 2; }
  .member-plan-item .item-editor { grid-column: 3; grid-row: 1 / 3; }
  .member-exercise-grid, .exercise-detail-layout { grid-template-columns: 1fr; }
  .exercise-search-panel form { grid-template-columns: 1fr; }
  .exercise-detail-aside { position: static; }
  .history-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .history-stats > div:nth-child(2) { border-right: 0; }
  .history-stats > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .history-stats > div { padding: 19px; }
  .history-stats strong { font-size: 30px; }
  .history-layout { grid-template-columns: 1fr; }
  .history-list > a { grid-template-columns: 52px minmax(0, 1fr) 14px; gap: 13px; padding: 15px 16px; }
  .history-list time { padding-right: 10px; }
  .history-session-data { grid-column: 2; text-align: left; }
  .history-list .list-arrow { grid-column: 3; grid-row: 1 / 3; }
  .member-mobile-nav { position: fixed; z-index: 25; left: 0; right: 0; bottom: 0; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); background: #fff; border-top: 1px solid var(--line); }
.member-mobile-nav a, .member-mobile-nav span { padding: 13px 3px; text-align: center; font-size: 13px; font-weight: 800; }
.member-mobile-nav span { color: #9a9ea4; }
}

/* Alibaba Cloud VOD and teaching video catalogue. */
.vod-content-form { max-width: 1040px; padding: 30px; }
.vod-upload-box { display: grid; grid-template-columns: minmax(240px,1fr) minmax(240px,1fr) auto; align-items: center; gap: 16px; margin: 24px 0; padding: 22px; border: 1px solid var(--line); border-radius: 10px; background: #f8f7f3; }
.vod-upload-box.compact { grid-template-columns: minmax(220px,1fr) minmax(220px,1fr) auto; }
.vod-upload-box[hidden] { display: none; }
.vod-upload-box b { display: block; font-size: 17px; }
.vod-upload-box p { margin: 4px 0 0; color: var(--muted); }
.vod-upload-progress { grid-column: 1 / -1; position: relative; height: 28px; overflow: hidden; border-radius: 999px; background: #e5e2dc; }
.vod-upload-progress span { display: block; width: 0; height: 100%; background: var(--red); transition: width .2s ease; }
.vod-upload-progress b { position: absolute; inset: 0; display: grid; place-items: center; font-size: 13px; color: var(--ink); }
.vod-upload-status { grid-column: 1 / -1; font-size: 14px; }
.vod-metadata-sync { display: flex; align-items: center; gap: 14px; margin-top: 14px; }
.vod-metadata-sync span { color: var(--muted); font-size: 13px; }
.admin-video-catalogue, .video-category-manager { margin-top: 20px; overflow: hidden; }
.admin-video-table article { display: grid; grid-template-columns: 150px minmax(240px,1fr) auto auto auto; align-items: center; gap: 22px; padding: 18px 24px; border-top: 1px solid var(--line); }
.admin-video-table article > div:nth-child(2) { min-width: 0; }
.admin-video-table article b { display: block; font-size: 17px; }
.admin-video-table article small { color: var(--red); font-weight: 800; }
.admin-video-table article p { margin: 4px 0 0; color: var(--muted); font-size: 13px; overflow-wrap: anywhere; }
.admin-video-table article > a { color: var(--red); font-weight: 800; }
.admin-video-cover { aspect-ratio: 16/9; overflow: hidden; display: grid; place-items: center; border-radius: 7px; background: var(--ink); color: #fff; font-weight: 900; }
.admin-video-cover img { width: 100%; height: 100%; object-fit: cover; }
.status-pill { padding: 7px 11px; border-radius: 999px; background: #eceae5; color: var(--muted); font-size: 13px; font-weight: 800; }
.status-pill.published { background: #e6f3e9; color: #23683a; }
.video-category-list { border-top: 1px solid var(--line); }
.video-category-list > article:first-child { border-top: 0; }
.video-category-list > article { display: flex; align-items: center; gap: 10px; padding: 12px 24px; border-top: 1px solid var(--line); }
.video-category-list > article > form:first-child { display: grid; grid-template-columns: 1fr 1fr 100px 140px auto; align-items: center; gap: 12px; flex: 1; }
.video-category-list input { margin: 0; }
.video-category-list span { color: var(--muted); font-size: 13px; }
.video-category-create { display: grid; grid-template-columns: 1fr 1fr 120px auto; align-items: end; gap: 16px; padding: 24px; background: #f8f7f3; }
.video-category-create label { margin: 0; }
.video-category-filters { display: flex; gap: 9px; margin-bottom: 28px; padding-bottom: 5px; overflow-x: auto; }
.video-category-filters a { flex: 0 0 auto; padding: 10px 16px; border: 1px solid var(--line); border-radius: 999px; background: #fff; font-weight: 800; }
.video-category-filters a.active { border-color: var(--ink); background: var(--ink); color: #fff; }
.teaching-video-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.teaching-video-card { overflow: hidden; border: 1px solid var(--line); border-radius: 11px; background: #fff; transition: transform .2s ease, box-shadow .2s ease; }
.teaching-video-card:hover { transform: translateY(-4px); box-shadow: 0 18px 38px rgba(20,24,28,.09); }
.teaching-video-cover { position: relative; aspect-ratio: 16/9; overflow: hidden; display: grid; place-items: center; background: var(--ink); color: #fff; }
.teaching-video-cover img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.teaching-video-card:hover img { transform: scale(1.035); }
.teaching-video-cover i { position: absolute; display: grid; place-items: center; width: 52px; height: 52px; padding-left: 3px; border-radius: 50%; background: var(--red); color: #fff; font-style: normal; box-shadow: 0 8px 20px rgba(0,0,0,.2); }
.teaching-video-card > div:last-child { padding: 19px 20px 22px; }
.teaching-video-card span { color: var(--red); font-size: 13px; font-weight: 800; }
.teaching-video-card h2 { min-height: 58px; margin: 8px 0 14px; font-size: 20px; line-height: 1.45; }
.teaching-video-card strong { font-size: 14px; }
.member-video-pagination { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 14px 18px; margin-top: 34px; }
.member-video-pagination a { padding: 10px 16px; border: 1px solid var(--line); border-radius: 7px; background: #fff; font-weight: 800; }
.member-video-pagination a.disabled { pointer-events: none; opacity: .4; }
.member-video-page-jump { display: flex; align-items: center; gap: 7px; margin: 0; }
.member-video-page-jump label, .member-video-page-jump span { font-size: 14px; color: var(--muted); }
.member-video-page-jump input { width: 66px; height: 44px; margin: 0; padding: 8px; border: 1px solid var(--line); border-radius: 7px; background: #fff; text-align: center; font-weight: 800; }
.member-video-page-jump button { min-height: 44px; padding: 9px 14px; border: 0; border-radius: 7px; background: var(--ink); color: #fff; cursor: pointer; font-weight: 800; }
.member-video-page-jump button:hover { background: var(--red); }
.member-vod-player { padding: 24px; }
.vod-player-shell { position: relative; max-width: 1180px; margin: 0 auto; aspect-ratio: 16/9; overflow: hidden; border-radius: 9px; background: #090b0e; }
.vod-player-shell video { width: 100%; height: 100%; display: block; object-fit: contain; }
.vod-member-watermark { position: absolute; z-index: 2; right: 18px; top: 16px; padding: 6px 9px; border-radius: 4px; background: rgba(0,0,0,.42); color: rgba(255,255,255,.72); font-size: 12px; pointer-events: none; }
.member-vod-player > p { margin: 16px auto 0; max-width: 1180px; color: var(--muted); }
.vod-playback-error { color: var(--red) !important; font-weight: 700; }

@media (max-width: 1080px) {
  .teaching-video-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .admin-video-table article { grid-template-columns: 120px minmax(200px,1fr) auto auto; }
  .admin-video-table article form { grid-column: 4; }
}

@media (max-width: 720px) {
  .vod-content-form { padding: 18px; }
  .vod-upload-box, .vod-upload-box.compact { grid-template-columns: 1fr; padding: 17px; }
  .vod-upload-progress, .vod-upload-status { grid-column: 1; }
  .admin-video-table article { grid-template-columns: 100px minmax(0,1fr); gap: 14px; padding: 15px; }
  .admin-video-table article > .status-pill, .admin-video-table article > a, .admin-video-table article > form { grid-column: 2; justify-self: start; }
  .video-category-list > article { display: block; padding: 16px; }
  .video-category-list > article > form:first-child { grid-template-columns: 1fr; }
  .video-category-list > article > form + form { margin-top: 12px; }
  .video-category-create { grid-template-columns: 1fr; }
  .teaching-video-grid { grid-template-columns: 1fr; }
  .teaching-video-card h2 { min-height: 0; }
  .member-video-pagination { gap: 10px; }
  .member-video-page-jump { order: 2; width: 100%; justify-content: center; }
  .member-video-pagination > a:last-child { order: 1; }
  .member-video-pagination > span { order: 1; }
  .member-video-pagination > a:first-child { order: 1; }
  .member-vod-player { padding: 10px; }
  .vod-member-watermark { right: 8px; top: 8px; font-size: 10px; }
}

/* Admin management modules — isolated from the public and member interfaces. */
.admin-subnav { display: flex; gap: 8px; margin: -14px 0 24px; padding-bottom: 2px; overflow-x: auto; }
.admin-subnav a { flex: 0 0 auto; padding: 10px 15px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--muted); font-size: 14px; font-weight: 800; }
.admin-subnav a.active { border-color: var(--ink); background: var(--ink); color: #fff; }
.catalogue-intro, .module-guide, .builder-module-toolbar, .recommendation-preview { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 25px 28px; }
.catalogue-intro h2, .module-guide h2, .builder-module-toolbar h2, .recommendation-preview h2 { margin: 3px 0 0; font-size: 25px; }
.catalogue-intro p, .module-guide p, .builder-module-toolbar p { margin: 5px 0 0; color: var(--muted); }
.catalogue-create, .module-create-panel { margin-top: 16px; padding: 28px; }
.catalogue-create[hidden], .module-create-panel[hidden] { display: none; }
.catalogue-list, .module-template-grid, .assessment-admin-list, .recommendation-rule-list, .admin-session-items { display: grid; gap: 12px; margin-top: 18px; }
.catalogue-row, .module-template-card, .assessment-admin-card, .rule-card, .admin-session-item { overflow: hidden; }
.catalogue-row > summary, .module-template-card > summary, .assessment-admin-card > summary, .rule-card > summary, .admin-session-item > summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 21px 25px; cursor: pointer; list-style: none; }
.catalogue-row > summary::-webkit-details-marker, .module-template-card > summary::-webkit-details-marker, .assessment-admin-card > summary::-webkit-details-marker, .rule-card > summary::-webkit-details-marker, .admin-session-item > summary::-webkit-details-marker { display: none; }
.catalogue-row > summary > div, .module-template-card > summary > div, .assessment-admin-card > summary > div, .rule-card > summary > div, .admin-session-item > summary > div { display: flex; align-items: center; gap: 17px; min-width: 0; }
.catalogue-row summary span, .module-template-card summary span, .assessment-admin-card summary span, .rule-card summary span, .admin-session-item summary span { color: var(--red); font-size: 14px; font-weight: 900; }
.catalogue-row summary b, .module-template-card summary b, .assessment-admin-card summary b, .rule-card summary b, .admin-session-item summary b { display: block; font-size: 17px; }
.catalogue-row summary small, .module-template-card summary small, .assessment-admin-card summary small, .rule-card summary small, .admin-session-item summary small { display: block; margin-top: 3px; color: var(--muted); }
.catalogue-row summary strong, .module-template-card summary strong, .assessment-admin-card summary strong, .rule-card summary strong, .admin-session-item summary strong { color: var(--red); font-size: 14px; }
.catalogue-editor, .module-template-editor, .assessment-admin-editor, .rule-editor, .session-item-detail { padding: 25px; border-top: 1px solid var(--line); background: #fbfaf7; }
.catalogue-editor > form + form, .module-template-editor > form + form, .rule-editor > form + form { margin-top: 12px; }
.check-line { min-height: 48px; display: flex !important; flex-direction: row !important; align-items: center; gap: 10px; padding: 0 14px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.check-line input { width: 18px; height: 18px; margin: 0; }
.check-line span { font-weight: 700; }
.module-template-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.module-template-card { margin: 0; }
.module-template-card { padding: 25px; }
.module-card-top { display: flex; justify-content: space-between; gap: 16px; color: var(--red); font-size: 13px; font-weight: 900; }
.module-card-top em { color: var(--muted); font-style: normal; }
.module-template-card > h2 { margin: 25px 0 8px; font-size: 24px; }
.module-template-card > p { min-height: 54px; margin: 0; color: var(--muted); }
.module-template-card > dl { display: grid; grid-template-columns: repeat(3, 1fr); margin: 23px 0 0; border-top: 1px solid var(--line); }
.module-template-card > dl div { padding: 15px 8px 0 0; }
.module-template-card > dl dt { color: var(--muted); font-size: 12px; }
.module-template-card > dl dd { margin: 4px 0 0; font-weight: 900; }
.inline-admin-editor { margin-top: 22px; border-top: 1px solid var(--line); }
.inline-admin-editor > summary { padding-top: 17px; cursor: pointer; color: var(--red); font-weight: 800; list-style: none; }
.inline-admin-editor > summary::-webkit-details-marker { display: none; }
.inline-admin-editor > div { padding-top: 18px; }
.inline-admin-editor form + form { margin-top: 10px; }
.builder-module-toolbar { margin-bottom: 20px; }
.builder-module-toolbar > div { max-width: 610px; }
.builder-module-toolbar form { display: grid; grid-template-columns: minmax(220px, 1fr) auto; align-items: end; gap: 10px; }
.section-header-actions { display: flex; align-items: center; gap: 10px; }
.section-editor { position: relative; }
.section-editor > summary { min-height: 43px; display: inline-flex; align-items: center; padding: 0 15px; border: 1px solid var(--line); border-radius: 7px; background: #fff; cursor: pointer; color: var(--ink); font-size: 14px; font-weight: 800; list-style: none; }
.section-editor > summary::-webkit-details-marker { display: none; }
.section-editor > div { position: absolute; z-index: 20; top: calc(100% + 10px); right: 0; width: min(440px, calc(100vw - 44px)); padding: 20px; border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: var(--shadow); }
.section-editor form + form { margin-top: 10px; }
.recommendation-preview { margin-bottom: 18px; }
.recommendation-preview form { flex: 1; }
.recommendation-preview .form-grid { grid-template-columns: repeat(4, minmax(125px, 1fr)); }
.assessment-option-list { margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--line); }
.assessment-option-list > form { display: grid; grid-template-columns: .8fr 1.6fr 100px auto; align-items: end; gap: 10px; margin-top: 10px; }
.form-section { padding: 28px; }
.rule-condition-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 18px 0; }
.rule-condition-grid select[multiple] { min-height: 126px; }
.rule-card summary em { padding: 5px 9px; border-radius: 999px; background: #f1eee8; color: var(--muted); font-size: 12px; font-style: normal; font-weight: 800; }
.assessment-result-table .table-row { min-width: 1040px; grid-template-columns: 150px 1.25fr .7fr 1.15fr 1.1fr 60px; }
.assessment-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.assessment-detail-grid .panel { padding: 25px; }
.assessment-detail-grid dl { margin: 0; }
.assessment-detail-grid dl div { display: flex; justify-content: space-between; gap: 20px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.assessment-detail-grid dl div:last-child { border: 0; }
.assessment-detail-grid dt { color: var(--muted); }
.assessment-detail-grid dd { margin: 0; text-align: right; font-weight: 800; }
.admin-detail-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr); gap: 18px; align-items: start; }
.admin-detail-grid aside { position: sticky; top: 90px; }
.response-list { margin: 0; }
.response-list div { display: grid; grid-template-columns: 160px 1fr; gap: 20px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.response-list div:last-child { border-bottom: 0; }
.response-list dt { color: var(--muted); }
.response-list dd { margin: 0; font-weight: 800; }
.data-filter-bar { display: grid; grid-template-columns: 1.1fr 1.15fr .8fr .8fr .8fr auto auto; align-items: end; gap: 10px; padding: 20px; }
.data-filter-bar > a { min-height: 44px; display: inline-flex; align-items: center; font-weight: 800; }
.training-stat-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin: 18px 0; }
.training-stat-grid article { min-height: 122px; display: flex; flex-direction: column; justify-content: space-between; padding: 22px; }
.training-stat-grid article span { color: var(--muted); font-size: 14px; font-weight: 700; }
.training-stat-grid article > b { font-size: 30px; }
.training-stat-grid article > b small { margin-left: 4px; font-size: 13px; }
.training-stat-grid .small-value { font-size: 16px; line-height: 1.45; }
.training-admin-table .table-row { min-width: 1160px; grid-template-columns: 140px 1fr 1.25fr .65fr .65fr .45fr .75fr 74px; }
.status-dot.in_progress { background: #d99b18; }
.status-dot.completed { background: #24864c; }
.status-dot.abandoned { background: #80858b; }
.session-note { margin: 18px 0; padding: 24px; }
.session-note p { margin: 8px 0 0; color: var(--muted); }
.admin-session-item { margin: 0; }
.admin-session-item > summary > div:last-child { justify-content: flex-end; }
.session-item-metrics { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; }
.session-item-metrics span { padding: 9px 12px; border-radius: 6px; background: #f0ede7; color: var(--muted); font-size: 14px; }
.session-item-metrics b { margin-left: 5px; color: var(--ink); }
.admin-session-item .set-table { overflow-x: auto; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.admin-session-item .set-row { min-width: 720px; display: grid; grid-template-columns: .55fr 1fr 1fr .8fr .55fr .7fr; gap: 12px; padding: 13px 16px; border-bottom: 1px solid var(--line); }
.admin-session-item .set-row:last-child { border-bottom: 0; }
.admin-session-item .set-head { background: #f3f0ea; color: var(--muted); font-size: 13px; font-weight: 800; }

@media (max-width: 1100px) {
  .recommendation-preview { align-items: flex-start; flex-direction: column; }
  .recommendation-preview .form-grid, .rule-condition-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .data-filter-bar { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .training-stat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
  .catalogue-intro, .module-guide, .builder-module-toolbar, .recommendation-preview { align-items: stretch; flex-direction: column; padding: 21px; }
  .module-template-grid, .assessment-detail-grid, .admin-detail-grid { grid-template-columns: 1fr; }
  .admin-detail-grid aside { position: static; }
  .builder-module-toolbar form { grid-template-columns: 1fr; }
  .section-header-actions { align-items: stretch; flex-direction: column; }
  .section-editor > summary { justify-content: center; }
  .section-editor > div { position: fixed; top: 76px; left: 14px; right: 14px; width: auto; max-height: calc(100vh - 95px); overflow-y: auto; }
  .recommendation-preview .form-grid, .rule-condition-grid, .data-filter-bar { grid-template-columns: 1fr; }
  .assessment-option-list > form { grid-template-columns: 1fr; padding: 16px 0; border-bottom: 1px solid var(--line); }
  .training-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .training-stat-grid article { min-height: 108px; padding: 18px; }
  .training-stat-grid article > b { font-size: 25px; }
  .catalogue-row > summary, .module-template-card > summary, .assessment-admin-card > summary, .rule-card > summary, .admin-session-item > summary { padding: 18px; }
  .catalogue-editor, .module-template-editor, .assessment-admin-editor, .rule-editor, .session-item-detail { padding: 18px; }
}

/* Contextual AI entry points — kept after shared panel rules to avoid style overrides. */
.panel.dashboard-ai-card { background: var(--ink); color: #fff; }
.panel.dashboard-ai-card span { color: #ff737c; }
.panel.dashboard-ai-card h2 { color: #fff; }
.panel.dashboard-ai-card p { color: #d2d6db; }
.panel.dashboard-ai-card .secondary-button.light { border-color: #737980; background: transparent; color: #fff; }
.panel.dashboard-ai-card .secondary-button.light:hover { border-color: #fff; background: #fff; color: var(--ink); }
.exercise-ai-card { display: grid; gap: 5px; padding: 22px; border-radius: 10px; background: var(--ink); color: #fff; transition: transform .18s ease, box-shadow .18s ease; }
.exercise-ai-card:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(20, 23, 27, .15); }
.exercise-ai-card span { color: #ff737c; font-size: 13px; font-weight: 900; }
.exercise-ai-card b { font-size: 19px; }
.exercise-ai-card small { color: #cbd0d5; line-height: 1.55; }
.exercise-ai-card strong { margin-top: 13px; color: #fff; font-size: 14px; }
.exercise-ai-button { width: 100%; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; margin-top: 18px; padding: 0 14px; border: 1px solid var(--ink); border-radius: 7px; background: var(--ink); color: #fff; font-size: 14px; font-weight: 900; }
.exercise-ai-button:hover { border-color: var(--red); background: var(--red); }

@media (max-width: 820px) {
  .exercise-ai-card { padding: 19px; }
  .exercise-guidance .exercise-ai-button { width: 100%; }
}

/* AI training profile — member controlled personalization and long-term memory. */
.ai-heading-actions { display: flex; align-items: center; gap: 12px; }
.ai-profile-inline-link { display: inline-flex; margin-top: 8px; color: var(--red); font-size: 14px; font-weight: 900; }
.ai-profile-heading { align-items: flex-end; }
.ai-profile-heading > div { max-width: 760px; }
.ai-profile-summary { display: grid; grid-template-columns: 68px minmax(0, 1fr) auto; align-items: center; gap: 20px; padding: 25px 28px; margin-bottom: 18px; }
.ai-profile-avatar { width: 68px; height: 68px; display: grid; place-items: center; border-radius: 18px; background: var(--ink); color: #fff; font-size: 22px; font-weight: 900; }
.ai-profile-summary span { color: var(--muted); font-size: 13px; font-weight: 800; }
.ai-profile-summary h2 { margin: 3px 0 2px; font-size: 27px; }
.ai-profile-summary p { margin: 0; color: var(--muted); }
.ai-profile-summary-note { min-width: 155px; display: grid; justify-items: end; }
.ai-profile-summary-note b { color: var(--red); font-size: 30px; }
.ai-profile-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(300px, .65fr); gap: 18px; align-items: start; }
.ai-preference-panel, .ai-memory-help, .ai-memory-panel { padding: 28px; }
.ai-preference-form { display: grid; gap: 24px; margin-top: 22px; }
.ai-preference-form > label, .ai-memory-create label, .ai-memory-editor label { display: grid; gap: 8px; color: var(--ink); font-weight: 800; }
.ai-preference-form label small { color: var(--muted); font-weight: 500; line-height: 1.45; }
.ai-preference-form fieldset { margin: 0; padding: 0; border: 0; }
.ai-preference-form legend { margin-bottom: 10px; font-weight: 900; }
.ai-choice-grid { display: grid; gap: 10px; }
.ai-choice-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ai-choice { min-width: 0; cursor: pointer; }
.ai-choice input { position: absolute; opacity: 0; pointer-events: none; }
.ai-choice > span { min-height: 92px; display: grid; align-content: center; gap: 5px; padding: 15px; border: 1px solid var(--line); border-radius: 9px; background: #fff; transition: border-color .16s ease, background .16s ease, transform .16s ease; }
.ai-choice:hover > span { transform: translateY(-1px); border-color: #a9adb2; }
.ai-choice input:checked + span { border-color: var(--red); background: #fff5f5; box-shadow: inset 0 0 0 1px var(--red); }
.ai-choice span b { font-size: 16px; }
.ai-choice span small { color: var(--muted); line-height: 1.45; }
.ai-permission-list { display: grid; gap: 10px; }
.ai-permission-list > label { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 11px; align-items: start; padding: 15px; border: 1px solid var(--line); border-radius: 9px; cursor: pointer; }
.ai-permission-list input { width: 18px; height: 18px; margin-top: 2px; }
.ai-permission-list span { display: grid; gap: 3px; }
.ai-permission-list small { color: var(--muted); font-weight: 500; line-height: 1.5; }
.ai-preference-form > .primary-button { justify-self: start; }
.ai-memory-help { position: sticky; top: 90px; }
.ai-memory-help h2 { margin: 6px 0 19px; font-size: 25px; line-height: 1.25; }
.ai-memory-help ul { display: grid; gap: 10px; margin: 0; padding-left: 21px; color: var(--muted); line-height: 1.55; }
.ai-memory-help li::marker { color: var(--red); }
.ai-memory-example { display: grid; gap: 7px; margin-top: 24px; padding: 19px; border-radius: 10px; background: var(--ink); color: #fff; }
.ai-memory-example span { color: #ff7a82; font-size: 13px; font-weight: 900; }
.ai-memory-example b { line-height: 1.55; }
.ai-memory-example p { margin: 0; color: #cdd1d5; font-size: 14px; line-height: 1.55; }
.ai-privacy-note { margin: 18px 0 0; color: var(--muted); font-size: 14px; line-height: 1.7; }
.ai-memory-panel { margin-top: 18px; scroll-margin-top: 90px; }
.ai-memory-heading { align-items: flex-end; }
.ai-memory-heading p { margin: 5px 0 0; color: var(--muted); }
.ai-memory-heading > span { padding: 7px 11px; border-radius: 999px; background: #efede8; color: var(--muted); font-size: 13px; font-weight: 900; }
.ai-memory-create { display: grid; grid-template-columns: 190px minmax(260px, 1fr) auto; align-items: end; gap: 12px; margin: 24px 0 20px; padding: 20px; border-radius: 10px; background: #f5f2ec; }
.ai-memory-create .primary-button { min-height: 50px; }
.ai-memory-list { display: grid; gap: 9px; }
.ai-memory-item { overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: #fff; }
.ai-memory-item > summary { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 18px 20px; cursor: pointer; list-style: none; }
.ai-memory-item > summary::-webkit-details-marker { display: none; }
.ai-memory-item summary > div { min-width: 0; display: grid; grid-template-columns: 120px minmax(0, 1fr); align-items: center; column-gap: 15px; row-gap: 3px; }
.ai-memory-item summary span { grid-row: 1 / 3; color: var(--red); font-size: 13px; font-weight: 900; }
.ai-memory-item summary b { overflow-wrap: anywhere; font-size: 16px; }
.ai-memory-item summary small { color: var(--muted); }
.ai-memory-item summary strong { flex: 0 0 auto; color: var(--red); font-size: 14px; }
.ai-memory-editor { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 14px; padding: 20px; border-top: 1px solid var(--line); background: #faf8f4; }
.ai-memory-editor > form:first-child { display: grid; grid-template-columns: 190px minmax(240px, 1fr) auto; align-items: end; gap: 10px; }
.text-button.danger { color: #b4232d; }
.ai-memory-empty { padding: 35px 22px; border: 1px dashed #c9c5bd; border-radius: 9px; text-align: center; }
.ai-memory-empty b { font-size: 18px; }
.ai-memory-empty p { margin: 7px 0 0; color: var(--muted); }

@media (max-width: 1100px) {
  .ai-profile-grid { grid-template-columns: 1fr; }
  .ai-memory-help { position: static; }
  .ai-memory-editor { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
  .ai-heading-actions { width: 100%; justify-content: space-between; }
  .ai-profile-heading { align-items: stretch; }
  .ai-profile-heading .secondary-button { width: 100%; justify-content: center; }
  .ai-profile-summary { grid-template-columns: 54px minmax(0, 1fr); gap: 14px; padding: 20px; }
  .ai-profile-avatar { width: 54px; height: 54px; border-radius: 14px; font-size: 18px; }
  .ai-profile-summary h2 { font-size: 23px; }
  .ai-profile-summary-note { grid-column: 1 / -1; min-width: 0; justify-items: start; padding-top: 15px; border-top: 1px solid var(--line); }
  .ai-profile-summary-note b { font-size: 24px; }
  .ai-preference-panel, .ai-memory-help, .ai-memory-panel { padding: 20px; }
  .ai-choice-grid.three { grid-template-columns: 1fr; }
  .ai-choice > span { min-height: 74px; }
  .ai-preference-form > .primary-button { width: 100%; justify-content: center; }
  .ai-memory-create, .ai-memory-editor > form:first-child { grid-template-columns: 1fr; }
  .ai-memory-create .primary-button, .ai-memory-editor .secondary-button { width: 100%; justify-content: center; }
  .ai-memory-item > summary { align-items: flex-start; padding: 16px; }
  .ai-memory-item summary > div { grid-template-columns: 1fr; gap: 5px; }
  .ai-memory-item summary span { grid-row: auto; }
  .ai-memory-item summary small { line-height: 1.45; }
  .ai-memory-editor { padding: 16px; }
}

/* AI weekly planning — isolated member calendar and planner. */
.ai-weekly-heading > div { max-width: 820px; }
.ai-week-tabs { display: flex; gap: 8px; margin: -8px 0 18px; overflow-x: auto; }
.ai-week-tabs a { flex: 0 0 auto; padding: 11px 17px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--muted); font-size: 14px; font-weight: 900; }
.ai-week-tabs a:hover, .ai-week-tabs a.active { border-color: var(--ink); background: var(--ink); color: #fff; }
.ai-weekly-empty { padding: 42px; }
.ai-weekly-empty > span { color: var(--red); font-size: 13px; font-weight: 900; }
.ai-weekly-empty h2 { margin: 8px 0; font-size: 28px; }
.ai-weekly-empty p { max-width: 700px; margin: 0 0 22px; color: var(--muted); line-height: 1.7; }
.ai-weekly-empty > div { display: flex; flex-wrap: wrap; gap: 10px; }
.ai-weekly-builder, .ai-weekly-result { overflow: hidden; }
.ai-weekly-section-head { display: flex; align-items: center; justify-content: space-between; gap: 26px; padding: 24px 28px; border-bottom: 1px solid var(--line); }
.ai-weekly-section-head > div { display: flex; align-items: center; gap: 13px; }
.ai-weekly-section-head > div > span { width: 35px; height: 35px; display: grid; place-items: center; border-radius: 7px; background: var(--red); color: #fff; font-size: 13px; font-weight: 900; }
.ai-weekly-section-head h2 { margin: 0; font-size: 25px; }
.ai-weekly-section-head > p { max-width: 500px; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.6; text-align: right; }
.ai-weekly-current-plan { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 16px; margin: 24px 28px 0; padding: 17px 19px; border-radius: 9px; background: #f1eee8; }
.ai-weekly-current-plan > span { color: var(--red); font-size: 13px; font-weight: 900; }
.ai-weekly-current-plan b, .ai-weekly-current-plan small { display: block; }
.ai-weekly-current-plan b { font-size: 17px; }
.ai-weekly-current-plan small { margin-top: 3px; color: var(--muted); }
.ai-weekly-current-plan em { color: var(--ink); font-size: 13px; font-style: normal; font-weight: 900; }
.ai-weekly-form { padding: 4px 28px 28px; }
.ai-weekly-form fieldset { margin: 24px 0 0; padding: 0; border: 0; }
.ai-weekly-form legend { font-size: 18px; font-weight: 900; }
.ai-weekly-form fieldset > p { margin: 4px 0 12px; color: var(--muted); font-size: 14px; }
.ai-weekday-options { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.ai-weekday-options label { min-width: 0; cursor: pointer; }
.ai-weekday-options input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.ai-weekday-options label > span { min-height: 66px; display: grid; align-content: center; justify-items: center; gap: 3px; border: 1px solid var(--line); border-radius: 8px; background: #fff; transition: border-color .16s ease, background .16s ease, transform .16s ease; }
.ai-weekday-options label:hover > span { transform: translateY(-1px); border-color: #a9adb1; }
.ai-weekday-options span b { font-size: 15px; }
.ai-weekday-options span small { color: var(--muted); font-size: 11px; }
.ai-weekday-options input:focus-visible + span { outline: 3px solid rgba(236, 31, 44, .18); outline-offset: 2px; }
.ai-weekday-options input:checked + span { border-color: var(--red); background: #fff2f3; box-shadow: inset 0 0 0 1px var(--red); color: var(--red); }
.ai-weekday-options.court input:checked + span { border-color: var(--ink); background: var(--ink); box-shadow: none; color: #fff; }
.ai-weekday-options.court input:checked + span small { color: #cbd0d5; }
.ai-weekday-options label.disabled { cursor: not-allowed; }
.ai-weekday-options label.disabled > span { border-color: #ece9e3; background: #f4f2ee; color: #a8aaad; transform: none; }
.ai-weekly-fields { display: grid; grid-template-columns: 1fr 1fr 2fr; gap: 12px; margin-top: 24px; }
.ai-weekly-fields label { min-width: 0; font-size: 14px; font-weight: 800; }
.ai-weekly-fields input, .ai-weekly-fields select { width: 100%; margin-top: 7px; }
.ai-weekly-submit { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 22px; }
.ai-weekly-submit p { max-width: 690px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.ai-weekly-submit button { flex: 0 0 auto; }
.ai-weekly-result { margin-top: 18px; scroll-margin-top: 85px; }
.ai-weekly-result-head { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 25px 28px; border-bottom: 1px solid var(--line); }
.ai-weekly-result-head h2 { margin: 5px 0 0; font-size: 27px; }
.ai-weekly-result-head > span { padding: 8px 12px; border-radius: 999px; font-size: 13px; font-weight: 900; }
.ai-weekly-result-head > span.draft { background: #fff2d8; color: #8a5b00; }
.ai-weekly-result-head > span.confirmed { background: #e7f5ec; color: #176738; }
.ai-weekly-summary { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 20px; padding: 22px 28px; background: #f4f1eb; }
.ai-weekly-summary b { font-size: 15px; }
.ai-weekly-summary p { margin: 0; color: #505761; line-height: 1.75; }
.ai-week-calendar { display: grid; }
.ai-week-day { position: relative; display: grid; grid-template-columns: 115px minmax(0, 1fr) minmax(160px, 230px); gap: 22px; align-items: center; min-height: 136px; padding: 20px 28px; border-top: 1px solid var(--line); transition: background .16s ease; }
.ai-week-day:first-child { border-top: 0; }
.ai-week-day:hover { background: #fbfaf7; }
.ai-week-day::before { position: absolute; top: 20px; bottom: 20px; left: 0; width: 4px; border-radius: 0 4px 4px 0; background: #cbc7bf; content: ''; }
.ai-week-day.strength::before { background: var(--red); }
.ai-week-day.badminton::before { background: var(--ink); }
.ai-week-day.recovery::before { background: #3b8460; }
.ai-week-day.today { background: #fff9f7; }
.ai-week-day.completed { background: #f6faf7; }
.ai-week-day-date { display: grid; gap: 3px; }
.ai-week-day-date span { color: var(--muted); font-size: 13px; font-weight: 900; }
.ai-week-day-date b { font-size: 22px; }
.ai-week-day-date em { justify-self: start; padding: 3px 7px; border-radius: 999px; background: var(--red); color: #fff; font-size: 10px; font-style: normal; font-weight: 900; }
.ai-week-day-body { min-width: 0; }
.ai-week-day-body > div { display: flex; align-items: center; gap: 8px; }
.ai-week-day-body > div span { color: var(--red); font-size: 12px; font-weight: 900; }
.ai-week-day.badminton .ai-week-day-body > div span { color: var(--ink); }
.ai-week-day.recovery .ai-week-day-body > div span { color: #2b7652; }
.ai-week-day-body > div em { padding: 3px 7px; border-radius: 999px; background: #e5f4e9; color: #176738; font-size: 10px; font-style: normal; font-weight: 900; }
.ai-week-day-body > div em.missed { background: #fff0d2; color: #8a5b00; }
.ai-week-day-body h3 { margin: 5px 0 5px; font-size: 20px; }
.ai-week-day-body p { margin: 0; color: var(--muted); line-height: 1.65; }
.ai-week-day-body small { display: inline-block; margin-top: 7px; color: var(--ink); font-weight: 800; }
.ai-week-day-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 9px; }
.ai-week-day-actions > a:not(.primary-button) { color: var(--red); font-weight: 900; }
.ai-week-day-actions form { margin: 0; }
.ai-week-day-actions details { position: relative; }
.ai-week-day-actions details > summary { padding: 10px 12px; border: 1px solid var(--line); border-radius: 7px; cursor: pointer; font-size: 13px; font-weight: 900; list-style: none; }
.ai-week-day-actions details > summary::-webkit-details-marker { display: none; }
.ai-week-day-actions details form { position: absolute; z-index: 15; top: calc(100% + 8px); right: 0; width: 245px; display: grid; gap: 8px; padding: 13px; border: 1px solid var(--line); border-radius: 9px; background: #fff; box-shadow: var(--shadow); }
.ai-week-day-actions details button { min-height: 40px; border: 0; border-radius: 6px; background: var(--ink); color: #fff; font-weight: 900; }
.ai-week-waiting { color: var(--muted); font-size: 13px; font-weight: 800; }
.ai-weekly-confirm { display: flex; align-items: center; justify-content: space-between; gap: 25px; padding: 24px 28px; border-top: 1px solid var(--line); background: var(--ink); color: #fff; }
.ai-weekly-confirm b { font-size: 18px; }
.ai-weekly-confirm p { margin: 5px 0 0; color: #c4c9ce; line-height: 1.6; }
.ai-weekly-confirm button { flex: 0 0 auto; }
.weekly-today-card > div:first-child { min-width: 0; }
.weekly-today-card p { max-width: 820px; color: #c4c9ce; line-height: 1.65; }
.weekly-today-card.recovery, .weekly-today-card.rest { background: #fff; color: var(--ink); border: 1px solid var(--line); }
.weekly-today-card.recovery p, .weekly-today-card.rest p { color: var(--muted); }
.weekly-today-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 10px; }
.weekly-today-actions form { margin: 0; }

@media (max-width: 1100px) {
  .ai-weekly-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ai-weekly-fields .wide { grid-column: 1 / -1; }
  .ai-week-day { grid-template-columns: 90px minmax(0, 1fr); }
  .ai-week-day-actions { grid-column: 2; justify-content: flex-start; }
}

@media (max-width: 820px) {
  .ai-weekly-heading .secondary-button { width: 100%; justify-content: center; }
  .ai-week-tabs { margin-top: 0; }
  .ai-weekly-empty { padding: 24px 20px; }
  .ai-weekly-empty h2 { font-size: 24px; }
  .ai-weekly-empty > div { display: grid; }
  .ai-weekly-section-head { align-items: flex-start; flex-direction: column; gap: 10px; padding: 20px; }
  .ai-weekly-section-head > p { text-align: left; }
  .ai-weekly-current-plan { grid-template-columns: auto minmax(0, 1fr); margin: 18px 20px 0; }
  .ai-weekly-current-plan em { grid-column: 2; }
  .ai-weekly-form { padding: 2px 20px 20px; }
  .ai-weekday-options { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .ai-weekday-options label > span { min-height: 61px; }
  .ai-weekly-fields { grid-template-columns: 1fr; }
  .ai-weekly-fields .wide { grid-column: auto; }
  .ai-weekly-submit { align-items: stretch; flex-direction: column; }
  .ai-weekly-submit button { width: 100%; justify-content: center; }
  .ai-weekly-result-head { align-items: flex-start; padding: 21px 20px; }
  .ai-weekly-result-head h2 { font-size: 23px; }
  .ai-weekly-summary { grid-template-columns: 1fr; gap: 7px; padding: 19px 20px; }
  .ai-week-day { grid-template-columns: 68px minmax(0, 1fr); gap: 13px; min-height: 0; padding: 18px 18px 18px 20px; }
  .ai-week-day::before { top: 16px; bottom: 16px; }
  .ai-week-day-date b { font-size: 18px; }
  .ai-week-day-body h3 { font-size: 18px; }
  .ai-week-day-body p { font-size: 15px; }
  .ai-week-day-actions { grid-column: 1 / -1; justify-content: stretch; padding-left: 81px; }
  .ai-week-day-actions .primary-button, .ai-week-day-actions .secondary-button { width: 100%; justify-content: center; }
  .ai-week-day-actions details { width: 100%; }
  .ai-week-day-actions details > summary { text-align: center; }
  .ai-week-day-actions details form { position: static; width: 100%; margin-top: 8px; box-shadow: none; }
  .ai-weekly-confirm { align-items: stretch; flex-direction: column; padding: 21px 20px; }
  .ai-weekly-confirm button { width: 100%; justify-content: center; }
  .weekly-today-actions { width: 100%; justify-content: stretch; }
  .weekly-today-actions > a, .weekly-today-actions form, .weekly-today-actions button { width: 100%; justify-content: center; }
}
