/*!
 * auth.css —— 账号登录 / 注册 / 个人中心 页面样式
 * 仅登录、注册、个人中心三个页面引用，不影响站点其他页面。
 */

/* ============ 头部账号入口（全站注入） ============ */
.auth-nav {
  display: inline-flex;
  align-items: center;
  margin-right: 14px;
  vertical-align: middle;
  flex: none;
}

.auth-desktop {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.auth-mobile {
  display: none;
}

/* 首页（header1）右侧是浮动块，改成一行，避免账号入口和汉堡按钮上下堆叠 */
.header1 .header-main-right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.header1 .header-main-right .menu-bar {
  margin-left: 14px;
}

/* 避免模板里的“Get Documy”按钮被账号入口挤压缩写 */
.header-main-right .duheader-btn {
  flex: none;
  white-space: nowrap;
}

.auth-pill {
  display: inline-block;
  height: 40px;
  line-height: 38px;
  padding: 0 18px;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 500;
  text-align: center;
  white-space: nowrap;
  transition: all .25s ease;
}

.auth-pill--ghost {
  color: var(--clr-common-blue);
  background: var(--clr-common-white);
  border: 1px solid var(--dc-brand-soft);
}

.auth-pill--ghost:hover {
  color: var(--clr-common-white);
  background: var(--clr-common-blue);
  border-color: var(--clr-common-blue);
}

.auth-pill--solid {
  color: var(--clr-common-white);
  background: var(--clr-common-blue);
  border: 1px solid var(--clr-common-blue);
}

.auth-pill--solid:hover {
  color: var(--clr-common-blue);
  background: var(--clr-common-white);
  border-color: var(--clr-common-blue);
}

.auth-user {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 40px;
  padding: 0 12px 0 4px;
  border-radius: 999px;
  background: var(--dc-brand-soft);
  color: var(--clr-common-heading);
  font-size: 14px;
  font-weight: 500;
  max-width: 160px;
  flex: none;
}

.auth-user:hover {
  color: var(--clr-common-blue);
  background: var(--dc-brand-soft);
}

.auth-logout-link {
  font-size: 13px;
  color: var(--dc-text-muted);
  white-space: nowrap;
  flex: none;
}

.auth-logout-link:hover {
  color: var(--clr-common-blue);
}

.auth-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(140deg, var(--dc-brand), var(--dc-brand-2));
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  flex: none;
}

.auth-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 1199px) {
  .auth-name { display: none; }
  .auth-user { padding-right: 6px; }
  .auth-pill { padding: 0 14px; }
}

@media (max-width: 991px) {
  .auth-desktop { display: none; }
  .auth-nav { margin-right: 10px; }
  .auth-mobile {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #fff;
    color: var(--clr-common-blue);
    border: 1px solid var(--dc-brand-soft);
    font-size: 16px;
  }
  .auth-mobile:hover {
    color: #fff;
    background: var(--clr-common-blue);
  }
}

/* ============ 侧边抽屉账号区（首页等带 offcanvas 的页面） ============ */
.side-auth {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}

.side-auth-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 1;
  min-width: 110px;
  height: 46px;
  border-radius: 6px;
  border: 1px solid var(--dc-brand-soft);
  background: #fff;
  color: var(--clr-common-blue);
  font-size: 15px;
  font-weight: 500;
  transition: all .25s ease;
}

.side-auth-btn:hover {
  background: var(--dc-brand-soft);
  color: var(--clr-common-blue);
}

.side-auth-btn--solid {
  background: var(--clr-common-blue);
  border-color: var(--clr-common-blue);
  color: #fff;
}

.side-auth-btn--solid:hover {
  background: var(--dc-brand-dark);
  color: #fff;
}

.side-auth-btn--plain {
  flex: none;
  min-width: 0;
  height: auto;
  border: none;
  background: transparent;
  color: var(--dc-text-muted);
  font-size: 13px;
  padding: 6px 4px;
}

.side-auth-user {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 12px 14px;
  border-radius: 8px;
  background: var(--dc-brand-soft);
}

.side-auth-user-info {
  font-size: 14px;
  font-weight: 500;
  color: var(--clr-common-heading);
  line-height: 1.4;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.side-auth-user-info small {
  display: block;
  font-size: 12px;
  font-weight: 400;
  color: var(--dc-text-muted);
}

/* ============ 个人中心（文档页版式：左侧账号中心 + 右侧 Tab） ============ */
.acc-side-link {
  display: flex;
  align-items: center;
}

.acc-side-link img {
  width: 20px;
  margin-right: 12px;
}

.acc-side-link.active {
  color: var(--clr-common-blue) !important;
  font-weight: 600;
}

.acc-profile {
  display: flex;
  align-items: center;
  gap: 22px;
  padding-bottom: 28px;
  border-bottom: 1px solid var(--dc-border);
}

.acc-avatar {
  width: 78px;
  height: 78px;
  flex: none;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 30px;
  font-weight: 600;
  color: #fff;
  background: linear-gradient(140deg, var(--dc-brand), var(--dc-brand-2));
  box-shadow: 0 10px 24px rgba(15, 118, 110, .22);
}

.acc-profile-info h3 {
  font-size: 24px;
  margin-bottom: 6px;
}

.acc-profile-info p {
  color: var(--clr-common-body);
  font-size: 15px;
  margin: 0;
}

.acc-rows {
  border: 1px solid var(--dc-border);
  border-radius: 10px;
  overflow: hidden;
}

.acc-row {
  display: flex;
  gap: 20px;
  padding: 16px 20px;
  font-size: 15px;
  border-bottom: 1px solid var(--dc-border);
}

.acc-row:last-child {
  border-bottom: none;
}

.acc-row-label {
  width: 110px;
  flex: none;
  color: var(--dc-text-muted);
}

.acc-row-value {
  color: var(--clr-common-heading);
  line-height: 1.7;
}

.acc-hint-box {
  display: flex;
  gap: 10px;
  margin-top: 24px;
  padding: 16px 20px;
  border-radius: 8px;
  background: var(--dc-warn-soft);
  border: 1px solid var(--dc-warn-soft);
  font-size: 13px;
  color: var(--dc-warn);
  line-height: 1.8;
}

.acc-hint-box i {
  margin-top: 3px;
}

.acc-hint-box p {
  margin: 0;
}

@media (max-width: 575px) {
  .acc-row {
    flex-direction: column;
    gap: 6px;
  }
  .acc-row-label {
    width: auto;
  }
  .acc-profile {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
  }
}

/* ============ 个人中心：信息卡片（账号概览 / 账号安全） ============ */
.account-badge {
  display: inline-block;
  margin-left: 10px;
  padding: 2px 10px;
  border-radius: 999px;
  background: var(--dc-brand-soft);
  color: var(--clr-common-blue);
  font-size: 12px;
  font-weight: 500;
  vertical-align: middle;
}

.account-meta {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 18px;
  margin: 32px 0;
}

.account-meta-item {
  background: var(--dc-surface);
  border: 1px solid var(--dc-border);
  border-radius: 10px;
  padding: 18px 20px;
}

.account-meta-item span {
  display: block;
  font-size: 13px;
  color: var(--dc-text-muted);
  margin-bottom: 6px;
}

.account-meta-item strong {
  font-size: 15px;
  font-weight: 600;
  color: var(--clr-common-heading);
  word-break: break-all;
}

.account-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.account-actions .theme-btn {
  height: 50px;
  line-height: 48px;
  padding: 0 34px;
}

.btn-outline {
  display: inline-block;
  height: 50px;
  line-height: 48px;
  padding: 0 34px;
  border-radius: 5px;
  border: 1px solid var(--dc-border-strong);
  color: var(--clr-common-heading);
  font-size: 16px;
  font-weight: 500;
  transition: all .25s ease;
  background: #fff;
}

.btn-outline:hover {
  border-color: var(--clr-common-blue);
  color: var(--clr-common-blue);
}

/* ============ 个人计划 ============ */
.plan-stats,
.plan-stats *,
.plan-table-wrap,
.plan-dialog-mask * {
  box-sizing: border-box;
}

.plan-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 26px;
}

.plan-stat {
  background: #fff;
  border: 1px solid var(--dc-border);
  border-radius: 12px;
  padding: 18px 20px;
  min-height: 96px;
}

.plan-stat-label {
  display: block;
  font-size: 13px;
  color: var(--dc-text-muted);
  margin-bottom: 8px;
}

.plan-stat-value {
  font-size: 22px;
  font-weight: 700;
  color: var(--clr-common-heading);
  line-height: 1.2;
}

.plan-stat--action {
  display: flex;
  align-items: center;
  justify-content: center;
  border-style: dashed;
  border-color: var(--dc-border-strong);
  background: var(--dc-brand-soft);
}

.plan-stat--action .theme-btn {
  height: 46px;
  line-height: 44px;
  padding: 0 26px;
  font-size: 15px;
  white-space: nowrap;
}

.plan-bar {
  position: relative;
  height: 8px;
  border-radius: 999px;
  background: var(--dc-border);
  overflow: hidden;
}

.plan-bar i {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--dc-brand), var(--dc-brand-2));
}

.plan-bar--full i {
  background: linear-gradient(90deg, var(--dc-success), var(--dc-success));
}

.plan-bar--sm {
  height: 6px;
  margin-top: 10px;
}

.plan-bar--sm i {
  background: linear-gradient(90deg, var(--dc-brand), var(--dc-brand-2));
}

.plan-pct {
  display: inline-block;
  margin-top: 6px;
  font-size: 12px;
  color: var(--dc-text-muted);
}

.plan-table-wrap {
  background: #fff;
  border: 1px solid var(--dc-border);
  border-radius: 12px;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
}

.plan-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 640px;
  table-layout: fixed;
}

.plan-table th:nth-child(1) { width: 18%; }
.plan-table th:nth-child(2) { width: 12%; }
.plan-table th:nth-child(3) { width: 12%; }
.plan-table th:nth-child(4) { width: 13%; }
.plan-table th:nth-child(5) { width: 16%; }
.plan-table th:nth-child(6) { width: auto; }
.plan-table th:nth-child(7) { width: 12%; }

.plan-table th {
  text-align: left;
  padding: 12px 14px;
  font-size: 13px;
  font-weight: 600;
  color: var(--dc-text);
  background: var(--dc-surface);
  border-bottom: 1px solid var(--dc-border);
  white-space: nowrap;
}

.plan-table td {
  padding: 12px;
  font-size: 14px;
  line-height: 1.5;
  color: var(--dc-text);
  border-bottom: 1px solid var(--dc-border);
  vertical-align: middle;
}

.plan-table tbody tr:last-child td {
  border-bottom: 0;
}

.plan-table tbody tr:hover td {
  background: var(--dc-brand-soft);
}

.plan-table td strong {
  color: var(--clr-common-heading);
  font-weight: 600;
}

.plan-money {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.plan-money--done {
  color: var(--dc-success);
  font-weight: 600;
}

.plan-detail {
  color: var(--dc-text);
  font-size: 13px;
  line-height: 1.6;
  word-break: break-word;
}

.plan-row-btn {
  border: 0;
  background: var(--dc-brand-soft);
  color: var(--clr-common-blue);
  font-size: 13px;
  padding: 7px 14px;
  border-radius: 6px;
  cursor: pointer;
  margin: 3px 4px 3px 0;
  white-space: nowrap;
  transition: background .2s ease;
}

.plan-row-btn:hover {
  background: var(--dc-brand-soft);
}

.plan-row-btn--danger {
  background: var(--dc-danger-soft);
  color: var(--dc-danger);
}

.plan-row-btn--danger:hover {
  background: var(--dc-danger-soft);
}

.plan-empty {
  text-align: center;
  padding: 56px 20px;
}

.plan-empty i {
  font-size: 46px;
  color: var(--dc-border-strong);
  display: block;
  margin-bottom: 16px;
}

.plan-empty p {
  color: var(--dc-text-muted);
  font-size: 14px;
  margin: 0;
}

/* 新建 / 编辑弹窗（自绘，避免依赖 bootstrap 版本差异） */
.plan-dialog-mask {
  position: fixed;
  inset: 0;
  z-index: 1060;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(24, 24, 44, .45);
}

.plan-dialog-mask.is-open {
  display: flex;
}

.plan-dialog {
  width: 100%;
  max-width: 520px;
  max-height: calc(100vh - 40px);
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 24px 60px rgba(29, 29, 51, .22);
  overflow: hidden;
}

.plan-dialog-head {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 22px 26px 8px;
}

.plan-dialog-head h5 {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  color: var(--clr-common-heading);
}

.plan-dialog-close {
  border: 0;
  background: transparent;
  color: var(--dc-text-muted);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  padding: 4px;
}

.plan-dialog-close:hover {
  color: var(--clr-common-blue);
}

.plan-dialog-body {
  flex: 1 1 auto;
  min-height: 0;
  max-height: calc(100vh - 200px);
  padding: 8px 26px 4px;
  overflow-y: auto;
}

.plan-dialog-foot {
  flex: none;
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 12px 26px 22px;
}

.plan-field {
  display: block;
  margin-bottom: 16px;
}

.plan-field > span {
  display: block;
  font-size: 13px;
  color: var(--dc-text);
  margin-bottom: 7px;
}

.plan-field > span em {
  color: var(--dc-danger);
  font-style: normal;
}

.plan-field > span b {
  font-weight: 400;
  color: var(--dc-text-muted);
  font-size: 12px;
  margin-left: 6px;
}

.plan-field input,
.plan-field textarea {
  width: 100%;
  border: 1px solid var(--dc-border);
  border-radius: 8px;
  padding: 10px 14px;
  font-size: 14px;
  color: var(--dc-text-strong);
  background: #fff;
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.plan-field input:focus,
.plan-field textarea:focus {
  border-color: var(--clr-common-blue);
  box-shadow: 0 0 0 3px rgba(15, 118, 110, .08);
}

.plan-field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.plan-form-msg {
  font-size: 13px;
  color: var(--dc-danger);
  margin: 0 0 12px;
}

/* 卡片式版式（forum 风格） */
.plan-bar--warn i {
  background: linear-gradient(90deg, var(--dc-warn), var(--dc-warn));
}

.plan-card .plan-avatar {
  width: 56px;
  height: 56px;
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--dc-brand-soft), var(--dc-brand-soft));
  color: var(--clr-common-blue);
  font-size: 20px;
}

.plan-card .plan-card-detail {
  margin: 4px 0 0;
  font-size: 15px;
  line-height: 1.8;
  color: var(--clr-common-body);
}

.plan-progress-line {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 16px 0 18px;
}

.plan-progress-line .plan-bar {
  flex: 1;
  height: 9px;
}

.plan-progress-line .plan-pct {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  color: var(--clr-common-heading);
  white-space: nowrap;
}

.plan-card .tags-list.post-inner-tags {
  margin-bottom: 18px;
}

.plan-card .plan-tag--doing {
  color: var(--dc-brand);
  background: var(--dc-brand-soft);
}

.plan-card .plan-tag--done {
  color: var(--dc-success);
  background: var(--dc-success-soft);
}

.plan-card .plan-tag--late {
  color: var(--dc-danger);
  background: var(--dc-danger-soft);
}

.plan-card .q-meta-content .q-meta-item {
  gap: 8px;
}

.plan-card .q-meta-likes,
.plan-card .q-meta-shares {
  font-size: 15px;
  font-weight: 600;
  color: var(--clr-common-heading);
  line-height: 1;
}

.plan-card .plan-meta-done {
  color: var(--dc-success);
}

.plan-card-actions {
  gap: 8px !important;
}

.plan-card-actions .plan-row-btn {
  height: 30px;
  line-height: 28px;
  padding: 0 12px;
  font-size: 13px;
}

/* 侧栏 */
.plan-side-widget {
  background: #fff;
  border: 1px solid var(--dc-border);
  border-radius: 16px;
  padding: 26px 26px 20px;
}

.plan-side-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 0;
  border-bottom: 1px dashed var(--dc-border);
  font-size: 14px;
  color: var(--clr-common-body);
}

.plan-side-row b {
  font-size: 18px;
  font-weight: 700;
  color: var(--clr-common-heading);
}

.plan-side-row:last-of-type {
  border-bottom: 0;
}

.plan-side-widget .plan-bar--sm {
  margin-top: 14px;
}

.plan-side-note {
  margin: 0;
  font-size: 14px;
  line-height: 1.9;
  color: var(--clr-common-body);
}

.plan-side-widget ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.plan-side-widget ul li {
  list-style: none;
}

.plan-side-widget ul li:before,
.plan-side-widget ul li a:before {
  content: none !important;
  display: none !important;
}

.plan-side-widget .cat-item a {
  display: block;
  padding: 6px 0;
  color: var(--clr-common-heading);
  font-size: 15px;
  transition: color .2s ease;
}

.plan-side-widget .cat-item a {
  display: block;
  padding: 6px 0;
  color: var(--clr-common-heading);
  font-size: 15px;
  transition: color .2s ease;
}

.plan-side-widget .cat-item a:hover,
.plan-side-widget .cat-item a.is-active {
  color: var(--clr-common-blue);
}

@media (max-width: 991px) {
  .plan-stats {
    grid-template-columns: repeat(2, 1fr);
  }

  .plan-field-row {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .plan-card .q-single-content {
    padding: 26px 20px 10px;
  }

  .plan-card .q-meta-content .q-meta-item {
    height: auto;
    min-height: 60px;
    padding: 10px;
    flex-direction: column;
    gap: 6px;
    text-align: center;
  }
}

/* ============ 个人计划页：样式修正（字体字形缺失 / 侧栏箭头） ============ */

/* 模板按钮的 "+" 依赖 Font Awesome 字形，字体缺字重会变方框，改用 CSS 画 */
#plan-new::before {
  content: "+";
  font-family: inherit;
  font-weight: 700;
  font-size: 22px;
  line-height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
}

/* 侧栏状态列表：去掉模板 a::after 的箭头字形，改为纯文字 + 左侧色条 */
.plan-side-widget .cat-item a::after {
  content: none !important;
  display: none !important;
}

.plan-side-widget .cat-item a {
  padding-left: 12px;
  border-left: 3px solid transparent;
  margin-left: -3px;
}

.plan-side-widget .cat-item a.is-active,
.plan-side-widget .cat-item a:hover {
  border-left-color: var(--clr-common-blue);
  background: var(--dc-brand-soft);
  border-radius: 0 6px 6px 0;
  padding-left: 12px;
}

/* 计划卡片里“计划时间”与剩余天数之间加分隔 */
.plan-card .post-date {
  font-weight: 600;
}

/* 顶栏多了「个人计划」和账号入口后，收一下菜单项间距，避免 1440 宽下换行 */
@media (min-width: 1200px) {
  .main-menu ul li {
    margin: 0 12px;
  }
}

/* ============ 个人计划：操作提示条 ============ */
.plan-alert {
  border-radius: 8px;
  padding: 12px 16px;
  margin-bottom: 20px;
  font-size: 14px;
  line-height: 1.6;
  border: 1px solid transparent;
}
.plan-alert--ok {
  background: var(--dc-success-soft);
  color: var(--dc-success);
  border-color: var(--dc-success-soft);
}
.plan-alert--error {
  background: var(--dc-danger-soft);
  color: var(--dc-danger);
  border-color: var(--dc-danger-soft);
}

/* ============ 计划详情：每日完成记录 ============ */
.plan-detail-back { display: flex; }

.plan-back-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 13px 6px 11px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: .2px;
  color: var(--dc-brand);
  background: #F7FCFA;
  border: 1px solid var(--dc-brand-border);
  border-radius: 999px;
  text-decoration: none;
  transition: background .16s ease, border-color .16s ease, color .16s ease;
}
.plan-back-link i { font-size: 12px; transition: transform .16s ease; }
.plan-back-link:hover {
  color: var(--dc-brand-dark);
  background: #EDF9F4;
  border-color: #A9E3D3;
}
.plan-back-link:hover i { transform: translateX(-2px); }
.plan-back-link:active { background: #E3F5EC; }

.plan-log-form-card,
.plan-log-card {
  background: #fff;
  border: 1px solid var(--dc-border);
  border-radius: 10px;
  padding: 26px 26px 22px;
}

.plan-log-form-title,
.plan-log-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--dc-text-strong);
  margin: 0 0 18px;
}

.plan-log-form {
  display: grid;
  grid-template-columns: 170px 130px minmax(190px, 1fr) auto;
  align-items: end;
  gap: 16px;
}

.plan-log-form .plan-field { margin: 0; min-width: 0; }

.plan-log-form .plan-field > span {
  margin-bottom: 8px;
  font-size: 13px;
}

.plan-log-form input {
  height: 56px;
  box-sizing: border-box;
  padding: 0 14px;
  border-radius: 8px;
  font-size: 14px;
  line-height: 56px;
}

