/* OpenIdea 应用样板 — 与官网同系红调 */
:root {
  --red: #c41e3a;
  --red-dark: #9b1830;
  --red-soft: rgba(196, 30, 58, 0.12);
  --ink: #1a0f12;
  --ink-muted: #5c454c;
  --paper: #fffaf9;
  --paper-2: #ffe8e8;
  --border: rgba(196, 30, 58, 0.18);
  --shadow: 0 12px 40px rgba(196, 30, 58, 0.12);
  --radius: 12px;
  /* 系统字体栈：首屏即最终字形，无网络字体切换带来的「跳字/忽粗忽细」 */
  --font: system-ui, -apple-system, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Heiti SC", sans-serif;
  --font-serif: "Songti SC", "STSong", "SimSun", "Times New Roman", Georgia, serif;
}

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

/* 根字号锁死在 16px，防止带 frontend.css（profile/login）的页面被
   assets/css/bootstrap.css 里 `html { font-size: 10px }` 污染，
   导致 idea.css 里大量 rem 尺寸整体缩水 62.5%，顶栏/留白/字号与首页不一致。 */
html {
  font-size: 16px;
  scroll-behavior: smooth;
  /* 覆盖 FastAdmin frontend 的 height:100%，保持根级随内容增高，避免滚动链异常导致 position:sticky 不相对视口生效 */
  height: auto;
  min-height: 100%;
}

body {
  margin: 0;
  min-height: 100vh;
  height: auto;
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink);
  background: radial-gradient(120% 70% at 50% -5%, var(--paper-2), var(--paper) 50%);
}

a {
  color: var(--red-dark);
}

a:hover {
  color: var(--red);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible {
  outline: 3px solid var(--red);
  outline-offset: 2px;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.app-wrap {
  max-width: 1120px;
  margin: 0 auto;
  padding: 1rem 1.25rem 3rem;
}

/* 顶栏：左 Logo · 中 首页/探索/搜索 · 右 我的 */
.app-header {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 0.75rem 1rem;
  padding-bottom: 1rem;
  margin-bottom: 1.5rem;
  border-bottom: 1px solid var(--border);
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  justify-self: start;
  text-decoration: none;
  color: inherit;
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 1.25rem;
  color: var(--red-dark);
}

.brand-mark {
  display: block;
  flex-shrink: 0;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 10px;
  object-fit: contain;
  background: transparent;
}

.nav-main {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  justify-self: center;
  gap: 0.35rem 1rem;
}

.nav-main a,
.nav-mine {
  text-decoration: none;
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--ink-muted);
  padding: 0.35rem 0.5rem;
  border-radius: 8px;
}

.nav-main a:hover,
.nav-mine:hover {
  color: var(--red-dark);
  background: var(--red-soft);
}

.nav-main a[aria-current="page"],
.nav-mine[aria-current="page"] {
  color: var(--red-dark);
  background: #fff;
  box-shadow: 0 1px 6px rgba(196, 30, 58, 0.15);
}

.nav-mine {
  justify-self: end;
}

@media (max-width: 560px) {
  .app-header {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
  }

  .brand {
    justify-self: center;
  }

  .nav-main {
    justify-self: center;
  }

  .nav-mine {
    justify-self: center;
  }
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  border: none;
  border-radius: 10px;
  padding: 0.55rem 1.1rem;
  text-decoration: none;
  transition: transform 0.08s ease, box-shadow 0.15s ease;
}

.btn:active {
  transform: scale(0.98);
}

.btn-primary {
  background: linear-gradient(180deg, var(--red), var(--red-dark));
  color: #fff;
  box-shadow: 0 4px 16px rgba(196, 30, 58, 0.35);
}

.btn-primary:hover {
  box-shadow: 0 6px 22px rgba(196, 30, 58, 0.45);
  color: #fff;
}

.btn-ghost {
  background: #fff;
  color: var(--red-dark);
  border: 1px solid var(--border);
}

.btn-ghost:hover {
  background: var(--red-soft);
}

.btn-muted {
  background: var(--ink-muted);
  color: #fff;
}

.btn-sm {
  padding: 0.4rem 0.75rem;
  font-size: 0.875rem;
}

.page-title {
  margin: 0 0 0.35rem;
  font-family: var(--font-serif);
  font-size: clamp(1.5rem, 3vw, 1.85rem);
  font-weight: 700;
  line-height: 1.3;
  color: var(--ink);
}

.page-desc {
  margin: 0 0 1.5rem;
  color: var(--ink-muted);
  font-size: 0.95rem;
  line-height: 1.6;
}

/* 探索页：标题与说明同一行（空间不足则换行） */
.page-heading-row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.85rem;
  margin-bottom: 1.5rem;
}

.page-title-inline {
  margin: 0;
  flex-shrink: 0;
  line-height: 1.25;
}

.page-desc-inline {
  margin: 0;
  flex: 1 1 220px;
  min-width: 0;
  line-height: 1.55;
}

.card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 1.25rem 1.35rem;
}

.field label {
  display: block;
  font-weight: 600;
  margin-bottom: 0.4rem;
  font-size: 0.9rem;
}

.field input[type="text"],
.field input[type="search"],
.field textarea {
  width: 100%;
  font: inherit;
  padding: 0.65rem 0.85rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
}

.field textarea {
  min-height: 140px;
  resize: vertical;
}

.field-hint {
  margin: 0.35rem 0 0;
  font-size: 0.8rem;
  color: var(--ink-muted);
}

/* 登录页：居中标题 + 与首页创作区相近的圆角白卡片 */
.auth-page-wrap {
  max-width: min(92vw, 420px);
  margin: clamp(1.75rem, 5vw, 2.75rem) auto 3rem;
}

.auth-page-wrap .page-title,
.auth-page-wrap .page-desc {
  text-align: center;
}

.auth-page-wrap .page-desc {
  margin-left: auto;
  margin-right: auto;
  max-width: 22rem;
}

.auth-card.auth-page {
  margin-top: 0.25rem;
  padding: 1.5rem 1.35rem 1.35rem;
  background: #fff;
  border: 2px solid rgba(196, 30, 58, 0.12);
  border-radius: 16px;
  box-shadow: 0 2px 16px rgba(196, 30, 58, 0.06);
}

/* 与主导航气质接近：底边线 + 选中态强调色，不用大块粉底 */
.auth-tabs {
  display: flex;
  gap: 0;
  margin: 0 0 1.35rem;
  padding: 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.auth-tabs a {
  flex: 1;
  text-align: center;
  padding: 0.5rem 0.35rem 0.65rem;
  margin-bottom: -1px;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--ink-muted);
  transition: color 0.15s ease, border-color 0.15s ease;
}

.auth-tabs a:hover {
  color: var(--red-dark);
}

.auth-tabs a.active {
  color: var(--red-dark);
  border-bottom-color: var(--red);
  background: transparent;
  box-shadow: none;
}

.auth-page .field {
  margin-bottom: 1rem;
}

.auth-page .field input.form-control[type="password"],
.auth-page .field input.form-control[type="tel"],
.auth-page .field input.form-control[type="text"] {
  width: 100%;
  font: inherit;
  padding: 0.65rem 0.85rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
  box-shadow: none;
}

.auth-page .field input.form-control:focus {
  border-color: rgba(196, 30, 58, 0.45);
  outline: none;
  box-shadow: 0 0 0 3px var(--red-soft);
}

.auth-meta-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 0.75rem;
}

.auth-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0;
  font-size: 0.9rem;
  color: var(--ink-muted);
  cursor: pointer;
  font-weight: 500;
}

.auth-checkbox input {
  width: 1rem;
  height: 1rem;
  accent-color: var(--red-dark);
}

.auth-link-muted {
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
  color: var(--ink-muted);
}

.auth-link-muted:hover {
  color: var(--red-dark);
}

.auth-actions {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
}

.auth-btn-full {
  width: 100%;
  justify-content: center;
  padding: 0.65rem 1rem;
  font-size: 1rem;
}

.auth-btn-stack {
  margin-top: 0.65rem;
}

.auth-captcha-wrap {
  width: 100%;
}

/* 覆盖 Bootstrap 的 .input-group（table 布局 + 去圆角）行为，改为 flex 并保留两侧圆角 */
.auth-captcha-wrap.input-group {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0.5rem;
  width: 100%;
}

.auth-page .field .auth-captcha-wrap input.form-control[type="text"] {
  flex: 1 1 auto;
  min-width: 0;
  width: auto;
  border-radius: 10px;
}

.auth-captcha-wrap .input-group-btn {
  flex: 0 0 auto;
  display: flex;
  align-items: stretch;
  width: auto;
  font-size: inherit;
  white-space: nowrap;
}

.auth-captcha-wrap .input-group-btn > .btn {
  position: static;
  margin: 0;
  border-radius: 10px;
}

