/* 断点约定：xs ≤599 | sm 600–899 | md 900–1199 | lg ≥1200
   新增 media query 只允许使用 419.98 / 599.98 / 899.98 / 1199.98 四个值。 */

:root {
  --ink: #182238;
  --muted: #6B778B;
  --soft: #98A2B2;
  --line: #E3E8F1;
  --bg: #F4F6FA;
  --surface: #FFFFFF;
  --indigo: #4B5FD5;
  --indigo-dark: #3B4DBB;
  --indigo-soft: #EEF1FE;
  --mint: #1F9D82;
  --mint-soft: #EAF8F4;
  --navy: #111A2E;
  --shadow-card: 0 28px 70px rgba(24, 38, 68, .12);
  --radius: 20px;
  --touch: 44px;
  --tap-gap: 8px;
  --fs-min: 12.5px;
  --nav-h: 62px;
  --nav-safe: calc(var(--nav-h) + env(safe-area-inset-bottom));
  --r-sm: 10px;
  --r-md: 14px;
  --r-lg: 20px;
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

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

body {
  margin: 0;
  min-height: 100vh;
  min-height: 100dvh;
  background:
    radial-gradient(900px 520px at 10% -12%, rgba(84, 104, 219, .16), transparent 62%),
    radial-gradient(720px 440px at 102% 4%, rgba(31, 157, 130, .1), transparent 66%),
    var(--bg);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 14px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

a {
  color: inherit;
  text-decoration: none;
}

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

svg {
  display: block;
}

.skip-link {
  position: absolute;
  top: -48px;
  left: 16px;
  z-index: 20;
  padding: 8px 14px;
  border-radius: 8px;
  background: var(--navy);
  color: #FFF;
  font-size: 12.5px;
}

.skip-link:focus {
  top: 12px;
}

/* ---------- 顶部品牌 ---------- */

.member-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  width: min(1080px, calc(100% - 48px));
  margin: 0 auto;
  padding: 26px 0 10px;
}

.member-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.member-brand-mark {
  display: grid;
  place-items: center;
  width: 39px;
  height: 39px;
  border-radius: 10px;
  background: linear-gradient(145deg, #5B6FE0, #3F51C2);
  color: #FFF;
  box-shadow: 0 10px 22px rgba(75, 95, 213, .28);
}

.member-brand-mark svg {
  width: 22px;
  height: 22px;
}

.member-brand-copy {
  display: grid;
  line-height: 1.25;
}

.member-brand-copy strong {
  font-size: 15px;
  font-weight: 800;
  letter-spacing: .04em;
}

.member-brand-copy small {
  margin-top: 2px;
  color: var(--soft);
  font-size: 12.5px;
  letter-spacing: .06em;
}

.member-topbar-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255, 255, 255, .7);
  color: #66738A;
  font-size: 12.5px;
  font-weight: 600;
  transition: border-color .2s ease, color .2s ease, background-color .2s ease;
}

.member-topbar-link:hover {
  border-color: #C9D1EA;
  background: #FFF;
  color: var(--indigo);
}

/* ---------- 登录 ---------- */

.member-auth {
  display: grid;
  place-items: center;
  min-height: calc(100vh - 150px);
  min-height: calc(100dvh - 150px);
  padding: 26px 0 56px;
}

.member-auth-card {
  position: relative;
  width: min(460px, calc(100% - 40px));
  padding: 34px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .9);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, .92);
  box-shadow: var(--shadow-card);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  animation: memberRise .42s ease both;
}

.member-auth-card::before {
  content: "";
  position: absolute;
  top: -120px;
  right: -90px;
  width: 240px;
  height: 240px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(107, 124, 245, .16), transparent 68%);
  pointer-events: none;
}

@keyframes memberRise {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.member-kicker {
  margin: 0;
  color: #7C88C7;
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: .18em;
}

.member-auth-card h1 {
  margin: 10px 0 0;
  font-size: 30px;
  font-weight: 850;
  line-height: 1.2;
  letter-spacing: -.03em;
}

.member-auth-sub {
  margin: 9px 0 0;
  color: var(--muted);
  font-size: 12.5px;
  line-height: 1.8;
}

.member-auth-form {
  display: grid;
  gap: 15px;
  margin-top: 25px;
}

.member-field {
  display: grid;
  gap: 7px;
}

.member-field > span {
  color: #56637A;
  font-size: 12.5px;
  font-weight: 700;
}

.member-field em {
  color: #C24C5B;
  font-style: normal;
}

.member-field select,
.member-field input {
  width: 100%;
  height: 45px;
  padding: 0 13px;
  border: 1px solid #DDE3EC;
  border-radius: 10px;
  outline: none;
  background: #FFF;
  color: #27334A;
  font-size: 13px;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.member-field select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='m4 6.5 4 4 4-4' stroke='%238893A6' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 16px;
  padding-right: 36px;
}

.member-field select:hover,
.member-field input:hover {
  border-color: #C8D0DE;
}

.member-field select:focus,
.member-field input:focus {
  border-color: #8E9CE2;
  box-shadow: 0 0 0 3px rgba(75, 95, 213, .1);
}

.member-field input::placeholder {
  color: #ABB3C0;
}

.member-field-error {
  min-height: 14px;
  color: #C24C5B;
  font-size: 12.5px;
}

.member-form-alert {
  display: none;
  padding: 9px 11px;
  border: 1px solid #F0D3D7;
  border-radius: 8px;
  background: #FDF3F4;
  color: #B44856;
  font-size: 12.5px;
  line-height: 1.6;
}

.member-form-alert.is-show {
  display: block;
}

.member-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  width: 100%;
  height: 46px;
  margin-top: 3px;
  border: 0;
  border-radius: 10px;
  background: linear-gradient(135deg, #576BE0, #4053C6);
  color: #FFF;
  font-size: 13px;
  font-weight: 750;
  letter-spacing: .02em;
  cursor: pointer;
  box-shadow: 0 12px 24px rgba(75, 95, 213, .22);
  transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease;
}

.member-submit:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 16px 30px rgba(75, 95, 213, .26);
}

.member-submit:disabled {
  opacity: .6;
  cursor: default;
  box-shadow: none;
}

.member-login-note {
  margin: 18px 0 0;
  padding-top: 15px;
  border-top: 1px dashed #E6EAF2;
  color: var(--soft);
  font-size: 12.5px;
  line-height: 1.8;
}

.member-login-note strong {
  color: #5C6A82;
  font-weight: 700;
}

.member-auth-foot {
  display: flex;
  justify-content: center;
  gap: 18px;
  margin-top: 18px;
  color: #5A6679;
  font-size: 12.5px;
}

.member-auth-foot a {
  transition: color .2s ease;
}

.member-auth-foot a:hover {
  color: var(--indigo);
}

/* ---------- 成员工作台 ---------- */

.member-app-body {
  background:
    radial-gradient(820px 460px at 100% -8%, rgba(84, 104, 219, .09), transparent 62%),
    var(--bg);
}

.member-app {
  display: flex;
  min-height: 100vh;
  min-height: 100dvh;
}

.member-sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 95;
  display: flex;
  flex-direction: column;
  width: 248px;
  padding: 24px 16px 18px;
  overflow-y: auto;
  border-right: 1px solid var(--line);
  background: rgba(255, 255, 255, .97);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

.member-sidebar .member-brand {
  margin: 0 8px;
}

.member-nav {
  display: grid;
  gap: 4px;
  margin-top: 26px;
}

.member-nav-caption {
  margin: 16px 12px 5px;
  color: #A6AEBD;
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: .16em;
}

.member-nav-caption:first-child {
  margin-top: 0;
}