.plan-log-form .theme-btn {
  height: 56px;
  padding: 0 30px;
  border-radius: 8px;
  font-size: 15px;
  font-weight: 600;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: end;
}

@media (max-width: 991px) {
  .plan-log-form { grid-template-columns: 1fr 1fr; }
  .plan-log-form .plan-field--grow { grid-column: 1 / -1; }
  .plan-log-form .theme-btn { grid-column: 1 / -1; width: 100%; }
}

.plan-log-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 6px;
}

.plan-log-stat { font-size: 13px; color: var(--dc-text-muted); display: flex; align-items: baseline; gap: 6px; }
.plan-log-stat b { font-size: 16px; color: var(--clr-common-blue); font-weight: 700; }
.plan-log-stat em { font-style: normal; }

.plan-log-head-row,
.plan-log-row {
  display: grid;
  grid-template-columns: 120px 130px 1fr 118px;
  align-items: center;
  gap: 12px;
}

.plan-log-head-row {
  font-size: 12px;
  color: var(--dc-text-muted);
  padding: 10px 0;
  border-bottom: 1px solid var(--dc-border);
  letter-spacing: .04em;
}

.plan-log-head-row span:last-child { text-align: center; }

.plan-log-row {
  padding: 14px 0;
  border-bottom: 1px dashed var(--dc-border);
  font-size: 14px;
}

.plan-log-row:last-child { border-bottom: 0; }

.plan-log-date { color: var(--dc-text); font-variant-numeric: tabular-nums; }

.plan-log-amount {
  color: var(--dc-success);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.plan-log-note { color: var(--dc-text); font-size: 13px; line-height: 1.6; word-break: break-word; }
.plan-log-note i { color: var(--dc-border-strong); font-style: normal; }

.plan-log-row .plan-row-btn { margin: 0; justify-self: center; }

.plan-log-empty { text-align: center; padding: 40px 16px; }
.plan-log-empty i { font-size: 38px; color: var(--dc-border-strong); display: block; margin-bottom: 12px; }
.plan-log-empty p { color: var(--dc-text-muted); font-size: 14px; margin: 0; }

.plan-row-btn--detail { background: #fff; border: 1px solid var(--dc-brand-border); color: var(--clr-common-blue); }
.plan-row-btn--detail:hover { background: var(--dc-brand-soft); border-color: var(--dc-brand-border); }

.plan-tag--log {
  background: var(--dc-brand-soft) !important;
  color: var(--dc-brand) !important;
  border-color: var(--dc-brand-border) !important;
}

.plan-detail-title {
  font-size: 17px;
  font-weight: 700;
  color: var(--dc-text-strong);
  line-height: 1.5;
  margin-bottom: 10px;
  word-break: break-word;
}

.plan-detail-desc {
  margin: 14px 0 0;
  font-size: 13px;
  color: var(--dc-text-muted);
  line-height: 1.7;
}

@media (max-width: 575px) {
  .plan-log-head-row,
  .plan-log-row { grid-template-columns: 1fr 1fr; }
  .plan-log-note { grid-column: 1 / -1; }
}

/* 卡片右上角：新增每日进度 */
.plan-card .author-name-time {
  display: flex;
  align-items: flex-start;
  gap: 18px;
}

.plan-head-btn {
  margin-left: auto;
  background: var(--clr-common-blue);
  color: #fff;
  font-size: 13px;
  padding: 9px 16px;
  border-radius: 7px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex: 0 0 auto;
  margin-top: 2px;
  letter-spacing: .01em;
}

.plan-head-btn:hover {
  background: var(--dc-brand-dark);
  color: #fff;
}

.plan-head-btn-plus {
  font-size: 15px;
  font-weight: 600;
  line-height: 1;
}

@media (max-width: 575px) {
  .plan-card .author-name-time { flex-wrap: wrap; }
  .plan-head-btn { margin-left: 0; }
}

/* 倒计时输入 */
.plan-count-input {
  display: flex;
  align-items: center;
  border: 1px solid var(--dc-border);
  border-radius: 6px;
  background: #fff;
  overflow: hidden;
}

.plan-count-input input {
  border: 0 !important;
  box-shadow: none !important;
  flex: 1 1 auto;
  width: 100%;
  padding-right: 4px;
}

.plan-count-input b {
  flex: 0 0 auto;
  padding: 0 14px;
  color: var(--dc-text-muted);
  font-weight: 500;
  font-size: 13px;
  background: var(--dc-surface);
  align-self: stretch;
  display: flex;
  align-items: center;
  border-left: 1px solid var(--dc-border);
}

.plan-field-tip {
  display: block;
  margin-top: 6px;
  font-size: 12px;
  color: var(--dc-text-muted);
  font-weight: 400;
}

.plan-field-tip.is-late { color: var(--dc-danger); }

.plan-countdown { color: var(--clr-common-blue); font-weight: 600; }

/* 概要行：标签不换行，数值右对齐 */
.plan-detail-summary .plan-side-row span { white-space: nowrap; }
.plan-detail-summary .plan-side-row b { text-align: right; }
.plan-detail-summary .plan-side-row b.is-late { color: var(--dc-danger); }

/* ============ 计划类型 ============ */
.plan-type-select {
  width: 100%;
  height: 48px;
  border: 1px solid var(--dc-border);
  border-radius: 6px;
  background: #fff;
  padding: 0 36px 0 14px;
  font-size: 14px;
  color: var(--dc-text-strong);
  appearance: none;
  -webkit-appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, var(--dc-text-muted) 50%), linear-gradient(135deg, var(--dc-text-muted) 50%, transparent 50%);
  background-position: calc(100% - 18px) 21px, calc(100% - 13px) 21px;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
}

.plan-type-select:focus { outline: none; border-color: var(--dc-brand-border); box-shadow: 0 0 0 3px rgba(15, 118, 110, .08); }

.plan-field-row.is-single { grid-template-columns: 1fr; }

.plan-type-tags { margin-top: 16px; }

.plan-tag--type {
  background: var(--dc-brand-soft) !important;
  color: var(--dc-brand) !important;
  border-color: var(--dc-brand-border) !important;
  font-weight: 600;
}

.plan-card-detail--empty {
  color: var(--dc-text-muted);
  font-size: 14px;
}

/* ---------- 学习目标（数量度量） ---------- */
.plan-field-row.is-three {
  grid-template-columns: 1fr 1fr 1fr;
}

.plan-field-tip.is-late { color: var(--dc-danger); }

.plan-learn-line {
  margin: 10px 0 0;
  font-size: 14px;
  color: var(--dc-text-muted);
  line-height: 1.7;
}

.plan-learn-line b {
  color: var(--dc-text-strong);
  font-weight: 600;
}

.plan-learn-line .is-late {
  color: var(--dc-danger);
}

.plan-learn-line .is-ok {
  color: var(--dc-success);
}

.plan-progress-line.plan-learn-progress {
  margin: 14px 0 6px;
}

.plan-card--study .plan-tag--type {
  background: var(--dc-brand-soft) !important;
  color: var(--dc-brand) !important;
  border-color: var(--dc-brand-soft) !important;
}

.plan-card--study .plan-avatar--type {
  background: linear-gradient(135deg, var(--dc-brand-soft), var(--dc-brand-soft));
  color: var(--dc-brand);
}

.plan-detail-summary .plan-side-row--study { display: flex; }

@media (max-width: 991px) {
  .plan-field-row.is-three { grid-template-columns: 1fr; }
}

.plan-tag--streak {
  background: var(--dc-warn-soft) !important;
  color: var(--dc-warn) !important;
  border-color: var(--dc-warn-border) !important;
  font-weight: 600;
}

/* 计划类型：按钮组选择（比原生下拉更直观） */
.plan-type-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  width: 100%;
  max-width: 100%;
  margin: 2px 0 4px;
}

.plan-type-chips .plan-type-chip {
  appearance: none;
  -webkit-appearance: none;
  border: 1px solid var(--dc-border);
  background: #fff;
  color: var(--dc-text);
  border-radius: 99px;
  padding: 9px 18px;
  font-size: 14px;
  line-height: 1.2;
  white-space: nowrap;
  flex: 0 0 auto;
  cursor: pointer;
  transition: all .16s ease;
}

.plan-type-chips .plan-type-chip:hover {
  border-color: var(--dc-brand-border);
  color: var(--clr-common-blue);
  background: var(--dc-brand-soft);
}

.plan-type-chips .plan-type-chip.is-active {
  background: var(--clr-common-blue);
  border-color: var(--clr-common-blue);
  color: #fff;
  font-weight: 600;
  box-shadow: 0 6px 16px rgba(15, 118, 110, .18);
}

@media (max-width: 575px) {
  .plan-type-chips .plan-type-chip { padding: 8px 12px; font-size: 13px; }
}

/* 页面副标语 */
.plan-hero-sub {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  margin: -22px 0 28px;
  padding: 0;
  font-size: 19px;
  line-height: 1.6;
  color: var(--dc-text);
  letter-spacing: 1.5px;
}

.plan-hero-sub::before,
.plan-hero-sub::after {
  content: "";
  flex: 0 0 34px;
  height: 1px;
  background: linear-gradient(90deg, rgba(214, 218, 233, 0), var(--dc-border-strong));
}

.plan-hero-sub::after {
  background: linear-gradient(90deg, var(--dc-border-strong), rgba(214, 218, 233, 0));
}

@media (max-width: 767px) {
  .plan-hero-sub {
    gap: 12px;
    margin: -18px 0 20px;
    font-size: 15px;
    letter-spacing: 1px;
  }
  .plan-hero-sub::before,
  .plan-hero-sub::after { flex-basis: 20px; }
}

/* ============ 语义配色变量（换主题只改这里） ============ */
:root {
  --dc-brand: #0F766E;
  --dc-brand-2: #14B8A6;
  --dc-brand-dark: #115E59;
  --dc-brand-soft: #ECFDF5;
  --dc-brand-border: #C6EDE3;
  --dc-text-strong: #0F172A;
  --dc-text: #475569;
  --dc-text-muted: #94A3B8;
  --dc-border: #E2E8F0;
  --dc-border-strong: #CBD5E1;
  --dc-surface: #F7FAF9;
  --dc-surface-2: #F1F6F4;
  --dc-success: #16A34A;
  --dc-success-soft: #DCFCE7;
  --dc-danger: #DC2626;
  --dc-danger-soft: #FEE2E2;
  --dc-warn: #D97706;
  --dc-warn-soft: #FEF3E2;
  --dc-warn-border: #FCD9A8;
}

/* ============ 全局操作反馈浮层（新增/保存/删除结果提示） ============ */
.dc-toast {
  position: fixed;
  left: 50%;
  top: 92px;
  z-index: 2147483000;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  max-width: min(600px, 88vw);
  padding: 13px 22px 13px 18px;
  border-radius: 14px;
  background: #fff;
  border: 1px solid var(--dc-border);
  box-shadow: 0 16px 40px rgba(15, 23, 42, .14), 0 2px 6px rgba(15, 23, 42, .06);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.55;
  color: var(--dc-text-strong);
  opacity: 0;
  transform: translate(-50%, -18px) scale(.98);
  pointer-events: none;
  transition: opacity .2s ease, transform .28s cubic-bezier(.18, .89, .32, 1.1);
}
.dc-toast.is-show {
  opacity: 1;
  transform: translate(-50%, 0) scale(1);
}
.dc-toast__dot {
  position: relative;
  flex: none;
  width: 20px;
  height: 20px;
  margin-top: 1px;
  border-radius: 50%;
  background: var(--dc-success);
}
.dc-toast__dot::before {
  content: "";
  position: absolute;
  left: 6px;
  top: 4px;
  width: 6px;
  height: 10px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(38deg);
}
.dc-toast--err .dc-toast__dot {
  background: var(--dc-danger);
}
.dc-toast--err .dc-toast__dot::before {
  left: 5px;
  top: 9px;
  width: 10px;
  height: 2px;
  border: 0;
  background: #fff;
  transform: rotate(45deg);
}
.dc-toast--err .dc-toast__dot::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 9px;
  width: 10px;
  height: 2px;
  background: #fff;
  transform: rotate(-45deg);
}
.dc-toast__text {
  max-width: 100%;
  word-break: break-word;
}
@media (max-width: 575px) {
  .dc-toast {
    top: 68px;
    padding: 11px 16px;
    font-size: 13px;
  }
}

/* ============ 目标达成：完成态视觉 ============ */
.plan-card--done {
  border-color: var(--dc-brand-border);
  background: linear-gradient(180deg, #F2FBF8 0%, #FFFFFF 40%);
}
.plan-card--done .plan-avatar {
  background: var(--dc-brand);
  color: #fff;
}
.plan-done-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-left: 10px;
  padding: 3px 10px 3px 8px;
  border-radius: 99px;
  background: var(--dc-brand);
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  vertical-align: middle;
  white-space: nowrap;
}
.plan-done-badge i {
  position: relative;
  display: inline-block;
  width: 11px;
  height: 11px;
}
.plan-done-badge i::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 0;
  width: 4px;
  height: 8px;
  border-right: 1.6px solid #fff;
  border-bottom: 1.6px solid #fff;
  transform: rotate(40deg);
}
.plan-done-note {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 12px 0 2px;
  padding: 9px 14px;
  border-radius: 10px;
  background: var(--dc-brand-soft);
  border: 1px solid var(--dc-brand-border);
  color: var(--dc-brand-dark);
  font-size: 13px;
  line-height: 1.6;
}
.plan-done-note b {
  font-weight: 700;
}
.plan-done-note__check,
.plan-done-banner__check {
  position: relative;
  flex: none;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--dc-brand);
}
.plan-done-note__check::before,
.plan-done-banner__check::before {
  content: "";
  position: absolute;
  left: 5px;
  top: 3px;
  width: 5px;
  height: 9px;
  border-right: 1.8px solid #fff;
  border-bottom: 1.8px solid #fff;
  transform: rotate(38deg);
}
.plan-done-banner {
  display: flex;
  width: fit-content;
  max-width: 100%;
  align-items: center;
  gap: 10px;
  margin: 14px 0 0;
  padding: 9px 16px;
  border-radius: 12px;
  background: var(--dc-brand-soft);
  border: 1px solid var(--dc-brand-border);
  color: var(--dc-brand-dark);
  font-size: 13.5px;
  font-weight: 600;
  line-height: 1.5;
}

/* ============ 目标达成：动效、过半标记、14 天点阵 ============ */
.plan-card--done {
  animation: planDoneGlow .9s ease-out both;
}
@keyframes planDoneGlow {
  0% { box-shadow: 0 0 0 0 rgba(15, 118, 110, .22); }
  55% { box-shadow: 0 0 0 12px rgba(15, 118, 110, 0); }
  100% { box-shadow: 0 0 0 0 rgba(15, 118, 110, 0); }
}
.plan-done-badge {
  animation: planBadgeIn .5s cubic-bezier(.18, .9, .3, 1.25) both;
}
@keyframes planBadgeIn {
  from { opacity: 0; transform: scale(.72); }
  to { opacity: 1; transform: scale(1); }
}
.plan-bar i {
  transition: width .55s cubic-bezier(.2, .8, .3, 1);
}
.plan-half-badge {
  display: inline-flex;
  align-items: center;
  margin-left: 10px;
  padding: 3px 9px;
  border-radius: 99px;
  background: var(--dc-brand-soft);
  border: 1px solid var(--dc-brand-border);
  color: var(--dc-brand-dark);
  font-size: 12px;
  font-weight: 600;
  vertical-align: middle;
}
.plan-days {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin: 0 0 20px;
}
.plan-days__cells {
  display: flex;
  gap: 6px;
}
.plan-days__cell {
  display: block;
  width: 22px;
  height: 22px;
  border-radius: 6px;
  background: #EEF3F1;
  border: 1px solid #E2EAE7;
}
.plan-days__cell.is-on {
  background: var(--dc-brand);
  border-color: var(--dc-brand);
}
.plan-days__cell.is-today {
  box-shadow: 0 0 0 2px var(--dc-brand-border);
}
.plan-days__label {
  font-size: 12.5px;
  color: var(--dc-text);
}
.plan-days__label b {
  color: var(--dc-brand-dark);
  font-weight: 700;
}

/* ============ 已达成目标：锁定说明条 ============ */
.plan-lock-note {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 24px;
  padding: 15px 18px;
  border-radius: 12px;
  background: var(--dc-brand-soft);
  border: 1px solid var(--dc-brand-border);
  color: var(--dc-brand-dark);
  font-size: 13.5px;
  line-height: 1.65;
}
.plan-lock-note__dot {
  position: relative;
  flex: none;
  width: 18px;
  height: 18px;
  margin-top: 2px;
  border-radius: 50%;
  background: var(--dc-brand);
}
.plan-lock-note__dot::before {
  content: "";
  position: absolute;
  left: 5px;
  top: 3px;
  width: 5px;
  height: 9px;
  border-right: 1.8px solid #fff;
  border-bottom: 1.8px solid #fff;
  transform: rotate(38deg);
}
.plan-log-locked {
  color: var(--dc-text-muted);
  font-size: 12.5px;
}

/* ============ 鼓励：常驻条 / 加强版浮层 / 卡片小行 ============ */
.plan-cheer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px 20px;
  margin-bottom: 24px;
  padding: 16px 20px;
  border-radius: 12px;
  background: linear-gradient(100deg, #ECFDF5 0%, #F4FBF8 58%, #FFFFFF 100%);
  border: 1px solid var(--dc-brand-border);
  border-left: 4px solid var(--dc-brand);
}
.plan-cheer__main {
  font-size: 17px;
  font-weight: 700;
  color: var(--dc-brand-dark);
  line-height: 1.45;
}
.plan-cheer__meta {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 12.5px;
  color: var(--dc-text);
  white-space: nowrap;
}
.plan-cheer__meta b {
  color: var(--dc-brand);
  font-weight: 700;
}
.plan-cheer__meta em {
  font-style: normal;
  padding: 2px 9px;
  border-radius: 99px;
  background: #fff;
  border: 1px solid var(--dc-brand-border);
  color: var(--dc-brand-dark);
}
.dc-toast--cheer {
  top: 86px;
  padding: 16px 26px 16px 20px;
  font-size: 16.5px;
  border-radius: 16px;
  border-color: var(--dc-brand-border);
  background: linear-gradient(100deg, #FFFFFF 0%, #F4FBF8 60%, #ECFDF5 100%);
  box-shadow: 0 20px 54px rgba(15, 118, 110, .18), 0 4px 10px rgba(15, 23, 42, .07);
}
.dc-toast--cheer .dc-toast__dot {
  width: 24px;
  height: 24px;
  margin-top: 2px;
}
.dc-toast--cheer .dc-toast__dot::before {
  left: 7px;
  top: 5px;
  width: 7px;
  height: 12px;
  border-right-width: 2px;
  border-bottom-width: 2px;
}
.plan-mini-cheer {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 12px 0 2px;
  font-size: 12.5px;
  color: var(--dc-brand-dark);
}
.plan-mini-cheer i {
  flex: none;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--dc-brand);
}
.plan-mini-cheer em {
  font-style: normal;
  margin-left: 2px;
  color: var(--dc-text-muted);
}

/* ============ 已达成卡片右上角：完成后鼓励 ============ */
.plan-done-cheer {
  flex: none;
  margin-left: auto;
  min-width: 196px;
  padding: 11px 16px;
  border-radius: 12px;
  text-align: right;
  background: linear-gradient(100deg, #FFFFFF 0%, #F1FBF7 100%);
  border: 1px solid var(--dc-brand-border);
}
.plan-done-cheer__main {
  display: block;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--dc-brand-dark);
}
.plan-done-cheer__sub {
  display: block;
  margin-top: 3px;
  font-size: 12.5px;
  line-height: 1.45;
  color: var(--dc-text);
}
@media (max-width: 575px) {
  .plan-done-cheer {
    min-width: 0;
    padding: 9px 12px;
  }
  .plan-done-cheer__sub {
    display: none;
  }
}