.auth-captcha-wrap .input-group-btn .btn-captcha {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  padding: 0.65rem 1rem;
  min-width: 7.5rem;
  border-radius: 10px;
  border: 1px solid var(--red);
  background: var(--red);
  color: #fff;
  font: inherit;
  font-weight: 600;
  line-height: 1.25;
  text-decoration: none;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.auth-captcha-wrap .input-group-btn .btn-captcha:hover,
.auth-captcha-wrap .input-group-btn .btn-captcha:focus {
  background: var(--red-dark);
  border-color: var(--red-dark);
  color: #fff;
}

.auth-captcha-wrap .input-group-btn .btn-captcha.disabled,
.auth-captcha-wrap .input-group-btn .btn-captcha[disabled] {
  background: var(--red-soft);
  border-color: var(--red-soft);
  color: var(--red-dark);
  cursor: not-allowed;
  opacity: 1;
}

/* 图形验证码（type="text"）占位图片的尺寸与对齐，和按钮视觉一致 */
.auth-captcha-wrap .input-group-btn img {
  display: block;
  height: 100%;
  min-height: 2.55rem;
  max-height: 100%;
  width: auto;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: #fff;
  cursor: pointer;
}

.auth-page .help-block:empty {
  display: none;
}

.auth-page .help-block:not(:empty) {
  margin: 0.35rem 0 0;
  font-size: 0.8rem;
  color: var(--red-dark);
}

/* 探索页：GitHub 式双栏 */
.square-layout {
  display: grid;
  gap: 1.25rem;
}

.square-layout > * {
  min-width: 0;
  min-height: 0;
}

@media (min-width: 880px) {
  .square-layout {
    grid-template-columns: minmax(0, 1fr) 320px;
    align-items: stretch;
  }
}

.square-layout-right {
  min-width: 0;
}

/* 侧栏整体吸附：sticky 必须作用在「无 overflow 截断」的盒子上；子级 .explore-right-rail 再负责 max-height 内滚动 */
@media (min-width: 880px) {
  .square-layout-right {
    align-self: start;
    position: sticky;
    top: 1rem;
  }
}

@media (max-width: 879px) {
  .square-layout-right {
    position: static;
  }
}

/* 作者 + AI + 匿名表态同一竖条 */
.explore-right-rail {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: 100%;
  max-height: calc(100vh - 2rem);
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

@media (max-width: 879px) {
  .explore-right-rail {
    max-height: none;
    overflow: visible;
  }
}

.explore-right-rail .sidebar-author {
  flex: 0 0 auto;
}

.explore-right-rail .explore-ai-panel {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-sizing: border-box;
  flex: 0 0 auto;
  height: 10.5rem;
  min-height: 10.5rem;
  max-height: 10.5rem;
  overflow: hidden;
}

.explore-right-rail .explore-anon-vote {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  box-sizing: border-box;
  flex: 0 0 auto;
  min-height: 0;
  overflow: visible;
}

.project-block {
  /* margin-bottom: 1.25rem; */
}

.project-block:last-child {
  margin-bottom: 0;
}

.project-name {
  margin: 0 0 0.35rem;
  font-size: 1.15rem;
  font-weight: 700;
}

.project-meta {
  font-size: 0.85rem;
  color: var(--ink-muted);
  margin-bottom: 0.75rem;
}

.project-desc {
  margin: 0 0 1rem;
  font-size: 0.95rem;
  color: var(--ink);
}

/* 探索·项目：顶区标题+愿景，BP 在外层完整展开 */
.explore-project-panel {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* 探索详情：封面图 或 无图时关键词 HTML 占位 */
.explore-project-cover {
  margin: 0 0 1rem;
  padding: 0;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid rgba(196, 30, 58, 0.12);
  background: #eceae8;
  box-shadow: 0 4px 20px rgba(26, 15, 18, 0.08);
}

.explore-project-cover--img img {
  display: block;
  width: 100%;
  height: auto;
  max-height: min(52vh, 30rem);
  object-fit: cover;
  object-position: center;
}

.explore-project-cover--kw {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 0;
  aspect-ratio: 16 / 9;
  padding: 0.6rem 0.85rem;
  box-sizing: border-box;
  overflow: auto;
  background: linear-gradient(
    152deg,
    rgba(196, 30, 58, 0.11) 0%,
    rgba(255, 248, 246, 0.95) 45%,
    rgba(255, 255, 255, 0.55) 100%
  );
  border-style: dashed;
  border-color: rgba(196, 30, 58, 0.28);
}

/* 探索详情·封面关键词区：每行 3 个、大字 */
.explore-project-cover--kw .explore-kw-placeholder {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.5rem 0.55rem;
  align-items: center;
  justify-items: stretch;
  width: 100%;
  max-width: 100%;
}

.explore-project-cover--kw .explore-kw-placeholder li {
  margin: 0;
  padding: 0;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.explore-project-cover--kw .explore-kw-placeholder-chip {
  box-sizing: border-box;
  width: 100%;
  padding: 0.4rem 0.45rem;
  font-size: 1.12rem;
  font-weight: 800;
  line-height: 1.3;
  text-align: center;
  color: var(--red-dark, #5c101f);
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(196, 30, 58, 0.28);
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  word-break: break-word;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}

.explore-kw-placeholder-empty {
  margin: 0;
  font-size: 0.9rem;
  color: var(--ink-muted);
  text-align: center;
}

/* 封面/关键词块在 hero 内：紧接在愿景文案之下、日期之上 */
.explore-project-hero .explore-project-cover {
  margin: 0.55rem 0 0.7rem;
}

.explore-project-hero {
  margin: 0 0 1.1rem;
  padding: 1rem 1.1rem 1.05rem;
  border-radius: 14px;
  background: linear-gradient(
    145deg,
    rgba(196, 30, 58, 0.07) 0%,
    rgba(255, 250, 249, 0.9) 42%,
    rgba(255, 255, 255, 0.5) 100%
  );
  border: 1px solid rgba(196, 30, 58, 0.14);
  box-shadow: 0 10px 36px rgba(26, 15, 18, 0.06);
}

.explore-project-hero .project-name {
  margin: 0 0 0.5rem;
  font-size: 1.42rem;
  font-weight: 800;
  line-height: 1.22;
  letter-spacing: -0.02em;
  color: var(--red-dark);
  font-family: var(--font-serif);
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  line-clamp: 1;
  word-break: break-word;
}

.project-vision-slogan {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 500;
  line-height: 1.58;
  color: var(--ink);
  max-width: 44rem;
}

/* 探索 hero：愿景固定占两行，超出用省略，列表更齐 */
.explore-project-hero .project-vision-slogan {
  max-width: 100%;
  min-width: 0;
  min-height: calc(1.58em * 2);
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  text-overflow: ellipsis;
  word-break: break-word;
}

.explore-project-hero .project-name + .project-vision-slogan {
  margin-top: 0.5rem;
}

.project-hero-dates {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem 1.25rem;
  margin: 0.65rem 0 0;
  font-size: 0.8rem;
  line-height: 1.45;
  color: var(--ink-muted);
}

.project-hero-dates-item--start {
  flex: 0 1 auto;
  min-width: 0;
  text-align: left;
}

.project-hero-dates-item--end {
  flex: 0 1 auto;
  min-width: 0;
  margin-left: auto;
  text-align: right;
}

.explore-project-hero .project-name + .project-hero-dates {
  margin-top: 0.55rem;
}

.explore-project-hero .project-vision-slogan + .project-hero-dates {
  margin-top: 0.65rem;
}

.project-hero-dates-k {
  margin-right: 0.3rem;
  font-weight: 600;
  color: var(--ink-muted);
  opacity: 0.88;
}

.explore-project-hero > :last-child {
  margin-bottom: 0;
}

.project-bp-body {
  flex: 0 0 auto;
  margin: 0 0 1rem;
  padding: 0;
  min-width: 0;
}

/* 探索详情：六项分项只读；第 1 组为三列高亮卡 */
.explore-bp-struct {
  font-size: 0.875rem;
  line-height: 1.65;
  color: var(--ink);
}

.explore-bp-mod {
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px dashed rgba(196, 30, 58, 0.15);
}

.explore-bp-mod:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}

.explore-bp-mod--highlights {
  padding-bottom: 1.15rem;
  margin-bottom: 1.15rem;
  border-bottom: 1px dashed rgba(196, 30, 58, 0.18);
}

.explore-bp-highlights-grid {
  display: grid;
  gap: 0.75rem;
}

@media (min-width: 640px) {
  .explore-bp-highlights-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.85rem;
    align-items: stretch;
  }
}

.explore-bp-highlight {
  padding: 0.8rem 0.9rem;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(196, 30, 58, 0.14);
  box-shadow: 0 2px 14px rgba(26, 15, 18, 0.05);
  min-width: 0;
}

.explore-bp-highlight-label {
  display: block;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: var(--red);
  margin-bottom: 0.5rem;
}

.explore-bp-tags--prominent {
  gap: 0.45rem;
  min-height: 2rem;
}

.explore-bp-chip--lg {
  padding: 0.35rem 0.75rem;
  font-size: 0.88rem;
  font-weight: 700;
}

.explore-bp-value--highlight {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--red-dark);
  text-align: left;
}

/* 第 2～6 步：编号+标题在上方，左侧竖杠样式仅包住正文 */
.explore-bp-mod--section .explore-bp-mod-title {
  margin-bottom: 0.45rem;
}

.explore-bp-section-panel {
  padding: 0.75rem 0.85rem 0.95rem 1rem;
  border-radius: 0 12px 12px 0;
  border-left: 4px solid rgba(196, 30, 58, 0.45);
  background: linear-gradient(90deg, rgba(196, 30, 58, 0.06), transparent 52%);
}

.explore-bp-mod-title {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0 0 0.7rem;
  font-size: 0.93rem;
  font-weight: 700;
  line-height: 1.38;
  letter-spacing: -0.015em;
  color: var(--red-dark);
  font-family: var(--font-serif);
}

.explore-bp-mod-title-text {
  flex: 1;
  min-width: 0;
}

/* 步骤编号：简约统一，浅色底 + 细线框，六步同色 */
.explore-bp-step-orb {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.6rem;
  height: 1.6rem;
  padding: 0 0.38rem;
  flex-shrink: 0;
  border-radius: 6px;
  background: rgba(196, 30, 58, 0.06);
  border: 1px solid rgba(196, 30, 58, 0.22);
  box-sizing: border-box;
}

.explore-bp-mod--highlights .explore-bp-step-orb {
  min-width: 1.7rem;
  height: 1.7rem;
}

.explore-bp-step-digit {
  display: block;
  font-family: inherit;
  font-weight: 700;
  font-size: 0.8rem;
  font-variant-numeric: tabular-nums;
  color: var(--red-dark);
  line-height: 1;
}

.explore-bp-mod--highlights .explore-bp-step-digit {
  font-size: 0.84rem;
}

.explore-bp-field {
  margin-bottom: 0.65rem;
}

.explore-bp-field:last-child {
  margin-bottom: 0;
}

.explore-bp-label {
  display: block;
  font-size: 0.76rem;
  font-weight: 700;
  color: var(--red-dark);
  margin-bottom: 0.3rem;
}

.explore-bp-value {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.65;
  color: var(--ink);
  text-align: justify;
  word-break: break-word;
}

.explore-bp-value-block {
  text-align: justify;
}

.explore-bp-empty {
  color: var(--ink-muted);
}

.explore-bp-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: center;
  min-height: 1.5rem;
}

.explore-bp-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.22rem 0.55rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--red-dark);
  background: var(--red-soft);
  border: 1px solid rgba(196, 30, 58, 0.25);
  border-radius: 999px;
}