.member-nav-link {
  display: flex;
  align-items: center;
  gap: 11px;
  min-height: 42px;
  padding: 9px 12px;
  border-radius: 10px;
  color: #61708A;
  font-size: 13px;
  font-weight: 650;
  transition: color .2s ease, background-color .2s ease;
}

.member-nav-link svg {
  width: 19px;
  height: 19px;
  color: #5A6679;
  transition: color .2s ease;
}

.member-nav-link:hover {
  background: #F5F7FB;
  color: #2A3550;
}

.member-nav-link:hover svg {
  color: #56657F;
}

.member-nav-link.is-active {
  background: var(--indigo-soft);
  color: var(--indigo-dark);
}

.member-nav-link.is-active svg {
  color: var(--indigo);
}

.member-sidebar-foot {
  margin-top: auto;
  padding-top: 28px;
}

.member-mini {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 12px;
  border: 1px solid #EDF0F6;
  border-radius: 10px;
  background: #FAFBFD;
}

.member-mini-avatar {
  display: grid;
  place-items: center;
  flex: none;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: linear-gradient(145deg, #5B6FE0, #3F51C2);
  color: #FFF;
  font-size: 13px;
  font-weight: 800;
  box-shadow: 0 6px 14px rgba(75, 95, 213, .2);
}

.member-mini-copy {
  display: grid;
  min-width: 0;
  line-height: 1.4;
}

.member-mini-copy strong {
  overflow: hidden;
  color: #33405A;
  font-size: 12.5px;
  font-weight: 750;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.member-mini-copy small {
  overflow: hidden;
  margin-top: 1px;
  color: #5A6679;
  font-size: 12.5px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.member-mini-logout {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  height: 36px;
  margin-top: 8px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: #5A6679;
  font-size: 12.5px;
  font-weight: 650;
  cursor: pointer;
  transition: color .2s ease, background-color .2s ease;
}

.member-mini-logout:hover {
  background: #FBF3F4;
  color: #C24C5B;
}

.member-shell {
  display: flex;
  flex-direction: column;
  width: calc(100% - 248px);
  min-height: 100vh;
  min-height: 100dvh;
  margin-left: 248px;
}

.member-shell-topbar {
  position: sticky;
  top: 0;
  z-index: 80;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 68px;
  padding: 12px 32px;
  border-bottom: 1px solid rgba(227, 232, 241, .9);
  background: rgba(244, 246, 250, .9);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}

.member-topbar-left {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.member-crumb {
  display: flex;
  align-items: center;
  gap: 8px;
  overflow: hidden;
  color: #5A6679;
  font-size: 12.5px;
  font-weight: 600;
  white-space: nowrap;
}

.member-crumb i {
  color: #C2C9D6;
  font-style: normal;
}

.member-crumb strong {
  overflow: hidden;
  color: #2A3550;
  font-weight: 750;
  text-overflow: ellipsis;
}

.member-topbar-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.member-topbar-user {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 11px 4px 5px;
  border: 1px solid #E5E9F1;
  border-radius: 999px;
  background: #FFF;
}

.member-topbar-user-mark {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--indigo-soft);
  color: var(--indigo);
  font-size: 12.5px;
  font-weight: 800;
}

.member-topbar-user strong {
  color: #4A566C;
  font-size: 12.5px;
  font-weight: 700;
  white-space: nowrap;
}

.member-main {
  flex: 1;
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
  padding: 30px 32px 64px;
}

.member-view {
  animation: memberViewIn .28s ease both;
}

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

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

.member-view-head {
  margin: 4px 0 20px;
}

.member-view-head h1 {
  margin: 8px 0 0;
  font-size: 26px;
  font-weight: 850;
  letter-spacing: -.03em;
}

.member-sub {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 12.5px;
}

/* 概览：欢迎区 */

.member-hero {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  padding: 30px 32px;
  overflow: hidden;
  border-radius: 20px;
  background:
    radial-gradient(420px 260px at 88% -20%, rgba(112, 131, 255, .32), transparent 70%),
    linear-gradient(145deg, #1C2842, #131C30);
  color: #FFF;
  box-shadow: 0 18px 40px rgba(20, 30, 55, .16);
}

.member-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255, 255, 255, .07) 1px, transparent 1px);
  background-size: 22px 22px;
  mask-image: linear-gradient(to bottom, rgba(0, 0, 0, .55), transparent 78%);
  -webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, .55), transparent 78%);
  pointer-events: none;
}

.member-hero-main {
  position: relative;
  z-index: 1;
  min-width: 0;
}

.member-hero-kicker {
  margin: 0;
  color: #5A6679;
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: .18em;
}

.member-hero h1 {
  margin: 10px 0 0;
  font-size: clamp(24px, 2.4vw, 31px);
  font-weight: 850;
  line-height: 1.25;
  letter-spacing: -.03em;
}

.member-hero-sub {
  margin: 7px 0 0;
  color: #A6B3CA;
  font-size: 12.5px;
}

.member-hero-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 16px;
}

.member-hero-tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 10px;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 999px;
  background: rgba(255, 255, 255, .06);
  color: #D5DCEF;
  font-size: 12.5px;
}

.member-hero-tag svg {
  color: #5A6679;
}

.member-hero-tag.is-accent {
  border-color: rgba(112, 215, 189, .2);
  background: rgba(112, 215, 189, .12);
  color: #9FE5D2;
}

.member-hero-tag.is-accent svg {
  color: #7FD6BE;
}

.member-hero-date {
  position: relative;
  z-index: 1;
  flex: none;
  display: grid;
  justify-items: end;
  gap: 1px;
  padding-bottom: 2px;
  text-align: right;
}

.member-hero-date span {
  color: #5A6679;
  font-size: 12.5px;
  letter-spacing: .06em;
}

.member-hero-date strong {
  color: #FFF;
  font-size: 38px;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -.03em;
}

/* 概览：信息卡片 */

.member-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 13px;
  margin-top: 15px;
}

.member-stat {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 15px 16px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #FFF;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.member-stat:hover {
  border-color: #D6DCEC;
  box-shadow: 0 10px 24px rgba(24, 38, 68, .05);
  transform: translateY(-1px);
}

.member-stat-icon {
  display: grid;
  place-items: center;
  flex: none;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: var(--indigo-soft);
  color: var(--indigo);
}

.member-stat-icon.is-mint {
  background: var(--mint-soft);
  color: #178670;
}

.member-stat-icon.is-amber {
  background: #FDF5E8;
  color: #B88327;
}

.member-stat-icon.is-slate {
  background: #F2F4F8;
  color: #6C7A92;
}

.member-stat-icon svg {
  width: 18px;
  height: 18px;
}

.member-stat > div {
  min-width: 0;
}

.member-stat-label {
  margin: 0;
  color: #5A6679;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .08em;
}

.member-stat-value {
  display: block;
  overflow: hidden;
  margin-top: 3px;
  color: #2E3A52;
  font-size: 13.5px;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 概览：面板与快捷入口 */

.member-content-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
  gap: 15px;
  margin-top: 15px;
  align-items: start;
}

.member-panel {
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #FFF;
}

.member-panel-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 16px;
}

.member-panel-head h2 {
  margin: 0;
  color: #26324A;
  font-size: 15px;
  font-weight: 820;
  letter-spacing: -.01em;
}

.member-panel-head p {
  margin: 4px 0 0;
  color: #5A6679;
  font-size: 12.5px;
}

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

.member-quick {
  display: flex;
  align-items: center;
  gap: 11px;
  min-width: 0;
  padding: 14px;
  border: 1px solid #EDF0F6;
  border-radius: 10px;
  background: #FBFCFE;
  transition: border-color .2s ease, background-color .2s ease, transform .2s ease;
}

.member-quick:hover {
  border-color: #C9D1EE;
  background: #F6F8FE;
  transform: translateY(-1px);
}