/* ============ 坚持奖励（积分） ============ */
.plan-points {
  margin-top: 24px;
  padding-top: 18px;
  border-top: 1px dashed var(--dc-border);
}
.plan-points__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 11px;
}
.plan-points__head span {
  font-size: 13px;
  font-weight: 600;
  color: var(--dc-text);
}
.plan-points__head b {
  font-size: 21px;
  font-weight: 800;
  color: #B45309;
  letter-spacing: -.02em;
}
.plan-points__head em {
  font-style: normal;
  font-size: 11px;
  font-weight: 500;
  color: var(--dc-text-muted);
  margin-left: 5px;
}
.plan-points__steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
}
.plan-points__steps span {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 6px 4px;
  border-radius: 8px;
  border: 1px solid var(--dc-border);
  background: #fff;
  font-size: 10.5px;
  line-height: 1.35;
  font-weight: 500;
  color: var(--dc-text-muted);
}
.plan-points__steps em {
  font-style: normal;
  font-weight: 700;
  font-size: 11.5px;
  margin-top: 1px;
}
.plan-points__steps .is-done {
  background: var(--dc-brand);
  border-color: var(--dc-brand);
  color: #fff;
}
.plan-points__steps .is-next {
  background: var(--dc-warn-soft);
  border-color: var(--dc-warn-border);
  color: #B45309;
}
.plan-points__tip {
  margin: 11px 0 0;
  font-size: 11.5px;
  line-height: 1.65;
  color: var(--dc-text);
}
.plan-points__tip b {
  color: #B45309;
  font-weight: 700;
}
.dc-toast--points {
  top: 86px;
  padding: 16px 26px 16px 20px;
  font-size: 16.5px;
  border-radius: 16px;
  border-color: var(--dc-warn-border);
  background: linear-gradient(100deg, #FFFFFF 0%, #FEF7EC 58%, #FEF3E2 100%);
  box-shadow: 0 20px 54px rgba(180, 83, 9, .16), 0 4px 10px rgba(15, 23, 42, .07);
}
.dc-toast--points .dc-toast__dot {
  width: 24px;
  height: 24px;
  margin-top: 2px;
  background: #D97706;
}
.dc-toast--points .dc-toast__dot::before {
  left: 7px;
  top: 5px;
  width: 7px;
  height: 12px;
  border-right-width: 2px;
  border-bottom-width: 2px;
}
.dc-toast__big {
  display: block;
  font-size: 22px;
  font-weight: 800;
  color: #B45309;
  letter-spacing: -.02em;
  line-height: 1.25;
}
.dc-toast__say {
  display: block;
  margin-top: 3px;
  font-style: normal;
  font-size: 13px;
  color: var(--dc-text);
}

/* ============ 坚持奖励页 ============ */
.pp-wrap { max-width: 880px; margin: 0 auto; padding: 0 0 70px; }
.pp-title { font-size: 24px; font-weight: 800; color: var(--dc-text-strong); margin: 0 0 8px; }
.pp-sub { font-size: 13px; color: #64748B; margin: 0 0 22px; }
.pp-hero {
  border: 1px solid var(--dc-warn-border);
  border-radius: 16px;
  padding: 24px 26px;
  margin-bottom: 16px;
  background: linear-gradient(100deg, #FFFFFF 0%, #FEF7EC 55%, #FDF0DC 100%);
}
.pp-hero__row { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.pp-hero__num { font-size: 44px; font-weight: 800; color: #B45309; line-height: 1; letter-spacing: -.03em; }
.pp-hero__num em { font-style: normal; font-size: 14px; font-weight: 600; color: var(--dc-text-muted); margin-left: 8px; letter-spacing: 0; }
.pp-hero__next { text-align: right; font-size: 12.5px; color: #64748B; line-height: 1.8; }
.pp-hero__next b { color: #B45309; font-weight: 700; }
.pp-bar { height: 8px; border-radius: 99px; background: #F3E5D3; margin-top: 16px; overflow: hidden; }
.pp-bar i { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, #D97706, #F59E0B); }
.pp-list { border: 1px solid var(--dc-border); border-radius: 14px; background: #fff; overflow: hidden; }
.pp-li { display: flex; align-items: center; gap: 14px; padding: 15px 22px; border-bottom: 1px solid #F1F5F4; }
.pp-li:last-child { border-bottom: 0; }
.pp-li__day { width: 88px; font-size: 13.5px; font-weight: 700; color: var(--dc-text-strong); }
.pp-li__pt { width: 74px; font-size: 14px; font-weight: 800; color: #B45309; }
.pp-li__st {
  margin-left: auto;
  font-size: 12px;
  padding: 4px 11px;
  border-radius: 99px;
  border: 1px solid var(--dc-border);
  color: var(--dc-text-muted);
  background: #fff;
}
.pp-li__st.done { background: var(--dc-brand-soft); border-color: var(--dc-brand-border); color: var(--dc-brand-dark); font-weight: 600; }
.pp-li__st.now { background: var(--dc-warn-soft); border-color: var(--dc-warn-border); color: #B45309; font-weight: 600; }
.pp-note { font-size: 11.5px; color: var(--dc-text-muted); line-height: 1.8; margin-top: 14px; }

/* 侧栏：积分入口 */
.pp-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 12px;
  padding: 8px 16px;
  border-radius: 8px;
  border: 1px solid var(--dc-warn-border);
  background: var(--dc-warn-soft);
  color: #B45309;
  font-size: 13px;
  font-weight: 600;
}
.pp-link:hover { background: #FDE9C8; }

/* 每日记录：备注编辑 */
.plan-log-row .plan-log-ops { display: flex; gap: 6px; justify-content: center; }
.plan-log-row .plan-log-ops .plan-row-btn { font-size: 12px; padding: 4px 9px; margin: 0; }
.plan-row-btn--edit { background: #fff; border: 1px solid var(--dc-border-strong); color: var(--dc-text); }
.plan-row-btn--edit:hover { border-color: var(--dc-brand); color: var(--dc-brand-dark); }
.plan-row-btn--save { background: var(--dc-brand); border: 1px solid var(--dc-brand); color: #fff; }
.plan-row-btn--save:hover { background: var(--dc-brand-dark); color: #fff; }
.plan-log-edit {
  width: 100%;
  padding: 7px 10px;
  border: 1px solid var(--dc-brand-border);
  border-radius: 8px;
  font-size: 13px;
  color: var(--dc-text-strong);
  font-family: inherit;
}
.plan-log-edit:focus { outline: none; border-color: var(--dc-brand); box-shadow: 0 0 0 2px rgba(15,118,110,.10); }

/* ============ 断点回归条 ============ */
.plan-return {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 16px;
  margin-bottom: 18px;
  border: 1px solid var(--dc-warn-border);
  border-radius: 12px;
  background: #FFFBF3;
}
.plan-return__dot { width: 7px; height: 7px; border-radius: 50%; background: #D97706; flex: none; }
.plan-return__text { font-size: 13px; color: #7C4A12; line-height: 1.6; }
.plan-return__text b { color: #B45309; font-weight: 700; }
.plan-return__btn {
  margin-left: auto;
  flex: none;
  padding: 7px 14px;
  border-radius: 8px;
  border: 1px solid #E8C89B;
  background: #fff;
  color: #B45309;
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
}
.plan-return__btn:hover { background: #FDF0DC; }

/* ============ 达成结算卡 ============ */
.plan-settle {
  border: 1px solid var(--dc-brand-border);
  border-radius: 16px;
  padding: 22px 24px 20px;
  margin-bottom: 20px;
  background:
    radial-gradient(120% 120% at 100% 0%, #E8FBF5 0%, rgba(255,255,255,0) 55%),
    linear-gradient(160deg, #FFFFFF 0%, #F4FBF8 100%);
}
.plan-settle__head { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.plan-settle__badge {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 10px; border-radius: 99px;
  background: var(--dc-brand-soft); border: 1px solid var(--dc-brand-border);
  color: var(--dc-brand-dark); font-size: 12px; font-weight: 600;
}
.plan-settle__name { font-size: 18px; font-weight: 800; color: var(--dc-text-strong); }
.plan-settle__stats { display: flex; gap: 26px; flex-wrap: wrap; margin: 4px 0 16px; }
.plan-settle__stat { min-width: 70px; }
.plan-settle__stat span { display: block; font-size: 11.5px; color: var(--dc-text-muted); margin-bottom: 4px; letter-spacing: .04em; }
.plan-settle__stat b { font-size: 19px; font-weight: 800; color: var(--dc-brand-dark); font-variant-numeric: tabular-nums; }
.plan-settle__stat em { font-style: normal; font-size: 12px; color: var(--dc-text-muted); margin-left: 2px; }
.plan-settle__say { font-size: 13.5px; color: var(--dc-text); line-height: 1.8; padding-top: 14px; border-top: 1px dashed var(--dc-border); }
.plan-settle__say b { color: var(--dc-brand-dark); }
.plan-settle__hint { font-size: 11.5px; color: var(--dc-text-muted); margin-top: 8px; }

/* 鼓励条里的连续纪录行 */
.plan-cheer__streak {
  margin-top: 8px;
  font-size: 11.5px;
  color: var(--dc-text-muted);
  letter-spacing: .02em;
}
.plan-cheer__streak b { color: var(--dc-brand-dark); font-weight: 700; }

/* ============ 同行者条 / 公开开关 ============ */
.plan-peers {
  display: flex; align-items: center; gap: 10px;
  padding: 12px 16px; margin-bottom: 18px;
  border: 1px solid var(--dc-border);
  border-radius: 12px;
  background: #FCFDFD;
}
.plan-peers__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--dc-border-strong); flex: none; }
.plan-peers__dot.is-on { background: var(--dc-brand-2); }
.plan-peers__text { font-size: 12.5px; color: var(--dc-text-muted); line-height: 1.6; }
.plan-peers__text b { color: var(--dc-brand-dark); font-weight: 700; }
.plan-peers__btn {
  margin-left: auto; flex: none;
  padding: 6px 13px; border-radius: 8px;
  border: 1px solid var(--dc-brand-border);
  background: #fff; color: var(--dc-brand-dark);
  font-size: 12px; font-weight: 600; cursor: pointer;
}
.plan-peers__btn:hover { background: var(--dc-brand-soft); }

/* 卡片上的公开/私密标签 */
.plan-tag--public {
  border: 1px solid var(--dc-border);
  background: #fff;
  color: var(--dc-text-muted);
  cursor: pointer;
  font-family: inherit;
  padding: 0 10px;
  line-height: 22px;
}
.plan-tag--public:hover { border-color: var(--dc-brand-border); color: var(--dc-brand-dark); }
.plan-tag--public.is-on {
  border-color: var(--dc-brand-border);
  background: var(--dc-brand-soft);
  color: var(--dc-brand-dark);
}

/* ============ 同行者广场 ============ */
.plaza-head { margin-bottom: 24px; }
.plaza-head h4 { font-size: 20px; font-weight: 800; color: var(--dc-text-strong); margin: 0 0 8px; }
.plaza-head h4 span {
  display: inline-block; margin-left: 8px; padding: 2px 9px;
  border-radius: 99px; background: var(--dc-brand-soft);
  border: 1px solid var(--dc-brand-border);
  font-size: 12px; font-weight: 700; color: var(--dc-brand-dark);
  vertical-align: middle;
}
.plaza-head p { font-size: 13px; color: var(--dc-text-muted); margin: 0; line-height: 1.7; }

.plaza-card .artist-name { font-size: 15px; }
.plaza-cheer-btn {
  margin-left: auto; flex: none;
  padding: 7px 14px; border-radius: 99px;
  border: 1px solid var(--dc-brand-border);
  background: var(--dc-brand-soft); color: var(--dc-brand-dark);
  font-size: 12.5px; font-weight: 700; cursor: pointer;
  font-family: inherit;
  white-space: nowrap;
}
.plaza-cheer-btn:hover { background: var(--dc-brand); color: #fff; border-color: var(--dc-brand); }
.plaza-cheer-btn.is-done { background: #fff; border-color: var(--dc-border); color: var(--dc-text-muted); cursor: default; }
.plaza-cheer-btn.is-mine { background: #fff; border-color: var(--dc-border); color: var(--dc-text-muted); cursor: default; font-weight: 600; }

.plaza-empty { text-align: center; padding: 56px 20px; }
.plaza-empty i { font-size: 40px; color: var(--dc-border-strong); display: block; margin-bottom: 14px; }
.plaza-empty p { color: var(--dc-text-muted); font-size: 14px; margin: 0 0 16px; }
.plaza-empty-link {
  display: inline-block; padding: 8px 18px; border-radius: 8px;
  border: 1px solid var(--dc-brand-border); background: var(--dc-brand-soft);
  color: var(--dc-brand-dark); font-size: 13px; font-weight: 600;
}

.plaza-rules { margin: 0; padding-left: 18px; }
.plaza-rules li { font-size: 12.5px; color: var(--dc-text-muted); line-height: 1.9; }
.plaza-why { font-size: 12.5px; color: var(--dc-text-muted); line-height: 1.9; margin: 0; }

/* 撤回公开：次要按钮 */
.plan-peers__ops { margin-left: auto; display: flex; gap: 8px; flex: none; }
.plan-peers__ops .plan-peers__btn { margin-left: 0; }
.plan-peers__btn.is-ghost { border-color: var(--dc-border); color: var(--dc-text-muted); background: #fff; }
.plan-peers__btn.is-ghost:hover { border-color: var(--dc-border-strong); color: var(--dc-text); background: #fff; }
.plaza-cheer-btn.is-ghost { margin-left: 8px; font-weight: 600; border-color: var(--dc-border); color: var(--dc-text-muted); background: #fff; }
.plaza-cheer-btn.is-ghost:hover { border-color: var(--dc-border-strong); color: var(--dc-text); background: #fff; }

/* ============ 每周一回顾 ============ */
.plan-week {
  display: flex; align-items: center; gap: 10px;
  padding: 12px 16px; margin-bottom: 18px;
  border: 1px solid var(--dc-brand-border);
  border-radius: 12px;
  background: linear-gradient(120deg, #F7FDFB 0%, #FCFEFD 100%);
}
.plan-week__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--dc-brand-2); flex: none; }
.plan-week__text { font-size: 12.5px; color: var(--dc-text); line-height: 1.7; }
.plan-week__text b { color: var(--dc-brand-dark); font-weight: 700; }
.plan-week__close {
  margin-left: auto; flex: none;
  width: 22px; height: 22px; border: 0; border-radius: 6px;
  background: transparent; color: var(--dc-text-muted);
  font-size: 16px; line-height: 1; cursor: pointer;
}
.plan-week__close:hover { background: #EDF5F2; color: var(--dc-text); }

/* ============ 结算卡下方的下一件事 ============ */
.plan-settle__next {
  margin-top: 14px; padding-top: 14px;
  border-top: 1px dashed var(--dc-border);
  display: flex; align-items: center; gap: 10px;
  font-size: 13px; color: var(--dc-text);
}
.plan-settle__next-link {
  margin-left: auto; flex: none;
  padding: 7px 14px; border-radius: 8px;
  background: var(--dc-brand); color: #fff;
  font-size: 12.5px; font-weight: 600;
  text-decoration: none;
}
.plan-settle__next-link:hover { background: var(--dc-brand-dark); color: #fff; }

/* ============ 今日额度 / 最后冲刺 ============ */
.plan-daily {
  display: flex; align-items: center; gap: 9px;
  padding: 10px 16px; margin-bottom: 16px;
  border: 1px solid var(--dc-border);
  border-radius: 10px;
  background: #FCFDFD;
}
.plan-daily__dot { width: 6px; height: 6px; border-radius: 50%; background: var(--dc-brand-2); flex: none; }
.plan-daily__dot.is-urgent { background: #D97706; }
.plan-daily__text { font-size: 12.5px; color: var(--dc-text); }
.plan-daily__text.is-urgent { color: #B45309; font-weight: 600; }

/* ============ 近 30 天记录格 ============ */
.plan-heat {
  margin-top: 14px; padding-top: 14px;
  border-top: 1px dashed var(--dc-border);
}
.plan-heat__head {
  display: flex; align-items: baseline; justify-content: space-between;
  font-size: 12px; color: var(--dc-text-muted); margin-bottom: 8px;
}
.plan-heat__head b { color: var(--dc-brand-dark); font-size: 12.5px; }
.plan-heat__grid {
  display: grid; grid-template-columns: repeat(15, 1fr);
  gap: 4px;
}
.plan-heat__cell {
  display: block; height: 12px; border-radius: 3px;
  background: #F1F5F9; border: 1px solid #E8EEF2;
}
.plan-heat__cell.is-on { background: var(--dc-brand-2); border-color: var(--dc-brand-2); }
.plan-heat__cell.is-today { box-shadow: 0 0 0 1.5px rgba(15, 118, 110, 0.35); }

/* ============ 断点条里的自述动机 ============ */
.plan-return__why {
  display: block; margin-top: 4px;
  font-size: 12px; font-style: normal; color: #8A5A1F;
}

/* ============ 结算卡底部：存成图片 ============ */
.plan-settle__foot {
  display: flex; align-items: center; gap: 12px;
  margin-top: 8px;
}
.plan-settle__foot .plan-settle__hint { margin: 0; }
.plan-settle__save {
  margin-left: auto; flex: none;
  padding: 6px 13px; border-radius: 8px;
  border: 1px solid var(--dc-brand-border);
  background: #fff; color: var(--dc-brand-dark);
  font-size: 12.5px; font-weight: 600; cursor: pointer;
}
.plan-settle__save:hover { background: var(--dc-brand-soft); }

/* ============ 收进 / 支出 切换 ============ */
.plan-log-mode {
  display: inline-flex; gap: 2px; padding: 3px;
  border-radius: 9px; background: #F1F5F9;
  margin-bottom: 14px;
}
.plan-log-mode__btn {
  border: 0; border-radius: 7px; padding: 6px 14px;
  background: transparent; color: var(--dc-text-muted);
  font-size: 12.5px; font-weight: 600; cursor: pointer;
  transition: background .16s, color .16s;
}
.plan-log-mode__btn.is-active { background: #fff; color: var(--dc-brand-dark); box-shadow: 0 1px 3px rgba(15,23,42,.08); }
.plan-log-amount--out { color: #B91C1C; }
.plan-log-amount--out em {
  font-style: normal; font-size: 11px; margin-left: 4px;
  padding: 1px 5px; border-radius: 4px;
  background: #FEF2F2; color: #B91C1C;
}
.dc-toast__sub { display: block; font-size: 11.5px; opacity: .78; margin-top: 2px; }

/* ============ 今天还没记：列表顶部提示 + 卡片标签 ============ */
.plan-todo-bar {
  display: flex; align-items: center; gap: 9px;
  padding: 11px 16px; margin-bottom: 18px;
  border: 1px solid var(--dc-warn-border);
  border-radius: 10px;
  background: #FFFBF3;
}
.plan-todo-bar__dot { width: 7px; height: 7px; border-radius: 50%; background: #D97706; flex: none; }
.plan-todo-bar__text { font-size: 12.5px; color: #7C4A12; }
.plan-todo-bar__text b { color: #B45309; font-weight: 700; }

.plan-tag--todo {
  background: #FFF7EC !important;
  border-color: #F1CFA0 !important;
  color: #B45309 !important;
  font-weight: 600;
}

/* ============ 卡片标签统一：胶囊 + 色点 ============ */
.plan-card .tags-list.post-inner-tags { gap: 8px; }

.plan-card .post-inner-tags .tag {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 10px 0 9px;
  border: 1px solid var(--dc-border);
  border-radius: 999px;
  background: #fff;
  font-family: inherit;
  font-size: 11.5px;
  font-weight: 600;
  line-height: 1;
  color: var(--dc-text-muted);
  text-decoration: none;
  white-space: nowrap;
}
.plan-card .post-inner-tags .tag::before {
  content: '';
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: currentColor;
  opacity: .45;
  margin-right: 6px;
  flex: none;
}

/* 今天还没记：整行里最该被看见的一枚 */
.plan-card .post-inner-tags .tag.plan-tag--todo {
  background: #FFF4E5 !important;
  border-color: #F2C88C !important;
  color: #B45309 !important;
}
.plan-card .post-inner-tags .tag.plan-tag--todo::before {
  opacity: 1;
  background: #D97706;
}

/* 公开开关：未公开弱化，公开后转青 */
.plan-card .post-inner-tags .tag.plan-tag--public {
  background: #F8FAFC !important;
  border-color: #E2E8F0 !important;
  color: #475569 !important;
}
.plan-card .post-inner-tags .tag.plan-tag--public.is-on {
  background: var(--dc-brand-soft) !important;
  border-color: var(--dc-brand-border) !important;
  color: var(--dc-brand-dark) !important;
}

/* 状态标签配色（避免被通用胶囊规则抹平） */
.plan-card .post-inner-tags .tag.plan-tag--doing {
  background: var(--dc-brand-soft) !important;
  border-color: var(--dc-brand-border) !important;
  color: var(--dc-brand) !important;
}
.plan-card .post-inner-tags .tag.plan-tag--done {
  background: #F0FDF4 !important;
  border-color: #BBF7D0 !important;
  color: #15803D !important;
}
.plan-card .post-inner-tags .tag.plan-tag--late {
  background: #FEF2F2 !important;
  border-color: #FBD5D5 !important;
  color: #B91C1C !important;
}
.plan-card .post-inner-tags .tag.plan-tag--log {
  background: #F8FAFC !important;
  border-color: #E2E8F0 !important;
  color: #64748B !important;
}
.plan-card .post-inner-tags .tag.plan-tag--streak {
  background: #FFF7EC !important;
  border-color: #F1D6AC !important;
  color: #B45309 !important;
}

/* ============ 卡片节奏收紧 + 未记录行动提示 ============ */
.plan-card .tags-list.post-inner-tags.plan-card-tags {
  margin-top: 12px;
  margin-bottom: 14px;
}

.plan-todo-cta {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 11px;
  border-radius: 999px;
  background: #FFF4E5;
  border: 1px solid #F2C88C;
  font-size: 11.5px;
  font-weight: 600;
  color: #B45309;
  text-decoration: none;
  white-space: nowrap;
  transition: background .16s, border-color .16s;
}
.plan-todo-cta__dot {
  width: 5px; height: 5px; border-radius: 50%;
  background: #D97706; margin-right: 6px; flex: none;
}
.plan-todo-cta:hover { background: #FDE9CE; border-color: #E8B972; color: #92400E; }

/* ============ 我的目标：筛选 + 搜索 ============ */
#plan-page .forum-search-bar .filter-by-search {
  display: flex;
  gap: 12px;
  align-items: center;
}

/* 左侧：分类下拉（自绘漏斗 + 折角箭头） */
#plan-page .forum-search-bar .filter-by-search .question-category-select {
  flex: none;
  width: 182px;
  height: 44px;
  line-height: 44px;
  padding: 0 34px 0 38px;
  border: 1px solid #E7ECEF;
  border-radius: 10px;
  background-color: #fff;
  background-image:
    url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24'%3E%3Cpath d='M4 6h16M7 12h10M10 18h4' stroke='%230F766E' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E"),
    url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%2338BDA9' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat, no-repeat;
  background-position: 13px center, right 13px center;
  -webkit-appearance: none;
  appearance: none;
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 600;
  color: #0F172A;
  cursor: pointer;
  outline: none;
  z-index: auto;
  transition: border-color .16s, box-shadow .16s;
}
#plan-page .forum-search-bar .filter-by-search .question-category-select:hover { border-color: #C6EDE3; }
#plan-page .forum-search-bar .filter-by-search .question-category-select:focus {
  border-color: #9FDFD2;
  box-shadow: 0 0 0 3px rgba(20, 184, 166, .12);
}

/* 右侧：搜索框 */
#plan-page .forum-search-bar .filter-by-search .filter-search-input-forum { flex: 1; min-width: 0; }
#plan-page .forum-search-bar .filter-by-search .filter-search-input-forum input {
  width: 100%;
  height: 44px;
  padding: 0 16px 0 40px;
  border: 1px solid #E7ECEF;
  border-radius: 10px;
  background: #fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='7' stroke='%23A3AEB9' stroke-width='2' fill='none'/%3E%3Cpath d='M16.5 16.5L21 21' stroke='%23A3AEB9' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat 13px center;
  font-size: 13.5px;
  color: #0F172A;
  z-index: auto;
  outline: none;
  transition: border-color .16s, box-shadow .16s;
}
#plan-page .forum-search-bar .filter-by-search .filter-search-input-forum input::placeholder { color: #A3AEB9; }
#plan-page .forum-search-bar .filter-by-search .filter-search-input-forum input:hover { border-color: #C6EDE3; }
#plan-page .forum-search-bar .filter-by-search .filter-search-input-forum input:focus {
  border-color: #9FDFD2;
  box-shadow: 0 0 0 3px rgba(20, 184, 166, .12);
}
#plan-page .forum-search-bar .filter-by-search .filter-search-input-forum button:not(.pc-search-clear) { display: none; }

/* ============ 我的目标：搜索交互 ============ */
#plan-page .forum-search-bar .filter-search-input-forum input { padding-right: 42px; }

.pc-search-clear {
  position: absolute;
  right: 9px;
  top: 50%;
  transform: translateY(-50%);
  width: 22px;
  height: 22px;
  border: 0;
  border-radius: 50%;
  background: #F1F5F8;
  color: #94A3B8;
  font-size: 13px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}
.pc-search-clear:hover { background: #E6F6F2; color: #0F766E; }

.plan-search-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 16px;
  padding: 9px 12px 9px 14px;
  background: #F8FAFC;
  border: 1px solid #EDF1F5;
  border-radius: 10px;
  font-size: 12.5px;
  color: #64748B;
  line-height: 1.5;
}
.plan-search-bar__txt b { color: #0F172A; font-weight: 700; }
.plan-search-bar__txt b:last-child { color: #0F766E; }
.plan-search-bar__clear {
  flex: none;
  border: 0;
  background: none;
  padding: 4px 8px;
  border-radius: 6px;
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 600;
  color: #0F766E;
  cursor: pointer;
}
.plan-search-bar__clear:hover { background: #ECFDF5; }

/* ============ 我的目标：排序下拉 ============ */
#plan-page .forum-search-bar .filter-by-search .pc-sort-select {
  width: 148px;
  padding: 0 32px 0 37px;
  background-image:
    url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24'%3E%3Cpath d='M9 20V5M9 5L5 9M9 5l4 4' stroke='%230F766E' stroke-width='2' stroke-linecap='round' fill='none'/%3E%3Cpath d='M15 4v15M15 19l-4-4M15 19l4-4' stroke='%230F766E' stroke-width='2' stroke-linecap='round' fill='none'/%3E%3C/svg%3E"),
    url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%2338BDA9' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat, no-repeat;
  background-position: 12px center, right 11px center;
}

/* ============ 详情页：记录今天完成情况 ============ */
#plan-detail-page .plan-log-form-card { padding: 22px 22px 18px; }
#plan-detail-page .plan-log-form-card .plan-log-form-title {
  font-size: 15px;
  margin: 0 0 14px;
  letter-spacing: .01em;
}
#plan-detail-page .plan-log-mode {
  margin-bottom: 12px;
  padding: 3px;
  border-radius: 8px;
  background: #F3F6F8;
}
#plan-detail-page .plan-log-mode__btn {
  padding: 5px 13px;
  font-size: 12.5px;
  border-radius: 6px;
}
#plan-detail-page .plan-log-form {
  grid-template-columns: 158px 128px minmax(180px, 1fr) auto;
  gap: 12px;
  align-items: end;
}
#plan-detail-page .plan-log-form .plan-field > span {
  margin-bottom: 6px;
  font-size: 12.5px;
  font-weight: 500;
  color: var(--dc-text);
}
#plan-detail-page .plan-log-form input {
  height: 42px;
  line-height: 42px;
  padding: 0 12px;
  border-radius: 8px;
  border-color: #E7ECEF;
  font-size: 13.5px;
}
#plan-detail-page .plan-log-form input:focus {
  border-color: #9FDFD2;
  box-shadow: 0 0 0 3px rgba(20, 184, 166, .10);
}
#plan-detail-page .plan-log-form .theme-btn {
  height: 42px;
  padding: 0 22px;
  border-radius: 8px;
  font-size: 13.5px;
  font-weight: 600;
  box-shadow: none;
}
#plan-detail-page .plan-form-msg { margin: 9px 0 0; font-size: 12.5px; line-height: 1.5; }
#plan-detail-page .plan-form-msg--tip { color: var(--dc-text-muted); }

/* ============ 详情页：计划概要侧栏 ============ */
#plan-detail-page .plan-detail-summary { padding: 22px 22px 18px; }
#plan-detail-page .plan-detail-summary > .sidebar__widget-title { font-size: 15px; margin-bottom: 14px !important; }
#plan-detail-page .plan-detail-summary .plan-detail-title {
  font-size: 19px; font-weight: 700; color: var(--dc-text-strong);
  margin: 0 0 8px; line-height: 1.35; letter-spacing: -.01em;
}
#plan-detail-page .plan-detail-summary .tags-list { margin-bottom: 16px !important; }

#plan-detail-page .pd-figure { margin: 0 0 16px; }
#plan-detail-page .pd-figure__head { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
#plan-detail-page .pd-figure__head b { font-size: 22px; font-weight: 700; color: #0F172A; line-height: 1.2; letter-spacing: -.02em; }
#plan-detail-page .pd-figure__of { font-size: 11.5px; color: #94A3B8; }
#plan-detail-page .pd-figure__of em { font-style: normal; font-size: 12.5px; font-weight: 600; color: #475569; }
#plan-detail-page .pd-figure__pct { margin-left: auto; font-size: 12px; font-weight: 700; color: #0F766E; letter-spacing: .02em; }
#plan-detail-page .pd-figure .plan-bar { margin: 9px 0 7px; height: 6px; border-radius: 4px; }
#plan-detail-page .pd-figure__foot { display: flex; justify-content: space-between; gap: 10px; font-size: 11.5px; color: #94A3B8; }
#plan-detail-page .pd-figure__foot b { font-size: 11.5px; font-weight: 600; color: #475569; }

#plan-detail-page .pd-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; margin-top: 6px; }
#plan-detail-page .pd-grid__cell { min-width: 0; }
#plan-detail-page .pd-grid__cell span { display: block; font-size: 11px; color: #94A3B8; margin-bottom: 2px; }
#plan-detail-page .pd-grid__cell b { font-size: 13px; font-weight: 600; color: #0F172A; }

#plan-detail-page .pd-meta {
  display: grid; grid-template-columns: 1fr 1fr;
  margin-top: 16px; padding-top: 14px; border-top: 1px solid #EEF2F5;
}
#plan-detail-page .pd-meta__cell span { display: block; font-size: 11px; color: #94A3B8; margin-bottom: 3px; }
#plan-detail-page .pd-meta__cell b { font-size: 13.5px; font-weight: 600; color: #0F172A; }
#plan-detail-page .pd-meta__cell + .pd-meta__cell { border-left: 1px solid #EEF2F5; padding-left: 14px; }

#plan-detail-page .pd-record { display: flex; justify-content: space-between; align-items: center; margin-top: 12px; font-size: 11.5px; color: #94A3B8; }
#plan-detail-page .pd-record b { font-size: 12.5px; font-weight: 600; color: #475569; }

#plan-detail-page .plan-detail-desc {
  font-size: 12.5px; line-height: 1.65; color: #64748B;
  margin: 16px 0 10px; padding-top: 14px; border-top: 1px solid #EEF2F5;
}
#plan-detail-page .plan-side-note { font-size: 11px; line-height: 1.6; color: #A0AEC0; margin: 0; }

/* hidden 在 flex/grid 上会被忽略，显式关掉 */
#plan-detail-page .pd-figure[hidden],
#plan-detail-page .pd-record[hidden],
#plan-detail-page .pd-grid__cell[hidden] { display: none !important; }

/* 侧栏内虚线统一为浅实线 */
#plan-detail-page .plan-detail-summary .plan-points,
#plan-detail-page .plan-detail-summary .plan-heat { border-top: 1px solid #EEF2F5; }
#plan-detail-page .pd-figure__tail {
  margin-left: auto; display: flex; align-items: baseline; gap: 3px;
  font-size: 11.5px; color: #94A3B8;
}
#plan-detail-page .pd-figure__tail strong { font-size: 12px; font-weight: 700; color: #475569; }

/* 空态：一键回到全部 */
#plan-page .plan-empty__clear {
  margin-top: 14px;
  height: 34px;
  padding: 0 16px;
  border: 1px solid var(--dc-brand-border);
  border-radius: 8px;
  background: #fff;
  color: var(--dc-brand);
  font-size: 13px;
  cursor: pointer;
}
#plan-page .plan-empty__clear:hover { background: var(--dc-brand-soft); }

/* ============ 详情页侧栏：去拥挤 + 中性灰文字 ============ */
#plan-detail-page .plan-detail-summary { padding: 24px 24px 20px; }
#plan-detail-page .plan-detail-summary > .sidebar__widget-title {
  font-size: 13.5px; letter-spacing: .04em; color: #7C8894; margin-bottom: 16px !important;
}
#plan-detail-page .plan-detail-summary .plan-detail-title { font-size: 20px; margin-bottom: 10px; }
#plan-detail-page .plan-detail-summary .tags-list { margin-bottom: 18px !important; }

#plan-detail-page .pd-figure { margin: 0 0 20px; }
#plan-detail-page .pd-figure__head { gap: 9px; }
#plan-detail-page .pd-figure__head b { font-size: 24px; }
#plan-detail-page .pd-figure__of { font-size: 11.5px; color: #8B96A3; }
#plan-detail-page .pd-figure__of em { color: #5A6775; }
#plan-detail-page .pd-figure__pct { font-size: 12.5px; font-weight: 700; color: #0F766E; }
#plan-detail-page .pd-figure .plan-bar { margin: 12px 0 10px; }
#plan-detail-page .pd-figure__foot { color: #8B96A3; }
#plan-detail-page .pd-figure__foot b { color: #3D4A5A; }

#plan-detail-page .pd-grid { gap: 12px 14px; margin-top: 10px; }
#plan-detail-page .pd-grid__cell span { font-size: 11px; color: #8B96A3; margin-bottom: 4px; }
#plan-detail-page .pd-grid__cell b { font-size: 13.5px; color: #0F172A; }

#plan-detail-page .pd-meta { margin-top: 18px; padding-top: 16px; }
#plan-detail-page .pd-meta__cell span { font-size: 11px; color: #8B96A3; margin-bottom: 5px; }
#plan-detail-page .pd-meta__cell b { font-size: 14px; }
#plan-detail-page .pd-record { margin-top: 10px; color: #8B96A3; }
#plan-detail-page .pd-record b { color: #3D4A5A; }

#plan-detail-page .plan-detail-desc {
  font-size: 12px; line-height: 1.75; color: #5A6775;
  margin: 18px 0 10px; padding-top: 16px;
}
#plan-detail-page .plan-side-note { font-size: 11px; line-height: 1.8; color: #9AA5B1; }

#plan-detail-page .plan-points { margin-top: 22px; padding-top: 18px; }
#plan-detail-page .plan-points__head { margin-bottom: 12px; }
#plan-detail-page .plan-points__head span { font-size: 12.5px; color: #3D4A5A; }
#plan-detail-page .plan-points__head b { font-size: 20px; color: #A16207; }
#plan-detail-page .plan-points__head em { color: #9AA5B1; }
#plan-detail-page .plan-points__steps { gap: 8px; }
#plan-detail-page .plan-points__steps span {
  padding: 9px 4px; border-radius: 9px; font-size: 10.5px; line-height: 1.45; color: #8B96A3;
  border-color: #EAF0F3;
}
#plan-detail-page .plan-points__steps em { font-size: 11.5px; margin-top: 2px; }
#plan-detail-page .plan-points__steps .is-done { color: #fff; }
#plan-detail-page .plan-points__steps .is-next { color: #A16207; }
#plan-detail-page .plan-points__tip { margin-top: 12px; font-size: 11.5px; line-height: 1.75; color: #5A6775; }
#plan-detail-page .plan-points__tip b { color: #A16207; }

/* ============ 积分商城 ============ */
#shop-page .shop-title { padding-top: 0 !important; padding-bottom: 0 !important; }
#shop-page .shop-hero { display: flex; align-items: flex-start; justify-content: space-between; gap: 28px; flex-wrap: wrap; }
#shop-page .shop-hero__left { max-width: 560px; min-width: 280px; flex: 1 1 420px; }
#shop-page .shop-kicker { display: inline-flex; align-items: center; gap: 7px; height: 24px; padding: 0 10px; border-radius: 6px;
  background: var(--dc-brand-soft); color: var(--dc-brand-dark); border: 1px solid var(--dc-brand-border); font-size: 12px; font-weight: 600; }
#shop-page .shop-kicker i { width: 5px; height: 5px; border-radius: 50%; background: var(--dc-brand-2); }
#shop-page .shop-hero__left h2 { font-size: 26px; font-weight: 700; letter-spacing: -.02em; margin: 14px 0 10px; color: var(--dc-text-strong); line-height: 1.25; }
#shop-page .shop-sub { font-size: 13.5px; line-height: 1.75; color: #5A6775; margin: 0; }

#shop-page .shop-bal { width: 300px; flex: none; border-radius: 16px; border: 1px solid var(--dc-brand-border);
  background: linear-gradient(180deg, #F4FDF9 0%, #EAF9F2 100%); padding: 18px 20px 16px; }
#shop-page .shop-bal__label { font-size: 11.5px; color: #5E8A80; letter-spacing: .04em; }
#shop-page .shop-bal__row { display: flex; align-items: baseline; gap: 8px; margin: 6px 0 4px; }
#shop-page .shop-bal__row strong { font-size: 34px; font-weight: 700; letter-spacing: -.03em; color: var(--dc-brand-dark); line-height: 1; }
#shop-page .shop-bal__row span { font-size: 12px; color: #5E8A80; font-weight: 600; }
#shop-page .shop-bal__meta { font-size: 11.5px; color: #6C8F87; }
#shop-page .shop-bal__bar { height: 5px; border-radius: 3px; background: #D8EFE6; margin: 12px 0 8px; overflow: hidden; }
#shop-page .shop-bal__bar i { display: block; height: 5px; border-radius: 3px; background: var(--dc-brand); transition: width .3s; }
#shop-page .shop-bal__tip { font-size: 11.5px; color: #6C8F87; line-height: 1.6; }
#shop-page .shop-bal__tip b { color: var(--dc-brand-dark); font-weight: 700; }

#shop-page .shop-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin: 26px 0 20px; }
#shop-page .shop-tab { height: 34px; padding: 0 15px; border-radius: 8px; border: 1px solid var(--dc-border); background: #fff;
  font-size: 12.5px; color: #475569; display: inline-flex; align-items: center; text-decoration: none; }
#shop-page .shop-tab.is-on { background: var(--dc-brand); border-color: var(--dc-brand); color: #fff; font-weight: 600; }

#shop-page .shop-body { display: flex; gap: 20px; align-items: flex-start; }
#shop-page .shop-goods { flex: 1 1 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
#shop-page .shop-side { width: 306px; flex: none; display: flex; flex-direction: column; gap: 16px; }

#shop-page .shop-card { background: #fff; border: 1px solid var(--dc-border); border-radius: 14px; overflow: hidden; display: flex; flex-direction: column; }
#shop-page .shop-card__art { height: 104px; background: #FBFDFC; border-bottom: 1px solid var(--dc-border);
  display: flex; align-items: center; justify-content: center; overflow: hidden; }
#shop-page .shop-card__body { padding: 14px 15px 15px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
#shop-page .shop-card__name { font-size: 14px; font-weight: 650; letter-spacing: -.01em; display: flex; align-items: center; gap: 7px; flex-wrap: wrap; color: var(--dc-text-strong); }
#shop-page .shop-card__desc { font-size: 11.5px; line-height: 1.6; color: #8B96A3; min-height: 36px; }
#shop-page .shop-card__foot { display: flex; align-items: center; justify-content: space-between; margin-top: 6px; padding-top: 12px; border-top: 1px solid #F3F6F8; }
#shop-page .shop-price { display: flex; align-items: baseline; gap: 4px; }
#shop-page .shop-price b { font-size: 17px; font-weight: 700; color: #A16207; letter-spacing: -.02em; }
#shop-page .shop-price span { font-size: 11px; color: #8B96A3; }
#shop-page .shop-btn { height: 30px; padding: 0 14px; border-radius: 7px; font-size: 12px; font-weight: 600;
  display: inline-flex; align-items: center; background: var(--dc-brand); color: #fff; border: 1px solid var(--dc-brand); text-decoration: none; }
#shop-page .shop-btn:hover { background: var(--dc-brand-dark); color: #fff; }
#shop-page .shop-btn--have { background: var(--dc-brand-soft); color: var(--dc-brand-dark); border-color: var(--dc-brand-border); }
#shop-page .shop-btn--off { background: #fff; color: #A8B2BD; border-color: #E3E9ED; font-weight: 500; }
#shop-page .shop-chip { height: 18px; padding: 0 6px; border-radius: 4px; font-size: 10px; font-weight: 600;
  display: inline-flex; align-items: center; background: #F2F7F6; color: #5E8A80; border: 1px solid #E1EDEA; }
#shop-page .shop-chip--warm { background: #FDF7E9; color: #A16207; border-color: #F2E2C2; }

/* 商品插画 */
#shop-page .shop-art__ticket { width: 132px; height: 64px; background: #fff; border: 1px solid #E6ECE9; border-radius: 9px;
  box-shadow: 0 2px 6px rgba(15,118,110,.06); padding: 12px 12px; position: relative; }
#shop-page .shop-art__ticket b { font-size: 15px; font-weight: 700; color: var(--dc-brand-dark); }
#shop-page .shop-art__ticket-cut { position: absolute; left: 0; right: 34px; top: 0; bottom: 0; border-right: 1px dashed #DCE6E2; }
#shop-page .shop-art__ticket i { position: absolute; right: 9px; bottom: 8px; width: 24px; height: 24px; border-radius: 50%;
  border: 1.5px solid #BFE6DA; color: #2F9C86; font-style: normal; font-size: 11px; display: flex; align-items: center; justify-content: center; }
#shop-page .shop-art__stamp { width: 56px; height: 56px; border-radius: 50%; border: 2px solid var(--dc-brand);
  color: var(--dc-brand); font-size: 12px; font-weight: 700; letter-spacing: .06em; display: flex; align-items: center; justify-content: center; }
#shop-page .shop-art__cal { display: grid; grid-template-columns: repeat(7, 12px); gap: 5px; }
#shop-page .shop-art__cal i { width: 12px; height: 12px; border-radius: 3px; background: #E9EFEE; }
#shop-page .shop-art__cal i.on { background: var(--dc-brand-2); }
#shop-page .shop-art__cal i.keep { background: var(--dc-brand); }
#shop-page .shop-art__pin { display: flex; flex-direction: column; align-items: center; gap: 6px; }
#shop-page .shop-art__pin i { width: 30px; height: 38px; border-radius: 6px 6px 4px 4px; background: var(--dc-brand);
  clip-path: polygon(0 0, 100% 0, 100% 72%, 50% 100%, 0 72%); }
#shop-page .shop-art__pin b { font-size: 10.5px; color: #8B96A3; letter-spacing: .1em; font-weight: 600; }
#shop-page .shop-art__book { display: flex; flex-direction: column; gap: 5px; width: 74px; }
#shop-page .shop-art__book i { height: 9px; border-radius: 3px; }
#shop-page .shop-art__book i:nth-child(1) { width: 74px; background: var(--dc-brand); }
#shop-page .shop-art__book i:nth-child(2) { width: 62px; background: #7ED0BE; }
#shop-page .shop-art__book i:nth-child(3) { width: 70px; background: #C9E9DF; }
#shop-page .shop-art__boost { display: flex; flex-direction: column; align-items: center; gap: 2px; }
#shop-page .shop-art__boost b { font-size: 26px; font-weight: 800; color: var(--dc-brand); letter-spacing: -.03em; line-height: 1; }
#shop-page .shop-art__boost span { font-size: 9.5px; color: #8B96A3; letter-spacing: .08em; }

/* 侧栏 */
#shop-page .shop-panel { background: #fff; border: 1px solid var(--dc-border); border-radius: 14px; padding: 16px 17px; }
#shop-page .shop-panel__title { font-size: 12px; color: #8B96A3; letter-spacing: .04em; margin-bottom: 12px; }
#shop-page .shop-sum { display: flex; border-radius: 10px; background: #FAFCFB; border: 1px solid #F0F4F3; overflow: hidden; }
#shop-page .shop-sum__cell { flex: 1; padding: 11px 8px; text-align: center; }
#shop-page .shop-sum__cell + .shop-sum__cell { border-left: 1px solid #F0F4F3; }
#shop-page .shop-sum__cell b { display: block; font-size: 16px; font-weight: 700; letter-spacing: -.02em; color: var(--dc-text-strong); }
#shop-page .shop-sum__cell span { font-size: 10.5px; color: #8B96A3; }
#shop-page .shop-sum__cell:first-child b { color: var(--dc-brand); }
#shop-page .shop-rows { display: flex; flex-direction: column; }
#shop-page .shop-row { display: flex; align-items: center; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid #F4F7F8; font-size: 11.5px; }
#shop-page .shop-row:last-child { border-bottom: 0; padding-bottom: 2px; }
#shop-page .shop-row--empty { color: #A8B2BD; justify-content: flex-start; }
#shop-page .shop-row__l { display: flex; flex-direction: column; gap: 3px; }
#shop-page .shop-row__l b { font-weight: 600; font-size: 12px; color: #334155; }
#shop-page .shop-row__l span { color: #B9C2CC; font-size: 10.5px; }
#shop-page .shop-row__r { font-weight: 700; font-size: 12.5px; color: #A16207; }
#shop-page .shop-row__r i { font-style: normal; font-size: 10.5px; color: #B9C2CC; font-weight: 500; }
#shop-page .shop-don { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
#shop-page .shop-don b { font-size: 20px; font-weight: 700; color: #A16207; letter-spacing: -.02em; }
#shop-page .shop-don span { font-size: 11px; color: #8B96A3; }
#shop-page .shop-don em { font-style: normal; font-size: 11px; color: #8B96A3; display: block; width: 100%; }
#shop-page .shop-rules { display: flex; flex-direction: column; gap: 9px; }
#shop-page .shop-rule { display: flex; align-items: center; gap: 9px; font-size: 11.5px; color: #5A6775; }
#shop-page .shop-rule u { width: 24px; height: 22px; border-radius: 6px; background: var(--dc-brand-soft); border: 1px solid var(--dc-brand-border);
  text-decoration: none; font-size: 10px; font-weight: 700; color: var(--dc-brand-dark); display: flex; align-items: center; justify-content: center; flex: none; }
#shop-page .shop-rule em { font-style: normal; margin-left: auto; font-weight: 700; color: var(--dc-brand); font-size: 11.5px; }
#shop-page .shop-more { display: inline-block; margin-top: 12px; font-size: 11.5px; color: var(--dc-brand); text-decoration: none; }
#shop-page .shop-note { margin-top: 24px; padding: 13px 16px; border-radius: 10px; background: #FBFDFC; border: 1px solid #EEF2F1;
  font-size: 11.5px; line-height: 1.7; color: #8B96A3; }
#shop-page .shop-note b { color: #5E8A80; font-weight: 600; }
#shop-page .shop-empty { grid-column: 1 / -1; padding: 40px 0; text-align: center; font-size: 13px; color: #8B96A3; }
#shop-page .shop-empty a { color: var(--dc-brand); }

.shop-toast { position: fixed; left: 50%; bottom: 40px; transform: translate(-50%, 16px); opacity: 0; pointer-events: none;
  background: #0F172A; color: #fff; font-size: 13px; padding: 10px 18px; border-radius: 10px; z-index: 9999;
  transition: opacity .2s, transform .2s; }
.shop-toast.is-on { opacity: 1; transform: translate(-50%, 0); }
.shop-toast.is-bad { background: #B91C1C; }

@media (max-width: 1199px) {
  #shop-page .shop-goods { grid-template-columns: repeat(2, 1fr); }
  #shop-page .shop-side { width: 280px; }
}
@media (max-width: 991px) {
  #shop-page .shop-body { flex-wrap: wrap; }
  #shop-page .shop-side { width: 100%; }
  #shop-page .shop-bal { width: 100%; }
}
@media (max-width: 575px) {
  #shop-page .shop-goods { grid-template-columns: 1fr; }
  #shop-page .shop-hero__left h2 { font-size: 22px; }
}

/* 积分商城：去掉大 hero，改成薄面包屑条 */
#shop-page { padding-top: 34px; padding-bottom: 64px; }

/* 商城顶部余额条（页头已统一成站内大 hero，内容区不再重复标题） */
.shop-balbar {
  display: flex;
  align-items: center;
  gap: 26px;
  flex-wrap: wrap;
  padding: 16px 22px;
  margin-bottom: 26px;
  background: #F8FCFA;
  border: 1px solid #E6F0EB;
  border-radius: 14px;
}
.shop-balbar__num { display: flex; flex-direction: column; gap: 3px; }
.shop-balbar__label { font-size: 11.5px; color: #8E9BA1; letter-spacing: .06em; }
.shop-balbar__value { display: flex; align-items: baseline; }
.shop-balbar__value strong {
  font-size: 30px; font-weight: 700; line-height: 1.05;
  color: var(--dc-brand); font-variant-numeric: tabular-nums;
}
.shop-balbar__value span { font-size: 12px; color: #8E9BA1; margin-left: 5px; }
.shop-balbar__meta { font-size: 12.5px; color: #77868C; line-height: 1.7; }
.shop-balbar__right {
  margin-left: auto; min-width: 260px; flex: 0 1 360px;
  display: flex; flex-direction: column; gap: 7px;
}
.shop-balbar__bar { height: 5px; border-radius: 99px; background: #E7F0EB; overflow: hidden; }
.shop-balbar__bar i {
  display: block; height: 100%; border-radius: 99px;
  background: linear-gradient(90deg, var(--dc-brand-2), var(--dc-brand));
  transition: width .4s ease;
}
.shop-balbar__tip { font-size: 12.5px; color: #5D6D68; }
.shop-balbar__tip b { color: var(--dc-brand-dark); font-weight: 600; }
@media (max-width: 767px) {
  .shop-balbar { gap: 14px; padding: 15px 18px; }
  .shop-balbar__right { margin-left: 0; flex: 1 1 100%; min-width: 0; order: 3; }
}
.shop-crumb { display: none; }
/* 商城页面包屑：不做独立条，直接放进内容区顶部 */
.shop-crumb-inline { display: flex; align-items: center; gap: 7px; margin: 0 0 18px; font-size: 12.5px; line-height: 1; color: #9AA5AF; }
.shop-crumb-inline a { color: #7B8792; text-decoration: none; transition: color .18s; }
.shop-crumb-inline a i { color: var(--dc-brand); margin-right: 5px; }
.shop-crumb-inline a:hover { color: var(--dc-brand); }
.shop-crumb-inline__sep { color: #C4CDD4; }
.shop-crumb-inline__cur { color: #4A5860; }
#shop-page .shop-title { display: none; }
#shop-page .shop-more { background: none !important; border: 0 !important; height: auto !important; padding: 0 !important; box-shadow: none !important; }
#shop-page .shop-more:hover { color: var(--dc-brand-dark); }

/* ===== 已兑换的记录卡样式（积分商城） ===== */
#plan-detail-page #plan-log-list.is-card-ticket .plan-log-row {
  position: relative;
  border: 1px solid #E4EEE9;
  border-radius: 10px;
  background: #fff;
  padding: 12px 12px;
  margin-bottom: 9px;
  box-shadow: 0 1px 2px rgba(15, 118, 110, .04);
  border-bottom: 1px solid #E4EEE9;
}
#plan-detail-page #plan-log-list.is-card-ticket .plan-log-row:last-child { margin-bottom: 0; }
#plan-detail-page #plan-log-list.is-card-ticket .plan-log-row::before,
#plan-detail-page #plan-log-list.is-card-ticket .plan-log-row::after {
  content: ''; position: absolute; top: 50%; width: 12px; height: 24px;
  background: #F6F8F8; transform: translateY(-50%);
}
#plan-detail-page #plan-log-list.is-card-ticket .plan-log-row::before {
  left: -1px; border-radius: 0 12px 12px 0; border-right: 1px solid #E4EEE9;
}
#plan-detail-page #plan-log-list.is-card-ticket .plan-log-row::after {
  right: -1px; border-radius: 12px 0 0 12px; border-left: 1px solid #E4EEE9;
}
#plan-detail-page #plan-log-list.is-card-ticket .plan-log-amount::after {
  content: ''; display: inline-block; margin-left: 6px; width: 5px; height: 5px; border-radius: 50%;
  background: #E4EEE9; vertical-align: 1px;
}

#plan-detail-page #plan-log-list.is-card-stamp .plan-log-row {
  position: relative;
  padding: 14px 44px 14px 0;
  border-bottom: 1px solid #F0F4F1;
}
#plan-detail-page #plan-log-list.is-card-stamp .plan-log-row::after {
  content: '记'; position: absolute; right: 4px; top: 50%; transform: translateY(-50%) rotate(-9deg);
  width: 30px; height: 30px; border-radius: 50%; border: 1.5px solid rgba(15, 118, 110, .38);
  color: rgba(15, 118, 110, .5); font-size: 11px; letter-spacing: .02em;
  display: flex; align-items: center; justify-content: center;
}

/* ===== 我的目标：分页器 ===== */
.plan-pager {
  display: flex; align-items: center; justify-content: center; flex-wrap: wrap;
  gap: 6px; margin: 30px 0 6px;
}
.plan-pager__info { font-size: 12.5px; color: #8B96A3; margin-right: 10px; letter-spacing: .02em; }
.plan-pager__gap { color: #A7B2BC; font-size: 13px; padding: 0 2px; }
.plan-pager__btn {
  min-width: 33px; height: 33px; padding: 0 9px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid #DCE6E3; border-radius: 9px;
  background: #fff; color: #33413D; font-size: 13.5px; line-height: 1;
  font-variant-numeric: tabular-nums; cursor: pointer;
  transition: border-color .18s, color .18s, background .18s;
}
.plan-pager__btn:hover { border-color: var(--dc-brand-border); color: var(--dc-brand-dark); background: #F7FBFA; }
.plan-pager__btn.is-on { background: var(--dc-brand); border-color: var(--dc-brand); color: #fff; font-weight: 600; }
.plan-pager__btn[disabled] { opacity: .4; cursor: default; background: #fff; color: #93A0AA; }
@media (max-width: 575px) {
  .plan-pager { margin: 22px 0 4px; }
  .plan-pager__info { width: 100%; text-align: center; margin: 0 0 6px; }
}

/* ===== 新建计划弹窗：排版优化 ===== */
#plan-modal .plan-dialog {
  max-width: 560px;
  border-radius: 18px;
  box-shadow: 0 30px 70px rgba(20, 40, 35, .20);
}
#plan-modal .plan-dialog-head {
  padding: 24px 30px 6px;
  border-bottom: 0;
}
#plan-modal .plan-dialog-head h5 {
  font-size: 19px;
  font-weight: 700;
  color: #12211D;
  letter-spacing: .01em;
}
#plan-modal .plan-dialog-close {
  color: #9AA5AB;
  font-size: 17px;
  padding: 6px;
  border-radius: 8px;
  transition: color .18s, background .18s;
}
#plan-modal .plan-dialog-close:hover { color: var(--dc-brand); background: #F2F7F5; }

#plan-modal .plan-dialog-body { padding: 12px 30px 8px; }
#plan-modal .plan-dialog-foot {
  padding: 16px 30px 22px;
  gap: 12px;
  border-top: 1px solid #F0F4F2;
  background: #FCFDFC;
}

/* 字段 */
#plan-modal .plan-field { margin-bottom: 20px; min-width: 0; }
#plan-modal .plan-field > span {
  font-size: 13px;
  font-weight: 500;
  color: #3B4A45;
  margin-bottom: 8px;
}
#plan-modal .plan-field > span em { color: #DC5B4E; }
#plan-modal .plan-field > span b {
  font-weight: 400;
  font-size: 11.5px;
  color: #8A979D;
  background: #F1F6F4;
  border-radius: 5px;
  padding: 2px 7px;
  margin-left: 8px;
  vertical-align: 1px;
}
#plan-modal .plan-field input,
#plan-modal .plan-field textarea {
  height: 46px;
  padding: 0 14px;
  border-radius: 9px;
  border-color: #E2E9E6;
  font-size: 14px;
  color: #16211E;
  background: #fff;
}
#plan-modal .plan-field textarea {
  height: auto;
  padding: 12px 14px;
  line-height: 1.7;
  resize: vertical;
}
#plan-modal .plan-field input::placeholder,
#plan-modal .plan-field textarea::placeholder { color: #A9B4BA; }
#plan-modal .plan-field input:focus,
#plan-modal .plan-field textarea:focus {
  border-color: var(--dc-brand);
  box-shadow: 0 0 0 3px rgba(15, 118, 110, .10);
}

/* 两列字段：等宽、间距一致，避免"天"后缀把左列撑宽 */
#plan-modal .plan-field-row {
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  align-items: start;
  margin-bottom: 20px;
}
#plan-modal .plan-field-row > .plan-field { margin-bottom: 0; min-width: 0; }
#plan-modal .plan-field-row.is-three { grid-template-columns: 1fr 1fr 1fr; }

#plan-modal .plan-count-input {
  height: 46px;
  border-radius: 9px;
  border-color: #E2E9E6;
}
#plan-modal .plan-count-input input {
  height: 44px;
  min-width: 0;
  padding: 0 14px;
}
#plan-modal .plan-count-input b {
  padding: 0 15px;
  background: #F6FAF8;
  border-left-color: #E2E9E6;
  color: #7C8A90;
}

#plan-modal .plan-field-tip {
  margin-top: 7px;
  font-size: 12px;
  color: #93A0A6;
  line-height: 1.5;
}

/* 类型：一行排满，不再出现孤零零的第 5 个 */
#plan-modal .plan-type-chips {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(88px, 1fr));
  gap: 8px;
  margin: 2px 0 6px;
  width: 100%;
}
#plan-modal .plan-type-chips .plan-type-chip {
  padding: 9px 0;
  text-align: center;
  border-radius: 9px;
  border-color: #E2E9E6;
  font-size: 13.5px;
  color: #44534E;
  background: #fff;
}
#plan-modal .plan-type-chips .plan-type-chip:hover {
  background: #F4FAF8;
  border-color: var(--dc-brand-border);
  color: var(--dc-brand-dark);
}
#plan-modal .plan-type-chips .plan-type-chip.is-active {
  background: var(--dc-brand);
  border-color: var(--dc-brand);
  color: #fff;
  font-weight: 600;
  box-shadow: 0 6px 14px rgba(15, 118, 110, .18);
}

/* 底部按钮等高 */
#plan-modal .plan-dialog-foot .btn-outline,
#plan-modal .plan-dialog-foot .theme-btn {
  height: 44px;
  line-height: 42px;
  padding: 0 30px;
  border-radius: 9px;
  font-size: 14.5px;
  font-weight: 600;
}
#plan-modal .plan-dialog-foot .btn-outline {
  border-color: #DDE6E2;
  color: #4A5854;
  background: #fff;
}
#plan-modal .plan-dialog-foot .btn-outline:hover {
  border-color: var(--dc-brand-border);
  color: var(--dc-brand-dark);
  background: #F7FBFA;
}
#plan-modal .plan-dialog-foot .theme-btn { box-shadow: 0 8px 18px rgba(15, 118, 110, .18); }