.explore-bp-chip-end {
  background: rgba(255, 250, 249, 0.95);
}

.project-bp-doc h3 {
  margin: 1.1rem 0 0.45rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--red-dark);
  border-left: 3px solid var(--red);
  padding-left: 0.5rem;
}

.project-bp-doc h3:first-child {
  margin-top: 0;
}

/* BP 正文：bp-para 由模型按空行分段，样式与原有 p 一致 */
.project-bp-doc p.bp-para {
  margin: 0 0 0.65rem;
  font-size: 0.875rem;
  line-height: 1.7;
  color: var(--ink);
  text-align: justify;
}

.project-bp-doc p.bp-para:last-child {
  margin-bottom: 0;
}

.project-bp-doc p {
  margin: 0 0 0.65rem;
  font-size: 0.875rem;
  line-height: 1.7;
  color: var(--ink);
  text-align: justify;
}

.project-bp-doc ul {
  margin: 0 0 0.65rem;
  padding-left: 1.15rem;
  font-size: 0.875rem;
  line-height: 1.65;
  color: var(--ink);
}

.project-bp-doc li {
  margin-bottom: 0.35rem;
}

.project-bp-doc .bp-kpi {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr));
  gap: 0.5rem;
  margin: 0.5rem 0 0.75rem;
  padding: 0;
  list-style: none;
}

.project-bp-doc .bp-kpi li {
  margin: 0;
  padding: 0.45rem 0.5rem;
  border-radius: 8px;
  background: var(--red-soft);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--ink-muted);
  text-align: center;
}

.project-bp-doc .bp-kpi strong {
  display: block;
  font-size: 0.95rem;
  color: var(--red-dark);
  margin-bottom: 0.15rem;
}


.project-duel-meta {
  margin: -0.35rem 0 0.65rem;
  font-size: 0.85rem;
  color: var(--ink-muted);
}

.project-duel-meta strong:first-of-type {
  color: #1b5e20;
}

.project-duel-meta strong:last-of-type {
  color: #455a64;
}

/* 项目底部 / 侧栏匿名卡片内：对抗态势 + 红蓝进度条 */
.project-duel-bottom {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px dashed var(--border);
}

.project-duel-bottom--in-anon-vote {
  margin-top: 0;
  margin-bottom: 0.65rem;
  padding-top: 0.75rem;
  border-top: 1px dashed var(--border);
}

.project-duel-bottom--in-anon-vote .duel-progress-track {
  margin-bottom: 0;
}

.project-duel-bottom .duel-title {
  margin: 0 0 0.65rem;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--ink-muted);
  letter-spacing: 0.02em;
}

.project-duel-bottom .duel-title-sum {
  font-weight: 600;
}

.duel-sum-red {
  color: #c62828;
}

.duel-sum-blue {
  color: #1565c0;
}

.duel-progress-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.45rem;
  font-size: 0.8rem;
  color: var(--ink-muted);
}

.duel-label-left {
  font-weight: 600;
  color: #b71c1c;
}

.duel-label-left strong {
  font-size: 1rem;
  color: #c62828;
}

.duel-label-right {
  font-weight: 600;
  color: #1565c0;
}

.duel-label-right strong {
  font-size: 1rem;
  color: #0d47a1;
}

.duel-label-mid {
  flex-shrink: 0;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  color: var(--ink-muted);
  padding: 0.2rem 0.45rem;
  border-radius: 6px;
  background: linear-gradient(90deg, rgba(198, 40, 40, 0.08), rgba(13, 71, 161, 0.08));
  border: 1px solid var(--border);
}

.duel-progress-track {
  display: flex;
  height: 14px;
  border-radius: 999px;
  overflow: hidden;
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.08);
}

.duel-seg-red {
  flex: 128;
  min-width: 0;
  background: linear-gradient(180deg, #ef5350, #c62828);
}

.duel-seg-blue {
  flex: 36;
  min-width: 0;
  background: linear-gradient(180deg, #42a5f5, #1565c0);
}

.btn-feasible {
  background: linear-gradient(180deg, #ef5350, #c62828);
  color: #fff;
  border: none;
  box-shadow: 0 4px 14px rgba(198, 40, 40, 0.35);
}

.btn-feasible:hover {
  color: #fff;
  filter: brightness(1.05);
}

.btn-reject {
  background: linear-gradient(180deg, #42a5f5, #1565c0);
  color: #fff;
  border: none;
  box-shadow: 0 4px 14px rgba(21, 101, 192, 0.35);
}

.btn-reject:hover {
  color: #fff;
  filter: brightness(1.05);
}

.action-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.author-card {
  text-align: center;
}

.author-avatar {
  width: 88px;
  height: 88px;
  border-radius: 50%;
  margin: 0 auto 0.75rem;
  background: linear-gradient(135deg, var(--paper-2), #fff);
  border: 3px solid #fff;
  box-shadow: var(--shadow);
  object-fit: cover;
}

.author-name {
  margin: 0;
  font-weight: 700;
  font-size: 1.05rem;
}

.author-bio {
  margin: 0.5rem 0 1rem;
  font-size: 0.875rem;
  color: var(--ink-muted);
}

.mini-list {
  text-align: left;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0.875rem;
}

.mini-list li {
  padding: 0.35rem 0;
  border-top: 1px solid var(--border);
}

.mini-list a {
  text-decoration: none;
  font-weight: 600;
}

/* 探索用户卡片：项目 / 粉丝 / 关注 数字 */
.author-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
  text-align: center;
}

.author-stats li {
  padding: 0.5rem 0.25rem;
  border-radius: 10px;
  background: var(--red-soft);
  border: 1px solid var(--border);
}

.author-stats strong {
  display: block;
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--red-dark);
  line-height: 1.2;
}

.author-stats span {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--ink-muted);
  line-height: 1.3;
}

/* 探索：用户卡片下方的操作区 */
.square-author-actions {
  margin-top: 1.15rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
}

.square-author-actions .action-row {
  justify-content: center;
}

/* 探索：可行 vs 不行 对抗条 */
.square-duel {
  display: flex;
  align-items: stretch;
  gap: 0;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--border);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.6);
}

.square-duel .btn-duel {
  flex: 1;
  margin: 0;
  border: none;
  border-radius: 0;
  font: inherit;
  font-weight: 700;
  font-size: 0.95rem;
  padding: 0.75rem 0.5rem;
  min-height: 48px;
  cursor: pointer;
  transition: filter 0.15s ease, transform 0.08s ease;
}

.square-duel .btn-duel:active {
  transform: scale(0.98);
}

.square-duel .btn-duel-yes {
  background: linear-gradient(180deg, #e8f5e9 0%, #c8e6c9 100%);
  color: #1b5e20;
  border-right: 1px solid rgba(27, 94, 32, 0.2);
}

.square-duel .btn-duel-yes:hover {
  filter: brightness(1.03);
}

.square-duel .btn-duel-no {
  background: linear-gradient(180deg, #eceff1 0%, #cfd8dc 100%);
  color: #37474f;
  border-left: 1px solid rgba(55, 71, 79, 0.12);
}

.square-duel .btn-duel-no:hover {
  filter: brightness(0.97);
}

.square-duel .duel-core {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 0.5rem;
  background: linear-gradient(180deg, #fff 0%, var(--paper-2) 100%);
  border-left: 1px solid var(--border);
  border-right: 1px solid var(--border);
  writing-mode: vertical-rl;
  text-orientation: upright;
  letter-spacing: 0.12em;
  font-size: 0.7rem;
  font-weight: 800;
  color: var(--red-dark);
  user-select: none;
}

@media (max-width: 380px) {
  .square-duel .duel-core {
    writing-mode: horizontal-tb;
    letter-spacing: 0.2em;
    padding: 0 0.35rem;
  }
}

.square-author-actions .square-fav-row {
  margin-top: 0.65rem;
  display: flex;
  justify-content: center;
}

/* 探索页左侧：项目 / 评论 / 投票 / 众筹 */
.explore-left-tabs input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.explore-tab-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 0.75rem;
  margin-bottom: 1rem;
  padding-bottom: 0.65rem;
  border-bottom: 1px solid var(--border);
}

.explore-tab-labels {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0;
  padding: 0;
  border: none;
}

.explore-tab-fav {
  flex-shrink: 0;
}

.explore-tab-labels label {
  cursor: pointer;
  padding: 0.4rem 0.75rem;
  border-radius: 8px;
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--ink-muted);
  border: 1px solid transparent;
}

.explore-tab-labels label:hover {
  background: var(--red-soft);
  color: var(--red-dark);
}

#exp-tab-project:checked ~ .explore-tab-bar .explore-tab-labels label[for="exp-tab-project"],
#exp-tab-comment:checked ~ .explore-tab-bar .explore-tab-labels label[for="exp-tab-comment"],
#exp-tab-milestone:checked ~ .explore-tab-bar .explore-tab-labels label[for="exp-tab-milestone"],
#exp-tab-vote:checked ~ .explore-tab-bar .explore-tab-labels label[for="exp-tab-vote"],
#exp-tab-crowdfund:checked ~ .explore-tab-bar .explore-tab-labels label[for="exp-tab-crowdfund"],
#exp-tab-recruit:checked ~ .explore-tab-bar .explore-tab-labels label[for="exp-tab-recruit"] {
  background: #fff;
  color: var(--red-dark);
  border-color: var(--border);
  box-shadow: 0 2px 8px rgba(196, 30, 58, 0.1);
}

.explore-tab-panel {
  display: none;
  animation: fadeIn 0.2s ease;
}