.member-quick-icon {
  display: grid;
  place-items: center;
  flex: none;
  width: 36px;
  height: 36px;
  border: 1px solid #E8ECF5;
  border-radius: 10px;
  background: #FFF;
  color: var(--indigo);
  box-shadow: 0 3px 8px rgba(24, 38, 68, .04);
}

.member-quick-icon svg {
  width: 17px;
  height: 17px;
}

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

.member-quick-copy strong {
  display: block;
  color: #33405A;
  font-size: 12.5px;
  font-weight: 750;
}

.member-quick-copy small {
  display: block;
  overflow: hidden;
  margin-top: 2px;
  color: #5A6679;
  font-size: 12.5px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.member-quick-arrow {
  margin-left: auto;
  color: #C3CAD8;
  transition: color .2s ease, transform .2s ease;
}

.member-quick-arrow svg {
  width: 14px;
  height: 14px;
}

.member-quick:hover .member-quick-arrow {
  color: var(--indigo);
  transform: translateX(2px);
}

.member-feed {
  display: grid;
  gap: 9px;
}

.member-feed-item {
  position: relative;
  display: flex;
  gap: 10px;
  padding: 12px 13px;
  border: 1px solid #EEF1F7;
  border-radius: 10px;
  background: #FAFBFD;
}

/* 概览通知行里只有标题一个可点元素，把它的点击区拉伸到整行，
   否则手机上只剩 16px 高的窄条 */
#overview-feed .member-feed-item a::after {
  content: "";
  position: absolute;
  inset: 0;
}

.member-feed-dot {
  flex: none;
  width: 7px;
  height: 7px;
  margin-top: 7px;
  border-radius: 50%;
  background: var(--indigo);
  box-shadow: 0 0 0 4px rgba(75, 95, 213, .08);
}

.member-feed-dot.is-mint {
  background: var(--mint);
  box-shadow: 0 0 0 4px rgba(31, 157, 130, .09);
}

.member-feed-body {
  min-width: 0;
}

.member-feed-body strong {
  display: block;
  color: #3A465C;
  font-size: 12.5px;
  font-weight: 750;
}

.member-feed-body p {
  margin: 3px 0 0;
  color: #5A6679;
  font-size: 12.5px;
  line-height: 1.75;
}

.member-feed-body time {
  display: block;
  margin-top: 5px;
  color: #B0B8C6;
  font-size: 12.5px;
}

.member-feed-note {
  margin: 14px 0 0;
  padding-top: 12px;
  border-top: 1px dashed #EDF0F5;
  color: #A6AEBD;
  font-size: 12.5px;
}

/* 我的资料 */

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

.member-detail {
  padding: 13px 15px;
  border: 1px solid #E8ECF3;
  border-radius: 10px;
  background: #FAFBFD;
}

.member-detail span {
  display: block;
  color: #5A6679;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .08em;
}

.member-detail strong {
  display: block;
  margin-top: 4px;
  color: #334056;
  font-size: 12.5px;
  font-weight: 750;
  word-break: break-word;
}

.member-inline-note {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 16px;
  padding: 13px 14px;
  border: 1px solid #E3E8F4;
  border-radius: 10px;
  background: #F7F8FE;
  color: #7A869C;
  font-size: 12.5px;
  line-height: 1.75;
}

.member-inline-note svg {
  flex: none;
  margin-top: 1px;
  color: var(--indigo);
}

.member-inline-note p {
  margin: 0;
}

/* 空白占位 */

.member-empty {
  display: grid;
  justify-items: center;
  padding: 52px 24px;
  text-align: center;
}

.member-empty-icon {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  border-radius: 20px;
  background: var(--indigo-soft);
  color: var(--indigo);
}

.member-empty-icon svg {
  width: 26px;
  height: 26px;
}

.member-pill {
  margin-top: 14px;
  padding: 3px 9px;
  border-radius: 999px;
  background: #F0F2F8;
  color: #5A6679;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .04em;
}

.member-empty h2 {
  margin: 10px 0 0;
  color: #2E3A52;
  font-size: 14.5px;
  font-weight: 800;
}

.member-empty p {
  max-width: 340px;
  margin: 6px 0 0;
  color: #5A6679;
  font-size: 12.5px;
  line-height: 1.8;
}

/* 账号安全 */

.member-security-list {
  display: grid;
  gap: 10px;
}

.member-security-row {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 15px;
  border: 1px solid #EDF0F6;
  border-radius: 10px;
  background: #FAFBFD;
}

.member-security-icon {
  display: grid;
  place-items: center;
  flex: none;
  width: 38px;
  height: 38px;
  border: 1px solid #E9EDF5;
  border-radius: 10px;
  background: #FFF;
  color: var(--indigo);
}

.member-security-icon svg {
  width: 18px;
  height: 18px;
}

.member-security-row > div {
  flex: 1;
  min-width: 0;
}

.member-security-row strong {
  display: block;
  color: #33405A;
  font-size: 12.5px;
  font-weight: 750;
}

.member-security-row p {
  margin: 3px 0 0;
  color: #5A6679;
  font-size: 12.5px;
  line-height: 1.7;
}

.member-badge-soft {
  flex: none;
  padding: 4px 9px;
  border-radius: 999px;
  background: #F0F2F8;
  color: #5A6679;
  font-size: 12.5px;
  font-weight: 700;
  white-space: nowrap;
}

.member-badge-soft.is-ok {
  background: var(--mint-soft);
  color: #178670;
}

.member-account-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid #EEF1F5;
}

.member-btn-danger {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  height: 38px;
  padding: 0 15px;
  border: 1px solid #EFD6DA;
  border-radius: 10px;
  background: #FFF;
  color: #C24C5B;
  font-size: 12.5px;
  font-weight: 700;
  cursor: pointer;
  transition: border-color .2s ease, background-color .2s ease;
}

.member-btn-danger:hover {
  border-color: #EBC2C8;
  background: #FDF3F4;
}

.member-btn-danger:disabled,
.member-mini-logout:disabled {
  opacity: .55;
  cursor: default;
}

.member-loading {
  display: grid;
  place-items: center;
  min-height: 300px;
  color: #5A6679;
  font-size: 12.5px;
}

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

.member-nav-link:focus-visible,
.member-quick:focus-visible,
.member-entry-link:focus-visible,
.member-mini-logout:focus-visible,
.member-btn-danger:focus-visible,
.member-topbar-link:focus-visible {
  outline: 2px solid rgba(75, 95, 213, .55);
  outline-offset: 2px;
}

@media (max-width: 899.98px) {
  /* 手机端改由底部导航承载，侧栏整体退场（不能用位移藏起来，否则链接仍在 Tab 顺序里） */
  .member-sidebar {
    display: none;
  }

  .member-shell {
    width: 100%;
    margin-left: 0;
  }

  .member-content-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 899.98px) {
  .member-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .member-detail-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 599.98px) {
  .member-shell-topbar {
    padding: 10px 18px;
  }

  .member-main {
    padding: 20px 16px 48px;
  }

  .member-topbar-user {
    display: none;
  }

  .member-hero {
    flex-direction: column;
    align-items: flex-start;
    gap: 18px;
    padding: 24px 22px;
  }

  .member-hero-date {
    display: none;
  }

  .member-hero h1 {
    font-size: 23px;
  }

  /* P1-7 概览减法：届别/班级/角色已由英雄区标签承担，状态见「我的」；
     快捷入口四项与底部导航完全重复，xs 直接去掉 */
  .member-stat-grid,
  .member-content-grid > .member-panel:first-child {
    display: none;
  }

  .member-panel {
    padding: 18px;
  }

  .member-detail-grid {
    grid-template-columns: 1fr;
  }

  .member-security-row {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .member-badge-soft {
    margin-left: 51px;
  }

  .member-account-actions {
    justify-content: stretch;
  }

  .member-btn-danger {
    justify-content: center;
    width: 100%;
  }

  .member-view-head h1 {
    font-size: 23px;
  }
}

@media (max-width: 599.98px) {
  .member-topbar {
    width: calc(100% - 32px);
    padding-top: 18px;
  }

  .member-auth-card {
    width: calc(100% - 28px);
    padding: 26px 20px;
  }

  .member-auth-card h1 {
    font-size: 26px;
  }

  .member-auth-foot {
    flex-wrap: wrap;
    gap: 8px 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .member-auth-card,
  .member-view {
    animation: none;
  }

  *,
  *::before,
  *::after {
    transition-duration: .01ms !important;
  }
}

.member-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 60;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(17, 26, 46, .45);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}

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

.member-modal {
  display: grid;
  gap: 16px;
  width: min(420px, 100%);
  max-height: calc(100vh - 40px);
  overflow-y: auto;
  padding: 22px;
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow-card);
}

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