@media (max-width: 640px) {
  #plan-modal .plan-dialog-body { padding: 10px 18px 6px; }
  #plan-modal .plan-dialog-head { padding: 20px 18px 6px; }
  #plan-modal .plan-dialog-foot { padding: 14px 18px 18px; }
  #plan-modal .plan-field-row,
  #plan-modal .plan-field-row.is-three { grid-template-columns: 1fr; gap: 14px; }
  #plan-modal .plan-type-chips { grid-template-columns: repeat(3, 1fr); }
  #plan-modal .plan-dialog-foot .btn-outline { padding: 0 20px; }
  #plan-modal .plan-dialog-foot .theme-btn { flex: 1 1 auto; padding: 0 20px; }
}

/* 弹窗内滚动条收细，不要系统粗灰条 */
#plan-modal .plan-dialog-body { scrollbar-width: thin; scrollbar-color: #D7E2DE transparent; }
#plan-modal .plan-dialog-body::-webkit-scrollbar { width: 6px; }
#plan-modal .plan-dialog-body::-webkit-scrollbar-track { background: transparent; }
#plan-modal .plan-dialog-body::-webkit-scrollbar-thumb { background: #D7E2DE; border-radius: 3px; }
#plan-modal .plan-dialog-body::-webkit-scrollbar-thumb:hover { background: #BFD0CA; }