#exp-tab-project:checked ~ .explore-tab-panels #panel-exp-project,
#exp-tab-comment:checked ~ .explore-tab-panels #panel-exp-comment,
#exp-tab-milestone:checked ~ .explore-tab-panels #panel-exp-milestone,
#exp-tab-vote:checked ~ .explore-tab-panels #panel-exp-vote,
#exp-tab-crowdfund:checked ~ .explore-tab-panels #panel-exp-crowdfund,
#exp-tab-recruit:checked ~ .explore-tab-panels #panel-exp-recruit {
  display: block;
}

/* 探索 · 招募 */
.explore-recruit-intro {
  margin: 0 0 1rem;
  font-size: 0.88rem;
  line-height: 1.55;
  color: var(--ink-muted);
}

.explore-recruit-roles {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.75rem;
}

.explore-recruit-roles > li {
  margin: 0;
  padding: 0.85rem 1rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.85);
}

.recruit-role-title {
  margin: 0 0 0.35rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--ink);
}

.recruit-role-meta {
  margin: 0 0 0.5rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--red-dark);
  letter-spacing: 0.02em;
}

.recruit-role-desc {
  margin: 0 0 0.65rem;
  font-size: 0.82rem;
  line-height: 1.55;
  color: var(--ink-muted);
}

.recruit-role-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

/* 探索 · 里程碑时间线 */
.explore-milestone-intro {
  margin: 0 0 1rem;
  font-size: 0.88rem;
  line-height: 1.55;
  color: var(--ink-muted);
}

.explore-milestone-list {
  margin: 0;
  padding: 0 0 0 0.25rem;
  list-style: none;
  border-left: 2px solid var(--border);
}

.explore-milestone-list > li {
  position: relative;
  padding: 0 0 1.15rem 1.15rem;
  margin-left: -2px;
  border-left: 2px solid transparent;
}

.explore-milestone-list > li:last-child {
  padding-bottom: 0;
}

.explore-milestone-list > li::before {
  content: "";
  position: absolute;
  left: -6px;
  top: 0.35rem;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--red-soft);
  border: 2px solid var(--red);
  box-sizing: border-box;
}

.explore-milestone-list > li.is-done::before {
  background: var(--red);
  border-color: var(--red-dark);
}

.explore-milestone-list > li.is-todo::before {
  background: #fff;
  border-color: var(--border);
}

.explore-milestone-list > li.is-done {
  border-left-color: rgba(196, 30, 58, 0.2);
}

.explore-milestone-list > li.is-current {
  border-left-color: var(--red);
}

.explore-milestone-list > li.is-current::before {
  box-shadow: 0 0 0 3px var(--red-soft);
}

.milestone-date {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--ink-muted);
  letter-spacing: 0.02em;
  margin-bottom: 0.25rem;
}

.milestone-title {
  margin: 0 0 0.35rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--ink);
}

.milestone-desc {
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.55;
  color: var(--ink-muted);
}

.milestone-tag {
  display: inline-block;
  margin-top: 0.4rem;
  font-size: 0.68rem;
  font-weight: 700;
  padding: 0.2rem 0.45rem;
  border-radius: 6px;
  letter-spacing: 0.04em;
}

.milestone-tag-done {
  color: #1b5e20;
  background: rgba(46, 125, 50, 0.12);
}

.milestone-tag-current {
  color: var(--red-dark);
  background: var(--red-soft);
}

.milestone-tag-todo {
  color: var(--ink-muted);
  background: rgba(0, 0, 0, 0.04);
}

.explore-ai-panel {
  padding: 1rem 1.15rem;
}

.explore-anon-vote {
  padding: 1rem 1.15rem;
}

.explore-ai-hint {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  margin: 0 0 0.65rem;
  font-size: 0.75rem;
  line-height: 1.55;
  color: var(--ink-muted);
  text-align: center;
}

.explore-anon-hint {
  flex: 0 0 auto;
  overflow: visible;
  margin: 0 0 0.75rem;
  font-size: 0.78rem;
  line-height: 1.5;
  color: var(--ink-muted);
  text-align: center;
}

.explore-ai-title {
  margin: 0 0 0.35rem;
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: var(--red-dark);
  text-align: center;
  flex-shrink: 0;
}

.explore-anon-actions {
  display: flex;
  gap: 0.5rem;
  flex-shrink: 0;
}

.explore-anon-actions .btn {
  flex: 1;
  justify-content: center;
}

/* 社区判断：1～5 档滑动 + 半圆仪表盘（不展示数字分） */
.project-feas {
  margin-top: 0;
  padding-top: 0.5rem;
}

.project-feas--in-anon-vote {
  margin: 0;
}

.feas-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem 0.45rem;
  margin: 0 0 0.55rem;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--ink-muted);
  text-align: center;
}

.feas-head-n {
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--ink-muted);
}

.feas-head-n strong {
  color: var(--ink);
  font-weight: 800;
}

.feas-vibe {
  margin: 0.2rem 0 0.6rem;
  text-align: center;
  font-size: 0.8rem;
  line-height: 1.4;
  color: var(--ink-muted);
}