.member-modal-head h2 {
  margin: 4px 0 0;
  color: var(--ink);
  font-size: 17px;
  font-weight: 750;
}

.member-modal-close {
  flex: none;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #FFF;
  color: var(--muted);
  font-size: 15px;
  line-height: 1;
  cursor: pointer;
  transition: border-color .2s ease, color .2s ease;
}

.member-modal-close:hover {
  border-color: #C8D0DE;
  color: var(--ink);
}

.member-modal-note {
  margin: 0;
  padding: 10px 12px;
  border: 1px solid #DCE4FB;
  border-radius: 10px;
  background: var(--indigo-soft);
  color: #3D4FBF;
  font-size: 12.5px;
  line-height: 1.7;
}

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

.member-modal-body {
  display: grid;
  gap: 12px;
}

.member-modal-foot {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

.member-btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  padding: 0 18px;
  border: 0;
  border-radius: 10px;
  background: linear-gradient(135deg, #576BE0, #4053C6);
  color: #FFF;
  font-size: 12.5px;
  font-weight: 750;
  cursor: pointer;
  transition: filter .2s ease, transform .2s ease;
}

.member-btn-primary:hover {
  filter: brightness(1.05);
  transform: translateY(-1px);
}

.member-btn-primary:disabled {
  opacity: .6;
  cursor: default;
  transform: none;
}

.member-btn-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #FFF;
  color: var(--muted);
  font-size: 12.5px;
  font-weight: 700;
  cursor: pointer;
  transition: border-color .2s ease, color .2s ease;
}

.member-btn-ghost:hover {
  border-color: #C8D0DE;
  color: var(--ink);
}

.member-btn-primary:focus-visible,
.member-btn-ghost:focus-visible,
.member-modal-close:focus-visible {
  outline: 2px solid rgba(75, 95, 213, .55);
  outline-offset: 2px;
}

.member-form-alert.is-ok {
  display: block;
  border-color: #CDEADF;
  background: var(--mint-soft);
  color: #178670;
}

.member-badge-soft.is-warn {
  background: #FDF1E3;
  color: #B4762A;
}

@media (max-width: 599.98px) {
  .member-modal-foot {
    flex-direction: column-reverse;
  }

  .member-modal-foot .member-btn-primary,
  .member-modal-foot .member-btn-ghost {
    width: 100%;
  }
}

/* 我的资料：头像 + 联系方式 */

.member-profile-top {
  display: grid;
  gap: 20px;
}

.member-avatar-card {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 16px;
  border: 1px solid #EDF0F6;
  border-radius: 14px;
  background: #FAFBFD;
}

.member-avatar {
  flex: none;
  display: grid;
  place-items: center;
  width: 84px;
  height: 84px;
  border-radius: 22px;
  background: linear-gradient(145deg, #5B6FE0, #3F51C2);
  color: #FFF;
  font-size: 30px;
  font-weight: 800;
  box-shadow: 0 10px 24px rgba(75, 95, 213, .22);
}

.member-avatar.has-avatar,
.member-mini-avatar.has-avatar,
.member-topbar-user-mark.has-avatar {
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  color: transparent;
  box-shadow: 0 0 0 1px rgba(24, 38, 68, .07), 0 8px 20px rgba(24, 38, 68, .12);
}

.member-avatar-side {
  display: grid;
  gap: 10px;
  min-width: 0;
}

.member-avatar-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.member-avatar-hint {
  margin: 0;
  color: #5A6679;
  font-size: 12.5px;
  line-height: 1.6;
}

.member-profile-form-panel {
  margin-top: 18px;
}

#profile-form {
  display: grid;
  gap: 14px;
}

.member-profile-fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.member-profile-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

@media (max-width: 899.98px) {
  .member-profile-fields {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 419.98px) {
  .member-avatar-card {
    gap: 14px;
  }

  .member-avatar {
    width: 68px;
    height: 68px;
    border-radius: 20px;
    font-size: 24px;
  }

  .member-profile-actions {
    flex-direction: column-reverse;
  }

  .member-profile-actions .member-btn-primary,
  .member-profile-actions .member-btn-ghost {
    width: 100%;
  }
}

/* 活动报名 */

.member-activity-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 16px;
}

.member-activity-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.member-activity-filters button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 11px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #FFF;
  color: var(--muted);
  font: inherit;
  font-size: 12.5px;
  font-weight: 700;
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease, color .18s ease;
}

.member-activity-filters button:hover {
  border-color: #C8D0DE;
  color: var(--ink);
}

.member-activity-filters button.is-active {
  border-color: var(--navy);
  background: var(--navy);
  color: #FFF;
}

.member-activity-count {
  min-width: 18px;
  padding: 1px 5px;
  border-radius: 999px;
  background: #F0F2F8;
  color: #5A6679;
  font-size: 12.5px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

.member-activity-filters button.is-active .member-activity-count {
  background: rgba(255, 255, 255, .18);
  color: #FFF;
}

.member-activity-sync {
  color: var(--soft);
  font-size: 12.5px;
  font-weight: 600;
}

.member-activity-sync.is-error {
  color: #C0574F;
}

.member-activity-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 220px;
  color: var(--soft);
  font-size: 12.5px;
}

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

.member-activity-spinner {
  width: 14px;
  height: 14px;
  border: 2px solid #E1E6F0;
  border-top-color: var(--indigo);
  border-radius: 50%;
  animation: memberActivitySpin .8s linear infinite;
}

@keyframes memberActivitySpin {
  to {
    transform: rotate(360deg);
  }
}

.member-activity-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

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

.member-activity-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 17px;
  border: 1px solid #E8ECF4;
  border-radius: 14px;
  background: #FFF;
  transition: border-color .18s ease, box-shadow .18s ease;
}

.member-activity-card:hover {
  border-color: #D8DEEA;
  box-shadow: 0 12px 26px rgba(24, 38, 68, .055);
}

.member-activity-card[data-phase="closed"],
.member-activity-card[data-phase="ended"],
.member-activity-card[data-phase="cancelled"] {
  background: #FCFDFE;
}

.member-activity-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.member-activity-date {
  display: flex;
  align-items: baseline;
  gap: 6px;
}

.member-activity-date b {
  color: var(--ink);
  font-size: 26px;
  font-weight: 850;
  line-height: 1;
  letter-spacing: -.04em;
  font-variant-numeric: tabular-nums;
}

.member-activity-date small {
  color: var(--soft);
  font-size: 12.5px;
  font-weight: 600;
}

.member-activity-tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 5px;
}

.member-activity-phase,
.member-activity-mine {
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 12.5px;
  font-weight: 700;
  line-height: 1.5;
  white-space: nowrap;
}

.member-activity-phase.open {
  background: var(--indigo-soft);
  color: var(--indigo-dark);
}

.member-activity-phase.full {
  background: #FDF1E3;
  color: #B4762A;
}