/* 商城：说明行 + 余额卡（放到右侧栏顶部，与商品区同高起步） */
#shop-page .shop-lede {
  margin: 0 0 18px;
  font-size: 12.5px;
  line-height: 1.8;
  color: #8B96A3;
  max-width: 720px;
}
#shop-page .shop-side .shop-bal { width: 100%; }
#shop-page .shop-bal {
  border-radius: 16px;
  padding: 18px 20px 16px;
  background: linear-gradient(180deg, #F4FDF9 0%, #ECFAF3 100%);
  border: 1px solid var(--dc-brand-border);
  box-shadow: 0 2px 10px rgba(15, 118, 110, .04);
}
#shop-page .shop-bal__bar { margin: 14px 0 9px; }

/* 窄屏：余额卡提到货架上方单列显示，宽屏仍留在右栏 */
#shop-page .shop-bal--mobile { display: none; margin-bottom: 18px; }
@media (max-width: 1199px) {
  #shop-page .shop-bal--mobile { display: block; }
  #shop-page .shop-side .shop-bal { display: none; }
}

/* 导航加入「积分商城」后收紧项间距，保证 1200 以上单行 */
.header2 .main-menu ul li { margin: 0 15px; }
@media only screen and (min-width: 1400px) and (max-width: 1600px) {
  .header2 .main-menu ul li { margin: 0 15px; }
}
@media only screen and (min-width: 992px) and (max-width: 1199px) {
  .header2 .main-menu ul li { margin: 0 8px; }
  .header2 .main-menu ul li a { font-size: 14px; }
}

/* 从列表页「去记一笔」跳过来时，锚点不要被固定顶栏压住 */
#log-form-card { scroll-margin-top: 130px; }