.feas-vibe strong {
  color: var(--red-dark, #5c101f);
  font-weight: 800;
  font-size: 0.92rem;
}

.feas-vibe-na {
  color: var(--ink-muted);
  font-weight: 500;
  font-size: 0.78rem;
}

.feas-form {
  margin: 0;
  padding: 0.5rem 0 0;
  border-top: 1px dashed var(--border);
}

.feas-range-label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.feas-range-wrap {
  margin: 0.2rem 0 0.35rem;
  padding: 0 0.1rem;
}

.feas-range {
  width: 100%;
  height: 1.4rem;
  -webkit-appearance: none;
  appearance: none;
  background: linear-gradient(90deg, #eceff1 0%, #fff8e1 100%);
  border-radius: 999px;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.06);
  outline: none;
}

.feas-range::-webkit-slider-runnable-track {
  height: 0.4rem;
  border-radius: 999px;
  background: linear-gradient(90deg, #455a64, #b0bec5, #5d4037, #e65100, #b71c1c);
  opacity: 0.9;
}

.feas-range::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 50%;
  margin-top: -0.5rem;
  background: #fff;
  border: 3px solid var(--red, #c41e3a);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
  cursor: grab;
}

.feas-range:active::-webkit-slider-thumb {
  cursor: grabbing;
}

.feas-range::-moz-range-track {
  height: 0.4rem;
  border-radius: 999px;
  background: linear-gradient(90deg, #455a64, #b0bec5, #5d4037, #e65100, #b71c1c);
}

.feas-range::-moz-range-thumb {
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 50%;
  background: #fff;
  border: 3px solid var(--red, #c41e3a);
  cursor: grab;
}

.feas-ticks {
  display: flex;
  justify-content: space-between;
  font-size: 0.6rem;
  line-height: 1.1;
  color: var(--ink-muted);
  margin: 0.15rem 0 0.45rem;
  text-align: center;
  gap: 0.1rem;
  flex-wrap: wrap;
}

.feas-ticks span {
  flex: 1 1 15%;
  min-width: 0;
}

.feas-cur {
  text-align: center;
  font-size: 0.8rem;
  color: var(--ink-muted);
  margin: 0 0 0.45rem;
}

.feas-cur strong {
  color: var(--red-dark, #5c101f);
  font-weight: 800;
  font-size: 0.95rem;
}

.feas-submit {
  width: 100%;
  justify-content: center;
  background: linear-gradient(180deg, #e57373, #b71c1c);
  color: #fff;
  border: none;
  font-weight: 700;
  box-shadow: 0 4px 12px rgba(198, 40, 40, 0.28);
}

.feas-submit:hover {
  color: #fff;
  filter: brightness(1.05);
}

.explore-ai-btn {
  width: 100%;
  justify-content: center;
  flex-shrink: 0;
}

.vote-options {
  margin: 0;
  padding: 0;
  list-style: none;
}

.vote-options li {
  margin-bottom: 0.65rem;
}

.vote-options button {
  width: 100%;
  text-align: left;
  font: inherit;
  cursor: pointer;
  padding: 0.65rem 0.85rem;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: #fff;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
}

.vote-options button:hover {
  border-color: rgba(196, 30, 58, 0.35);
  background: var(--red-soft);
}

.vote-options .vote-bar {
  flex: 1;
  height: 6px;
  border-radius: 999px;
  background: rgba(196, 30, 58, 0.12);
  overflow: hidden;
  max-width: 140px;
}

.vote-options .vote-bar i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--red), var(--red-dark));
}

.crowdfund-progress {
  margin: 0.5rem 0 1rem;
}

.crowdfund-progress .bar {
  height: 10px;
  border-radius: 999px;
  background: rgba(196, 30, 58, 0.12);
  overflow: hidden;
}

.crowdfund-progress .bar i {
  display: block;
  height: 100%;
  width: 78.4%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--red), var(--red-dark));
}

.crowdfund-meta {
  display: flex;
  justify-content: space-between;
  font-size: 0.85rem;
  color: var(--ink-muted);
  margin-top: 0.35rem;
}

.crowdfund-tiers {
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0.9rem;
}

.crowdfund-tiers li {
  padding: 0.5rem 0;
  border-top: 1px solid var(--border);
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
}

/* 搜索页：标题与搜索框居中 */
.search-page-head {
  text-align: center;
  margin-bottom: 1.5rem;
}

.search-page-head .page-title {
  margin-bottom: 0.5rem;
}

/* 搜索页：全网数据 — 分块网格 + 大字数字（在搜索框上方） */
.search-site-panel {
  max-width: 36rem;
  margin: 0 auto 1.1rem;
  padding: 0 0.25rem;
}

.search-site-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.55rem 0.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.search-site-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  min-height: 5.25rem;
  padding: 0.7rem 0.4rem 0.8rem;
  text-align: center;
  background: linear-gradient(165deg, #fff, rgba(255, 250, 249, 0.97));
  border: 1px solid rgba(196, 30, 58, 0.12);
  border-radius: 14px;
  box-shadow: 0 2px 12px rgba(20, 12, 16, 0.05);
}

.search-site-tile-k {
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  color: var(--ink-muted);
  line-height: 1.2;
}

.search-site-tile-n {
  display: block;
  font-size: clamp(1.5rem, 4.5vw, 1.95rem);
  font-weight: 800;
  line-height: 1.05;
  color: var(--red-dark, #5c101f);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.03em;
  font-family: var(--font-sans, system-ui, sans-serif);
}

@media (max-width: 520px) {
  .search-site-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
  }

  .search-site-tile {
    min-height: 4.75rem;
  }
}

.search-bar--center {
  max-width: 560px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 0;
}

.search-bar--center form {
  justify-content: center;
}

.project-list--search {
  text-align: left;
  margin-top: 1.5rem;
  grid-template-columns: 1fr;
  align-items: start;
  gap: 0.75rem 0.65rem;
}

@media (min-width: 520px) {
  .project-list--search {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* 一行三张，扑克牌竖版约 2.5:3.5（宽:高 = 5:7） */
@media (min-width: 900px) {
  .project-list--search {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.95rem 0.8rem;
  }
}

.project-list--search .search-empty {
  grid-column: 1 / -1;
}

.project-row--search .project-row-main {
  flex: 1 1 14rem;
  min-width: 0;
}

/* 搜索：标题与愿景/摘要 同一行（宽屏条带）；项目列表--search 内为卡片纵向 */
.search-title-line {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  min-width: 0;
  margin-bottom: 0.45rem;
}

.project-list--search .search-title-line {
  flex-direction: column;
  align-items: flex-start;
  gap: 0.3rem 0.45rem;
  margin-bottom: 0.4rem;
  flex-shrink: 0;
}

.project-row--search .search-title-line > h3:only-child {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 100%;
}

.project-row--search .search-title-line > h3:not(:only-child) {
  flex: 0 1 42%;
  min-width: 0;
}

.project-list--search .project-row--search .search-title-line > h3:only-child,
.project-list--search .project-row--search .search-title-line > h3:not(:only-child) {
  flex: 1 1 auto;
  max-width: 100%;
  width: 100%;
  align-self: stretch;
}

.project-row--search .project-row-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.35;
}

.project-row--search .project-row-title a {
  display: block;
  color: var(--ink);
  text-decoration: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  background-image: linear-gradient(transparent calc(100% - 0.1em), rgba(196, 30, 58, 0.2) 0.1em);
  background-repeat: no-repeat;
  background-size: 0% 100%;
  transition: color 0.16s ease, background-size 0.18s ease;
}

.project-row--search .project-row-title a:hover,
.project-row--search .project-row-title a:focus {
  color: var(--red-dark, #5c101f);
  background-size: 100% 100%;
  outline: none;
}

.project-row--search .search-title-line .project-row-slogan {
  flex: 1 1 0;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.35rem 0.45rem;
  margin: 0;
  min-width: 0;
  font-size: 0.85rem;
  line-height: 1.35;
  color: var(--ink);
}

.project-row--search .search-title-line .project-row-slogan-t {
  flex: 1 1 0;
  min-width: 0;
  color: var(--ink-muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.project-list--search .project-row--search .search-title-line .project-row-slogan {
  align-items: flex-start;
  width: 100%;
}

.project-list--search .project-row--search .search-title-line .project-row-slogan-t {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  white-space: normal;
  font-size: 0.84rem;
  line-height: 1.4;
  min-height: calc(1.4em * 2);
  overflow: hidden;
  text-overflow: ellipsis;
  word-break: break-word;
}

/* 搜索卡标题：超出一行用省略 */
.project-list--search .project-row--search .project-row-title a {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  line-clamp: 1;
  white-space: normal;
  overflow: hidden;
  text-overflow: ellipsis;
  word-break: break-word;
}

/* 搜索：愿景/摘要 小标签 */
.search-pill {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  height: 1.45rem;
  padding: 0 0.5rem;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #9a1e32;
  background: linear-gradient(180deg, rgba(196, 30, 58, 0.1), rgba(196, 30, 58, 0.04));
  border: 1px solid rgba(196, 30, 58, 0.2);
  border-radius: 6px;
  line-height: 1;
}

.search-pill--key {
  color: var(--red-dark, #7a1124);
}

/* 搜索：产品形式 + 行业 同一行；右侧为收藏/评论数 */
.search-bp-row {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.4rem 0.6rem;
  margin-top: 0.2rem;
  min-width: 0;
  padding: 0.35rem 0 0;
  border-top: 1px solid rgba(196, 30, 58, 0.1);
}

.project-list--search .search-bp-row {
  flex-wrap: wrap;
  margin-top: 0.4rem;
  padding-top: 0.4rem;
  flex-shrink: 0;
  border-top-width: 1px;
}

.project-list--search .search-bp-row-l {
  flex: 1 1 100%;
  min-width: 0;
}

.project-list--search .search-bp-row-l--ind {
  flex: 1 1 100%;
  min-width: 0;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3rem 0.45rem;
}

.project-list--search .search-bp-row-stats {
  margin-left: 0;
  width: 100%;
  justify-content: center;
  flex-wrap: wrap;
  font-size: 0.74rem;
  padding: 0.25rem 0.5rem;
  white-space: normal;
}

.project-list--search .search-bp-stat-n {
  font-size: 0.8rem;
}

.project-list--search .search-bp-updated {
  white-space: normal;
}

/* 搜索卡：有封面图 或 关键词 HTML 占位（在标题、愿景/摘要之下；仅真图用固定比例，关键词区高度随内容） */
.project-list--search .search-title-line .search-card-cover {
  margin-top: 0.45rem;
  margin-bottom: 0.25rem;
}

.project-list--search .search-card-cover {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  border-radius: 8px;
  overflow: hidden;
  margin: 0;
  padding: 0;
  flex-shrink: 0;
  align-self: stretch;
  box-sizing: border-box;
}

.project-list--search .search-card-cover--img {
  padding: 0;
  background: #e8e5e2;
  aspect-ratio: 5 / 7;
  max-height: 11.5rem;
}

.project-list--search .search-card-cover--img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.project-list--search .search-card-cover--kw {
  width: 100%;
  min-height: 0;
  aspect-ratio: 16 / 9;
  padding: 0.35rem 0.45rem;
  box-sizing: border-box;
  overflow: auto;
  background: linear-gradient(
    150deg,
    rgba(196, 30, 58, 0.1) 0%,
    rgba(255, 250, 249, 0.9) 50%,
    rgba(255, 255, 255, 0.5) 100%
  );
  border: 1px dashed rgba(196, 30, 58, 0.28);
}

/* 搜索卡·关键词：每行 3 个、字号加大 */
.project-list--search .search-kw-placeholder {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.32rem 0.38rem;
  align-items: center;
  justify-items: stretch;
  width: 100%;
  max-width: 100%;
}

.project-list--search .search-kw-placeholder li {
  margin: 0;
  padding: 0;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.project-list--search .search-kw-placeholder-chip {
  box-sizing: border-box;
  width: 100%;
  padding: 0.2rem 0.28rem;
  font-size: 0.82rem;
  font-weight: 800;
  line-height: 1.3;
  text-align: center;
  color: var(--red-dark, #5c101f);
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid rgba(196, 30, 58, 0.25);
  border-radius: 6px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  word-break: break-word;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}

.project-list--search .search-kw-placeholder-empty {
  margin: 0;
  font-size: 0.65rem;
  color: var(--ink-muted);
  text-align: center;
  line-height: 1.35;
}

.project-list--search .search-pill {
  height: 1.32rem;
  font-size: 0.64rem;
  padding: 0 0.42rem;
  border-radius: 5px;
}

.project-list--search .search-bp-lbl {
  font-size: 0.6rem;
}

.project-list--search .search-bp-chip,
.project-list--search .search-bp-chip--ind {
  padding: 0.14rem 0.4rem 0.14rem;
  font-size: 0.76rem;
  line-height: 1.25;
}

.search-bp-row-l {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  flex: 1 1 0;
  align-items: center;
  gap: 0.3rem 0.45rem;
  min-width: 0;
}

.search-bp-row-stats {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  flex-wrap: nowrap;
  gap: 0.2rem 0.35rem;
  margin-left: auto;
  padding: 0.2rem 0.45rem 0.2rem 0.5rem;
  font-size: 0.72rem;
  line-height: 1.3;
  color: var(--ink-muted);
  background: rgba(0, 0, 0, 0.03);
  border: 1px solid var(--border);
  border-radius: 999px;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.search-bp-stat {
  display: inline;
}

.search-bp-stat-n {
  display: inline;
  font-weight: 800;
  font-size: 0.8rem;
  color: var(--ink);
  margin-left: 0.1rem;
}

.search-bp-stat-sep {
  color: var(--ink-muted);
  font-weight: 800;
  opacity: 0.4;
  user-select: none;
  padding: 0 0.1rem;
}

.search-bp-updated {
  display: inline;
  margin: 0;
  font-size: inherit;
  line-height: inherit;
  color: var(--ink-muted);
  white-space: nowrap;
}

.search-bp-updated-k {
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink-muted);
  opacity: 0.85;
  margin-right: 0.15rem;
}

.search-bp-updated--na {
  color: var(--ink-muted);
  opacity: 0.45;
}

@media (max-width: 400px) {
  .search-bp-row {
    flex-wrap: wrap;
  }

  .search-bp-row-stats {
    width: 100%;
    margin-left: 0;
    justify-content: flex-end;
  }
}

.search-bp-lbl {
  flex-shrink: 0;
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--red, #c41e3a);
  line-height: 1.2;
}

.search-bp-sep {
  flex-shrink: 0;
  color: var(--ink-muted);
  font-weight: 700;
  font-size: 0.9rem;
  line-height: 1;
  padding: 0 0.1rem;
  opacity: 0.45;
  user-select: none;
}

.search-bp-chips {
  display: inline-flex;
  flex: 0 1 auto;
  flex-wrap: wrap;
  gap: 0.25rem 0.35rem;
  margin: 0;
  padding: 0;
  list-style: none;
  align-items: center;
  min-width: 0;
  max-width: 100%;
}

.search-bp-chips li {
  margin: 0;
  padding: 0;
}

.search-bp-chip {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  padding: 0.18rem 0.5rem 0.2rem;
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.25;
  color: var(--red-dark, #5c101f);
  word-break: break-word;
  border-radius: 999px;
  border: 1px solid rgba(196, 30, 58, 0.22);
  background: var(--red-soft, rgba(196, 30, 58, 0.08));
}

.search-bp-chip--end {
  background: linear-gradient(180deg, #fffefe, rgba(255, 250, 249, 0.95));
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8) inset;
}

.search-bp-chip--ind {
  font-size: 0.8rem;
  font-weight: 700;
  color: #5a121f;
  background: linear-gradient(130deg, rgba(196, 30, 58, 0.1), rgba(196, 30, 58, 0.04));
  border-color: rgba(196, 30, 58, 0.2);
}

.search-bp-missing {
  color: var(--ink-muted);
  font-size: 0.8rem;
  font-weight: 500;
  opacity: 0.55;
}

.search-empty {
  color: var(--ink-muted);
  text-align: center;
  margin: 1.5rem 0 0;
}

/* 搜索页：关键词 + 唯一「搜索」按钮 */
.search-bar {
  max-width: 520px;
  margin-bottom: 1.75rem;
}

.search-bar form {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  align-items: center;
}

.search-bar input[type="search"] {
  flex: 1;
  min-width: 200px;
  font: inherit;
  padding: 0.65rem 1rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: #fff;
}

.search-bar .search-submit {
  flex-shrink: 0;
}

.badge-gold {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #8b6914;
  background: linear-gradient(135deg, #fff8e1, #ffecb3);
  border: 1px solid #ffe082;
  padding: 0.25rem 0.6rem;
  border-radius: 999px;
}

.project-list {
  display: grid;
  gap: 1rem;
}

.project-row {
  display: grid;
  gap: 0.5rem;
  padding: 1rem 1.15rem;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

@media (min-width: 640px) {
  .project-row {
    grid-template-columns: 1fr auto;
    align-items: center;
  }
}

.project-row h3 {
  margin: 0;
  font-size: 1.05rem;
}

.project-row p {
  margin: 0.25rem 0 0;
  font-size: 0.875rem;
  color: var(--ink-muted);
}

.project-list--search .project-row {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: stretch;
  justify-content: flex-start;
  gap: 0;
  height: auto;
  min-width: 0;
  padding: 0.65rem 0.75rem 0.55rem;
  border-radius: 10px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
  transition: box-shadow 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
  overflow: hidden;
}

.project-list--search .project-row:hover {
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.1);
  border-color: rgba(196, 30, 58, 0.24);
  transform: translateY(-2px);
}

.project-list--search .project-row-main {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

.project-list--search .project-row--search .project-row-title {
  font-size: 0.95rem;
  line-height: 1.32;
}

@media (min-width: 900px) {
  .project-list--search .project-row--search .project-row-title {
    font-size: 1.05rem;
  }
}

/* 我的：纯 CSS 标签页 */
.mine-tabs {
  margin-top: 0.5rem;
}

.mine-tabs input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.tab-labels {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid var(--border);
  padding-bottom: 0.5rem;
}

.tab-labels label {
  cursor: pointer;
  padding: 0.45rem 0.85rem;
  border-radius: 8px;
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--ink-muted);
  border: 1px solid transparent;
}

.tab-labels label:hover {
  background: var(--red-soft);
  color: var(--red-dark);
}

#tab-projects:checked ~ .tab-labels label[for="tab-projects"],
#tab-fans:checked ~ .tab-labels label[for="tab-fans"],
#tab-following:checked ~ .tab-labels label[for="tab-following"],
#tab-fav:checked ~ .tab-labels label[for="tab-fav"],
#tab-comments:checked ~ .tab-labels label[for="tab-comments"],
#tab-score:checked ~ .tab-labels label[for="tab-score"],
#tab-settings:checked ~ .tab-labels label[for="tab-settings"] {
  background: #fff;
  color: var(--red-dark);
  border-color: var(--border);
  box-shadow: 0 2px 8px rgba(196, 30, 58, 0.1);
}

.tab-panel {
  display: none;
  animation: fadeIn 0.2s ease;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

#tab-projects:checked ~ .tab-panels #panel-projects,
#tab-fans:checked ~ .tab-panels #panel-fans,
#tab-following:checked ~ .tab-panels #panel-following,
#tab-fav:checked ~ .tab-panels #panel-fav,
#tab-comments:checked ~ .tab-panels #panel-comments,
#tab-score:checked ~ .tab-panels #panel-score,
#tab-settings:checked ~ .tab-panels #panel-settings {
  display: block;
}

/* 我的：顶部个人概览（粉丝 / 关注 / 项目等） */
.mine-profile-card {
  margin-bottom: 1.25rem;
  padding: 1.1rem 1.25rem 1.15rem;
}

.mine-profile-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--border);
}

/* 个人头部头像（「我的」与资料编辑共用） */
.mine-avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: linear-gradient(145deg, var(--paper-2), #fff);
  border: 2px solid #fff;
  box-shadow: var(--shadow);
  object-fit: cover;
  flex-shrink: 0;
  display: block;
}

.mine-profile-meta {
  flex: 1 1 140px;
  min-width: 0;
}

.mine-nickname {
  margin: 0;
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 1.15rem;
  color: var(--ink);
}

.mine-handle {
  margin: 0.2rem 0 0;
  font-size: 0.8rem;
  color: var(--ink-muted);
}

.mine-score-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  margin: 0.35rem 0 0;
  font-size: 0.95rem;
}

.mine-score-row .mine-score-text {
  margin: 0;
}

.mine-score-row .mine-recharge-btn {
  flex-shrink: 0;
}

.mine-score-rate {
  margin: 0.2rem 0 0;
  font-size: 0.75rem;
  color: var(--ink-muted);
}

.mine-profile-head .btn {
  flex-shrink: 0;
}

/* 资料编辑页：上传热区与 .mine-avatar 同尺寸，头像样式由 .mine-avatar 统一 */
.profile-page .profile-avatar-editor {
  position: relative;
  flex-shrink: 0;
  width: 56px;
  height: 56px;
}

.profile-page .profile-avatar-hover {
  display: none;
  position: absolute;
  inset: 0;
  border-radius: 50%;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 0.25rem;
  background: rgba(0, 0, 0, 0.5);
  color: #fff;
  font-size: 0.7rem;
  line-height: 1.25;
  pointer-events: none;
}

.profile-page .profile-avatar-editor:hover .profile-avatar-hover {
  display: flex;
}

.profile-page .profile-avatar-editor .faupload {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
  border: 0;
  border-radius: 50%;
  padding: 0;
  margin: 0;
  background: transparent;
}

.profile-page .profile-form-fields {
  max-width: 36rem;
}

.profile-page .profile-form-fields .field {
  margin-bottom: 1rem;
}

.profile-page .profile-form-fields .field:last-of-type {
  margin-bottom: 0;
}

.profile-page .profile-bind-row {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 0.5rem;
}

.profile-page .profile-bind-row .form-control {
  flex: 1 1 200px;
  min-width: 0;
}

.profile-page .profile-form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
}

.mine-stat-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
  text-align: center;
}

@media (max-width: 520px) {
  .mine-stat-row {
    grid-template-columns: repeat(2, 1fr);
  }
}

.mine-stat-row > li {
  padding: 0;
  margin: 0;
  border-radius: 10px;
  background: var(--red-soft);
  border: 1px solid var(--border);
  overflow: hidden;
}

.mine-stat-link {
  display: block;
  padding: 0.55rem 0.35rem;
  cursor: pointer;
  text-decoration: none;
  color: inherit;
  transition: background 0.15s ease;
}

.mine-stat-link:hover {
  background: rgba(255, 255, 255, 0.65);
}

.mine-stat-link:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 2px;
}

.mine-stat-row strong {
  display: block;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--red-dark);
  line-height: 1.2;
}

.mine-stat-row span {
  display: block;
  margin-top: 0.15rem;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--ink-muted);
  line-height: 1.3;
}

.tab-panel-summary {
  margin: 0 0 0.85rem;
  font-size: 0.85rem;
  line-height: 1.5;
  color: var(--ink-muted);
}

.tab-panel-summary strong {
  color: var(--red-dark);
  font-weight: 700;
}

.stat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 0.75rem;
  margin-bottom: 1.25rem;
}