.member-activity-phase.not_started {
  background: #EDF2FB;
  color: #62708A;
}

.member-activity-phase.closed,
.member-activity-phase.ended,
.member-activity-phase.cancelled {
  background: #F2F4F8;
  color: #5A6679;
}

.member-activity-mine {
  background: var(--mint-soft);
  color: #178670;
}

.member-activity-card h3 {
  display: -webkit-box;
  margin: 12px 0 5px;
  overflow: hidden;
  color: #26324A;
  font-size: 15px;
  font-weight: 820;
  line-height: 1.45;
  letter-spacing: -.01em;
  word-break: break-word;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.member-activity-desc {
  display: -webkit-box;
  margin: 0 0 10px;
  overflow: hidden;
  color: var(--muted);
  font-size: 12.5px;
  line-height: 1.7;
  white-space: pre-line;
  word-break: break-word;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}

.member-activity-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 12px;
  margin-bottom: 12px;
  color: var(--muted);
  font-size: 12.5px;
}

.member-activity-meta span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
  line-height: 1.6;
  word-break: break-word;
}

.member-activity-meta svg {
  flex: none;
  width: 13px;
  height: 13px;
  color: #5A6679;
}

.member-activity-seats {
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px dashed #EDF0F6;
}

.member-activity-seat-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 6px;
  color: var(--soft);
  font-size: 12.5px;
}

.member-activity-seat-head strong {
  color: #4A566C;
  font-size: 12.5px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.member-activity-bar {
  height: 5px;
  overflow: hidden;
  border-radius: 99px;
  background: #EDF0F5;
}

.member-activity-bar span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--indigo);
  transition: width .25s ease, background .2s ease;
}

.member-activity-card[data-phase="full"] .member-activity-bar span {
  background: #D39A46;
}

.member-activity-card[data-phase="closed"] .member-activity-bar span,
.member-activity-card[data-phase="ended"] .member-activity-bar span,
.member-activity-card[data-phase="cancelled"] .member-activity-bar span {
  background: #C3CAD6;
}

.member-activity-seat-note {
  display: block;
  margin-top: 6px;
  color: var(--soft);
  font-size: 12.5px;
  line-height: 1.6;
}

.member-activity-action {
  width: 100%;
  min-height: 38px;
  margin-top: 12px;
  padding: 8px 12px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: var(--indigo);
  color: #FFF;
  font: inherit;
  font-size: 12.5px;
  font-weight: 750;
  cursor: pointer;
  transition: background .18s ease, border-color .18s ease, color .18s ease, opacity .18s ease;
}

.member-activity-action:hover:not(:disabled) {
  background: var(--indigo-dark);
}

.member-activity-action.is-secondary {
  border-color: #BFE9DF;
  background: #FFF;
  color: #178670;
}

.member-activity-action.is-secondary:hover:not(:disabled) {
  background: var(--mint-soft);
}

.member-activity-action:disabled {
  border-color: #E8ECF2;
  background: #F3F5F9;
  color: #9AA5B5;
  cursor: not-allowed;
}

.member-activity-action.is-busy {
  opacity: .72;
  cursor: wait;
}

.member-activity-state {
  padding: 44px 20px 40px;
}

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

.member-activity-state .member-btn-ghost {
  height: 36px;
  margin-top: 16px;
  font-size: 12.5px;
}

.member-activity-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid #EEF1F6;
  color: var(--soft);
  font-size: 12.5px;
}

.member-activity-refresh {
  flex: none;
  padding: 5px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #FFF;
  color: var(--muted);
  font: inherit;
  font-size: 12.5px;
  font-weight: 700;
  cursor: pointer;
  transition: border-color .18s ease, color .18s ease;
}

.member-activity-refresh:hover:not(:disabled) {
  border-color: #C8D0DE;
  color: var(--ink);
}

.member-activity-refresh:disabled {
  opacity: .55;
  cursor: wait;
}

.member-activity-filters button:focus-visible,
.member-activity-action:focus-visible,
.member-activity-refresh:focus-visible,
.member-activity-state .member-btn-ghost:focus-visible {
  outline: 2px solid rgba(75, 95, 213, .55);
  outline-offset: 2px;
}

.member-toast {
  position: fixed;
  left: 50%;
  bottom: 30px;
  z-index: 90;
  max-width: min(360px, calc(100vw - 40px));
  padding: 10px 18px;
  border-radius: 999px;
  background: rgba(17, 26, 46, .94);
  color: #FFF;
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
  box-shadow: 0 14px 34px rgba(17, 26, 46, .24);
  opacity: 0;
  transform: translate(-50%, 12px);
  pointer-events: none;
  transition: opacity .22s ease, transform .22s ease;
}

.member-toast.is-show {
  opacity: 1;
  transform: translate(-50%, 0);
}

@media (max-width: 899.98px) {
  .member-activity-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 599.98px) {
  .member-activity-toolbar {
    flex-direction: column;
    align-items: flex-start;
  }

  .member-activity-sync {
    padding-left: 2px;
  }

  .member-activity-foot {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
}

@media (max-width: 419.98px) {
  .member-activity-card {
    padding: 15px;
  }

  .member-activity-card h3 {
    font-size: 14px;
  }

  .member-activity-action {
    min-height: 42px;
  }

  .member-toast {
    bottom: 18px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .member-activity-card,
  .member-activity-action,
  .member-toast {
    transition: none;
  }
}

/* ============================================================
   活动详情
   ============================================================ */

.member-back-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 16px;
  color: var(--muted);
  font-size: 12.5px;
  font-weight: 700;
  text-decoration: none;
  transition: color .16s ease;
}

.member-back-link svg {
  width: 15px;
  height: 15px;
}

.member-back-link:hover {
  color: var(--indigo);
}

.member-detail-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 220px;
  padding: 24px;
  color: var(--soft);
  font-size: 12.5px;
}

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

.member-detail-error {
  display: grid;
  justify-items: center;
  gap: 6px;
  padding: 42px 24px;
  text-align: center;
}

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

.member-detail-error h2 {
  margin: 4px 0 0;
  color: #2B374D;
  font-size: 17px;
  font-weight: 820;
}

.member-detail-error p {
  margin: 0;
  color: var(--muted);
  font-size: 12.5px;
  line-height: 1.7;
}

.member-detail-error .member-btn-ghost {
  margin-top: 10px;
}

.member-detail-hero {
  padding: 24px 26px;
  border-radius: 14px;
  background:
    radial-gradient(360px 200px at 92% -30%, rgba(112, 131, 255, .3), transparent 70%),
    linear-gradient(135deg, #26325A 0%, #1B2545 100%);
  color: #FFF;
  box-shadow: 0 16px 34px rgba(25, 35, 64, .16);
}

.member-detail-hero-tags {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.member-detail-hero .member-activity-mine {
  background: rgba(133, 240, 212, .16);
  color: #A9EFDC;
}

.member-detail-hero h1 {
  margin: 11px 0 0;
  font-size: 25px;
  font-weight: 850;
  line-height: 1.35;
  letter-spacing: -.02em;
  word-break: break-word;
}

.member-detail-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 18px;
  margin-top: 11px;
  color: rgba(226, 232, 250, .78);
  font-size: 12.5px;
  line-height: 1.7;
}

.member-detail-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(260px, .8fr);
  align-items: start;
  gap: 14px;
  margin-top: 14px;
}

.member-detail-main {
  display: grid;
  gap: 14px;
  min-width: 0;
}

.member-detail-description {
  margin: 0 0 14px;
  color: #4E5C73;
  font-size: 12.5px;
  line-height: 1.9;
  white-space: pre-line;
  word-break: break-word;
}

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

.member-detail-fact {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid #EDF0F6;
  border-radius: 10px;
  background: #FAFBFD;
}

.member-detail-fact span {
  color: #5A6679;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .05em;
}