/* 目标名称可点进详情：给一点可点的暗示 */
.plan-card .artist-name a[data-plan-title],
.artist-name a[data-plan-title] { cursor: pointer; transition: color .15s ease; }
.artist-name a[data-plan-title]:hover { color: var(--dc-brand); text-decoration: underline; text-underline-offset: 3px; }

/* 导航再加「同行者广场」后，再收一档间距，保证 1200 以上单行 */
.header2 .main-menu ul li { margin: 0 10px; }
@media only screen and (min-width: 992px) and (max-width: 1199px) {
  .header2 .main-menu ul li { margin: 0 6px; }
  .header2 .main-menu ul li a { font-size: 13px; }
}

/* 侧栏「目标总览」：主数字 + 进度条 + 两列金额 */
.plan-ov { padding: 22px 22px 18px; }
.plan-ov .sidebar__widget-title { margin-bottom: 16px; }
.plan-ov__hero { display: flex; align-items: baseline; gap: 8px; }
.plan-ov__hero b {
  font-size: 32px;
  line-height: 1.1;
  font-weight: 800;
  letter-spacing: -0.5px;
  color: var(--clr-common-heading);
}
.plan-ov__hero span { font-size: 12px; color: #94A3B8; }
.plan-ov .plan-bar--sm { height: 8px; margin-top: 12px; background: #EEF2F7; }
.plan-ov .plan-bar--sm i { background: linear-gradient(90deg, var(--dc-success), #38A67F); }
.plan-ov__pair {
  display: flex;
  gap: 14px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid #F1F4F8;
}
.plan-ov__cell { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.plan-ov__cell span { font-size: 12px; color: #94A3B8; line-height: 1.4; }
.plan-ov__cell b {
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-common-heading);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* 侧栏「积分与广场」：合并两张提示卡，行式轻量排版 */
.plan-more { padding: 22px 22px 18px; }
.plan-more .sidebar__widget-title { margin-bottom: 12px; }
.plan-more__row { padding: 14px 0; border-top: 1px solid #F1F4F8; }
.plan-more__row:first-of-type { border-top: 0; padding-top: 2px; }
.plan-more__row:last-of-type { padding-bottom: 2px; }
.plan-more__head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.plan-more__head b { font-size: 14px; font-weight: 700; color: var(--clr-common-heading); }
.plan-more__head a { font-size: 12px; font-weight: 500; color: var(--dc-brand); white-space: nowrap; text-decoration: none; }
.plan-more__head a:hover { opacity: .72; }
.plan-more__row p { margin: 7px 0 0; font-size: 12.5px; line-height: 1.75; color: #94A3B8; }

/* 侧栏统一小标题：品牌竖条替代模板黑色粗下划线 */
.page-sidebar .sidebar__widget-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--clr-common-heading);
  padding-bottom: 0;
  margin-bottom: 14px !important;
  display: flex;
  align-items: center;
}
.page-sidebar .sidebar__widget-title::after {
  content: "";
  position: static;
  order: -1;
  width: 3px;
  height: 13px;
  border-radius: 2px;
  margin-right: 8px;
  background: var(--dc-brand);
}

/* 侧栏「使用说明」：编号短句替代整段文字 */
.plan-help { display: flex; flex-direction: column; gap: 11px; }
.plan-help__item { display: flex; gap: 8px; font-size: 12.5px; line-height: 1.7; color: #64748B; }
.plan-help__item i {
  flex: none;
  width: 16px;
  height: 16px;
  margin-top: 2px;
  border-radius: 5px;
  background: rgba(20, 150, 120, .10);
  color: var(--dc-brand);
  font-size: 11px;
  font-style: normal;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
.plan-help__item b { color: #334155; font-weight: 600; margin-right: 5px; }

/* 目标卡头像：无关键词时用名称首字 + 同名字固定底色 */
.plan-card .plan-avatar--mono {
  border-radius: 50%;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1;
  background: #EAF7F2;
  color: #0F7A6B;
}
.plan-card .plan-avatar--mono[data-tone="1"] { background: #EBF1FE; color: #3B6FD4; }
.plan-card .plan-avatar--mono[data-tone="2"] { background: #FFF3E2; color: #B26A00; }
.plan-card .plan-avatar--mono[data-tone="3"] { background: #F0EDFD; color: #6B5BD2; }
.plan-card .plan-avatar--mono[data-tone="4"] { background: #EDF1F6; color: #5A6B80; }

/* 目标卡标题行：名称与进度徽标同基线，日期行做轻重层级 */
.plan-card .name-post-time .artist-name {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;
  margin-bottom: 6px;
  font-size: 19px;
  letter-spacing: -0.2px;
  color: #16202B;
}
.plan-card .name-post-time .artist-name a[data-plan-title] {
  font-weight: 700;
  line-height: 1.25;
}
.plan-card .plan-half-badge {
  margin-left: 0;
  padding: 2px 9px;
  font-size: 11.5px;
  line-height: 1.6;
}
.plan-card .post-date-time { gap: 0; align-items: center; }
.plan-card .plan-countdown { font-size: 13px; color: #8D99A8; font-weight: 500; }
.plan-card .plan-countdown b {
  color: var(--dc-brand-dark);
  font-size: 15px;
  font-weight: 700;
  margin: 0 3px;
  font-variant-numeric: tabular-nums;
}
.plan-card .post-time { font-size: 12.5px; color: #B3BCC8; padding-left: 12px; margin-left: 12px; }
.plan-card .post-time.item-border-before:before { background: #E8EDF3; }
.plan-card .post-date:not(.plan-countdown) { font-size: 13px; color: #B3BCC8; font-weight: 500; }

/* ============ 手机版（≤767px）：只在窄屏生效，PC 与平板不受影响 ============ */
@media (max-width: 991px) {
  .plan-main-col { order: 1; }
  .plan-side-col { order: 2; }
}

@media (max-width: 767px) {
  /* 卡片内边距收紧 */
  .plan-card .q-single-content { padding: 18px 14px 8px; }
  /* 头部：头像 + 名称 + 记一笔 同一行，不再整行占位 */
  .plan-card .author-name-time { flex-wrap: nowrap; align-items: flex-start; gap: 10px; }
  .plan-card .name-post-time { min-width: 0; flex: 1 1 auto; }
  .plan-card .name-post-time .artist-name { font-size: 17px; margin-bottom: 4px; flex-wrap: nowrap; }
  .plan-card .artist-name a[data-plan-title] {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .plan-card .plan-half-badge { flex: 0 0 auto; font-size: 11px; padding: 1px 7px; }
  .plan-card .plan-head-btn {
    flex: 0 0 auto;
    margin-left: auto;
    height: 32px;
    padding: 0 12px;
    font-size: 13px;
    border-radius: 10px;
  }
  .plan-card .plan-head-btn-plus { font-size: 13px; }

  /* 卡底：金额三格一行，操作按钮改底部横排整行 */
  .plan-card .q-meta-content { flex-wrap: wrap; }
  .plan-card .q-meta-content .q-meta-item { flex: 1 1 0; min-width: 0; padding: 8px 6px; }
  .plan-card .q-meta-content .q-meta-item:nth-last-child(2) { border-right: 0; }
  .plan-card .q-meta-content .q-meta-item.plan-card-actions {
    flex: 1 0 100%;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    min-height: 0;
    height: auto;
    padding: 10px 14px;
    border-right: 0;
    gap: 8px;
    text-align: left;
  }
  .plan-card .plan-card-actions .plan-row-btn {
    flex: 1 1 0;
    height: 34px;
    line-height: 32px;
    font-size: 13px;
  }
  .plan-card .q-meta-likes,
  .plan-card .q-meta-shares { font-size: 14px; }

  /* 卡片节奏 */
  .plan-card { margin-bottom: 18px; }
  .plan-card .tags-list.post-inner-tags { margin-bottom: 12px; }

  /* 侧栏排到列表之后，并收紧内部留白 */
  .plan-side-col .page-sidebar { margin-top: 26px; }
  .plan-side-widget { padding: 20px 18px 16px; border-radius: 14px; }
  .plan-ov__hero b { font-size: 28px; }
}

@media (max-width: 375px) {
  .plan-card .q-meta-likes,
  .plan-card .q-meta-shares { font-size: 13px; }
  .plan-card .q-meta-type { font-size: 11px; }
  .plan-card .name-post-time .artist-name { font-size: 16px; }
}

/* 手机版补丁：日期行不换行，头像与按钮再收一档，给名称留宽度 */
@media (max-width: 767px) {
  .plan-card .plan-avatar { width: 46px; height: 46px; font-size: 17px; }
  .plan-card .plan-avatar--mono { font-size: 17px; }
  .plan-card .name-post-time .artist-name { font-size: 16px; }
  .plan-card .post-date-time { white-space: nowrap; overflow: hidden; }
  .plan-card .plan-countdown { font-size: 12px; }
  .plan-card .plan-countdown b { font-size: 13px; margin: 0 2px; }
  .plan-card .post-time {
    font-size: 11.5px;
    padding-left: 8px;
    margin-left: 8px;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .plan-card .plan-head-btn { height: 30px; padding: 0 10px; font-size: 12.5px; border-radius: 9px; }
}

/* 手机版：筛选区改两列 + 搜索整行，标题与段落留白收紧 */
@media (max-width: 767px) {
  .plan-hero-title { font-size: 26px !important; padding-bottom: 18px !important; }
  #plan-page { padding-top: 22px; padding-bottom: 44px; }
  #plan-page .forum-search-bar .filter-by-search { flex-wrap: wrap; gap: 10px; }
  #plan-page .forum-search-bar .filter-by-search .question-category-select {
    flex: 1 1 calc(50% - 5px);
    width: auto;
    min-width: 0;
  }
  #plan-page .forum-search-bar .filter-by-search .filter-search-input-forum { flex: 1 1 100%; }
  .create-question-wrapper { margin-bottom: 22px !important; }
  .create-question-btn { width: 100%; }
}

/* 手机版：目标页头部装饰图与超大上留白收掉，避免压住副标语 */
@media (max-width: 767px) {
  .plan-title-area { padding-top: 96px !important; }
  .plan-title-area .f-shape-1,
  .plan-title-area .f-shape-2 { display: none !important; }
}

/* 手机版：目标页 header 里的 logo 居中（PC/平板不受影响） */
@media (max-width: 767px) {
  .plan-header .container { position: relative; }
  .plan-header .row { position: relative; min-height: 40px; }
  .plan-header .header-main-left .header-logo {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    margin: 0;
    z-index: 5;
  }
}

/* 手机版：目标详情页（仅 ≤767px 生效，PC 不受影响） */
@media (max-width: 767px) {
  .plan-detail-hero { padding-top: 96px !important; }
  .plan-detail-hero .f-shape-1,
  .plan-detail-hero .f-shape-2 { display: none !important; }
  .plan-detail-hero h3 { font-size: 22px !important; padding-bottom: 0 !important; margin: 0 !important; }
  .plan-log-form { grid-template-columns: 1fr !important; gap: 12px !important; }
  .plan-log-form input { width: 100% !important; max-width: 100% !important; min-width: 0 !important; height: 48px !important; line-height: 48px !important; font-size: 16px !important; }
  .plan-log-form .theme-btn { width: 100% !important; height: 48px !important; }
  .plan-days__cells { flex-wrap: nowrap !important; gap: 4px !important; }
  .plan-days__cell { width: 16px !important; height: 16px !important; flex: 0 0 16px !important; border-radius: 5px !important; }
  .plan-log-head-row { display: none !important; }
  #plan-detail-page .about-info-area { padding-bottom: 30px !important; }
  .plan-detail-header { padding: 10px 0 !important; }
  .plan-detail-header .header-logo img { max-height: 38px !important; }
  /* 头部：logo 居中，左侧汉堡，右侧账号图标 */
  .plan-detail-header .container { position: relative; }
  .plan-detail-header .row { position: relative; min-height: 40px; }
  .plan-detail-header .header-logo {
    position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
    margin: 0 !important; z-index: 5;
  }
  .plan-detail-header .header-main-left { position: static; }
  .pd-menu-btn {
    position: absolute; left: 15px; top: 50%; transform: translateY(-50%);
    display: inline-flex; align-items: center; justify-content: center;
    width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%;
    background: #fff; color: var(--dc-brand-dark, #0f766e);
    border: 1px solid var(--dc-brand-soft, #d6eae4); font-size: 15px; z-index: 6;
  }
}

/* 手机版左侧导航抽屉（PC 隐藏） */
@media (min-width: 768px) {
  .pd-menu-btn { display: none !important; }
  .pd-drawer { display: none !important; }
}
@media (max-width: 767px) {
  .pd-menu-btn { display: inline-flex; }
  .pd-drawer { display: block; position: fixed; inset: 0; z-index: 9998; pointer-events: none; }
  .pd-drawer.is-open { pointer-events: auto; }
  .pd-drawer__mask {
    position: absolute; inset: 0; background: rgba(15, 23, 42, .22);
    opacity: 0; transition: opacity .2s ease;
  }
  .pd-drawer__panel {
    position: absolute; left: 0; top: 0; bottom: 0; width: 258px; max-width: 82%;
    background: linear-gradient(160deg, rgba(255, 255, 255, .94) 0%, rgba(238, 249, 244, .84) 100%);
    -webkit-backdrop-filter: blur(18px) saturate(170%);
    backdrop-filter: blur(18px) saturate(170%);
    border-right: 1px solid rgba(255, 255, 255, .7);
    box-shadow: 8px 0 30px rgba(13, 63, 56, .18);
    transform: translateX(-102%); transition: transform .24s ease;
    display: flex; flex-direction: column;
  }
  .pd-drawer.is-open .pd-drawer__mask { opacity: 1; }
  .pd-drawer.is-open .pd-drawer__panel { transform: translateX(0); }
  .pd-drawer__head {
    display: flex; align-items: center; justify-content: space-between;
    padding: 16px 16px 12px; border-bottom: 1px solid rgba(15, 118, 110, .12);
  }
  .pd-drawer__brand { font-size: 14px; font-weight: 700; color: #0f2b27; letter-spacing: -.2px; display: flex; align-items: center; gap: 8px; }
  .pd-drawer__brand::before {
    content: ''; width: 18px; height: 18px; border-radius: 6px; flex: none;
    background: linear-gradient(135deg, #0f766e 0%, #4fc3ad 100%);
    box-shadow: 0 3px 8px rgba(15, 118, 110, .3);
  }
  .pd-drawer__close {
    width: 32px; height: 32px; border: 0; border-radius: 10px;
    background: rgba(15, 118, 110, .08); color: #0f766e; font-size: 14px;
  }
  .pd-drawer__nav { padding: 8px 8px 16px; overflow-y: auto; }
  .pd-drawer__nav a {
    display: block; padding: 12px 14px; border-radius: 10px;
    font-size: 14px; color: #17332e; text-decoration: none;
  }
  .pd-drawer__nav a + a { margin-top: 2px; }
  .pd-drawer__nav a.is-active {
    background: linear-gradient(135deg, #0f766e 0%, #24a294 100%);
    color: #fff; font-weight: 600;
    box-shadow: 0 6px 16px rgba(15, 118, 110, .26);
  }
}

/* ============ 账号下拉面板（头部右下浮层，PC 与手机共用） ============ */
.du-asheet { display: none; }
.du-asheet.is-open { display: block; position: fixed; inset: 0; z-index: 9999; pointer-events: auto; }
.du-asheet__mask {
  position: absolute; inset: 0; background: rgba(15, 23, 42, .16);
  opacity: 0; pointer-events: none; transition: opacity .18s ease;
}
.du-asheet.is-open .du-asheet__mask { opacity: 1; pointer-events: auto; }
.du-asheet__panel {
  position: absolute; right: 12px; top: 70px;
  width: 280px; max-width: calc(100% - 24px);
  background: linear-gradient(158deg, rgba(255, 255, 255, .92) 0%, rgba(238, 249, 244, .82) 100%);
  -webkit-backdrop-filter: blur(18px) saturate(170%);
  backdrop-filter: blur(18px) saturate(170%);
  border-radius: 18px; padding: 12px;
  box-shadow: 0 18px 40px rgba(13, 63, 56, .22), 0 2px 8px rgba(13, 63, 56, .08);
  border: 1px solid rgba(255, 255, 255, .72);
  opacity: 0; transform: translateY(-8px) scale(.96); transform-origin: 100% 0;
  transition: opacity .16s ease, transform .2s ease;
}
.du-asheet.is-open .du-asheet__panel { opacity: 1; transform: none; }
.du-asheet__panel { display: block; }
.du-asheet__user {
  display: flex; align-items: center; gap: 10px;
  padding: 2px 2px 10px;
}
.du-asheet__avatar {
  width: 36px; height: 36px; border-radius: 50%;
  background: linear-gradient(135deg, #0f766e 0%, #2aa79a 100%);
  color: #fff; font-size: 15px; font-weight: 700;
  display: flex; align-items: center; justify-content: center; flex: none;
}
.du-asheet__meta { display: flex; flex-direction: column; min-width: 0; }
.du-asheet__meta strong { font-size: 14px; color: #12251f; line-height: 1.3; }
.du-asheet__meta small { font-size: 11px; color: #9aa8a3; margin-top: 1px; }
.du-asheet__points {
  position: relative; overflow: hidden;
  background: linear-gradient(135deg, #0f766e 0%, #1f9d90 52%, #4fc3ad 100%);
  border-radius: 14px; padding: 11px 13px 13px;
  box-shadow: 0 8px 18px rgba(15, 118, 110, .28);
}
.du-asheet__points-head {
  display: flex; align-items: center; justify-content: space-between;
  font-size: 12px; color: rgba(255, 255, 255, .82);
}
.du-asheet__points-head a { color: #fff; font-size: 12px; text-decoration: none; opacity: .94; }
.du-asheet__points-head a i { font-size: 11px; margin-left: 2px; }
.du-asheet__points::after {
  content: ''; position: absolute; right: -26px; top: -34px;
  width: 104px; height: 104px; border-radius: 50%;
  background: rgba(255, 255, 255, .16);
}
.du-asheet__points-val { display: flex; align-items: baseline; gap: 4px; margin-top: 4px; }
.du-asheet__points-val b {
  font-size: 28px; line-height: 1.15; color: #fff; font-weight: 800;
  letter-spacing: -.5px;
}
.du-asheet__points-val i { font-size: 12px; color: rgba(255, 255, 255, .78); font-style: normal; }
.du-asheet__list { padding: 6px 0 0; }
.du-asheet__item {
  display: flex; align-items: center; gap: 10px;
  padding: 11px 4px; font-size: 13.5px; color: #17332e; text-decoration: none;
  border-bottom: 1px solid rgba(15, 118, 110, .10);
}
.du-asheet__item:last-child { border-bottom: 0; padding-bottom: 2px; }
.du-asheet__item i { width: 18px; text-align: center; color: #5f726c; font-size: 13px; }
.du-asheet__item--danger { color: #dc4f49; }
.du-asheet__item--danger i { color: #dc4f49; }

@media (max-width: 767px) {
  .du-asheet__panel { width: 264px; padding: 12px; }
}
@media (min-width: 768px) {
  .du-asheet__panel { width: 300px; padding: 14px; }
  .du-asheet__item { padding: 12px 6px; font-size: 14px; }
}

/* ============ 手机版：隐藏页面标题区的装饰圆（PC 保留） ============ */
@media (max-width: 767px) {
  .f-shape-1,
  .f-shape-2 {
    display: none !important;
  }
}

/* ============ 新建目标主按钮（青绿渐变 + 半透明高光，全端统一） ============ */
.create-question-btn {
  background: linear-gradient(135deg,
    rgba(12, 100, 92, .96) 0%,
    rgba(34, 156, 143, .92) 52%,
    rgba(78, 192, 170, .90) 100%);
  border: 1px solid rgba(255, 255, 255, .34);
  border-radius: 12px;
  color: #fff;
  box-shadow: 0 10px 22px rgba(15, 118, 110, .26),
              inset 0 1px 0 rgba(255, 255, 255, .28);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.create-question-btn:before {
  background: rgba(255, 255, 255, .18);
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: 8px;
  color: #fff;
  top: 50%; margin-top: -20px;
}
.create-question-btn:hover,
.create-question-btn:active {
  background: linear-gradient(135deg,
    rgba(12, 100, 92, .96) 0%,
    rgba(34, 156, 143, .92) 52%,
    rgba(78, 192, 170, .90) 100%);
  border-color: rgba(255, 255, 255, .45);
  box-shadow: 0 12px 26px rgba(15, 118, 110, .30),
              inset 0 1px 0 rgba(255, 255, 255, .32);
  transform: translateY(-1px);
  color: #fff;
}
.create-question-btn:active { transform: translateY(0); filter: brightness(.97); }

/* ============ 全站主按钮统一：青绿渐变 + 半透明玻璃高光（全端生效） ============ */
:root {
  --du-grad-primary: linear-gradient(135deg,
    rgba(12, 100, 92, .96) 0%,
    rgba(34, 156, 143, .92) 52%,
    rgba(78, 192, 170, .90) 100%);
  --du-grad-shadow: 0 10px 22px rgba(15, 118, 110, .26), inset 0 1px 0 rgba(255, 255, 255, .28);
  --du-grad-shadow-hover: 0 12px 26px rgba(15, 118, 110, .30), inset 0 1px 0 rgba(255, 255, 255, .32);
}

/* 模板通用主按钮（默认实心青绿那版；白底/描边变体不动） */
.theme-btn:not(.theme-btn-white):not(.border-btn),
.theme-btn.theme_btn_bg {
  background: var(--du-grad-primary);
  border: 1px solid rgba(255, 255, 255, .30);
  color: #fff;
  border-radius: 10px;
  box-shadow: var(--du-grad-shadow);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.theme-btn:not(.theme-btn-white):not(.border-btn):hover,
.theme-btn.theme_btn_bg:hover {
  background: var(--du-grad-primary);
  border-color: rgba(255, 255, 255, .44);
  color: #fff;
  box-shadow: var(--du-grad-shadow-hover);
  transform: translateY(-1px);
}
.theme-btn:not(.theme-btn-white):not(.border-btn):active {
  transform: translateY(0);
  filter: brightness(.97);
}

/* 弹窗底部确认按钮 */
#plan-modal .plan-dialog-foot .theme-btn {
  background: var(--du-grad-primary);
  border-color: rgba(255, 255, 255, .30);
  color: #fff;
  box-shadow: var(--du-grad-shadow);
}

/* 积分商城购买按钮 */
#shop-page .shop-btn:not(.shop-btn--have):not(.shop-btn--off) {
  background: var(--du-grad-primary);
  border-color: rgba(255, 255, 255, .28);
  color: #fff;
  box-shadow: 0 4px 12px rgba(15, 118, 110, .22);
}
#shop-page .shop-btn:not(.shop-btn--have):not(.shop-btn--off):hover {
  background: var(--du-grad-primary);
  border-color: rgba(255, 255, 255, .42);
  color: #fff;
  filter: brightness(1.03);
}

/* 目标列表行内保存按钮 */
.plan-row-btn--save {
  background: var(--du-grad-primary);
  border-color: rgba(255, 255, 255, .26);
  color: #fff;
  box-shadow: 0 4px 12px rgba(15, 118, 110, .20);
}
.plan-row-btn--save:hover {
  background: var(--du-grad-primary);
  color: #fff;
  filter: brightness(1.03);
}

/* 结算 / 下一步类小胶囊按钮 */
.plan-settle__next-link {
  background: var(--du-grad-primary);
  border: 1px solid rgba(255, 255, 255, .26);
  color: #fff;
  box-shadow: 0 4px 12px rgba(15, 118, 110, .18);
}
.plan-settle__next-link:hover { color: #fff; filter: brightness(1.03); }

/* 目标卡片头部「记一笔」 */
.plan-head-btn {
  background: var(--du-grad-primary);
  border: 1px solid rgba(255, 255, 255, .26);
  color: #fff;
  box-shadow: 0 4px 12px rgba(15, 118, 110, .20);
}
.plan-head-btn:hover {
  background: var(--du-grad-primary);
  color: #fff;
  filter: brightness(1.03);
}

/* 抽屉内登录按钮 */
.side-auth-btn--solid {
  background: var(--du-grad-primary);
  border: 1px solid rgba(255, 255, 255, .28);
  color: #fff;
  box-shadow: 0 6px 14px rgba(15, 118, 110, .18);
}

/* 头部导航「注册」实心按钮 */
.auth-pill--solid {
  background: var(--du-grad-primary);
  border: 1px solid rgba(255, 255, 255, .30);
  color: #fff;
  box-shadow: 0 4px 12px rgba(15, 118, 110, .18);
}
.auth-pill--solid:hover {
  background: var(--du-grad-primary);
  color: #fff;
  border-color: rgba(255, 255, 255, .44);
  filter: brightness(1.03);
}

/* ============ 侧栏卡片：参考账号弹窗的玻璃渐变（目标总览重点改造） ============ */
.plan-side-widget,
.plan-ov {
  background: linear-gradient(158deg, rgba(255, 255, 255, .95) 0%, rgba(238, 249, 244, .88) 100%);
  border: 1px solid rgba(255, 255, 255, .72);
  border-radius: 18px;
  box-shadow: 0 14px 32px rgba(13, 63, 56, .10), 0 2px 6px rgba(13, 63, 56, .05);
  position: relative;
  overflow: hidden;
}
.plan-side-widget::after {
  content: "";
  position: absolute;
  right: -30px; top: -40px;
  width: 120px; height: 120px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(79, 195, 173, .22) 0%, rgba(79, 195, 173, 0) 70%);
  pointer-events: none;
}
.plan-side-widget > * { position: relative; z-index: 1; }

/* 主数字：品牌渐变字 */
.plan-ov__hero b {
  background: linear-gradient(135deg, #0f766e 0%, #1f9d90 52%, #4fc3ad 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}
.plan-ov__hero span { color: #7d9a92; }

/* 进度条：品牌色渐变 + 内高光 */
.plan-ov .plan-bar--sm {
  background: rgba(15, 118, 110, .08);
  border-radius: 99px;
  overflow: hidden;
  box-shadow: inset 0 1px 2px rgba(15, 118, 110, .08);
}
.plan-ov .plan-bar--sm i {
  background: linear-gradient(90deg, #0f766e 0%, #1f9d90 55%, #4fc3ad 100%);
  border-radius: 99px;
  box-shadow: 0 2px 6px rgba(15, 118, 110, .28);
}

/* 两列金额：上分隔线换成品牌淡色 */
.plan-ov__pair { border-top: 1px solid rgba(15, 118, 110, .12); }
.plan-ov__cell span { color: #7d9a92; }
.plan-ov__cell b { color: #12251f; }

/* ============ 目标卡片：玻璃渐变（与侧栏卡片、账号弹窗同一套） ============ */
.plan-card:not(.plan-card--done) {
  background: linear-gradient(158deg, rgba(255, 255, 255, .97) 0%, rgba(240, 250, 246, .90) 100%);
  border: 1px solid rgba(255, 255, 255, .78);
  border-radius: 18px;
  box-shadow: 0 16px 34px rgba(13, 63, 56, .09), 0 2px 6px rgba(13, 63, 56, .05);
}
.plan-card--done {
  border-radius: 18px;
  box-shadow: 0 16px 34px rgba(13, 63, 56, .09), 0 2px 6px rgba(13, 63, 56, .05);
}

/* 卡片内进度条：品牌色渐变 + 轻高光 */
.plan-card .plan-bar--full {
  background: rgba(15, 118, 110, .08);
  box-shadow: inset 0 1px 2px rgba(15, 118, 110, .08);
}
.plan-card .plan-bar--full i {
  background: linear-gradient(90deg, #0f766e 0%, #1f9d90 55%, #4fc3ad 100%);
  box-shadow: 0 2px 6px rgba(15, 118, 110, .26);
}

/* ============ 全站卡片统一：玻璃渐变 + 柔和描边投影（手机与 PC 一致） ============ */
.duservices__single,
.duprice,
.blog__item,
.du__docs-bottom-box,
.box-color,
.q-single-wrapper,
.sidebar__widget {
  background: linear-gradient(158deg, rgba(255, 255, 255, .97) 0%, rgba(240, 250, 246, .90) 100%);
  border: 1px solid rgba(255, 255, 255, .78);
  border-radius: 18px;
  box-shadow: 0 16px 34px rgba(13, 63, 56, .09), 0 2px 6px rgba(13, 63, 56, .05);
}
.duservices__single:hover {
  background: linear-gradient(158deg, rgba(255, 255, 255, .99) 0%, rgba(232, 247, 241, .94) 100%);
  box-shadow: 0 20px 40px rgba(13, 63, 56, .13), 0 2px 6px rgba(13, 63, 56, .06);
}
.blog__item-thumb { border-radius: 18px 18px 0 0; }

/* 定价卡：顶部分档标识沿用品牌渐变 */
.duprice__top .duprice-color,
.duprice .duprice-color {
  background: linear-gradient(135deg, #0f766e 0%, #1f9d90 52%, #4fc3ad 100%);
}

/* 侧栏卡片统一排版（文档中心 / 博客 / 常见问题共用） */
.sidebar__widget { padding: 22px; }
.sidebar__widget-title {
  font-size: 15px;
  font-weight: 700;
  color: #12251f;
  padding-bottom: 0;
  margin-bottom: 14px !important;
  display: flex;
  align-items: center;
}
.sidebar__widget-title::after {
  content: "";
  position: static;
  order: -1;
  width: 3px;
  height: 13px;
  border-radius: 2px;
  margin-right: 8px;
  background: linear-gradient(180deg, #0f766e, #4fc3ad);
  display: inline-block;
}

/* 列表页卡片内边距微调，保证圆角不切内容 */
.du__docs-bottom-box { padding: 26px 26px 20px; }

/* 常见问题 / 文档卡片 / 联系表单也走同一套玻璃卡片 */
.faq-content .accordion-item,
.featureds-3__content,
.du__contact-form,
.support-contact {
  background: linear-gradient(158deg, rgba(255, 255, 255, .97) 0%, rgba(240, 250, 246, .90) 100%);
  border: 1px solid rgba(255, 255, 255, .78);
  border-radius: 18px;
  box-shadow: 0 16px 34px rgba(13, 63, 56, .09), 0 2px 6px rgba(13, 63, 56, .05);
}
.faq-content .accordion-item { padding: 6px 22px; }

/* 联系表单输入框：品牌描边 + 柔和聚焦 */
.du__contact-form input,
.du__contact-form textarea,
.du__contact-form select {
  border: 1px solid rgba(15, 118, 110, .16);
  border-radius: 12px;
  background: rgba(255, 255, 255, .86);
}
.du__contact-form input:focus,
.du__contact-form textarea:focus,
.du__contact-form select:focus {
  border-color: rgba(15, 118, 110, .42);
  box-shadow: 0 0 0 3px rgba(15, 118, 110, .12);
  outline: none;
}

/* ============ 头部用户名胶囊：玻璃渐变（与全站风格统一） ============ */
.auth-user {
  background: linear-gradient(135deg, rgba(255, 255, 255, .96) 0%, rgba(236, 249, 244, .92) 100%);
  border: 1px solid rgba(15, 118, 110, .14);
  border-radius: 999px;
  box-shadow: 0 6px 16px rgba(13, 63, 56, .10), inset 0 1px 0 rgba(255, 255, 255, .8);
  color: #12251f;
  padding: 0 14px 0 4px;
  transition: box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}
.auth-user:hover {
  background: linear-gradient(135deg, rgba(255, 255, 255, .99) 0%, rgba(226, 246, 238, .95) 100%);
  border-color: rgba(15, 118, 110, .26);
  box-shadow: 0 8px 20px rgba(13, 63, 56, .14), inset 0 1px 0 rgba(255, 255, 255, .85);
  transform: translateY(-1px);
  color: #12251f;
}
.auth-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: linear-gradient(135deg, #0f766e 0%, #1f9d90 52%, #4fc3ad 100%);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  box-shadow: 0 2px 8px rgba(15, 118, 110, .28), inset 0 1px 0 rgba(255, 255, 255, .35);
}
.auth-name { font-weight: 600; }

/* ============ 页面头部（hero）背景统一：品牌淡青渐变 + 柔光晕 ============ */
.page-title__area {
  background: linear-gradient(160deg, #f4fbf9 0%, #e8f7f1 52%, #ddf2ea 100%);
  background-color: #eef9f4;
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.page-title__area::before {
  content: "";
  position: absolute;
  left: -120px;
  top: -140px;
  width: 460px;
  height: 460px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(79, 195, 173, .18) 0%, rgba(79, 195, 173, 0) 68%);
  pointer-events: none;
  z-index: 0;
}
.page-title__area::after {
  content: "";
  position: absolute;
  right: -140px;
  bottom: -190px;
  width: 520px;
  height: 520px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(15, 118, 110, .14) 0%, rgba(15, 118, 110, 0) 70%);
  pointer-events: none;
  z-index: 0;
}
.page-title__area .page__title-wrapper,
.page-title__area .container,
.page-title__area .breadcrumb__content { position: relative; z-index: 1; }
/* 头部里那两块灰色装饰图与新的品牌光晕冲突，隐藏 */
.page-title__area .f-shape-1,
.page-title__area .f-shape-2 { display: none; }

/* 首页大搜索区同样走这套淡青渐变（原来只有纯色底） */
.banner2-area,
.banner2 {
  background: linear-gradient(165deg, #f4fbf9 0%, #eaf8f2 55%, #ddf2ea 100%);
}

/* ============ 回到顶部按钮：品牌渐变圆环 + 玻璃底 ============ */
.progress-wrap {
  background: linear-gradient(135deg, rgba(255, 255, 255, .96) 0%, rgba(236, 249, 244, .92) 100%);
  box-shadow: inset 0 0 0 2px rgba(15, 118, 110, .16),
              0 8px 20px rgba(13, 63, 56, .12),
              inset 0 1px 0 rgba(255, 255, 255, .85);
  transition: transform .18s ease, box-shadow .18s ease, opacity .2s linear, visibility .2s linear;
}
.progress-wrap.active-progress:hover {
  transform: translateY(-2px);
  box-shadow: inset 0 0 0 2px rgba(15, 118, 110, .26),
              0 12px 26px rgba(13, 63, 56, .16),
              inset 0 1px 0 rgba(255, 255, 255, .9);
}
.progress-wrap::after {
  color: #0f766e;
  font-size: 18px;
}
.progress-wrap svg.progress-circle path {
  stroke: #1f9d90;
  stroke-width: 3;
}

/* ============ 积分商城：与「我的目标」同风格（玻璃卡 + 品牌渐变） ============ */
#shop-page .shop-bal {
  background: linear-gradient(158deg, rgba(255, 255, 255, .95) 0%, rgba(238, 249, 244, .88) 100%);
  border: 1px solid rgba(255, 255, 255, .78);
  border-radius: 18px;
  box-shadow: 0 14px 32px rgba(13, 63, 56, .10), 0 2px 6px rgba(13, 63, 56, .05);
  position: relative;
  overflow: hidden;
}
#shop-page .shop-bal::after {
  content: "";
  position: absolute;
  right: -30px;
  top: -40px;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(79, 195, 173, .22) 0%, rgba(79, 195, 173, 0) 70%);
  pointer-events: none;
}
#shop-page .shop-bal__row strong {
  background: linear-gradient(135deg, #0f766e 0%, #1f9d90 55%, #4fc3ad 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
#shop-page .shop-bal__bar {
  background: rgba(15, 118, 110, .08);
  box-shadow: inset 0 1px 2px rgba(15, 118, 110, .08);
}
#shop-page .shop-bal__bar i {
  background: linear-gradient(90deg, #0f766e 0%, #1f9d90 55%, #4fc3ad 100%);
  box-shadow: 0 2px 6px rgba(15, 118, 110, .26);
}

/* 商品卡 */
#shop-page .shop-card {
  background: linear-gradient(158deg, rgba(255, 255, 255, .97) 0%, rgba(240, 250, 246, .90) 100%);
  border: 1px solid rgba(255, 255, 255, .78);
  border-radius: 18px;
  box-shadow: 0 16px 34px rgba(13, 63, 56, .09), 0 2px 6px rgba(13, 63, 56, .05);
  transition: transform .18s ease, box-shadow .18s ease;
}
#shop-page .shop-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 22px 44px rgba(13, 63, 56, .13), 0 3px 8px rgba(13, 63, 56, .07);
}
#shop-page .shop-card__art {
  background: linear-gradient(160deg, rgba(244, 251, 249, .95) 0%, rgba(232, 246, 240, .9) 100%);
  border-bottom: 1px solid rgba(15, 118, 110, .07);
}
#shop-page .shop-price b {
  background: linear-gradient(135deg, #0f766e 0%, #1f9d90 60%, #3fbb9f 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* 侧栏面板：与目标页侧栏卡一致 */
#shop-page .shop-panel {
  background: linear-gradient(158deg, rgba(255, 255, 255, .95) 0%, rgba(238, 249, 244, .88) 100%);
  border: 1px solid rgba(255, 255, 255, .78);
  border-radius: 18px;
  box-shadow: 0 14px 32px rgba(13, 63, 56, .10), 0 2px 6px rgba(13, 63, 56, .05);
  padding: 18px 20px 16px;
  position: relative;
  overflow: hidden;
}
#shop-page .shop-panel::after {
  content: "";
  position: absolute;
  right: -24px;
  top: -30px;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(79, 195, 173, .18) 0%, rgba(79, 195, 173, 0) 70%);
  pointer-events: none;
}
#shop-page .shop-panel__title {
  font-size: 15px;
  font-weight: 700;
  color: #12251f;
  letter-spacing: 0;
  padding-left: 11px;
  position: relative;
  margin-bottom: 12px;
}
#shop-page .shop-panel__title::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 15px;
  border-radius: 2px;
  background: linear-gradient(180deg, #0f766e, #4fc3ad);
}
#shop-page .shop-don b {
  background: linear-gradient(135deg, #0f766e 0%, #1f9d90 55%, #4fc3ad 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* 分类筛选：选中态改品牌渐变胶囊 */
#shop-page .shop-tab {
  border-radius: 999px;
  border: 1px solid rgba(15, 118, 110, .14);
  background: rgba(255, 255, 255, .92);
  color: #4a6b63;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, color .16s ease;
}
#shop-page .shop-tab:hover {
  border-color: rgba(15, 118, 110, .28);
  color: #0f766e;
}
#shop-page .shop-tab.is-on {
  background: linear-gradient(135deg, rgba(12, 100, 92, .96) 0%, rgba(34, 156, 143, .92) 52%, rgba(78, 192, 170, .90) 100%);
  border-color: rgba(255, 255, 255, .34);
  color: #fff;
  font-weight: 600;
  box-shadow: 0 8px 18px rgba(15, 118, 110, .22), inset 0 1px 0 rgba(255, 255, 255, .28);
}

#shop-page .shop-note {
  background: linear-gradient(158deg, rgba(255, 255, 255, .95) 0%, rgba(240, 250, 246, .88) 100%);
  border: 1px solid rgba(255, 255, 255, .78);
  border-radius: 16px;
  box-shadow: 0 10px 26px rgba(13, 63, 56, .07);
}

/* ============ 页面头部背景升级：玻璃质感叠层（纯静态渐变 + 细噪点，无模糊滤镜） ============ */
.page-title__area {
  background-color: #eaf7f2;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E"),
    linear-gradient(112deg, rgba(255, 255, 255, .60) 0%, rgba(255, 255, 255, .12) 32%, rgba(255, 255, 255, 0) 56%),
    radial-gradient(120% 95% at 12% 6%, rgba(79, 195, 173, .22) 0%, rgba(79, 195, 173, 0) 62%),
    radial-gradient(95% 80% at 90% 12%, rgba(15, 118, 110, .16) 0%, rgba(15, 118, 110, 0) 64%),
    radial-gradient(140% 110% at 50% 118%, rgba(255, 255, 255, .92) 0%, rgba(255, 255, 255, 0) 58%),
    linear-gradient(160deg, #f7fdfc 0%, #e9f8f2 48%, #dbece5 100%);
  background-repeat: repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat;
  background-size: 140px 140px, auto, auto, auto, auto, auto;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9), inset 0 -1px 0 rgba(255, 255, 255, .6);
}
/* 光晕层次微调：更柔、更大，形成玻璃后方的散光 */
.page-title__area::before {
  left: -160px;
  top: -180px;
  width: 560px;
  height: 560px;
  background: radial-gradient(circle, rgba(112, 214, 192, .22) 0%, rgba(112, 214, 192, .06) 42%, rgba(112, 214, 192, 0) 70%);
}
.page-title__area::after {
  right: -170px;
  bottom: -220px;
  width: 620px;
  height: 620px;
  background: radial-gradient(circle, rgba(15, 118, 110, .16) 0%, rgba(15, 118, 110, .05) 40%, rgba(15, 118, 110, 0) 72%);
}
/* 底部与内容区之间有块玻璃过渡带 */
.page-title__area .container { position: relative; }
.page-title__area::first-line { background: none; }

/* 首页搜索区同步升级 */
.banner2-area, .banner2 {
  background-color: #eaf7f2;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E"),
    linear-gradient(118deg, rgba(255, 255, 255, .58) 0%, rgba(255, 255, 255, .10) 36%, rgba(255, 255, 255, 0) 60%),
    radial-gradient(120% 95% at 10% 8%, rgba(79, 195, 173, .20) 0%, rgba(79, 195, 173, 0) 62%),
    radial-gradient(95% 85% at 92% 16%, rgba(15, 118, 110, .14) 0%, rgba(15, 118, 110, 0) 64%),
    linear-gradient(160deg, #f7fdfc 0%, #ebf8f3 52%, #ddf0e8 100%);
  background-repeat: repeat, no-repeat, no-repeat, no-repeat, no-repeat;
  background-size: 140px 140px, auto, auto, auto, auto;
}

/* ============ 我的目标：筛选 / 排序 / 搜索改成玻璃控件 ============ */
#plan-page .forum-search-bar .filter-by-search .question-category-select {
  border: 1px solid rgba(15, 118, 110, .14);
  border-radius: 12px;
  background-color: transparent;
  background-image:
    url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24'%3E%3Cpath d='M4 6h16M7 12h10M10 18h4' stroke='%230F766E' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E"),
    url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%2338BDA9' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E"),
    linear-gradient(158deg, rgba(255, 255, 255, .97) 0%, rgba(240, 250, 246, .90) 100%);
  background-repeat: no-repeat, no-repeat, no-repeat;
  background-position: 13px center, right 13px center, center;
  box-shadow: 0 6px 16px rgba(13, 63, 56, .07), inset 0 1px 0 rgba(255, 255, 255, .85);
  color: #12251f;
  transition: border-color .16s, box-shadow .16s, transform .16s;
}
#plan-page .forum-search-bar .filter-by-search .question-category-select:hover {
  border-color: rgba(15, 118, 110, .30);
  box-shadow: 0 8px 20px rgba(13, 63, 56, .10), inset 0 1px 0 rgba(255, 255, 255, .9);
}
#plan-page .forum-search-bar .filter-by-search .question-category-select:focus {
  border-color: rgba(15, 118, 110, .40);
  box-shadow: 0 0 0 3px rgba(15, 118, 110, .12), 0 8px 20px rgba(13, 63, 56, .10);
}

#plan-page .forum-search-bar .filter-by-search .filter-search-input-forum input {
  border: 1px solid rgba(15, 118, 110, .14);
  border-radius: 12px;
  background-color: transparent;
  background-image:
    url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='7' stroke='%236FA79D' stroke-width='2' fill='none'/%3E%3Cpath d='M16.5 16.5L21 21' stroke='%236FA79D' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"),
    linear-gradient(158deg, rgba(255, 255, 255, .97) 0%, rgba(243, 251, 247, .92) 100%);
  background-repeat: no-repeat, no-repeat;
  background-position: 13px center, center;
  box-shadow: 0 6px 16px rgba(13, 63, 56, .07), inset 0 1px 0 rgba(255, 255, 255, .85);
  color: #12251f;
  transition: border-color .16s, box-shadow .16s;
}
#plan-page .forum-search-bar .filter-by-search .filter-search-input-forum input::placeholder { color: #8eb0a6; }
#plan-page .forum-search-bar .filter-by-search .filter-search-input-forum input:hover {
  border-color: rgba(15, 118, 110, .30);
  box-shadow: 0 8px 20px rgba(13, 63, 56, .10), inset 0 1px 0 rgba(255, 255, 255, .9);
}
#plan-page .forum-search-bar .filter-by-search .filter-search-input-forum input:focus {
  border-color: rgba(15, 118, 110, .40);
  box-shadow: 0 0 0 3px rgba(15, 118, 110, .12), 0 8px 20px rgba(13, 63, 56, .10);
}
#plan-page .pc-search-clear {
  background: rgba(15, 118, 110, .08);
  color: #4a7f74;
}
#plan-page .pc-search-clear:hover { background: rgba(15, 118, 110, .14); color: #0f766e; }

/* ============ 目标详情页：整页玻璃化（与全站统一） ============ */
.plan-log-form-card,
.plan-log-card {
  background: linear-gradient(158deg, rgba(255, 255, 255, .97) 0%, rgba(240, 250, 246, .90) 100%);
  border: 1px solid rgba(255, 255, 255, .78);
  border-radius: 18px;
  box-shadow: 0 16px 34px rgba(13, 63, 56, .09), 0 2px 6px rgba(13, 63, 56, .05);
}
.plan-log-form-title,
.plan-log-title {
  font-size: 17px;
  font-weight: 700;
  color: #12251f;
  padding-left: 11px;
  position: relative;
}
.plan-log-form-title::before,
.plan-log-title::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 16px;
  border-radius: 2px;
  background: linear-gradient(180deg, #0f766e, #4fc3ad);
}

/* 表单输入：玻璃底 + 品牌聚焦环 */
.plan-log-form input {
  border: 1px solid rgba(15, 118, 110, .16);
  border-radius: 12px;
  background: rgba(255, 255, 255, .92);
  box-shadow: inset 0 1px 2px rgba(13, 63, 56, .04);
  color: #12251f;
  transition: border-color .16s, box-shadow .16s;
}
.plan-log-form input::placeholder { color: #8eb0a6; }
.plan-log-form input:hover { border-color: rgba(15, 118, 110, .30); }
.plan-log-form input:focus {
  border-color: rgba(15, 118, 110, .42);
  box-shadow: 0 0 0 3px rgba(15, 118, 110, .12);
  outline: none;
}

/* 收进 / 支出切换：渐变胶囊 */
#plan-detail-page .plan-log-mode {
  background: rgba(15, 118, 110, .06);
  border-radius: 999px;
  padding: 4px;
  display: inline-flex;
}
#plan-detail-page .plan-log-mode__btn {
  border-radius: 999px;
  color: #4a7f74;
  transition: color .16s, background .16s, box-shadow .16s;
}
#plan-detail-page .plan-log-mode__btn.is-active {
  background: linear-gradient(135deg, rgba(12, 100, 92, .96) 0%, rgba(34, 156, 143, .92) 52%, rgba(78, 192, 170, .90) 100%);
  color: #fff;
  font-weight: 600;
  box-shadow: 0 6px 14px rgba(15, 118, 110, .22), inset 0 1px 0 rgba(255, 255, 255, .28);
}

/* 本月打卡方块：品牌渐变实心 */
.plan-days__cell {
  background: rgba(15, 118, 110, .06);
  border: 1px solid rgba(15, 118, 110, .10);
}
.plan-days__cell.is-on {
  background: linear-gradient(135deg, #0f766e 0%, #1f9d90 60%, #4fc3ad 100%);
  border-color: transparent;
  box-shadow: 0 2px 6px rgba(15, 118, 110, .22);
}
.plan-days__cell.is-today {
  box-shadow: 0 0 0 2px rgba(15, 118, 110, .18);
}

/* 记录列表：表头淡青底、行内细青线、悬停微亮 */
.plan-log-head-row {
  padding: 10px 12px;
  border-bottom: 0;
  border-radius: 10px;
  background: rgba(15, 118, 110, .05);
  color: #5f857b;
  font-weight: 600;
}
.plan-log-row {
  padding: 14px 12px;
  border-bottom: 1px solid rgba(15, 118, 110, .08);
  border-radius: 10px;
  transition: background .16s;
}
.plan-log-row:hover { background: rgba(15, 118, 110, .045); }
.plan-log-row:last-child { border-bottom: 0; }
.plan-log-amount { color: #0f766e; }
.plan-log-empty i { color: #9ec8bd; }

/* 侧栏概要：标题与全站统一、主数字渐变 */
#plan-detail-page .plan-detail-summary > .sidebar__widget-title {
  font-size: 15px;
  font-weight: 700;
  color: #12251f;
  letter-spacing: 0;
  margin-bottom: 14px !important;
}
#plan-detail-page .pd-figure__head b {
  background: linear-gradient(135deg, #0f766e 0%, #1f9d90 55%, #4fc3ad 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
#plan-detail-page .pd-figure__pct {
  background: linear-gradient(135deg, #0f766e 0%, #1f9d90 60%, #4fc3ad 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
#plan-detail-page .pd-meta { border-top-color: rgba(15, 118, 110, .10); }
#plan-detail-page .pd-meta__cell + .pd-meta__cell { border-left-color: rgba(15, 118, 110, .10); }
#plan-detail-page .pd-meta__cell b,
#plan-detail-page .pd-grid__cell b { color: #12251f; }
#plan-detail-page .plan-detail-desc { border-top-color: rgba(15, 118, 110, .10); color: #5f7d75; }

/* ============ 同行者广场：与全站统一 ============ */
#plaza-page .plaza-head h4 {
  position: relative;
  padding-left: 11px;
  font-size: 19px;
  font-weight: 700;
  color: #12251f;
  letter-spacing: 0;
}
#plaza-page .plaza-head h4::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 17px;
  border-radius: 2px;
  background: linear-gradient(180deg, #0f766e, #4fc3ad);
}
#plaza-page .plaza-head h4 span {
  background: rgba(15, 118, 110, .08);
  color: #0f766e;
  border: 1px solid rgba(15, 118, 110, .14);
}
#plaza-page .plaza-head p { color: #5f7d75; }

/* 广场卡片：玻璃底 + 悬停上浮 */
#plaza-page .plaza-card {
  background: linear-gradient(158deg, rgba(255, 255, 255, .97) 0%, rgba(240, 250, 246, .90) 100%);
  border: 1px solid rgba(255, 255, 255, .78);
  border-radius: 18px;
  box-shadow: 0 16px 34px rgba(13, 63, 56, .09), 0 2px 6px rgba(13, 63, 56, .05);
  transition: transform .18s ease, box-shadow .18s ease;
}
#plaza-page .plaza-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 22px 40px rgba(13, 63, 56, .12), 0 2px 6px rgba(13, 63, 56, .06);
}
#plaza-page .plaza-card .plan-avatar {
  background: linear-gradient(135deg, #0f766e 0%, #1f9d90 52%, #4fc3ad 100%);
  color: #fff;
  box-shadow: 0 4px 12px rgba(15, 118, 110, .26), inset 0 1px 0 rgba(255, 255, 255, .35);
}
#plaza-page .plaza-card .artist-name a { color: #12251f; font-weight: 700; }
#plaza-page .plaza-card .post-date-time { color: #8eb0a6; }
#plaza-page .plaza-card .plan-card-detail { color: #12251f; font-weight: 600; }
#plaza-page .plaza-card .plan-pct { color: #0f766e; font-weight: 700; }

/* 加油按钮：主次分层 */
#plaza-page .plaza-cheer-btn {
  border: 1px solid rgba(255, 255, 255, .30);
  background: linear-gradient(135deg, rgba(12, 100, 92, .96) 0%, rgba(34, 156, 143, .92) 52%, rgba(78, 192, 170, .90) 100%);
  color: #fff;
  font-weight: 600;
  box-shadow: 0 8px 18px rgba(15, 118, 110, .24), inset 0 1px 0 rgba(255, 255, 255, .28);
  transition: transform .16s ease, box-shadow .16s ease, filter .16s ease;
}
#plaza-page .plaza-cheer-btn:hover {
  transform: translateY(-1px);
  filter: brightness(1.03);
  background: linear-gradient(135deg, rgba(12, 100, 92, .96) 0%, rgba(34, 156, 143, .92) 52%, rgba(78, 192, 170, .90) 100%);
  color: #fff;
}
#plaza-page .plaza-cheer-btn.is-done,
#plaza-page .plaza-cheer-btn.is-mine {
  background: rgba(255, 255, 255, .72);
  border: 1px solid rgba(15, 118, 110, .14);
  color: #6f8b84;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8);
  font-weight: 600;
}
#plaza-page .plaza-cheer-btn.is-ghost {
  background: rgba(255, 255, 255, .72);
  border-color: rgba(15, 118, 110, .14);
  color: #4a7f74;
  box-shadow: none;
}
#plaza-page .plaza-cheer-btn.is-ghost:hover {
  background: rgba(255, 255, 255, .92);
  border-color: rgba(15, 118, 110, .28);
  color: #0f766e;
  transform: none;
  filter: none;
}

/* 右侧说明卡：原来没有卡片外壳，补成玻璃卡 */
#plaza-page .plan-widget {
  background: linear-gradient(158deg, rgba(255, 255, 255, .95) 0%, rgba(238, 249, 244, .88) 100%);
  border: 1px solid rgba(255, 255, 255, .78);
  border-radius: 18px;
  padding: 22px 22px 20px;
  box-shadow: 0 14px 32px rgba(13, 63, 56, .10), 0 2px 6px rgba(13, 63, 56, .05);
  position: relative;
  overflow: hidden;
}
#plaza-page .plan-widget::after {
  content: "";
  position: absolute;
  right: -34px;
  top: -34px;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(79, 195, 173, .20) 0%, rgba(79, 195, 173, 0) 70%);
  pointer-events: none;
}
#plaza-page .plan-widget-title {
  position: relative;
  display: flex;
  align-items: center;
  font-size: 15px;
  font-weight: 700;
  color: #12251f;
  margin: 0 0 14px;
  padding-left: 11px;
}
#plaza-page .plan-widget-title::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 15px;
  border-radius: 2px;
  background: linear-gradient(180deg, #0f766e, #4fc3ad);
}
#plaza-page .plaza-rules { padding-left: 0; list-style: none; margin: 0; }
#plaza-page .plaza-rules li {
  position: relative;
  padding-left: 14px;
  font-size: 12.5px;
  line-height: 1.85;
  color: #5f7d75;
}
#plaza-page .plaza-rules li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 8px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: linear-gradient(135deg, #1f9d90, #4fc3ad);
}
#plaza-page .plaza-why { color: #5f7d75; }
#plaza-page .plaza-empty i { color: #9ec8bd; }
#plaza-page .plaza-empty-link {
  background: linear-gradient(135deg, rgba(12, 100, 92, .96) 0%, rgba(34, 156, 143, .92) 52%, rgba(78, 192, 170, .90) 100%);
  border: 1px solid rgba(255, 255, 255, .30);
  border-radius: 999px;
  color: #fff;
  padding: 9px 20px;
  box-shadow: 0 8px 18px rgba(15, 118, 110, .24), inset 0 1px 0 rgba(255, 255, 255, .28);
}

/* ============ 下拉菜单面板：玻璃卡统一样式 ============ */
.nice-select .list {
  background: linear-gradient(158deg, rgba(255, 255, 255, .98) 0%, rgba(240, 250, 246, .94) 100%);
  border: 1px solid rgba(15, 118, 110, .14);
  border-radius: 14px;
  padding: 6px;
  margin-top: 8px;
  box-shadow: 0 18px 38px rgba(13, 63, 56, .14), 0 2px 6px rgba(13, 63, 56, .06), inset 0 1px 0 rgba(255, 255, 255, .9);
}
.nice-select .option {
  border-radius: 10px;
  min-height: 38px;
  line-height: 38px;
  padding: 0 12px;
  margin: 1px 0;
  font-size: 13.5px;
  color: #12251f;
  transition: background .14s, color .14s;
}
.nice-select .option:hover,
.nice-select .option.focus {
  background: rgba(15, 118, 110, .08);
  color: #0f766e;
}
.nice-select .option.selected {
  font-weight: 700;
  color: #0f766e;
  background: rgba(15, 118, 110, .06);
}
.nice-select .option.selected:hover { background: rgba(15, 118, 110, .10); }

/* 我的目标：筛选/排序控件内部已画了自定义箭头，隐藏插件自带的灰色小三角 */
#plan-page .forum-search-bar .filter-by-search .question-category-select:after,
#plan-page .forum-search-bar .filter-by-search .pc-sort-select:after {
  display: none;
}
#plan-page .forum-search-bar .filter-by-search .question-category-select.open,
#plan-page .forum-search-bar .filter-by-search .pc-sort-select.open {
  border-color: rgba(15, 118, 110, .40);
  box-shadow: 0 0 0 3px rgba(15, 118, 110, .12), 0 8px 20px rgba(13, 63, 56, .10);
}

/* ============ D 方案（全站）：横切玻璃片 hero（纯静态渐变 + 细噪点） ============ */
.page-title__area,
.banner2-area,
.banner2 {
  background-color: #edf8f4;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E"),
    radial-gradient(72% 100% at 84% -6%, rgba(118, 224, 200, .52) 0%, rgba(118, 224, 200, .16) 38%, rgba(118, 224, 200, 0) 68%),
    radial-gradient(90% 80% at 4% 100%, rgba(120, 226, 203, .16) 0%, rgba(120, 226, 203, 0) 62%),
    linear-gradient(180deg, #ffffff 0%, #fbfefd 46%, #f3fbf8 78%, #eaf6f1 100%);
  background-repeat: repeat, no-repeat, no-repeat, no-repeat, no-repeat;
  background-size: 140px 140px, auto, auto, auto, auto;
  background-position: 0 0, center top, left bottom, right bottom, center;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 1), inset 0 -1px 0 rgba(255, 255, 255, .72);
}
.page-title__area::before {
  left: -100px;
  top: -190px;
  width: 480px;
  height: 480px;
  background: radial-gradient(circle, rgba(120, 226, 203, .20) 0%, rgba(120, 226, 203, 0) 70%);
}
.page-title__area::after {
  right: -120px;
  bottom: -210px;
  width: 520px;
  height: 520px;
  background: radial-gradient(circle, rgba(12, 96, 88, .16) 0%, rgba(12, 96, 88, 0) 70%);
}

/* ============ hero 标题文字渐变（与全站数字渐变同一套色） ============ */
.page__title-wrapper h3 {
  display: inline-block;
  background-image: linear-gradient(120deg, #0b5f58 0%, #14776d 35%, #21988a 65%, #2aa898 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: #0f766e;
}

/* 小时目标：金额单独一行，占满整行 */
#plan-modal .plan-field-row.is-single { grid-template-columns: 1fr; }

/* 小时目标详情：常驻鼓励条里的实时进度条（只用于小时目标） */
.plan-cheer__track {
  flex: 1 0 100%;
  height: 8px;
  margin-top: 2px;
  border-radius: 99px;
  background: #E3F3EC;
  overflow: hidden;
}
.plan-cheer__track i {
  display: block;
  height: 100%;
  border-radius: 99px;
  background: linear-gradient(90deg, #0f766e 0%, #2aa898 55%, #43c3a9 100%);
  transition: width .35s ease;
}
.plan-cheer__lines {
  flex: 1 0 100%;
  display: flex;
  justify-content: space-between;
  gap: 14px;
  margin-top: -4px;
  font-size: 12.5px;
  color: var(--dc-text);
}
.plan-cheer__lines b { color: var(--dc-brand-dark); font-weight: 700; }

/* 小时目标：合并后的实时进度卡（每小时赚 / 已完成 / 还差） */
.plan-cheer__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.plan-cheer__head .plan-cheer__main { flex: 1 1 auto; min-width: 0; }
.plan-cheer__left { flex: 0 0 auto; font-style: normal; font-size: 13px; font-weight: 600; color: #0f766e; background: rgba(15,118,110,.10); border: 1px solid rgba(15,118,110,.18); border-radius: 999px; padding: 4px 10px; white-space: nowrap; }
.plan-hour-stats { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,1fr) minmax(0,1fr); gap: 10px; margin: 14px 0 12px; }
.plan-hour-stat { text-align: center; align-items: center; border: 1px solid rgba(15,118,110,.14); background: rgba(255,255,255,.72); border-radius: 12px; padding: 10px 12px; display: flex; flex-direction: column; gap: 2px; }
.plan-hour-stat span { font-size: 12px; color: #64748b; }
.plan-hour-stat b { font-size: 21px; line-height: 1.2; color: #0f766e; letter-spacing: -.2px; }
.plan-hour-stat i { font-style: normal; font-size: 11px; color: #94a3b8; }
.plan-hour-stat.is-need { border-color: rgba(234,88,12,.22); background: rgba(255,247,237,.86); }
.plan-hour-stat.is-need b { color: #ea580c; }
.plan-hour-eta { margin-top: 10px; font-size: 13px; line-height: 1.6; color: #475569; }
.plan-hour-eta b { color: #0f766e; }
@media (max-width: 560px) {
  .plan-hour-stats { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .plan-hour-stat.is-need { grid-column: 1 / -1; }
  .plan-cheer__lines { flex-wrap: wrap; row-gap: 4px; }
  .plan-cheer__head { flex-wrap: wrap; row-gap: 8px; }
  .plan-hour-stat b { font-size: 19px; }
}

.plan-hour-stack { display: flex; flex-direction: column; flex: 1 1 100%; width: 100%; min-width: 0; }
.plan-hour-stack .plan-cheer__track { flex: 0 0 auto; width: 100%; }
.plan-hour-stack .plan-cheer__lines { flex: 0 0 auto; width: 100%; }
.plan-hour-stack .plan-cheer__streak { flex: 0 0 auto; }
.plan-hour-stack .plan-cheer__head { width: 100%; }