.stat {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 0.85rem;
  text-align: center;
}

.stat strong {
  display: block;
  font-size: 1.35rem;
  color: var(--red-dark);
}

.stat span {
  font-size: 0.8rem;
  color: var(--ink-muted);
}

.list-plain {
  margin: 0;
  padding: 0;
  list-style: none;
}

.list-plain li {
  padding: 0.65rem 0;
  border-bottom: 1px solid var(--border);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
}

.list-plain li:last-child {
  border-bottom: none;
}

/* ---------- 全站页脚：留白、栅格、弱分割线 ----------
   背景保持透明，跟随各页 body 色调自然过渡（首页/登录页白底、会员中心/详情页暖粉底）。
   顶部分割线用极淡的左右淡出渐变，避免与暖色 body 产生生硬的冷灰边界。 */
.app-footer {
  margin-top: 3rem;
  padding: 2.75rem 0 2.25rem;
  border-top: 0;
  background: transparent;
  background-image: linear-gradient(
    to right,
    transparent 0%,
    rgba(26, 15, 18, 0.08) 18%,
    rgba(26, 15, 18, 0.08) 82%,
    transparent 100%
  );
  background-repeat: no-repeat;
  background-size: 100% 1px;
  background-position: top center;
  color: var(--ink-muted);
}

.app-footer-inner {
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 0.25rem;
}

.app-footer-main {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1.5fr) auto;
  gap: 2rem 2.5rem;
  align-items: start;
}

.app-footer-brand {
  min-width: 0;
}

.app-footer-name {
  display: block;
  font-family: var(--font-serif);
  font-size: clamp(1.5rem, 3.2vw, 2.125rem);
  font-weight: 800;
  letter-spacing: 0.06em;
  line-height: 1.12;
  color: var(--red-dark);
}

.app-footer-slogan {
  margin: 0.45rem 0 0;
  max-width: 22rem;
  font-size: 0.9375rem;
  line-height: 1.5;
  font-weight: 500;
  color: rgba(20, 18, 20, 0.72);
}