.member-detail-fact strong {
  color: #3A475F;
  font-size: 12.5px;
  font-weight: 750;
  line-height: 1.55;
  word-break: break-word;
}

/* ---------- 方案附件 ---------- */

.member-detail-files {
  display: grid;
  gap: 7px;
}

.member-detail-file {
  display: flex;
  align-items: center;
  gap: 11px;
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid #EDF0F6;
  border-radius: 10px;
  background: #FCFDFE;
  transition: border-color .16s ease, background-color .16s ease;
}

.member-detail-file:hover {
  border-color: #DDE3ED;
  background: #FFF;
}

.member-detail-file-type {
  display: grid;
  place-items: center;
  flex: none;
  width: 40px;
  height: 36px;
  border-radius: 8px;
  background: #EEF0FC;
  color: #4B5FD5;
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: .04em;
}

.member-detail-file-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.member-detail-file-copy strong {
  overflow: hidden;
  color: #33405A;
  font-size: 12.5px;
  font-weight: 750;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.member-detail-file-copy small {
  color: #5A6679;
  font-size: 12.5px;
  font-variant-numeric: tabular-nums;
}

.member-detail-file-actions {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-left: auto;
}

.member-detail-file-actions a {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 9px;
  border: 1px solid #E4E8F0;
  border-radius: 7px;
  background: #FFF;
  color: #4E5B72;
  font-size: 12.5px;
  font-weight: 700;
  text-decoration: none;
  transition: border-color .16s ease, background-color .16s ease, color .16s ease;
}

.member-detail-file-actions a:hover {
  border-color: #CFD6E4;
  background: #F7F9FC;
  color: #35455F;
}

.member-detail-file-actions a:first-child {
  border-color: #D9DFF7;
  background: #F5F6FE;
  color: #4052C4;
}

/* ---------- 总结与表彰 ---------- */

.member-detail-recap-text {
  margin: 0;
  color: #44526A;
  font-size: 12.5px;
  line-height: 1.95;
  white-space: pre-line;
  word-break: break-word;
}

.member-detail-recap-meta {
  margin: 10px 0 0;
  padding-top: 10px;
  border-top: 1px dashed #EDF0F6;
  color: #5A6679;
  font-size: 12.5px;
}

.member-detail-awards {
  display: grid;
  gap: 7px;
  margin-top: 14px;
}

.member-detail-awards-head {
  color: #A87522;
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: .08em;
}

.member-detail-award {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid #F0E8D8;
  border-radius: 10px;
  background: #FEFCF7;
}

.member-detail-award-medal {
  display: grid;
  place-items: center;
  flex: none;
  width: 26px;
  height: 26px;
  border-radius: 8px;
  background: #FBF2E1;
  color: #B5852E;
  font-size: 13px;
  line-height: 1;
}

.member-detail-award > div {
  display: flex;
  align-items: baseline;
  gap: 6px;
  flex-wrap: wrap;
  min-width: 0;
}

.member-detail-award strong {
  color: #3A475F;
  font-size: 12.5px;
  font-weight: 800;
}

.member-detail-award span {
  color: #A87522;
  font-size: 12.5px;
  font-weight: 750;
}

.member-detail-award small {
  flex-basis: 100%;
  color: #5A6679;
  font-size: 12.5px;
}

.member-detail-award p {
  flex-basis: 100%;
  margin: 1px 0 0;
  color: #6A768B;
  font-size: 12.5px;
  line-height: 1.65;
  word-break: break-word;
}

/* ---------- 报名侧栏 ---------- */

.member-detail-side {
  position: sticky;
  top: 84px;
  display: grid;
  gap: 14px;
}

.member-detail-seats {
  display: grid;
  gap: 6px;
}

.member-detail-side .member-activity-action {
  margin-top: 0;
}

.member-detail-side-note {
  margin: 0;
  color: var(--soft);
  font-size: 12.5px;
  line-height: 1.7;
}

/* ---------- 列表补充 ---------- */

.member-activity-card h3 a {
  color: inherit;
  text-decoration: none;
  transition: color .16s ease;
}

.member-activity-card h3 a:hover {
  color: var(--indigo);
}

.member-activity-extras {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin: 0 0 10px;
}

.member-activity-extra {
  display: inline-flex;
  align-items: center;
  padding: 2px 7px;
  border-radius: 5px;
  background: #F0F2F8;
  color: #66738A;
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: .02em;
}

.member-activity-extra.is-recap {
  background: #EAF7F3;
  color: #178670;
}

.member-activity-card-actions {
  display: flex;
  align-items: stretch;
  gap: 8px;
  margin-top: 12px;
}

.member-activity-card-actions .member-activity-action {
  flex: 1 1 auto;
  width: auto;
  margin-top: 0;
}

.member-activity-detail-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  min-height: 38px;
  padding: 8px 11px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #FFF;
  color: var(--muted);
  font-size: 12.5px;
  font-weight: 700;
  text-decoration: none;
  transition: border-color .16s ease, color .16s ease, background-color .16s ease;
}

.member-activity-detail-link:hover {
  border-color: #CFD6E4;
  background: #F8F9FC;
  color: var(--ink);
}

.member-activity-detail-link:focus-visible,
.member-activity-card h3 a:focus-visible,
.member-detail-file-actions a:focus-visible,
.member-back-link:focus-visible {
  outline: 2px solid rgba(75, 95, 213, .55);
  outline-offset: 2px;
}

/* ---------- 我的荣誉 ---------- */

.member-honors-panel {
  margin-top: 14px;
}

.member-honors-loading {
  min-height: 120px;
}

.member-honors-list {
  display: grid;
  gap: 8px;
}

.member-honors-list[hidden],
.member-honors-empty[hidden] {
  display: none;
}

.member-honor-card {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 13px 14px;
  border: 1px solid #F0E8D8;
  border-radius: 10px;
  background: linear-gradient(180deg, #FEFCF7 0%, #FFF 100%);
}

.member-honor-medal {
  display: grid;
  place-items: center;
  flex: none;
  width: 32px;
  height: 32px;
  border-radius: 10px;
  background: #FBF2E1;
  color: #B5852E;
  font-size: 15px;
  line-height: 1;
  box-shadow: 0 4px 10px rgba(181, 133, 46, .12);
}

.member-honor-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.member-honor-head {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
}

.member-honor-head strong {
  color: #8F6419;
  font-size: 12.5px;
  font-weight: 850;
}

.member-honor-head span {
  color: #A7AFBD;
  font-size: 12.5px;
}

.member-honor-copy h3 {
  margin: 0;
  color: #2E3B51;
  font-size: 12.5px;
  font-weight: 780;
  line-height: 1.5;
}

.member-honor-copy h3 a {
  color: inherit;
  text-decoration: none;
}

.member-honor-copy h3 a:hover {
  color: var(--indigo);
}

.member-honor-copy p {
  margin: 2px 0 0;
  color: #6A768B;
  font-size: 12.5px;
  line-height: 1.7;
  word-break: break-word;
}

.member-honor-copy small {
  color: #A3ABBA;
  font-size: 12.5px;
}

.member-honors-empty {
  margin: 0;
  padding: 20px 16px;
  border: 1px dashed #E0E6F0;
  border-radius: 10px;
  background: #FBFCFE;
  color: #5A6679;
  font-size: 12.5px;
  line-height: 1.8;
  text-align: center;
}

/* ---------- 详情响应式 ---------- */

@media (max-width: 899.98px) {
  .member-detail-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .member-detail-side {
    position: static;
  }
}

@media (max-width: 599.98px) {
  .member-detail-hero {
    padding: 20px;
  }

  .member-detail-hero h1 {
    font-size: 21px;
  }

  .member-detail-facts {
    grid-template-columns: minmax(0, 1fr);
  }

  .member-detail-file {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .member-detail-file-actions {
    flex-basis: 100%;
    justify-content: flex-end;
    padding-top: 3px;
    border-top: 1px dashed #EEF1F6;
  }
}

@media (max-width: 419.98px) {
  .member-activity-card-actions {
    flex-direction: column;
  }

  .member-activity-detail-link {
    min-height: 42px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .member-back-link,
  .member-detail-file,
  .member-detail-file-actions a,
  .member-activity-card h3 a,
  .member-activity-detail-link {
    transition: none;
  }
}

/* ---------- P2：通知与活动增强 ---------- */

.member-app [hidden] {
  display: none !important;
}

.member-panel-link {
  flex: none;
  color: var(--indigo);
  font-size: 12.5px;
  font-weight: 750;
  white-space: nowrap;
}

.member-panel-link:hover {
  color: var(--indigo-dark);
}

.member-nav-badge {
  flex: none;
  min-width: 18px;
  margin-left: auto;
  padding: 1px 5px;
  border-radius: 999px;
  background: #E85B5B;
  color: #FFF;
  font-size: 12.5px;
  font-weight: 800;
  line-height: 1.45;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

.member-topbar-notice {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(255, 255, 255, .7);
  color: #66738A;
  transition: border-color .2s ease, color .2s ease, background-color .2s ease;
}

.member-topbar-notice:hover {
  border-color: #C9D1EA;
  background: #FFF;
  color: var(--indigo);
}

.member-topbar-notice-badge {
  position: absolute;
  top: -5px;
  right: -5px;
  min-width: 16px;
  padding: 0 4px;
  border: 2px solid var(--bg);
  border-radius: 999px;
  background: #E85B5B;
  color: #FFF;
  font-size: 12.5px;
  font-weight: 800;
  line-height: 1.5;
  text-align: center;
}

.member-feed-item.is-unread {
  border-color: #DDE3F5;
  background: #F8FAFF;
}

.member-feed-body strong a {
  color: inherit;
  text-decoration: none;
}

.member-feed-body strong a:hover {
  color: var(--indigo);
}

.member-feed-dot.is-reopen {
  background: var(--mint);
  box-shadow: 0 0 0 4px rgba(31, 157, 130, .09);
}

.member-feed-dot.is-summary {
  background: #D99A2B;
  box-shadow: 0 0 0 4px rgba(217, 154, 43, .12);
}

.member-feed-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 22px 0;
  color: var(--soft);
  font-size: 12.5px;
}

.member-activity-tools {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: -4px 0 14px;
}

.member-activity-search {
  display: flex;
  align-items: center;
  gap: 7px;
  flex: 1 1 220px;
  min-width: 0;
  max-width: 340px;
  padding: 0 11px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #FFF;
  color: #5A6679;
}

.member-activity-search:focus-within {
  border-color: #B9C4E5;
  box-shadow: 0 0 0 3px rgba(75, 95, 213, .08);
}

.member-activity-search input {
  width: 100%;
  min-width: 0;
  padding: 8px 0;
  border: 0;
  background: transparent;
  color: var(--ink);
  font-size: 12.5px;
  outline: none;
}

.member-activity-search input::placeholder {
  color: #AAB2C0;
}

.member-activity-select select {
  min-height: 36px;
  padding: 0 30px 0 11px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #FFF;
  color: var(--muted);
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  outline: none;
}

.member-activity-select select:focus-visible {
  border-color: #B9C4E5;
  box-shadow: 0 0 0 3px rgba(75, 95, 213, .08);
}

.member-activity-cover {
  margin: -17px -17px 13px;
  border-radius: 14px 14px 0 0;
  overflow: hidden;
  aspect-ratio: 16 / 7;
  background: #EEF1F8;
}

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

.member-activity-extra.is-category {
  background: var(--indigo-soft);
  color: var(--indigo-dark);
}

.member-activity-extra.is-tag {
  background: #F4F6FA;
  color: #7C879B;
  font-weight: 700;
}

.member-activity-extra.is-checkin {
  background: var(--mint-soft);
  color: #178670;
}

.member-detail-cover {
  margin: -24px -26px 18px;
  border-radius: 14px 14px 0 0;
  overflow: hidden;
  background: rgba(255, 255, 255, .06);
}

.member-detail-cover img {
  display: block;
  width: 100%;
  max-height: 260px;
  object-fit: cover;
}

.member-detail-chips {
  margin-top: 10px;
}

.member-detail-chip {
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .12);
  color: rgba(235, 240, 252, .9);
  font-size: 12.5px;
  font-weight: 700;
  line-height: 1.5;
}

.member-detail-chip.is-category {
  background: rgba(133, 240, 212, .16);
  color: #A9EFDC;
}

.member-detail-recap-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 14px;
  color: var(--indigo);
  font-size: 12.5px;
  font-weight: 750;
}

.member-detail-recap-link:hover {
  color: var(--indigo-dark);
}

.member-detail-checkin {
  display: grid;
  gap: 8px;
  padding-top: 13px;
  border-top: 1px dashed #E8ECF3;
}

.member-detail-checkin-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.member-detail-checkin-head strong {
  color: #33405A;
  font-size: 12.5px;
  font-weight: 800;
}

.member-detail-checkin-state {
  padding: 2px 8px;
  border-radius: 999px;
  background: #F2F4F8;
  color: #5A6679;
  font-size: 12.5px;
  font-weight: 750;
}

.member-detail-checkin-state.is-ok {
  background: var(--mint-soft);
  color: #178670;
}

.member-detail-checkin-text {
  margin: 0;
  color: var(--soft);
  font-size: 12.5px;
  line-height: 1.7;
}

.member-detail-checkin .member-btn-primary {
  width: 100%;
  min-height: 36px;
}

.member-notice-panel {
  padding-bottom: 22px;
}

.member-notice-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.member-notice-summary {
  color: var(--soft);
  font-size: 12.5px;
  font-weight: 600;
}

.member-notice-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 180px;
  color: var(--soft);
  font-size: 12.5px;
}

.member-notice-list {
  display: grid;
  gap: 8px;
}

.member-notice-item {
  display: flex;
  gap: 10px;
  padding: 13px 15px;
  border: 1px solid #EDF0F6;
  border-radius: 10px;
  background: #FCFDFE;
}

.member-notice-item.is-unread {
  border-color: #DDE3F5;
  background: #F8FAFF;
}

.member-notice-dot {
  flex: none;
  width: 7px;
  height: 7px;
  margin-top: 7px;
  border-radius: 50%;
  background: #CBD2DF;
}

.member-notice-dot.is-publish {
  background: var(--indigo);
}

.member-notice-dot.is-reopen {
  background: var(--mint);
}

.member-notice-dot.is-summary {
  background: #D99A2B;
}

.member-notice-copy {
  display: grid;
  flex: 1 1 auto;
  gap: 4px;
  min-width: 0;
}

.member-notice-kind {
  justify-self: start;
  padding: 1px 6px;
  border-radius: 4px;
  background: #F0F2F8;
  color: #6C788C;
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: .03em;
}

.member-notice-kind.is-publish {
  background: var(--indigo-soft);
  color: var(--indigo-dark);
}

.member-notice-kind.is-reopen {
  background: var(--mint-soft);
  color: #178670;
}

.member-notice-kind.is-summary {
  background: #FDF1E3;
  color: #B4762A;
}

.member-notice-title {
  color: #33405A;
  font-size: 12.5px;
  font-weight: 750;
  line-height: 1.5;
  word-break: break-word;
}

.member-notice-title-link {
  color: inherit;
}

.member-notice-title-link:hover {
  color: var(--indigo);
}

.member-notice-body {
  margin: 0;
  color: #7C879B;
  font-size: 12.5px;
  line-height: 1.7;
  word-break: break-word;
}