.app-footer-tagline {
  margin: 0.5rem 0 0;
  max-width: 20rem;
  font-size: 0.8125rem;
  line-height: 1.55;
  font-weight: 400;
  color: var(--ink-muted);
}

.app-footer-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  align-content: flex-start;
  justify-content: center;
  gap: 0.5rem 1.25rem;
  padding-top: 0.15rem;
}

.app-footer-nav a {
  text-decoration: none;
  font-size: 0.8125rem;
  font-weight: 500;
  color: rgba(20, 18, 20, 0.58);
  white-space: nowrap;
  padding: 0.2rem 0;
  border-bottom: 1px solid transparent;
  transition: color 0.15s ease, border-color 0.15s ease;
}

.app-footer-nav a:hover {
  color: var(--red-dark);
  border-bottom-color: rgba(196, 30, 58, 0.25);
}

.app-footer-qr {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
  gap: 0.55rem;
  min-width: 0;
}

.app-footer-qr-box {
  width: 88px;
  height: 88px;
  padding: 6px;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
}

.app-footer-qr-box img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  border-radius: 8px;
}

.app-footer-qr-cap {
  margin: 0;
  font-size: 0.75rem;
  line-height: 1.4;
  color: rgba(20, 18, 20, 0.45);
  max-width: 9rem;
}

.app-footer-qr-note {
  font-size: 0.6875rem;
  color: rgba(20, 18, 20, 0.38);
}

.app-footer-copy {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 0;
  background-image: linear-gradient(
    to right,
    transparent 0%,
    rgba(26, 15, 18, 0.06) 30%,
    rgba(26, 15, 18, 0.06) 70%,
    transparent 100%
  );
  background-repeat: no-repeat;
  background-size: 100% 1px;
  background-position: top center;
  text-align: center;
  font-size: 0.75rem;
  line-height: 1.65;
  letter-spacing: 0.02em;
  color: rgba(20, 18, 20, 0.42);
}

.app-footer-copy-line {
  margin: 0;
}

.app-footer-copy a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color 0.15s ease, border-color 0.15s ease;
}

.app-footer-copy a:hover {
  color: var(--red-dark);
  border-bottom-color: rgba(196, 30, 58, 0.3);
}

@media (max-width: 900px) {
  .app-footer-main {
    grid-template-columns: 1fr 1fr;
    gap: 1.75rem 1.5rem;
  }

  .app-footer-qr {
    grid-column: 1 / -1;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    text-align: center;
  }

  .app-footer-qr-cap {
    max-width: none;
    text-align: left;
  }
}

@media (max-width: 640px) {
  .app-footer {
    margin-top: 2.25rem;
    padding: 2rem 0 1.75rem;
  }

  .app-footer-main {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .app-footer-nav {
    justify-content: flex-start;
    gap: 0.45rem 1rem;
  }

  .app-footer-qr {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .app-footer-qr-cap {
    text-align: center;
  }

  .app-footer-copy {
    margin-top: 1.5rem;
    padding-top: 1.25rem;
  }
}

.comment-box {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px dashed var(--border);
}

.comment-box textarea {
  width: 100%;
  min-height: 72px;
  font: inherit;
  padding: 0.5rem 0.65rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  margin-bottom: 0.5rem;
}

/* ---------- 首页 · 简洁大气（浅色大留白，对齐 LOOK 式官网气质） ---------- */
body.page-home {
  background: #fff;
  color: var(--ink);
  /* 首屏全宽 breakout：clip 优先，旧浏览器回退 hidden 消横向滚动条 */
  overflow-x: hidden;
  overflow-x: clip;
}

.page-home .app-wrap {
  max-width: 1080px;
}

.page-home .app-header {
  margin-bottom: 0;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  background: #fff;
}

.home-page {
  margin-top: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* 首屏：相对视口全宽浅底（避免 left/right:50% 双写与 margin 计算不一致） */
.home-hero {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: clamp(3rem, 12vw, 5.5rem) max(1.25rem, env(safe-area-inset-right, 0px)) clamp(3.25rem, 10vw, 4.5rem) max(1.25rem, env(safe-area-inset-left, 0px));
  background: #fafafa;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  box-sizing: border-box;
}

.home-hero-inner {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}

.home-hero-title {
  margin: 0 0 1.25rem;
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: clamp(1.75rem, 4.8vw, 2.5rem);
  line-height: 1.25;
  letter-spacing: 0.02em;
  color: #141214;
}

.home-hero-accent {
  color: var(--red-dark);
}

/* 打字机效果光标 */
.typing-cursor {
  display: inline-block;
  animation: cursor-blink 0.8s step-end infinite;
  color: var(--red);
}

@keyframes cursor-blink {
  0%, 50% { opacity: 1; }
  50.01%, 100% { opacity: 0; }
}

.home-hero-lead {
  margin: 0 auto 2rem;
  max-width: 32em;
  font-size: clamp(0.9375rem, 1.8vw, 1.0625rem);
  line-height: 1.8;
  color: #5c5560;
}

.home-hero-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem;
}

.home-hero-cta .btn-primary {
  padding: 0.65rem 1.75rem;
  font-size: 1rem;
  border-radius: 999px;
  box-shadow: none;
}

.home-hero-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.35rem 1.25rem;
  font-size: 0.9375rem;
}

.home-hero-links a {
  color: #3d383f;
  font-weight: 500;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color 0.15s ease, border-color 0.15s ease;
}

.home-hero-links a:hover {
  color: var(--red-dark);
  border-bottom-color: rgba(196, 30, 58, 0.35);
}

/* 创作区 */
.home-create {
  padding: clamp(2.75rem, 8vw, 4rem) 0 clamp(2rem, 5vw, 3rem);
  scroll-margin-top: 1rem;
}

.home-create-head {
  text-align: center;
  max-width: min(92vw, 720px);
  margin: 0 auto 1.75rem;
}

.home-create-title {
  margin: 0 0 0.65rem;
  font-family: var(--font-serif);
  font-size: clamp(1.35rem, 3vw, 1.65rem);
  font-weight: 700;
  color: #141214;
}

.home-create-desc {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.75;
  color: #6b6570;
}

.home-create-card {
  max-width: min(92vw, 720px);
  margin: 0 auto;
  padding: 0;
  background: transparent;
  border: none;
  box-shadow: none;
}

/* AI 风格长文本输入框 */
.home-create-form {
  display: block;
}

.home-idea-hint {
  margin: 0 0 0.5rem;
  padding: 0.45rem 0.6rem;
  font-size: 0.875rem;
  color: var(--red-dark);
  background: var(--red-soft);
  border-radius: 8px;
  border: 1px solid rgba(196, 30, 58, 0.2);
}

.ai-input-wrapper {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  min-width: 0;
  padding: 0.65rem 0.65rem 0.55rem;
  background: #fff;
  border: 2px solid rgba(196, 30, 58, 0.15);
  border-radius: 16px;
  box-shadow: 0 2px 12px rgba(196, 30, 58, 0.08);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.ai-input-wrapper:focus-within {
  border-color: rgba(196, 30, 58, 0.35);
  box-shadow: 0 4px 20px rgba(196, 30, 58, 0.15);
}

.ai-input-wrapper textarea {
  width: 100%;
  min-height: clamp(7.5rem, 22vh, 11rem);
  padding: 0.65rem 0.75rem 0.5rem;
  border: none;
  background: transparent;
  font-family: inherit;
  font-size: 1rem;
  line-height: 1.65;
  color: var(--ink);
  resize: vertical;
  max-height: min(360px, 48vh);
  flex: 1 1 auto;
  min-width: 0;
  box-sizing: border-box;
}

/* 底栏：左侧模型/深度思考，右侧提交 */
.ai-input-toolbar {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem 1rem;
  flex-wrap: wrap;
  padding: 0.55rem 0.15rem 0.1rem;
  margin-top: 0.35rem;
  border-top: 1px solid rgba(196, 30, 58, 0.1);
  flex-shrink: 0;
}

.ai-input-meta {
  display: flex;
  flex-direction: row;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.45rem;
  min-width: 0;
  pointer-events: none;
}

.ai-model-tag,
.ai-deep-think {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.25rem 0.5rem;
  background: rgba(196, 30, 58, 0.08);
  border: 1px solid rgba(196, 30, 58, 0.15);
  border-radius: 6px;
  color: var(--red-dark);
  font-size: 0.7rem;
  font-weight: 600;
  cursor: default;
  pointer-events: none;
  white-space: nowrap;
  transition: all 0.2s ease;
}

.ai-model-tag .ai-icon,
.ai-deep-think .ai-icon {
  flex-shrink: 0;
  stroke: var(--red-dark);
}

.ai-input-wrapper textarea::placeholder {
  color: #9a949e;
}

.ai-input-wrapper textarea:focus {
  outline: none;
}

.home-create-form .ai-input-toolbar .btn-primary {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.6rem 1.1rem;
  border-radius: 12px;
  box-shadow: none;
  transition: transform 0.15s ease;
  margin-left: auto;
  position: relative;
  z-index: 2;
  pointer-events: auto;
}

.ai-input-wrapper .btn-primary:hover {
  transform: scale(1.05);
}

.ai-input-wrapper .btn-primary svg {
  width: 20px;
  height: 20px;
}

@media (max-width: 520px) {
  .ai-input-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .ai-input-meta {
    justify-content: flex-start;
  }

  .home-create-form .ai-input-toolbar .btn-primary {
    margin-left: 0;
    width: 100%;
    justify-content: center;
  }
}

.home-create-hint {
  margin: 0.75rem 0 0;
  text-align: center;
  font-size: 0.8125rem;
  color: #8a8490;
}

/* 能力：边框卡片包裹 */
.home-features {
  padding: clamp(2rem, 6vw, 3rem);
  margin-top: clamp(2rem, 6vw, 3rem);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: var(--shadow);
}

.home-feature-grid {
  display: grid;
  gap: 2rem 2.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

@media (min-width: 720px) {
  .home-feature-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem 3rem;
  }
}

.home-feature-grid > li {
  margin: 0;
  padding: 0;
  border: none;
  background: none;
  box-shadow: none;
}

.home-feature-title {
  margin: 0 0 0.5rem;
  font-size: 0.9375rem;
  font-weight: 700;
  color: #141214;
  letter-spacing: 0.02em;
}

.home-feature-text {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.75;
  color: #6b6570;
}

.page-home .app-footer {
  /* 首页白底，继续沿用通用页脚的渐变分隔线即可，不再单独覆盖 border */
}

/* 登录 / 个人资料（带 frontend 的 idea 页）：与首页同款白底与顶栏分隔，主导航视觉一致
   注意：assets/css/frontend.css 会给 body 加 padding-top:60px / 50px、height:100%、font-size:14px、
   line-height:1.5715 等 FastAdmin 会员中心专用样式，会把 idea 顶栏整体下推 60px 并改变字号行高，
   导致 profile/login 的顶栏与 index（不加载 frontend.css）不一致，这里需要统一覆盖回来。 */
body.page-auth {
  padding-top: 0;
  height: auto;
  background: #fff;
  color: var(--ink);
  font-size: 16px;
  line-height: 1.6;
  overflow-x: hidden;
  overflow-x: clip;
}

@media (max-width: 768px) {
  body.page-auth {
    padding-top: 0;
  }
}

.page-auth .app-wrap {
  max-width: 1080px;
}

.page-auth .app-header {
  margin-bottom: 0;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  background: #fff;
}

.page-auth .app-footer {
  /* 登录/注册/资料页白底，继续沿用通用页脚的渐变分隔线，不再单独覆盖 border */
}

.page-auth main {
  padding-top: 0.25rem;
}

/* 关于我们页面 */
.about-page {
  padding: 2rem 0 4rem;
}

.about-hero {
  text-align: center;
  padding: 3rem 0 4rem;
  border-bottom: 1px solid var(--border);
  margin-bottom: 3rem;
}

.about-hero-title {
  font-size: 2rem;
  font-weight: 700;
  color: var(--red-dark);
  margin: 0 0 1rem;
  font-family: var(--font-serif);
}

.about-hero-lead {
  font-size: 1.125rem;
  line-height: 1.7;
  color: var(--ink-muted);
  max-width: 600px;
  margin: 0 auto;
}

/* 时间轴里程碑 */
.timeline-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--ink);
  text-align: center;
  margin: 0 0 3rem;
}