.member-notice-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px 12px;
  margin-top: 2px;
}

.member-notice-foot time {
  color: #A6AEBD;
  font-size: 12.5px;
}

.member-notice-action,
.member-notice-read {
  padding: 0;
  border: 0;
  background: none;
  color: var(--indigo);
  font-size: 12.5px;
  font-weight: 700;
  cursor: pointer;
}

.member-notice-action:hover,
.member-notice-read:hover {
  color: var(--indigo-dark);
  text-decoration: underline;
}

.member-notice-muted {
  color: #A6AEBD;
  font-size: 12.5px;
}

.member-notice-empty {
  padding: 40px 20px;
}

.member-notice-empty .member-btn-ghost {
  margin-top: 12px;
}

@media (max-width: 599.98px) {
  .member-detail-cover {
    margin: -20px -20px 16px;
  }

  .member-activity-tools {
    flex-direction: column;
  }

  .member-activity-search {
    max-width: none;
  }

  .member-activity-select select {
    width: 100%;
  }

  .member-notice-item {
    padding: 12px;
  }
}

/* ============================================================
   手机端底部导航（xs/sm）：概览 / 活动 / 作品 / 通知 / 我的
   ============================================================ */

.member-bottom {
  display: none;
}

.member-bottom [hidden] {
  display: none !important;
}

@media (max-width: 899.98px) {
  .member-app-body {
    padding-bottom: var(--nav-safe);
  }

  .member-bottom {
    display: flex;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 60;
    min-height: var(--nav-h);
    padding: 6px 4px calc(6px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--line);
    background: rgba(255, 255, 255, .96);
    -webkit-backdrop-filter: saturate(180%) blur(12px);
    backdrop-filter: saturate(180%) blur(12px);
  }

  .member-bottom-link {
    position: relative;
    flex: 1 1 0;
    min-height: var(--touch);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    border-radius: var(--r-sm);
    color: var(--soft);
    font-size: var(--fs-min);
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
  }

  .member-bottom-link svg {
    width: 21px;
    height: 21px;
  }

  .member-bottom-link.is-active {
    color: var(--indigo);
    font-weight: 700;
  }

  .member-bottom-link.is-active::before {
    content: "";
    position: absolute;
    top: 2px;
    left: 50%;
    transform: translateX(-50%);
    width: 22px;
    height: 3px;
    border-radius: 999px;
    background: var(--indigo);
  }

  .member-bottom-link:focus-visible {
    outline: 2px solid var(--indigo);
    outline-offset: 2px;
  }

  .member-bottom-badge {
    position: absolute;
    top: 3px;
    left: 50%;
    margin-left: 3px;
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    border-radius: 999px;
    background: #D2554A;
    color: #FFF;
    font-size: 12.5px;
    font-weight: 700;
    line-height: 17px;
    text-align: center;
  }

  /* 弹窗打开时底部导航让位 */
  .member-app-body:has(.member-modal-backdrop:not([hidden])) .member-bottom {
    visibility: hidden;
  }
}

@media (prefers-reduced-motion: reduce) {
  .member-bottom-link,
  .member-bottom-link::before {
    transition: none;
  }

  .member-entry-link {
    transition: none;
  }
}

/* ---------- 我的 · 账号与退出 ---------- */

.member-entry-list {
  display: grid;
  gap: 8px;
  padding-top: 4px;
}

.member-entry-link {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 62px;
  padding: 12px 16px;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: #FBFCFE;
  color: #3A4557;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color .2s ease, background .2s ease;
}

.member-entry-link:hover {
  border-color: #C9D2E6;
  background: #F3F6FC;
}

.member-entry-link::after {
  content: "›";
  margin-left: auto;
  color: #AEB7C6;
  font-size: 20px;
  line-height: 1;
}

.member-entry-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.member-entry-copy strong {
  font-size: 14px;
  font-weight: 700;
}

.member-entry-copy small {
  color: #7A8698;
  font-size: 12.5px;
}

.member-entry-link.is-danger {
  border-color: #F1D9DC;
  background: #FBF3F4;
  color: #C24C5B;
}

.member-entry-link.is-danger:hover {
  border-color: #E2BEC3;
  background: #F6E7E9;
}

.member-entry-link.is-danger::after {
  content: none;
}

/* ============================================================
   触控下限（方案 3 / 9）：sm 及以下可点击控件 ≥44px
   ============================================================ */

@media (max-width: 899.98px) {
  .member-app-body .member-btn-primary,
  .member-app-body .member-btn-ghost,
  .member-app-body .member-btn-danger,
  .member-app-body .member-submit,
  .member-app-body .member-activity-action,
  .member-app-body .member-activity-refresh,
  .member-app-body .member-activity-detail-link,
  .member-app-body .member-notice-read,
  .member-auth-body .member-btn-primary,
  .member-auth-body .member-submit,
  .member-auth-body .member-btn-ghost {
    min-height: var(--touch);
    font-size: 13.5px;
  }

  .member-app-body .member-modal-close,
  .member-app-body .member-mini-logout,
  .member-auth-body .member-modal-close {
    min-width: var(--touch);
    min-height: var(--touch);
  }

  /* 顶栏与面板右上角链接补齐拇指区 */
  .member-app-body .member-topbar-notice {
    width: var(--touch);
    height: var(--touch);
    flex: none;
  }

  .member-app-body .member-topbar-link,
  .member-auth-body .member-topbar-link {
    min-height: var(--touch);
    padding: 0 12px;
    flex: none;
  }

  /* 签到页、登录页共用顶栏，品牌区同样补齐高度 */
  .member-topbar .member-brand {
    display: inline-flex;
    align-items: center;
    min-height: var(--touch);
  }

  .member-app-body .member-panel-link {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    min-height: var(--touch);
    padding: 0 2px;
  }

  /* 活动筛选胶囊与搜索、分类下拉补齐到 44 */
  .member-app-body .member-activity-filters button {
    min-height: var(--touch);
    padding: 0 14px;
  }

  .member-app-body .member-activity-search,
  .member-app-body .member-activity-search input,
  .member-app-body .member-activity-select,
  .member-app-body .member-activity-select select {
    min-height: var(--touch);
  }

  /* 卡片标题链接只有一行高，手机端扩充其竖向命中区（不影响下方操作行） */
  .member-app-body .member-activity-card h3 a,
  .member-app-body .member-honor-card h3 a,
  .member-app-body .member-notice-title-link {
    display: inline-block;
    padding: 12px 0;
    margin: -12px 0;
    min-height: var(--touch);
  }

  .member-app-body .member-notice-action {
    display: inline-flex;
    align-items: center;
    min-height: var(--touch);
    padding: 0 10px;
  }

  /* 成员登录页页脚两条入口只有一行高，补齐拇指区 */
  .member-auth-foot a {
    display: inline-flex;
    align-items: center;
    min-height: var(--touch);
    padding: 0 6px;
  }

  /* 手机端顶栏做减法：首页与身份缩略并入「我的」，只留面包屑和通知铃 */
  .member-app-body .member-topbar-link,
  .member-app-body .member-topbar-user {
    display: none;
  }

  .member-app-body .member-nav-link {
    min-height: var(--touch);
  }

  .member-app-body .member-detail-file-actions a {
    min-height: var(--touch);
    font-size: 13.5px;
  }

  .member-app-body input,
  .member-app-body select,
  .member-app-body textarea,
  .member-app-body button,
  .member-auth-body button {
    -webkit-tap-highlight-color: transparent;
  }
}

@media (max-width: 599.98px) {
  .member-app-body input:not([type="checkbox"]):not([type="radio"]),
  .member-app-body select,
  .member-app-body textarea,
  .member-auth-body input:not([type="checkbox"]):not([type="radio"]) {
    font-size: 16px;
  }
}