.timeline-container {
  max-width: 800px;
  margin: 0 auto;
  position: relative;
  padding-left: 2rem;
}

.timeline-container::before {
  content: '';
  position: absolute;
  left: 0.5rem;
  top: 0;
  bottom: 0;
  width: 2px;
  background: linear-gradient(180deg, var(--red), var(--red-soft), transparent);
}

.timeline-item {
  position: relative;
  padding-left: 2.5rem;
  margin-bottom: 3rem;
}

.timeline-item:last-child {
  margin-bottom: 0;
}

.timeline-marker {
  position: absolute;
  left: -2rem;
  top: 0;
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--red), var(--red-dark));
  color: #fff;
  font-weight: 700;
  font-size: 0.875rem;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(196, 30, 58, 0.3);
  z-index: 1;
}

.timeline-content {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.5rem;
  box-shadow: 0 2px 12px rgba(196, 30, 58, 0.08);
}

.timeline-content h3 {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--red-dark);
  margin: 0 0 0.5rem;
}

.timeline-content p {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.7;
  color: var(--ink-muted);
}

@media (max-width: 560px) {
  .about-hero-title {
    font-size: 1.5rem;
  }

  .about-hero-lead {
    font-size: 1rem;
  }

  .timeline-container::before {
    left: 0.375rem;
  }

  .timeline-marker {
    left: -1.625rem;
    width: 2.5rem;
    height: 2.5rem;
    font-size: 0.75rem;
  }

  .timeline-content {
    padding: 1rem;
  }

  .timeline-content h3 {
    font-size: 1rem;
  }

  .timeline-content p {
    font-size: 0.875rem;
  }
}

/* 首页：未登录拦截创作入口 */
.oi-login-gate {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

.oi-login-gate[hidden] {
  display: none !important;
}

.oi-login-gate__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(26, 15, 18, 0.45);
  backdrop-filter: blur(4px);
}

.oi-login-gate__panel {
  position: relative;
  max-width: 22rem;
  width: 100%;
  background: var(--paper);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 1.35rem 1.25rem 1.25rem;
}

.oi-login-gate__title {
  margin: 0 0 0.5rem;
  font-size: 1.15rem;
  color: var(--ink);
}

.oi-login-gate__text {
  margin: 0 0 1.1rem;
  font-size: 0.92rem;
  color: var(--ink-muted);
  line-height: 1.55;
}

.oi-login-gate__actions {
  display: flex;
  gap: 0.6rem;
  justify-content: flex-end;
  flex-wrap: wrap;
}

/* 个人中心：积分流水 */
.mine-score-log li {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  gap: 0.15rem 0.75rem;
  align-items: baseline;
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--border);
}

.mine-score-log li:last-child {
  border-bottom: none;
}

.mine-score-memo {
  grid-column: 1;
  grid-row: 1;
}

.mine-score-delta {
  grid-column: 2;
  grid-row: 1;
  font-weight: 600;
  color: var(--ink);
}

.mine-score-delta.is-pos {
  color: #0d6b4d;
}

.mine-score-delta.is-neg {
  color: var(--red-dark);
}

/* 积分充值页 */
.recharge-card .recharge-balance {
  margin: 0 0 0.5rem;
  font-size: 1.05rem;
}

.recharge-amounts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0.75rem 0 1rem;
}

.recharge-custom {
  margin-bottom: 1rem;
  padding-top: 0.5rem;
  border-top: 1px dashed var(--border);
}

.recharge-custom-label {
  display: block;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--ink-muted);
  margin-bottom: 0.35rem;
}

.recharge-custom-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.recharge-yuan-input {
  width: 8rem;
  max-width: 100%;
  padding: 0.4rem 0.55rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 0.95rem;
}

.recharge-qr-wrap {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
  text-align: center;
}

.recharge-qr-title {
  margin: 0 0 0.65rem;
  font-weight: 700;
  font-size: 1rem;
}

.recharge-qr-box {
  display: inline-block;
  padding: 0.65rem;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: var(--shadow);
}

.recharge-qr-status {
  margin: 0.85rem 0 0.75rem;
  font-size: 0.9rem;
  color: var(--ink-muted);
}

.recharge-disabled code {
  font-size: 0.8em;
}

.mine-score-time {
  grid-column: 1 / -1;
  grid-row: 2;
}

/* ---------- 分页 ----------
   覆盖 Bootstrap 默认边框/背景色，统一为站内红调简约风格
   选择器提权到 .pagination-wrap 名下避免与 Bootstrap 冲突。 */
.pagination-wrap {
  margin-top: 1.5rem !important;
  text-align: center !important;
  /* 消除 Bootstrap inline style 继承过来的 ink-muted 颜色对分页链接的侵入 */
  color: inherit;
}

.pagination-wrap .pagination {
  display: inline-flex !important;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  margin: 0 !important;
  padding: 0;
  list-style: none;
  border-radius: 0;
  vertical-align: middle;
}

.pagination-wrap .pagination > li {
  display: inline-flex !important;
  margin: 0;
  padding: 0;
}

.pagination-wrap .pagination > li > a,
.pagination-wrap .pagination > li > span {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 2.25rem;
  height: 2.25rem;
  padding: 0 0.5rem;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1;
  color: var(--ink-muted, #5c454c) !important;
  background: transparent !important;
  border: 1px solid transparent !important;
  border-radius: 8px !important;
  text-decoration: none;
  transition: color 0.15s ease, background 0.15s ease, border-color 0.15s ease;
  cursor: pointer;
  box-sizing: border-box;
  float: none !important;
  position: static;
  margin-left: 0;
  box-shadow: none !important;
}

/* :first-child / :last-child 圆角统一 8px，不搞首尾不同圆角 */
.pagination-wrap .pagination > li:first-child > a,
.pagination-wrap .pagination > li:first-child > span,
.pagination-wrap .pagination > li:last-child > a,
.pagination-wrap .pagination > li:last-child > span {
  border-radius: 8px !important;
  margin-left: 0;
}

.pagination-wrap .pagination > li > a:hover,
.pagination-wrap .pagination > li > a:focus,
.pagination-wrap .pagination > li > span:hover,
.pagination-wrap .pagination > li > span:focus {
  z-index: auto;
  color: var(--red-dark, #9b1830) !important;
  background: var(--red-soft, rgba(196, 30, 58, 0.12)) !important;
  border-color: var(--border, rgba(196, 30, 58, 0.18)) !important;
  box-shadow: none !important;
}

.pagination-wrap .pagination > li.active > a,
.pagination-wrap .pagination > li.active > span,
.pagination-wrap .pagination > li.active > a:hover,
.pagination-wrap .pagination > li.active > span:hover,
.pagination-wrap .pagination > li.active > a:focus,
.pagination-wrap .pagination > li.active > span:focus {
  z-index: auto;
  color: #fff !important;
  background: var(--red, #c41e3a) !important;
  border-color: var(--red, #c41e3a) !important;
  font-weight: 700;
  box-shadow: 0 2px 8px rgba(196, 30, 58, 0.3) !important;
  cursor: default;
}

.pagination-wrap .pagination > li.disabled > a,
.pagination-wrap .pagination > li.disabled > span,
.pagination-wrap .pagination > li.disabled > a:hover,
.pagination-wrap .pagination > li.disabled > span:hover,
.pagination-wrap .pagination > li.disabled > a:focus,
.pagination-wrap .pagination > li.disabled > span:focus {
  color: var(--ink-muted, #5c454c) !important;
  background: transparent !important;
  border-color: transparent !important;
  opacity: 0.35;
  cursor: default;
  pointer-events: none;
  box-shadow: none !important;
}

/* 省略号"…"保持极淡 */
.pagination-wrap .pagination > li.disabled > span {
  min-width: 1.5rem;
  opacity: 0.2;
}
