.prototype-note {
  position: fixed;
  top: 14px;
  left: 50%;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(430px, calc(100vw - 28px));
  padding: 7px 12px;
  border-radius: 12px;
  color: #526058;
  background: rgba(255, 255, 255, 0.64);
  backdrop-filter: blur(8px);
  font-size: 11px;
}

.device-shell {
  position: relative;
  overflow: hidden;
  width: min(430px, 100vw);
  height: min(900px, calc(100vh - 58px));
  min-height: 650px;
  margin: 48px auto 10px;
  border: 1px solid rgba(42, 61, 46, 0.15);
  border-radius: 36px;
  background: var(--paper);
  box-shadow: 0 28px 80px rgba(44, 55, 46, 0.26);
}

.app {
  position: relative;
  overflow-x: hidden;
  overflow-y: auto;
  height: 100%;
  scroll-behavior: smooth;
  background:
    radial-gradient(circle at 100% 0, rgba(185, 209, 124, 0.14), transparent 28%),
    var(--paper);
}

.welcome {
  display: grid;
  min-height: 100%;
  padding: 34px 24px;
  align-content: space-between;
  background:
    radial-gradient(circle at 80% 16%, rgba(232, 185, 86, 0.38) 0 7%, transparent 7.5%),
    linear-gradient(180deg, #dce8ce, var(--paper) 68%);
}

.welcome-garden {
  position: relative;
  height: 270px;
  margin: 8px -10px 22px;
}

.welcome-garden::before {
  content: "";
  position: absolute;
  right: 5%;
  bottom: 8%;
  left: 5%;
  height: 48%;
  border-radius: 50% 50% 30% 30%;
  background:
    radial-gradient(circle at 22% 38%, var(--sun) 0 6px, transparent 7px),
    radial-gradient(circle at 70% 25%, var(--clay) 0 7px, transparent 8px),
    linear-gradient(155deg, #9eaf72, #66885e);
  box-shadow: inset 0 -20px 0 rgba(62, 104, 75, 0.22);
}

.welcome-garden::after {
  content: "⌇";
  position: absolute;
  bottom: 34%;
  left: 47%;
  color: var(--leaf-deep);
  font-size: 76px;
  font-weight: 900;
  transform: rotate(180deg);
}

.welcome-mark {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 800;
}

.welcome-mark::before {
  content: "●";
  color: var(--leaf);
}

.welcome h1 {
  max-width: 310px;
  margin: 0 0 12px;
  font-size: 38px;
}

.welcome blockquote {
  margin: 18px 0 0;
  padding-left: 13px;
  border-left: 3px solid var(--leaf);
  color: var(--ink-soft);
  font-size: 13px;
  line-height: 1.7;
}

.hero-garden {
  position: relative;
  overflow: hidden;
  min-height: 185px;
  padding: 18px;
  border-radius: 28px;
  color: #f8f4e8;
  background:
    radial-gradient(circle at 82% 18%, rgba(250, 233, 184, 0.95) 0 25px, transparent 26px),
    linear-gradient(155deg, #779a6b, #3f684b);
  box-shadow: var(--shadow-md);
}

.hero-garden::before,
.hero-garden::after {
  content: "";
  position: absolute;
  bottom: -42px;
  width: 180px;
  height: 120px;
  border-radius: 50%;
  background: #88a868;
}

.hero-garden::before { left: -42px; }
.hero-garden::after { right: -58px; background: #658958; }

.hero-garden > * {
  position: relative;
  z-index: 1;
}

.sprout-stage {
  position: absolute;
  right: 28px;
  bottom: 21px;
  z-index: 2;
  display: grid;
  place-items: end center;
  width: 92px;
  height: 88px;
}

.sprout-stage .stem {
  width: 8px;
  height: var(--plant-height, 28px);
  border-radius: 8px;
  background: #d9e7a7;
  transition: height 500ms ease;
}

.sprout-stage .leaf {
  position: absolute;
  bottom: calc(var(--plant-height, 28px) - 7px);
  width: 31px;
  height: 18px;
  border-radius: 100% 0 100% 0;
  background: #d9e7a7;
}

.sprout-stage .leaf:first-child {
  right: 43px;
  transform: rotate(15deg);
}

.sprout-stage .leaf:nth-child(2) {
  left: 48px;
  transform: scaleX(-1) rotate(15deg);
}

.quest-title {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.quest-check {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 50%;
  color: #fff;
  background: var(--clay);
  cursor: pointer;
  font-size: 20px;
}

.quest-check.is-done {
  background: var(--leaf);
}

.map {
  position: relative;
  min-height: 540px;
  margin-top: 8px;
  border: 1px solid rgba(61, 84, 62, 0.11);
  border-radius: 32px;
  background:
    radial-gradient(ellipse at 22% 18%, #c7dba5 0 16%, transparent 17%),
    radial-gradient(ellipse at 75% 20%, #a8cfbd 0 17%, transparent 18%),
    radial-gradient(ellipse at 48% 48%, #ead69d 0 19%, transparent 20%),
    radial-gradient(ellipse at 20% 73%, #d7b690 0 16%, transparent 17%),
    radial-gradient(ellipse at 75% 76%, #adc692 0 19%, transparent 20%),
    #d9e4cf;
  box-shadow: inset 0 0 45px rgba(78, 101, 77, 0.15);
}

.map::after {
  content: "";
  position: absolute;
  inset: 13%;
  border: 3px dashed rgba(83, 105, 78, 0.18);
  border-radius: 46% 54% 50% 47%;
  transform: rotate(-6deg);
}

.map-place {
  position: absolute;
  z-index: 2;
  display: grid;
  gap: 3px;
  width: 104px;
  min-height: 64px;
  place-items: center;
  padding: 8px;
  border: 1px solid rgba(255, 255, 255, 0.72);
  border-radius: 21px;
  color: var(--ink);
  background: rgba(255, 253, 247, 0.84);
  box-shadow: 0 8px 16px rgba(68, 83, 66, 0.13);
  text-align: center;
  cursor: pointer;
}

.map-place b { font-size: 13px; }
.map-place small { color: var(--ink-soft); font-size: 9px; }
.map-place:nth-child(1) { top: 6%; left: 7%; }
.map-place:nth-child(2) { top: 8%; right: 7%; }
.map-place:nth-child(3) { top: 33%; left: 33%; }
.map-place:nth-child(4) { top: 48%; left: 4%; }
.map-place:nth-child(5) { top: 51%; right: 3%; }
.map-place:nth-child(6) { bottom: 13%; left: 11%; }
.map-place:nth-child(7) { right: 9%; bottom: 11%; }
.map-place:nth-child(8) { bottom: 0; left: 36%; }
.map-place:nth-child(9) { top: 2%; left: 38%; }

/* === 新版可滑动长地图（纯展示层，热区完全透明） === */
.map-scroll-hint {
  text-align: center;
  font-size: 11px;
  color: var(--ink-soft, #8a8378);
  margin: 4px 0 8px;
  opacity: 0.7;
}

/* 地图页：去掉 screen 默认内边距和背景，让地图占满整个屏幕 */
.screen--map {
  padding: 0;
  background: transparent;
  height: 100%;       /* 明确占满 .app 容器高度 */
  display: flex;
  flex-direction: column;
}

.map-world {
  position: relative;
  width: 100%;
  flex: 1;             /* 填满 screen--map 的全部剩余空间 */
  min-height: 0;       /* 允许 flex 子元素收缩并触发滚动 */
  overflow-y: auto;
  overflow-x: hidden;
  background: transparent;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: rgba(83, 105, 78, 0.3) transparent;
  user-select: none;
}
.map-world::-webkit-scrollbar { width: 6px; }
.map-world::-webkit-scrollbar-thumb {
  background: rgba(83, 105, 78, 0.3);
  border-radius: 3px;
}

/* 单幅图 tile：各自 position: relative，热区坐标相对于自身 */
.map-tile {
  position: relative;
  width: 100%;
  display: block;
}
/* 下半幅通过负 margin 上移与上半幅重叠（百分比相对于容器宽度）。
   0% 重叠时为 0；需要重叠时由 JS 设置 --map-overlap-margin 为负百分比。*/
.map-tile--map-b {
  margin-top: var(--map-overlap-margin, 0px);
  position: relative;
  z-index: 2;
  /* 顶部渐变遮罩：让 Map B 顶部约 14% 范围与 Map A 底部自然融合 */
  -webkit-mask-image: linear-gradient(
    to bottom,
    transparent 0%,
    rgba(0, 0, 0, 0.20) 2%,
    rgba(0, 0, 0, 0.55) 6%,
    rgba(0, 0, 0, 0.85) 10%,
    #000 14%,
    #000 100%
  );
  mask-image: linear-gradient(
    to bottom,
    transparent 0%,
    rgba(0, 0, 0, 0.20) 2%,
    rgba(0, 0, 0, 0.55) 6%,
    rgba(0, 0, 0, 0.85) 10%,
    #000 14%,
    #000 100%
  );
}

/* Map B 顶部轻微颜色校正，缓解亮度断层（仅过渡层，不影响整体色调） */
.map-tile--map-b::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 15%;
  pointer-events: none;
  z-index: 1;
  background: linear-gradient(
    to bottom,
    rgba(35, 43, 62, 0.12),
    transparent
  );
}

.map-tile__img {
  display: block;
  width: 100%;
  height: auto;
  user-select: none;
  -webkit-user-drag: none;
  pointer-events: none;
}

/* 热区容器：铺满 tile，自身不接收事件，由内部 hotspot 接收 */
.map-tile__hotspots {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

/* 热区按钮：默认完全透明，只保留点击能力和键盘 focus */
.map-hotspot {
  position: absolute;
  pointer-events: auto;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 24px;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
  color: transparent;
  font: inherit;
  -webkit-tap-highlight-color: transparent;
  outline: none;
}
.map-hotspot::before,
.map-hotspot::after {
  content: none;
}
/* 键盘 focus 可见（无障碍），但默认不可见 */
.map-hotspot:focus-visible {
  outline: 2px solid rgba(83, 105, 78, 0.6);
  outline-offset: -2px;
}

/* —— debug 模式：显示半透明热区矩形 + 名称，用于校准 —— */
.map-world--debug .map-hotspot {
  background: rgba(255, 60, 60, 0.18);
  outline: 1px solid rgba(255, 60, 60, 0.9);
}
.map-world--debug .map-hotspot::after {
  content: attr(aria-label);
  position: absolute;
  left: 2px;
  top: 2px;
  color: #fff;
  background: rgba(0, 0, 0, 0.72);
  font-size: 10px;
  line-height: 1.3;
  padding: 2px 5px;
  border-radius: 4px;
  white-space: nowrap;
  pointer-events: none;
}

.timeline {
  position: relative;
  display: grid;
  gap: 16px;
  padding-left: 25px;
}

.timeline::before {
  content: "";
  position: absolute;
  top: 8px;
  bottom: 8px;
  left: 8px;
  width: 2px;
  background: var(--leaf-pale);
}

.timeline-item {
  position: relative;
}

.timeline-item::before {
  content: "";
  position: absolute;
  top: 7px;
  left: -22px;
  width: 10px;
  height: 10px;
  border: 3px solid var(--paper);
  border-radius: 50%;
  background: var(--leaf);
  box-shadow: 0 0 0 1px var(--leaf);
}

.ripple-pool {
  position: relative;
  overflow: hidden;
  height: 230px;
  border-radius: 38% 62% 47% 53%;
  background: linear-gradient(145deg, #dcebe5, #9dc6c2);
  box-shadow: inset 0 0 35px rgba(41, 97, 96, 0.15);
  cursor: pointer;
}

.ripple {
  position: absolute;
  width: 18px;
  height: 18px;
  margin: -9px;
  border: 2px solid rgba(255, 255, 255, 0.75);
  border-radius: 50%;
  animation: ripple 1.6s ease-out forwards;
}

@keyframes ripple {
  to { width: 160px; height: 160px; margin: -80px; opacity: 0; }
}

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

.metric {
  padding: 14px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.64);
}

.metric strong {
  display: block;
  margin-bottom: 3px;
  font-size: 24px;
}

.character-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}

.character-card {
  min-height: 132px;
}

.character-card .character {
  margin-bottom: 10px;
}

@media (max-width: 500px) {
  body { background: var(--paper); }
  .prototype-note { top: 4px; }
  .device-shell {
    width: 100vw;
    height: calc(100vh - 33px);
    min-height: 620px;
    margin: 33px 0 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* ============================================================
   首页 · 每日自然反馈系统
   ============================================================ */

/* === 天气授权邀请弹窗 === */
.weather-invite {
  position: fixed;
  inset: 0;
  z-index: 50;
  background: rgba(48, 43, 39, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  animation: fadeIn 0.3s ease;
}
.weather-invite-card {
  background: var(--white);
  border-radius: var(--radius-lg);
  padding: 28px 24px;
  max-width: 320px;
  width: 100%;
  text-align: center;
  box-shadow: var(--shadow-md);
}
.weather-invite-icon {
  font-size: 40px;
  margin-bottom: 12px;
}
.weather-invite-card h3 {
  font-size: 17px;
  line-height: 1.5;
  margin: 0 0 8px;
  color: var(--ink);
}
.text-button {
  background: none;
  border: none;
  color: var(--ink-soft);
  font-size: 13px;
  cursor: pointer;
  width: 100%;
}
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

/* === 日期头条 === */
.home-date-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 4px 2px 0;
}
.home-date-text {
  font-size: 20px;
  font-weight: 700;
  margin: 0;
  color: var(--ink);
  letter-spacing: 0.5px;
}
.home-date-sub {
  font-size: 13px;
  color: var(--ink-soft);
  margin: 4px 0 0;
}
.home-weather-badge {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--white);
  border-radius: var(--radius-round);
  padding: 6px 14px 6px 8px;
  box-shadow: var(--shadow-sm);
}
.home-weather-icon {
  font-size: 22px;
}
.home-weather-info {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}
.home-weather-info b {
  font-size: 13px;
  color: var(--ink);
}
.home-weather-info small {
  font-size: 10px;
  color: var(--ink-soft);
}

/* === 环境叙事 === */
.home-narrative {
  font-size: 14px;
  line-height: 1.7;
  color: var(--ink-soft);
  font-style: italic;
  margin: 14px 4px 0;
  padding-left: 12px;
  border-left: 3px solid var(--sun);
}

/* === 动态院子场景 === */
.garden-scene {
  position: relative;
  height: 200px;
  border-radius: var(--radius-lg);
  overflow: hidden;
  margin: 16px 0;
  cursor: pointer;
  box-shadow: var(--shadow-soft);
  transition: transform 0.2s;
}
.garden-scene:active { transform: scale(0.98); }
.garden-sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: var(--scene-sky);
  transition: background 0.6s;
}
.garden-ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, var(--scene-ground), var(--leaf-deep));
}
.garden-house {
  position: absolute;
  bottom: 35%;
  right: 16%;
  width: 50px;
  height: 44px;
  background: var(--scene-house);
  border-radius: 4px 4px 0 0;
}
.garden-house::before {
  content: "";
  position: absolute;
  top: -18px;
  left: -6px;
  right: -6px;
  height: 0;
  border-left: 31px solid transparent;
  border-right: 31px solid transparent;
  border-bottom: 20px solid var(--clay-pale);
}
.garden-house.lit::after {
  content: "";
  position: absolute;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  width: 16px;
  height: 16px;
  background: var(--sun-pale);
  border-radius: 3px;
  box-shadow: 0 0 12px 4px rgba(215, 168, 75, 0.5);
}
.garden-plant {
  position: absolute;
  bottom: 38%;
  left: 22%;
  width: 30px;
  height: var(--plant-h, 30px);
  transition: height 0.4s;
}
.gp-stem {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 3px;
  height: 100%;
  background: var(--scene-plant);
  border-radius: 2px;
}
.gp-leaf {
  position: absolute;
  width: 16px;
  height: 12px;
  background: var(--scene-plant);
  border-radius: 0 100% 0 100%;
}
.gp-leaf-l { bottom: 60%; left: -6px; transform: rotate(-20deg); }
.gp-leaf-r { bottom: 40%; right: -6px; transform: rotate(160deg); }
.garden-character {
  position: absolute;
  bottom: 8%;
  right: 8%;
  transform: scale(0.7);
  transform-origin: bottom right;
}
.garden-enter-map {
  position: absolute;
  bottom: 8px;
  left: 50%;
  transform: translateX(-50%);
}

/* 雨天 */
.garden-rain {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(180deg, transparent 18%, rgba(112,135,131,0.3) 20%, transparent 22%),
    linear-gradient(180deg, transparent 48%, rgba(112,135,131,0.25) 50%, transparent 52%),
    linear-gradient(180deg, transparent 78%, rgba(112,135,131,0.2) 80%, transparent 82%);
  animation: rainFall 1.2s linear infinite;
  pointer-events: none;
}
@keyframes rainFall { from { background-position-y: 0; } to { background-position-y: 30px; } }

/* 雪天 */
.garden-snow {
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 20% 30%, rgba(255,255,255,0.8) 2px, transparent 3px),
    radial-gradient(circle at 60% 50%, rgba(255,255,255,0.7) 2px, transparent 3px),
    radial-gradient(circle at 80% 20%, rgba(255,255,255,0.6) 2px, transparent 3px),
    radial-gradient(circle at 40% 70%, rgba(255,255,255,0.7) 2px, transparent 3px);
  background-size: 80px 80px;
  animation: snowFall 4s linear infinite;
  pointer-events: none;
}
@keyframes snowFall { from { background-position: 0 0; } to { background-position: 20px 40px; } }

/* 时段色调 */
.garden-scene.scene-evening .garden-sky { background: linear-gradient(180deg, #C4956A, #E8D5B8 70%); }
.garden-scene.scene-night .garden-sky { background: linear-gradient(180deg, #3A3A4A, #5A5060 70%); }
.garden-scene.scene-night { filter: brightness(0.7) saturate(0.8); }

/* === 纸胶带便签 === */
.sticky-note {
  position: relative;
  background: var(--white);
  border-radius: 4px;
  padding: 24px 20px 20px;
  margin: 16px 0;
  box-shadow: var(--shadow-md);
  transform: rotate(-0.8deg);
}
.sticky-note.is-done {
  background: var(--leaf-pale);
  transform: rotate(0.5deg);
}
.sticky-tape {
  position: absolute;
  top: -10px;
  left: 50%;
  transform: translateX(-50%) rotate(-3deg);
  width: 80px;
  height: 22px;
  background: rgba(215, 168, 75, 0.5);
  border: 1px solid rgba(215, 168, 75, 0.3);
}
.sticky-label {
  font-size: 12px;
  color: var(--clay);
  font-weight: 700;
  letter-spacing: 1px;
  margin: 0 0 8px;
  text-transform: uppercase;
}
.sticky-title {
  font-size: 19px;
  font-weight: 700;
  line-height: 1.4;
  margin: 0 0 8px;
  color: var(--ink);
}
.sticky-meta {
  font-size: 13px;
  color: var(--ink-soft);
  margin: 0 0 16px;
  line-height: 1.5;
}
.sticky-actions {
  display: flex;
  gap: 8px;
}
.sticky-actions .button { flex: 1; }
.button--soft {
  background: var(--paper-deep);
  color: var(--ink-soft);
}

/* === 印章 === */
.stamp {
  display: inline-block;
  padding: 4px 12px;
  border: 2px solid var(--leaf);
  color: var(--leaf);
  font-size: 12px;
  font-weight: 700;
  border-radius: 4px;
  transform: rotate(-6deg);
  margin-bottom: 8px;
  opacity: 0.8;
}

/* === 书签 === */
.bookmark-row {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 12px 0;
}
.bookmark {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--sun-pale);
  border-left: 4px solid var(--sun);
  padding: 12px 16px;
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  cursor: pointer;
  transition: transform 0.15s;
  width: 100%;
  text-align: left;
  border-top: none;
  border-bottom: none;
  border-right: none;
}
.bookmark:active { transform: translateX(4px); }
.bookmark-tag {
  font-size: 11px;
  color: var(--clay);
  font-weight: 700;
  white-space: nowrap;
}
.bookmark-title {
  flex: 1;
  font-size: 14px;
  color: var(--ink);
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.bookmark-arrow {
  font-size: 16px;
  color: var(--ink-soft);
}

/* === 心情天气 === */
.mood-weather-section {
  margin: 20px 0;
  padding: 16px;
  background: var(--mist-pale);
  border-radius: var(--radius-md);
}
.mood-weather-q {
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
  margin: 0 0 12px;
}
.mood-weather-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 6px;
}
.mood-chip {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 10px 4px;
  background: var(--white);
  border: 2px solid transparent;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: all 0.2s;
}
.mood-chip.is-active {
  border-color: var(--mist);
  background: var(--mist-pale);
  transform: translateY(-2px);
}
.mood-chip-icon { font-size: 20px; }
.mood-chip-label { font-size: 11px; color: var(--ink-soft); }
.mood-chip.is-active .mood-chip-label { color: var(--mist); font-weight: 700; }
.mood-weather-hint {
  margin: 10px 0 0;
  text-align: center;
  font-size: 12px;
}

/* === 快速种下输入条 === */
.quick-seed-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--white);
  border-radius: var(--radius-round);
  padding: 6px 6px 6px 16px;
  margin: 16px 0;
  box-shadow: var(--shadow-sm);
}
.quick-seed-icon {
  color: var(--clay);
  font-size: 16px;
}
.quick-seed-input {
  flex: 1;
  border: none;
  background: none;
  outline: none;
  font-size: 14px;
  color: var(--ink);
  font-family: var(--font);
}
.quick-seed-input::placeholder { color: var(--ink-soft); }
.quick-seed-btn {
  background: var(--clay);
  color: var(--white);
  border: none;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  flex-shrink: 0;
}

/* === 底部双按钮 === */
.home-bottom-actions {
  display: flex;
  gap: 10px;
  margin: 16px 0;
}
.home-bottom-actions .button { flex: 1; }

/* === 灵光林 === */

/* 捕光口双入口 */
.firefly-capture-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin: 12px 0;
}
.firefly-entry {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  padding: 16px 14px;
  border-radius: 14px;
  border: 1.5px solid transparent;
  background: var(--paper);
  text-align: left;
  cursor: pointer;
  transition: transform 0.15s, box-shadow 0.15s;
}
.firefly-entry:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,0.06); }
.firefly-entry--idea {
  background: linear-gradient(135deg, #F6E8C8 0%, #EDD9A8 100%);
  border-color: var(--sun);
}
.firefly-entry--link {
  background: linear-gradient(135deg, #DCE8D5 0%, #C5D8B8 100%);
  border-color: var(--leaf);
}
.firefly-entry-icon {
  font-size: 22px;
  line-height: 1;
  margin-bottom: 4px;
}
.firefly-entry-title {
  font-weight: 700;
  font-size: 15px;
  color: var(--ink);
}
.firefly-entry-sub {
  font-size: 11px;
  color: var(--ink-soft);
  opacity: 0.7;
}

/* 待归林条目 */
.firefly-pending {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  cursor: pointer;
  background: color-mix(in srgb, var(--sun) 22%, var(--paper));
}
.firefly-pending-num {
  font-size: 22px;
  font-weight: 800;
  color: var(--clay);
  min-width: 28px;
  text-align: center;
}

/* 林间小路 chips */
.firefly-path-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 8px 0;
}
.chip--ghost {
  background: transparent;
  color: var(--ink-soft);
  opacity: 0.5;
}

/* 视图切换 */
.firefly-view-toggle {
  display: flex;
  gap: 8px;
  margin: 16px 0;
}
.firefly-view-toggle .button { flex: 1; }

/* 捕光口 tabs */
.firefly-capture-tabs {
  display: flex;
  gap: 8px;
  margin: 8px 0 12px;
  border-bottom: 1px solid var(--paper-deep);
}
.firefly-capture-tab {
  flex: 1;
  padding: 10px;
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  font-size: 14px;
  color: var(--ink-soft);
  cursor: pointer;
}
.firefly-capture-tab.is-active {
  color: var(--ink);
  border-bottom-color: var(--clay);
  font-weight: 700;
}

/* 捕捉卡片 */
.firefly-capture-card { padding: 16px; }
.firefly-capture-textarea {
  min-height: 120px;
  font-size: 15px;
  line-height: 1.6;
}

/* 已保存预览 */
.firefly-saved-preview {
  border-left: 4px solid var(--leaf);
}

/* chip 行 */
.chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 6px 0;
}
.chip-row--wrap { display: flex; flex-wrap: wrap; }
.chip {
  display: inline-flex;
  align-items: center;
  padding: 6px 12px;
  border-radius: 999px;
  background: var(--paper-deep);
  color: var(--ink-soft);
  font-size: 13px;
  border: 1px solid transparent;
  cursor: pointer;
  transition: all 0.15s;
}
.chip.is-active {
  background: var(--clay);
  color: white;
  border-color: var(--clay);
}

/* 灵光卡列表项 */
.firefly-card-item {
  display: block;
  width: 100%;
  text-align: left;
  padding: 12px 14px;
  cursor: pointer;
  position: relative;
}
.firefly-card-item--idea {
  background: #FBF4DC;
  border-left: 3px solid var(--sun);
}
.firefly-card-item--link {
  background: #E8EFE0;
  border-left: 3px solid var(--leaf);
}
.firefly-card-item-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
}
.firefly-kind-tag {
  font-size: 11px;
  font-weight: 700;
  color: var(--ink-soft);
  background: rgba(255,255,255,0.5);
  padding: 2px 8px;
  border-radius: 4px;
}
.firefly-card-item-text {
  font-size: 14px;
  line-height: 1.5;
  color: var(--ink);
  margin: 4px 0;
}
.firefly-card-item-meta {
  margin-top: 6px;
  color: var(--ink-soft);
}

/* 卡片详情 */
.firefly-detail-idea {
  background: #FBF4DC;
  border-left: 4px solid var(--sun);
}
.firefly-detail-link {
  background: #E8EFE0;
  border-left: 4px solid var(--leaf);
}
.firefly-detail-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.firefly-source-link {
  display: inline-block;
  margin: 8px 0;
  color: var(--clay);
  font-size: 13px;
  text-decoration: none;
  border-bottom: 1px dashed var(--clay);
}
.firefly-ai-summary {
  margin-top: 10px;
  padding: 8px 10px;
  background: rgba(255,255,255,0.5);
  border-radius: 6px;
}
.firefly-detail-meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px dashed var(--paper-deep);
}

/* 林间小路树状视图 */
.firefly-path-branch {
  margin: 8px 0 16px;
  padding-left: 8px;
}
.firefly-path-label {
  font-size: 16px;
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 8px;
  padding-bottom: 4px;
  border-bottom: 2px solid var(--paper-deep);
}
.firefly-path-sub {
  margin: 8px 0;
  padding-left: 12px;
  border-left: 2px solid var(--paper-deep);
}
.firefly-path-name {
  display: block;
  font-weight: 600;
  font-size: 14px;
  color: var(--ink);
  margin-bottom: 4px;
}
.firefly-path-topics {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 4px;
}

/* === 成事铺（手工作坊风） === */

/* 今日工作台主卡 */
.workshop-today-card {
  background: linear-gradient(135deg, #F6E8C8 0%, #F0DCA8 100%);
  border: 1.5px solid var(--sun);
  padding: 18px;
  position: relative;
}
.workshop-today-card::before {
  content: "";
  position: absolute;
  top: -6px;
  left: 20px;
  width: 40px;
  height: 12px;
  background: rgba(183, 101, 69, 0.3);
  border-radius: 2px;
  transform: rotate(-2deg);
}
.workshop-today-label {
  font-size: 11px;
  color: var(--clay);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
}
.workshop-today-title {
  font-size: 18px;
  font-weight: 800;
  margin: 4px 0 12px;
  color: var(--ink);
}
.workshop-nextstep {
  background: rgba(255, 255, 255, 0.6);
  padding: 12px;
  border-radius: 8px;
  margin-bottom: 12px;
}
.workshop-nextstep-label {
  font-size: 11px;
  color: var(--clay);
  font-weight: 700;
  margin-bottom: 4px;
}
.workshop-nextstep-text {
  font-size: 15px;
  color: var(--ink);
  line-height: 1.5;
}
.workshop-nextstep-est {
  font-size: 12px;
  color: var(--ink-soft);
  margin-top: 4px;
}
.workshop-today-actions {
  display: flex;
  gap: 8px;
}
.workshop-today-actions .button--wide { flex: 2; }
.workshop-today-actions .button--soft { flex: 1; }

/* 卡住入口 */
.workshop-stuck-entry {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 8px 0;
}

/* 统计行 */
.workshop-stats-row {
  display: flex;
  gap: 16px;
  padding: 8px 0;
  font-size: 14px;
  color: var(--ink-soft);
}
.workshop-stats-row strong {
  color: var(--ink);
  font-size: 18px;
  font-weight: 800;
}

/* 项目木牌 */
.workshop-badge {
  display: block;
  width: 100%;
  text-align: left;
  padding: 12px 14px;
  background: #F2E8D5;
  border-left: 4px solid var(--sun);
  cursor: pointer;
}
.workshop-badge-head {
  display: flex;
  align-items: center;
  gap: 8px;
}
.workshop-status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.workshop-badge-title {
  font-weight: 700;
  font-size: 14px;
  color: var(--ink);
}
.workshop-badge-meta {
  margin-top: 4px;
  padding-left: 16px;
}
.workshop-badge-next {
  margin-top: 4px;
  padding-left: 16px;
  color: var(--clay);
}
.workshop-badge-rest {
  margin-top: 2px;
  padding-left: 16px;
  font-style: italic;
}

/* 开新活：类型选择 */
.workshop-type-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin: 12px 0;
}
.workshop-type-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 16px 10px;
  background: var(--paper);
  border: 1.5px solid var(--paper-deep);
  border-radius: 12px;
  cursor: pointer;
  transition: all 0.15s;
  font-size: 13px;
  color: var(--ink);
}
.workshop-type-card:hover {
  border-color: var(--clay);
  transform: translateY(-2px);
}
.workshop-type-icon {
  font-size: 24px;
}

/* 创建输入 */
.workshop-create-input {
  min-height: 100px;
  font-size: 15px;
  line-height: 1.6;
}

/* 成事单 */
.workshop-brief-card {
  padding: 14px;
  background: #FBF4DC;
  border-left: 4px solid var(--sun);
}
.workshop-brief-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 6px 0;
  border-bottom: 1px dashed var(--paper-deep);
  gap: 12px;
}
.workshop-brief-row:last-child { border-bottom: none; }
.workshop-brief-row .tiny { flex-shrink: 0; }

.workshop-part-draft {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
}
.workshop-part-num {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--clay);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 700;
  flex-shrink: 0;
}

/* 项目详情 */
.workshop-detail-status {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}
.workshop-status-tag {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 4px;
  color: white;
  font-size: 12px;
  font-weight: 700;
}
.workshop-outcome-card {
  padding: 14px;
  background: #FBF4DC;
  border-left: 4px solid var(--sun);
}
.workshop-standard {
  margin-top: 10px;
  font-size: 13px;
}
.workshop-standard summary {
  cursor: pointer;
  color: var(--clay);
  font-weight: 600;
}
.workshop-standard ul {
  margin: 8px 0 0 16px;
  padding: 0;
  color: var(--ink-soft);
}

.workshop-nextstep-card {
  padding: 16px;
  background: linear-gradient(135deg, #F6E8C8 0%, #F0DCA8 100%);
  border: 1.5px solid var(--sun);
}
.workshop-nextstep-text-big {
  font-size: 17px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.5;
  margin: 0 0 8px;
}

/* 零件行 */
.workshop-part-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
}
.workshop-part-row.is-done {
  opacity: 0.5;
  background: var(--paper);
}
.workshop-part-row.is-doing {
  background: #F6E8C8;
  border-left: 3px solid var(--clay);
}
.workshop-part-icon {
  font-size: 16px;
  width: 20px;
  text-align: center;
  flex-shrink: 0;
}
.workshop-part-btn {
  font-size: 12px;
  padding: 4px 10px;
}

/* 材料/证据行 */
.workshop-material-row,
.workshop-evidence-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
}

/* 详情底部操作 */
.workshop-detail-actions {
  display: flex;
  gap: 8px;
  margin-top: 16px;
}
.workshop-detail-actions .button { flex: 1; }

/* 动手页 */
.workshop-action-card {
  padding: 24px 18px;
  text-align: center;
  background: linear-gradient(135deg, #F6E8C8 0%, #F0DCA8 100%);
  border: 2px solid var(--sun);
}
.workshop-action-label {
  font-size: 12px;
  color: var(--clay);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
}
.workshop-action-title {
  font-size: 20px;
  font-weight: 800;
  color: var(--ink);
  margin: 8px 0 12px;
  line-height: 1.4;
}

/* 卡住选项 */
.workshop-stuck-option {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 14px;
  cursor: pointer;
  text-align: left;
}
.workshop-stuck-icon {
  font-size: 22px;
  flex-shrink: 0;
}

/* 陈列架成果 */
.workshop-shelf-result {
  padding: 14px;
  background: #E8EFE0;
  border-left: 4px solid var(--leaf);
}
.workshop-shelf-item {
  display: flex;
  align-items: center;
  gap: 10px;
}

/* 新开活按钮 */
.workshop-new-btn {
  margin-top: 16px;
  font-size: 16px;
  font-weight: 700;
}
.button--clay {
  background: var(--clay);
  color: white;
}

/* === 小试田：个人生活与产品想法的轻量实验室 === */

.experiment-today-card {
  position: relative;
  border-left: 4px solid var(--clay);
}
.experiment-day-pill {
  background: var(--clay-pale, #f5e6d8);
  color: var(--clay);
  font-weight: 700;
  white-space: nowrap;
}
.experiment-today-actions {
  display: flex;
  gap: 8px;
  margin-top: 14px;
}
.experiment-today-actions .button { flex: 1; }

.experiment-list-item {
  cursor: pointer;
  transition: transform 0.15s ease;
}
.experiment-list-item:active { transform: scale(0.98); }

.experiment-pending-card {
  border-left: 4px solid var(--sun);
}

.experiment-history-card { padding: 14px; }
.experiment-history-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.experiment-new-btn {
  margin-top: 16px;
  font-size: 16px;
  padding: 14px;
}

/* 创建进度条 */
.experiment-create-progress {
  display: flex;
  gap: 4px;
  margin-bottom: 14px;
  font-size: 11px;
}
.experiment-create-progress span {
  flex: 1;
  text-align: center;
  padding: 6px 2px;
  background: var(--mist-pale, #eef0f2);
  color: var(--mist);
  border-radius: 6px;
  transition: all 0.2s ease;
}
.experiment-create-progress span.is-active {
  background: var(--clay);
  color: white;
  font-weight: 600;
}

/* 小试单预览 */
.experiment-preview-card {
  border: 2px dashed var(--sun);
}
.experiment-preview-section {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px dashed var(--mist);
}
.experiment-preview-section:first-of-type {
  border-top: none;
  padding-top: 0;
  margin-top: 10px;
}

/* 记录标签 */
.experiment-record-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

/* 详情状态 */
.experiment-detail-status {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
}

/* 记录条目 */
.experiment-record-row {
  padding: 12px;
}

/* 记录卡片 */
.experiment-record-card {
  border-left: 4px solid var(--clay);
}

/* 复盘卡片 */
.experiment-review-card {
  border-left: 4px solid var(--sun);
}
.experiment-review-section {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px dashed var(--mist);
}
.experiment-review-section:first-of-type {
  border-top: none;
  padding-top: 10px;
  margin-top: 10px;
}

/* === 野趣地 === */

.wildflower-wind-card {
  display: flex;
  align-items: center;
  gap: 12px;
  border-left: 3px solid #b9d7d5;
}
.wildflower-wind-icon {
  font-size: 1.6em;
  flex-shrink: 0;
}
.wildflower-wind-word {
  margin: 0;
  color: var(--ink);
  font-style: italic;
  line-height: 1.5;
}

.wildflower-sign-card {
  border-left: 4px solid #b8d6d3;
}
.wildflower-sign-title {
  margin: 8px 0 6px;
  font-size: 1.3em;
}
.wildflower-sign-detail {
  border-left: 4px solid #b8d6d3;
}
.wildflower-sign-action {
  line-height: 1.7;
  margin: 10px 0;
}
.wildflower-sign-hint {
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px dashed var(--mist);
}
.wildflower-sign-recap {
  margin: 0 0 14px;
  color: var(--ink);
}
.wildflower-sign-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 10px 0;
}
.wildflower-meta-pill {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 20px;
  background: rgba(184, 214, 211, 0.25);
  font-size: 0.82em;
  color: var(--ink);
}

.wildflower-time-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}
.wildflower-time-tag {
  flex: 1;
  min-width: 80px;
  text-align: center;
}

.wildflower-cat-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
.wildflower-cat-tile {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  padding: 14px;
  border-radius: 14px;
  border: 1px solid var(--mist);
  background: color-mix(in srgb, var(--cat-color, #b8d6d3) 12%, var(--paper));
  cursor: pointer;
  text-align: left;
  transition: transform 0.15s, box-shadow 0.15s;
}
.wildflower-cat-tile:active {
  transform: scale(0.97);
}
.wildflower-cat-icon {
  font-size: 1.5em;
  color: var(--cat-color, #b8d6d3);
}
.wildflower-cat-label {
  font-weight: 600;
  font-size: 1em;
  color: var(--ink);
}
.wildflower-cat-desc {
  font-size: 0.78em;
}

.wildflower-feeling-tags {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  margin-top: 12px;
}
.wildflower-feeling-tag {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid var(--mist);
  background: var(--paper);
  cursor: pointer;
  font-size: 0.9em;
  text-align: left;
  transition: border-color 0.15s, background 0.15s;
}
.wildflower-feeling-tag:active {
  border-color: #b8d6d3;
  background: rgba(184, 214, 211, 0.15);
}
.wildflower-feeling-icon {
  font-size: 1.2em;
  flex-shrink: 0;
}

.wildflower-next-btn {
  display: block;
  width: 100%;
  text-align: left;
  cursor: pointer;
  border: 1px solid var(--mist);
  transition: border-color 0.15s, transform 0.15s;
}
.wildflower-next-btn:active {
  border-color: #b8d6d3;
  transform: scale(0.99);
}
.wildflower-next-label {
  font-weight: 600;
  font-size: 1em;
  margin-bottom: 2px;
}

.wildflower-taste-item {
  border-left: 3px solid var(--cat-color, #b8d6d3);
}
.wildflower-taste-num {
  display: inline-block;
  font-size: 0.78em;
  color: var(--sun);
  margin-bottom: 4px;
}
.wildflower-taste-btn {
  margin-top: 10px;
}

.wildflower-wish-item {
  padding: 12px 14px;
}
.wildflower-wish-detail {
  border-left: 3px solid #9b8ec4;
}
.wildflower-wish-taste {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed var(--mist);
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: flex-start;
}
.wildflower-wish-input {
  margin: 8px 0 10px;
}

.wildflower-pocket-item {
  border-left: 3px solid #e8b956;
}
.wildflower-pocket-head,
.wildflower-footprint-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
}
.wildflower-pocket-cat {
  font-size: 0.85em;
  color: var(--ink);
}
.wildflower-pocket-actions {
  display: flex;
  gap: 8px;
  margin-top: 10px;
}

.wildflower-footprint-item {
  border-left: 3px solid #7d9e8a;
}

.wildflower-more-btn {
  margin-top: 8px;
  width: 100%;
}
.wildflower-back-btn {
  margin-top: 16px;
  width: 100%;
}

/* ============================================================
   首页 v2（暮色田园小院） — 只增不改，前缀 .home-v2
   旧 .home-date-header / .garden-scene 样式保留为 dead code，
   新结构全部用 .home-v2 隔离。
   ============================================================ */

.home-v2 {
  display: block;
  position: relative; /* 整页背景伪元素以此为锚点 */
  isolation: isolate; /* 隔离层叠上下文：让背景图在 .app 背景之上、页面内容之下 */
  padding: 0 0 96px; /* 底部留出固定导航空间 */
}

/* 整页背景：小院地图铺满整个显示页面，固定不随内容滚动，半透明压在文字底下 */
.home-v2::before {
  content: "";
  position: fixed;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: min(430px, 100vw);
  height: 100vh;
  background-image: url("../assets/home/home-courtyard-bg-v1.png");
  background-size: cover;
  background-position: center 56%;
  background-repeat: no-repeat;
  opacity: 0.5; /* 半透明：透出底色，保证文字可读 */
  z-index: -2;
  pointer-events: none;
}

/* 下半部分轻微渐变遮罩：只在最底部增强可读性，背景图全屏可见 */
.home-v2::after {
  content: "";
  position: fixed;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: min(430px, 100vw);
  height: 100vh;
  background: linear-gradient(
    to top,
    rgba(238, 240, 223, 0.82) 0%,
    rgba(238, 240, 223, 0.38) 18%,
    rgba(238, 240, 223, 0) 36%
  );
  z-index: -1;
  pointer-events: none;
}

/* —— 顶部小院场景：保留小院气氛但不过高，避免压住今日行动 —— */
.home-hero {
  position: relative;
  width: 100%;
  height: clamp(230px, 40dvh, 300px);
  min-height: 230px;
  overflow: visible;
  background: transparent;
}

/* 日期区域：左上角，深森林绿文字 + 轻阴影保证天空可读 */
.home-hero__date {
  position: absolute;
  top: 18px;
  left: 18px;
  right: 18px;
  z-index: 3;
  pointer-events: none;
  text-shadow: 0 1px 4px rgba(255, 253, 247, 0.65), 0 0 12px rgba(255, 253, 247, 0.4);
}
.home-hero__date-title {
  margin: 0;
  font-size: clamp(22px, 5.5vw, 26px);
  font-weight: 800;
  color: #2d3a2c; /* 深森林绿 */
  letter-spacing: 0.5px;
  line-height: 1.2;
}
.home-hero__date-sub {
  margin: 4px 0 0;
  font-size: clamp(13px, 3.4vw, 15px);
  color: #3a4a39;
  font-weight: 600;
}
.home-hero__date-hint {
  margin: 6px 0 0;
  font-size: clamp(13px, 3.4vw, 15px);
  color: #4a5a48;
  line-height: 1.4;
  max-width: 78%;
}

/* 地图入口：覆盖道路、大门、远景建筑区域（避开底部导航栏） */
.home-hero__map-entry {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 96px; /* 导航栏上方 */
  height: 32%; /* 道路和大门所在的下沿区域 */
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  outline: none;
}
.home-hero__map-entry:focus-visible {
  outline: 2px solid rgba(83, 105, 78, 0.6);
  outline-offset: -2px;
}
.home-hero__map-entry:active {
  opacity: 0.92;
}

/* 路牌：右下角小型 HTML 标签 */
.home-map-sign {
  position: absolute;
  right: 18px;
  bottom: 114px; /* 导航栏上方，跟随入口区域 */
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 32px;
  padding: 8px 14px;
  background: rgba(255, 253, 247, 0.88);
  color: #3d3a35;
  font-size: 13px;
  font-weight: 700;
  border-radius: 999px;
  box-shadow: 0 2px 8px rgba(68, 83, 66, 0.18);
  pointer-events: none; /* 整个 entry 接收点击，路牌只是视觉 */
  white-space: nowrap;
  animation: home-map-sign-nudge 2.4s ease-in-out infinite;
}
@keyframes home-map-sign-nudge {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(3px); }
}

/* 雨天：路牌轻微压暗 */
.home-hero.weather-rain .home-map-sign {
  background: rgba(245, 240, 230, 0.92);
}

@media (prefers-reduced-motion: reduce) {
  .home-map-sign { animation: none; }
  .home-hero__map-entry { transition: none; }
}

/* ============================================================
   第2步：今日任务贴纸框
   ============================================================ */

.home-today-card {
  position: relative;
  /* 向上覆盖 hero 底部约 28px，产生贴纸压在小院上的效果 */
  margin: -28px 14px 0;
  padding: 0;
  z-index: 4;
  /* 不设固定高度，允许长标题自然换行 */
}

/* 贴纸框背景：绝对定位铺满，真实 HTML 内容置于上层 */
.home-card-frame {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: fill; /* 贴纸框是装饰底板，按容器拉伸 */
  z-index: 0;
  pointer-events: none;
  user-select: none;
  -webkit-user-drag: none;
}

.home-today-card__content {
  position: relative;
  z-index: 1;
  /* 内边距根据贴纸框实际留白微调：放大框，让文字不超出 */
  padding: 42px 38px 38px;
  min-height: 240px;
}

.home-today-card__source {
  font-size: 11px;
  font-weight: 700;
  color: #7a8a78;
  letter-spacing: 0.5px;
  text-transform: none;
  margin-bottom: 4px;
}

.home-today-card__eyebrow {
  font-size: 12px;
  font-weight: 600;
  color: #5a6a58;
  margin-bottom: 8px;
}

.home-today-card__title {
  margin: 0 0 8px;
  font-size: clamp(17px, 4.6vw, 20px);
  font-weight: 800;
  color: #2d3a2c;
  line-height: 1.35;
  /* 允许两到三行 */
  max-height: 4.05em;
  overflow: hidden;
}

.home-today-card__meta {
  margin: 0 0 16px;
  font-size: 13px;
  color: #5a6a58;
  line-height: 1.5;
}

.home-today-card__actions {
  display: flex;
  gap: 10px;
  align-items: stretch;
}

/* 通用首页按钮 */
.home-btn {
  flex: 1;
  min-height: 44px;
  padding: 10px 14px;
  border-radius: 14px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  border: 0;
  transition: transform 120ms ease, opacity 120ms ease;
  -webkit-tap-highlight-color: transparent;
  outline: none;
}
.home-btn:active { transform: scale(0.97); }
.home-btn:focus-visible {
  outline: 2px solid rgba(83, 105, 78, 0.6);
  outline-offset: 2px;
}

/* 主按钮：森林绿底、奶油白字 */
.home-btn--primary {
  background: #3d5c3a;
  color: #fdf8ed;
  box-shadow: 0 2px 6px rgba(61, 92, 58, 0.25);
}

/* 次按钮：半透明奶油色、森林绿描边 */
.home-btn--soft {
  background: rgba(253, 248, 237, 0.7);
  color: #3d5c3a;
  border: 1.5px solid #3d5c3a;
}

/* 完成态 */
.home-today-card.is-done .home-today-card__content {
  text-align: center;
}
.home-today-card.is-done .stamp {
  display: inline-block;
  margin: 4px 0 8px;
  padding: 4px 12px;
  background: #b6c78e;
  color: #2d3a2c;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 700;
}
.home-today-card__done-label {
  margin: 0 0 6px;
  font-size: 15px;
  font-weight: 700;
  color: #2d3a2c;
}

@media (prefers-reduced-motion: reduce) {
  .home-btn { transition: none; }
}

/* ============================================================
   第3步：天气瓶 + 种子信箱
   ============================================================ */

/* —— 天气瓶卡片 —— */
.home-weather-card {
  position: relative;
  margin: 16px 14px 0; /* 统一左右边距 14px */
  padding: 0;
  z-index: 2;
}

.home-weather-card__content {
  position: relative;
  z-index: 1;
  /* 扩大背景框：增加内边距和最小高度，容纳完整瓶子 */
  padding: 34px 20px 28px;
  min-height: 220px;
  text-align: center;
}

.home-weather-card__q {
  margin: 0 0 18px;
  font-size: 14px;
  font-weight: 700;
  color: #3d5c3a;
}

.home-weather-bottles {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 2px;
}

/* 单个天气瓶按钮 */
.weather-choice {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 6px 2px;
  border: 0;
  background: transparent;
  cursor: pointer;
  opacity: 0.72;
  transition: opacity 200ms ease, transform 200ms cubic-bezier(.2,.8,.2,1);
  -webkit-tap-highlight-color: transparent;
  outline: none;
}
.weather-choice:focus-visible {
  outline: 2px solid rgba(83, 105, 78, 0.6);
  outline-offset: 2px;
  border-radius: 8px;
}
.weather-choice.is-active {
  opacity: 1;
  transform: translateY(-4px);
}

/* 天气瓶 art：独立 PNG，底部基线对齐，不变形 */
.weather-choice__art {
  position: relative;
  display: grid;
  place-items: end center;
  width: 100%;
  height: clamp(64px, 18vw, 82px);
}

.weather-choice__image {
  display: block;
  width: auto;
  height: 100%;
  max-width: 100%;
  object-fit: contain;
  object-position: center bottom;
  transform-origin: center bottom;
  opacity: 0.72;
  transition:
    opacity 180ms ease,
    transform 240ms cubic-bezier(.2, .8, .2, 1),
    filter 240ms ease;
}
.weather-choice.is-active .weather-choice__image {
  opacity: 1;
  transform: translateY(-4px) scale(1.06);
  filter: drop-shadow(0 5px 7px rgba(83, 105, 78, 0.2));
}
.weather-choice:active .weather-choice__image {
  transform: scale(0.92);
}

/* 选中瓶子下方光斑（CSS 伪元素，不画进图片） */
.weather-choice__art::after {
  content: "";
  position: absolute;
  z-index: -1;
  left: 14%;
  right: 14%;
  bottom: -3px;
  height: 12px;
  border-radius: 50%;
  background: rgba(218, 198, 112, 0);
  filter: blur(5px);
  transition: background 180ms ease;
}
.weather-choice.is-active .weather-choice__art::after {
  background: rgba(218, 198, 112, 0.35);
}

.weather-choice__label {
  display: block;
  margin-top: 4px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.2;
  color: #5a6a58;
  white-space: nowrap;
}
.weather-choice.is-active .weather-choice__label {
  color: #3d5c3a;
  font-weight: 800;
}

.home-weather-card__hint {
  margin: 16px 0 0;
  font-size: 13px;
  color: #5a6a58;
  line-height: 1.5;
}

/* —— 种子信箱卡片 —— */
/* 信箱从贴纸框左侧向外探出，内容区保持完整宽度 */
.home-capture-card {
  position: relative;
  width: calc(100% - 28px); /* 统一左右边距 14px */
  min-height: 124px;
  margin: 24px auto 14px; /* 底部间距收紧 */
  padding: 0;
  z-index: 2;
  isolation: isolate;
  overflow: visible; /* 不能裁掉信箱顶部 */
}

.home-capture-card__frame {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: fill;
  pointer-events: none;
  user-select: none;
  -webkit-user-drag: none;
}

/* 信箱：绝对定位，从贴纸框左侧向外探出 */
.home-capture-card__mailbox {
  position: absolute;
  z-index: 2;
  left: -22px;
  bottom: 4px;
  width: clamp(104px, 29vw, 126px);
  height: auto;
  max-height: 130px;
  object-fit: contain;
  object-position: left bottom;
  pointer-events: none;
  user-select: none;
  -webkit-user-drag: none;
  transform: rotate(-2deg);
  transform-origin: left bottom;
  filter: drop-shadow(0 5px 6px rgba(69, 76, 57, 0.14));
}

.home-capture-card__content {
  position: relative;
  z-index: 3;
  min-height: 124px;
  box-sizing: border-box;
  /* 只为信箱主体留出适度空间，不再用大左内边距 */
  padding: 22px 18px 18px clamp(90px, 25vw, 106px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.home-capture-card__label {
  display: block;
  margin: 0 0 8px;
  color: #29432f;
  font-size: 14px;
  line-height: 1.3;
  font-weight: 700;
}

.home-capture-card__input-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  width: 100%;
}

.home-capture-card__input {
  width: 100%;
  min-width: 0;
  min-height: 42px;
  box-sizing: border-box;
  padding: 8px 12px;
  border: 1.5px solid #c8d4be;
  border-radius: 12px;
  background: rgba(255, 253, 247, 0.8);
  font-size: 14px;
  font-family: var(--font);
  color: #2d3a2c;
  outline: none;
  transition: border-color 200ms ease;
}
.home-capture-card__input:focus {
  border-color: #3d5c3a;
}
.home-capture-card__input::placeholder {
  color: #8a9a88;
}

.home-capture-card__submit {
  flex: 0 0 auto;
  min-width: 72px;
  min-height: 42px;
  padding: 0 16px;
  box-sizing: border-box;
}

/* —— 响应式：小屏 —— */
@media (max-width: 360px) {
  .weather-choice__art {
    height: 84px; /* 小屏略矮，但保持比例不变形 */
  }
  .weather-choice__label {
    font-size: 11px;
  }
  .home-weather-card__content {
    padding: 30px 16px 24px;
    min-height: 200px;
  }
}

@media (max-width: 359px) {
  .home-capture-card {
    width: calc(100% - 24px);
    min-height: 118px;
  }
  .home-capture-card__mailbox {
    left: -14px;
    bottom: 6px;
    width: 96px;
    max-height: 112px;
  }
  .home-capture-card__content {
    min-height: 118px;
    padding: 18px 12px 16px 82px;
  }
  .home-capture-card__submit {
    min-width: 64px;
    padding-inline: 12px;
  }
}

/* ============================================================
   v2.1 产品主线收拢：产品说明 / 紧凑天气 / 快速捕捉提示 / 辅助入口
   全部限定在 .home-v2 作用域内，避免污染其他页面
   ============================================================ */

/* 产品说明：位于小院场景内，不抢日期与任务卡的视觉权重 */
.home-pitch {
  position: absolute;
  left: 18px;
  right: 18px;
  top: clamp(64px, 18vh, 96px);
  z-index: 2;
  text-align: left;
  pointer-events: none;
}
.home-pitch__title {
  margin: 0 0 6px;
  font-size: clamp(20px, 5.4vw, 25px);
  font-weight: 800;
  line-height: 1.25;
  color: #2d3a2c;
  text-shadow: 0 1px 4px rgba(255, 253, 247, 0.75), 0 0 14px rgba(255, 253, 247, 0.45);
}
.home-pitch__desc {
  margin: 0 0 4px;
  font-size: clamp(14px, 3.9vw, 16px);
  font-weight: 600;
  line-height: 1.4;
  color: #3a4a39;
  text-shadow: 0 1px 3px rgba(255, 253, 247, 0.7);
}
.home-pitch__sub {
  margin: 0 0 14px;
  font-size: 12px;
  line-height: 1.4;
  color: #5a6a58;
  text-shadow: 0 1px 3px rgba(255, 253, 247, 0.7);
}

/* === 小院 Tab 导航栏 === */
.home-tabs {
  pointer-events: auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4px;
  padding: 4px;
  background: rgba(255, 255, 255, 0.5);
  border: 1px solid rgba(83, 105, 78, 0.12);
  border-radius: 14px;
}
.home-tab {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 9px 4px;
  font-size: 12px;
  font-weight: 500;
  color: #5a6b58;
  background: transparent;
  border: none;
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.18s;
  white-space: nowrap;
}
.home-tab__icon {
  font-size: 11px;
  opacity: 0.7;
}
.home-tab.is-active {
  background: #3d5c3a;
  color: #fdf8ed;
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(61, 92, 58, 0.2);
}
.home-tab.is-active .home-tab__icon {
  opacity: 1;
}

/* === 突现灵感整理 === */
.home-inspire-card {
  position: relative;
  width: calc(100% - 28px);
  margin: 16px auto 14px;
  padding: 20px 18px 18px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(83, 105, 78, 0.15);
  border-radius: 14px;
  z-index: 2;
  isolation: isolate;
}
.home-inspire-card__head {
  margin-bottom: 14px;
}
.home-inspire-card__title {
  font-size: 18px;
  font-weight: 700;
  color: #2d3a2b;
  margin: 0 0 4px;
}
.home-inspire-card__hint {
  font-size: 12px;
  line-height: 1.5;
  color: #7a8a78;
  margin: 0;
}
.home-inspire-add {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.home-inspire-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.home-inspire-tag {
  padding: 5px 10px;
  font-size: 12px;
  color: #5a6b58;
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid rgba(83, 105, 78, 0.2);
  border-radius: 999px;
  cursor: pointer;
  transition: all 0.15s;
}
.home-inspire-tag.is-selected {
  background: #3d5c3a;
  border-color: #3d5c3a;
  color: #fdf8ed;
  font-weight: 600;
}
.home-inspire-card__textarea {
  width: 100%;
  padding: 10px 12px;
  font-size: 14px;
  line-height: 1.5;
  color: #3a3a3a;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(83, 105, 78, 0.2);
  border-radius: 10px;
  resize: vertical;
  font-family: inherit;
  box-sizing: border-box;
}
.home-inspire-card__textarea:focus {
  outline: none;
  border-color: #3d5c3a;
  background: #fff;
}
.home-inspire-card__submit {
  align-self: flex-start;
}
.home-inspire-list {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px dashed rgba(83, 105, 78, 0.2);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.home-inspire-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 8px 10px;
  background: rgba(255, 255, 255, 0.5);
  border-radius: 8px;
}
.home-inspire-item__cat {
  flex: 0 0 auto;
  padding: 2px 8px;
  font-size: 11px;
  color: #3d5c3a;
  background: rgba(83, 105, 78, 0.1);
  border-radius: 4px;
  white-space: nowrap;
  height: fit-content;
  margin-top: 2px;
}
.home-inspire-item__text {
  flex: 1;
  font-size: 13px;
  line-height: 1.5;
  color: #3a3a3a;
}
.home-inspire-item__del {
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  padding: 0;
  font-size: 15px;
  color: #7a8a78;
  background: transparent;
  border: none;
  cursor: pointer;
  opacity: 0.5;
  transition: opacity 0.15s;
}
.home-inspire-item__del:hover {
  opacity: 1;
  color: #c44;
}
.home-inspire-empty {
  padding: 12px 0;
  text-align: center;
}

/* 紧凑心情选择：一排小标签，取代原五瓶大卡片 */
.home-weather-strip {
  position: relative;
  z-index: 3;
  display: flex;
  gap: 6px;
  justify-content: center;
  width: calc(100% - 28px);
  margin: 10px auto 0;
}
.home-weather-strip__item {
  flex: 1 1 0;
  min-width: 0;
  min-height: 34px;
  padding: 6px 2px;
  border: 1.5px solid rgba(61, 92, 58, 0.28);
  border-radius: 999px;
  background: rgba(253, 248, 237, 0.85);
  color: #5a6a58;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  white-space: nowrap;
  transition: background 150ms ease, color 150ms ease, border-color 150ms ease;
  -webkit-tap-highlight-color: transparent;
  outline: none;
}
.home-weather-strip__item.is-active {
  background: #3d5c3a;
  border-color: #3d5c3a;
  color: #fdf8ed;
  font-weight: 800;
}
.home-weather-strip__item:focus-visible,
.home-aux-entry:focus-visible {
  outline: 2px solid rgba(83, 105, 78, 0.6);
  outline-offset: 2px;
}

/* 快速捕捉：新增一行辅助说明 */
.home-capture-card__hint {
  margin: -2px 0 8px;
  font-size: 12px;
  line-height: 1.4;
  color: #7a8a78;
}

/* === 今天都想了啥：询问式流程 === */
.home-think-ask {
  position: relative;
  width: calc(100% - 28px);
  margin: 16px auto 14px;
  padding: 20px 18px 18px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(83, 105, 78, 0.15);
  border-radius: 14px;
  z-index: 2;
  isolation: isolate;
}
.home-think-ask__progress {
  display: flex;
  align-items: baseline;
  gap: 2px;
  margin-bottom: 10px;
}
.home-think-ask__progress-num {
  font-size: 20px;
  font-weight: 700;
  color: #3d5c3a;
}
.home-think-ask__progress-total {
  font-size: 13px;
  color: #7a8a78;
}
.home-think-ask__progress-label {
  margin-left: 8px;
  font-size: 12px;
  color: #5a6b58;
  padding: 2px 8px;
  background: rgba(83, 105, 78, 0.1);
  border-radius: 4px;
}
.home-think-ask__question {
  font-size: 17px;
  font-weight: 600;
  line-height: 1.5;
  color: #2d3a2b;
  margin: 0 0 16px;
}
.home-think-ask__buttons {
  display: flex;
  gap: 10px;
}
.home-think-ask__buttons .home-btn {
  flex: 1;
}

/* 展开后的输入表单 */
.home-think-ask__form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.home-think-ask__textarea {
  width: 100%;
  padding: 10px 12px;
  font-size: 14px;
  line-height: 1.5;
  color: #3a3a3a;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(83, 105, 78, 0.2);
  border-radius: 10px;
  resize: vertical;
  font-family: inherit;
}
.home-think-ask__textarea:focus {
  outline: none;
  border-color: #3d5c3a;
  background: #fff;
}
.home-think-ask__emotion-label {
  font-size: 13px;
  color: #5a6b58;
  margin: 0;
}
.home-think-ask__emotions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.home-think-emotion {
  padding: 6px 12px;
  font-size: 13px;
  color: #5a6b58;
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid rgba(83, 105, 78, 0.2);
  border-radius: 999px;
  cursor: pointer;
  transition: all 0.15s;
}
.home-think-emotion.is-selected {
  background: #3d5c3a;
  border-color: #3d5c3a;
  color: #fdf8ed;
  font-weight: 600;
}
.home-think-ask__form-actions {
  display: flex;
  gap: 10px;
  margin-top: 4px;
}
.home-think-ask__form-actions .home-btn {
  flex: 1;
}

/* 询问态下方：已写下的想法实时列表 */
.home-think-ask__done {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px dashed rgba(83, 105, 78, 0.2);
}
.home-think-ask__done-title {
  font-size: 12px;
  color: #7a8a78;
  margin: 0 0 10px;
}
/* 内联列表复用汇总态样式，稍微收紧间距 */
.home-think-summary__list--inline {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.home-think-summary__list--inline .home-think-summary-item {
  padding: 10px;
}

/* === 汇总态 === */
.home-think-summary {
  position: relative;
  width: calc(100% - 28px);
  margin: 16px auto 14px;
  padding: 18px 16px 16px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(83, 105, 78, 0.15);
  border-radius: 14px;
  z-index: 2;
  isolation: isolate;
}
.home-think-summary__head {
  margin-bottom: 12px;
}
.home-think-summary__title {
  font-size: 18px;
  font-weight: 700;
  color: #2d3a2b;
  margin: 0 0 4px;
}
.home-think-summary__sub {
  font-size: 12px;
  line-height: 1.5;
  color: #7a8a78;
  margin: 0;
}
.home-think-summary__list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.home-think-summary-item {
  padding: 12px;
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid rgba(83, 105, 78, 0.1);
  border-radius: 10px;
}
.home-think-summary-item__head {
  display: flex;
  gap: 6px;
  margin-bottom: 6px;
}
.home-think-summary-item__cat {
  font-size: 11px;
  padding: 2px 8px;
  color: #3d5c3a;
  background: rgba(83, 105, 78, 0.1);
  border-radius: 4px;
}
.home-think-summary-item__emo {
  font-size: 11px;
  padding: 2px 8px;
  color: #8a5a3a;
  background: rgba(138, 90, 58, 0.1);
  border-radius: 4px;
}
.home-think-summary-item__text {
  font-size: 14px;
  line-height: 1.5;
  color: #3a3a3a;
  margin: 0 0 10px;
}

/* 多维度剖析 */
.home-think-analysis {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 10px;
  padding: 10px;
  background: rgba(83, 105, 78, 0.05);
  border-radius: 8px;
}
.home-think-aspect {
  display: flex;
  gap: 8px;
  align-items: baseline;
}
.home-think-aspect__label {
  flex: 0 0 auto;
  width: 32px;
  font-size: 11px;
  font-weight: 600;
  color: #3d5c3a;
}
.home-think-aspect__text {
  flex: 1;
  font-size: 12px;
  line-height: 1.5;
  color: #5a6b58;
}

/* 建议 */
.home-think-summary-item__advice {
  font-size: 13px;
  line-height: 1.6;
  color: #3d5c3a;
  margin: 0 0 8px;
  padding: 8px 10px;
  background: rgba(255, 255, 255, 0.6);
  border-left: 3px solid #3d5c3a;
  border-radius: 0 6px 6px 0;
}

.home-think-summary-item__reason {
  font-size: 12px;
  line-height: 1.5;
  color: #7a8a78;
  margin: 0 0 8px;
  font-style: italic;
}
.home-think-summary-item__guide {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}
.home-think-summary-item__guide-label {
  font-size: 12px;
  color: #7a8a78;
}
.home-think-guide-btn {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 6px 10px;
  font-size: 13px;
  font-weight: 600;
  color: #3d5c3a;
  background: rgba(255, 255, 255, 0.8);
  border: 1px solid rgba(83, 105, 78, 0.2);
  border-radius: 8px;
  cursor: pointer;
  text-align: left;
  transition: all 0.15s;
}
.home-think-guide-btn:hover {
  border-color: #3d5c3a;
  background: #fff;
}
.home-think-guide-btn__d {
  font-size: 11px;
  font-weight: 400;
  color: #7a8a78;
}
.home-think-reset {
  display: block;
  margin: 14px auto 0;
  padding: 6px 16px;
  font-size: 12px;
  color: #7a8a78;
  background: transparent;
  border: none;
  cursor: pointer;
  text-decoration: underline;
}

/* === 明日计划 === */
.home-tomorrow-card {
  position: relative;
  width: calc(100% - 28px);
  margin: 20px auto 14px;
  padding: 0;
  z-index: 2;
  isolation: isolate;
  overflow: visible;
}
.home-tomorrow-card__content {
  position: relative;
  z-index: 2;
  padding: 18px 18px 16px;
}
.home-tomorrow-card__eyebrow {
  font-size: 11px;
  letter-spacing: 0.08em;
  color: #7a8a78;
  text-transform: uppercase;
  margin-bottom: 2px;
}
.home-tomorrow-card__title {
  font-size: 18px;
  font-weight: 700;
  color: #2d3a2b;
  margin: 0 0 4px;
}
.home-tomorrow-card__hint {
  font-size: 12px;
  line-height: 1.5;
  color: #7a8a78;
  margin: 0 0 12px;
}
.home-tomorrow-add {
  display: flex;
  gap: 8px;
  margin-bottom: 10px;
}
.home-tomorrow-card__input {
  flex: 1;
  min-height: 40px;
  padding: 8px 12px;
  font-size: 13px;
  color: #3a3a3a;
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(83, 105, 78, 0.2);
  border-radius: 8px;
}
.home-tomorrow-card__input:focus {
  outline: none;
  border-color: #3d5c3a;
  background: #fff;
}
.home-tomorrow-list {
  list-style: none;
  margin: 0;
  padding: 0;
  counter-reset: step;
}
.home-tomorrow-step {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 0;
  border-bottom: 1px dashed rgba(83, 105, 78, 0.12);
}
.home-tomorrow-step:last-child {
  border-bottom: none;
}
.home-tomorrow-step__check {
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  padding: 0;
  font-size: 12px;
  color: #fdf8ed;
  background: rgba(83, 105, 78, 0.15);
  border: 1px solid rgba(83, 105, 78, 0.2);
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.home-tomorrow-step.is-done .home-tomorrow-step__check {
  background: #3d5c3a;
  border-color: #3d5c3a;
}
.home-tomorrow-step__num {
  flex: 0 0 auto;
  width: 18px;
  font-size: 12px;
  color: #7a8a78;
  text-align: center;
}
.home-tomorrow-step__text {
  flex: 1;
  font-size: 13px;
  line-height: 1.5;
  color: #3a3a3a;
}
.home-tomorrow-step.is-done .home-tomorrow-step__text {
  color: #7a8a78;
  text-decoration: line-through;
}
.home-tomorrow-step__del {
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  padding: 0;
  font-size: 15px;
  color: #7a8a78;
  background: transparent;
  border: none;
  cursor: pointer;
  opacity: 0.5;
  transition: opacity 0.15s;
}
.home-tomorrow-step__del:hover {
  opacity: 1;
  color: #c44;
}
.home-tomorrow-empty {
  padding: 8px 0;
  text-align: center;
}
.home-tomorrow-step__est {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 6px;
  font-size: 11px;
  color: rgba(61, 92, 58, 0.55);
  background: rgba(61, 92, 58, 0.08);
  border-radius: 8px;
  white-space: nowrap;
}
.home-tomorrow-loading {
  margin: 6px 0 2px;
  animation: th-pulse 1.4s ease-in-out infinite;
}
@keyframes th-pulse {
  0%, 100% { opacity: 0.5; }
  50% { opacity: 1; }
}
.home-tomorrow-add button[disabled] {
  opacity: 0.6;
  cursor: not-allowed;
}

/* 三个低权重辅助入口：窄条小按钮，视觉明显低于主行动 */
.home-aux-entries {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  width: calc(100% - 28px);
  margin: 14px auto 0;
  padding-bottom: 4px;
}
.home-aux-entry {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-height: 38px;
  padding: 8px 4px;
  border: 1px solid rgba(61, 92, 58, 0.18);
  border-radius: 12px;
  background: rgba(253, 248, 237, 0.72);
  color: #4a5a48;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  white-space: nowrap;
  transition: transform 120ms ease, background 150ms ease;
  -webkit-tap-highlight-color: transparent;
  outline: none;
}
.home-aux-entry:active {
  transform: scale(0.97);
}
.home-aux-entry__icon {
  font-size: 14px;
  line-height: 1;
}

/* 极窄屏（<=359px）收紧间距，保证不横向溢出 */
@media (max-width: 359px) {
  .home-weather-strip {
    gap: 4px;
    width: calc(100% - 16px);
  }
  .home-weather-strip__item {
    font-size: 11px;
    padding: 6px 1px;
  }
  .home-aux-entries {
    gap: 6px;
    width: calc(100% - 16px);
  }
  .home-aux-entry {
    font-size: 11px;
    padding: 8px 2px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .weather-choice,
  .weather-choice__art {
    transition: none;
    animation: none;
  }
  .home-weather-strip__item,
  .home-aux-entry {
    transition: none;
  }
}

/* ============================================================
   首页解释态（新用户）：品牌定义 → 复利路径 → 例子 → 唯一开始
   全部限定 .home-v2--intro 作用域，不影响老用户工作台
   ============================================================ */
.home-v2--intro {
  /* 背景沿用 .home-v2::before 的小院图，解释态只把它当作气氛 */
  padding: 0 0 96px;
}

/* 顶部：小院图作为气氛背景，高度控制在首屏 25%—35% */
.home-intro-hero {
  position: relative;
  width: 100%;
  height: clamp(200px, 30dvh, 320px);
  display: flex;
  align-items: flex-end;
  background: transparent;
  /* 底部轻遮罩保证文字可读，同时保留小院气氛 */
}
.home-intro-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(238, 240, 223, 0.92) 0%,
    rgba(238, 240, 223, 0.55) 45%,
    rgba(238, 240, 223, 0) 78%
  );
  pointer-events: none;
  z-index: 1;
}
.home-intro-hero__inner {
  position: relative;
  z-index: 2;
  width: 100%;
  padding: 16px 20px 14px;
}

/* 品牌与定义：比日期/天气更醒目，位于顶部插画中 */
.home-intro-brand {
  margin: 0 0 6px;
  display: inline-block;
  padding: 3px 10px;
  border-radius: 999px;
  background: rgba(61, 92, 58, 0.9);
  color: #fdf8ed;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 1px;
}
.home-intro-title {
  margin: 0 0 8px;
  font-size: clamp(24px, 6.6vw, 30px);
  font-weight: 900;
  line-height: 1.28;
  color: #2d3a2c;
  text-shadow: 0 1px 3px rgba(255, 253, 247, 0.7);
}
.home-intro-desc {
  margin: 0;
  font-size: clamp(13px, 3.8vw, 15px);
  font-weight: 600;
  line-height: 1.6;
  color: #3a4a39;
  text-shadow: 0 1px 2px rgba(255, 253, 247, 0.75);
}

/* 复利路径：生长路径（纵向连线+节点），不是五张同级大卡片 */
.home-intro-path {
  position: relative;
  z-index: 3;
  width: calc(100% - 28px);
  margin: 2px auto 0;
  padding: 14px 16px;
  border-radius: 18px;
  background: rgba(253, 248, 237, 0.86);
  box-shadow: 0 2px 10px rgba(61, 92, 58, 0.1);
}
.home-intro-path__title {
  margin: 0 0 12px;
  font-size: 15px;
  font-weight: 800;
  color: #2d3a2c;
}
.home-intro-path__list {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
}
/* 连线 */
.home-intro-path__list::before {
  content: "";
  position: absolute;
  left: 15px;
  top: 12px;
  bottom: 12px;
  width: 2px;
  background: linear-gradient(to bottom, #a9c39a, #6f9a63);
  border-radius: 2px;
}
.home-intro-path__item {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 8px 0;
}
.home-intro-path__icon {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #fffdf6;
  border: 1.5px solid rgba(61, 92, 58, 0.25);
  font-size: 16px;
  line-height: 1;
  z-index: 1;
}
.home-intro-path__text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.home-intro-path__text b {
  font-size: 14px;
  font-weight: 800;
  color: #2d3a2c;
}
.home-intro-path__text > span {
  font-size: 12px;
  line-height: 1.5;
  color: #5a6a58;
}

/* 一个真实例子 */
.home-intro-example {
  position: relative;
  z-index: 3;
  width: calc(100% - 28px);
  margin: 12px auto 0;
  padding: 14px 16px;
  border-radius: 18px;
  background: #f0f4e6;
  border: 1px solid rgba(61, 92, 58, 0.14);
}
.home-intro-example__label {
  margin: 0 0 8px;
  font-size: 14px;
  font-weight: 800;
  color: #2d3a2c;
}
.home-intro-example__steps {
  margin: 0 0 8px;
  font-size: 12.5px;
  line-height: 1.65;
  color: #3a4a39;
}
.home-intro-example__note {
  margin: 0;
  font-size: 12px;
  line-height: 1.6;
  color: #7a8a78;
}

/* 唯一开始按钮 + 低权重例子入口 */
.home-intro-actions {
  position: relative;
  z-index: 3;
  width: calc(100% - 28px);
  margin: 16px auto 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 10px;
}
.home-intro-cta {
  width: 100%;
  justify-content: center;
}
.home-intro-more {
  align-self: center;
}
.home-intro-more.is-expanded {
  color: #3d5c3a;
}

/* 展开的例子（默认收起） */
.home-intro-examples {
  position: relative;
  z-index: 3;
  width: calc(100% - 28px);
  margin: 14px auto 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
.home-intro-examples__item {
  padding: 12px;
  border-radius: 14px;
  background: rgba(253, 248, 237, 0.9);
  border: 1px solid rgba(61, 92, 58, 0.14);
}
.home-intro-examples__head {
  margin: 0 0 6px;
  font-size: 13px;
  font-weight: 800;
  color: #2d3a2c;
}
.home-intro-examples__tag {
  display: inline-block;
  margin-right: 6px;
  padding: 1px 7px;
  border-radius: 999px;
  background: #e4ecd9;
  color: #3d5c3a;
  font-size: 11px;
  font-weight: 800;
}
.home-intro-examples__steps {
  margin: 0;
  font-size: 12px;
  line-height: 1.55;
  color: #5a6a58;
}

/* 跳过介绍 */
.home-intro-skip {
  position: relative;
  z-index: 3;
  display: block;
  margin: 18px auto 0;
}

/* 老用户工作台：复利说明低权重入口 */
.home-guide-entry {
  position: relative;
  z-index: 3;
  display: flex;
  justify-content: center;
  margin: 6px auto 0;
}
.home-guide-entry .text-button {
  font-size: 12px;
  color: #6a7a68;
}

/* 复利路径说明弹层 */
.home-guide-sheet {
  position: fixed;
  inset: 0;
  z-index: 99;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(30, 40, 28, 0.5);
  animation: guide-fade 180ms ease;
}
@keyframes guide-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}
.home-guide-sheet__card {
  position: relative;
  width: 100%;
  max-width: 360px;
  max-height: 86dvh;
  overflow-y: auto;
  padding: 22px 20px 18px;
  border-radius: 20px;
  background: #fdf8ed;
  box-shadow: 0 10px 40px rgba(30, 40, 28, 0.35);
}
.home-guide-sheet__close {
  position: absolute;
  top: 10px;
  right: 12px;
  border: 0;
  background: transparent;
  color: #5a6a58;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  padding: 4px;
}
.home-guide-sheet__title {
  margin: 0 0 6px;
  font-size: 20px;
  font-weight: 900;
  color: #2d3a2c;
}
.home-guide-sheet__lead {
  margin: 0 0 14px;
  font-size: 13px;
  line-height: 1.6;
  color: #3a4a39;
}
.home-guide-sheet__list {
  list-style: none;
  margin: 0 0 12px;
  padding: 0;
}
.home-guide-sheet__item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 7px 0;
}
.home-guide-sheet__icon {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #fffdf6;
  border: 1.5px solid rgba(61, 92, 58, 0.25);
  font-size: 15px;
}
.home-guide-sheet__text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.home-guide-sheet__text b {
  font-size: 14px;
  font-weight: 800;
  color: #2d3a2c;
}
.home-guide-sheet__text span {
  font-size: 12.5px;
  line-height: 1.5;
  color: #5a6a58;
}
.home-guide-sheet__note {
  margin: 0 0 16px;
  font-size: 12px;
  line-height: 1.6;
  color: #7a8a78;
}

/* 极窄屏（<=359px）：解释态两列例子改单列，防止横向溢出 */
@media (max-width: 359px) {
  .home-intro-examples {
    grid-template-columns: 1fr;
    width: calc(100% - 20px);
  }
  .home-intro-path,
  .home-intro-example,
  .home-intro-actions {
    width: calc(100% - 20px);
  }
  .home-intro-title {
    font-size: 22px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-guide-sheet {
    animation: none;
  }
}

/* === 引导期推荐角落 === */
.recommend-card {
  width: 100%;
  text-align: left;
  cursor: pointer;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.recommend-card:active {
  transform: scale(0.98);
  box-shadow: var(--shadow-sm);
}
.recommend-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: linear-gradient(145deg, #f5f7ea, var(--leaf-pale));
  font-size: 20px;
}
.is-hidden { display: none; }

/* === 元气田：身体账本 === */
.sf-tabs {
  display: flex;
  gap: 6px;
  padding: 4px;
  margin-bottom: 14px;
  border-radius: 14px;
  background: var(--paper-deep);
}
.sf-tab {
  flex: 1;
  padding: 8px 0;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--ink-soft);
  font-size: 14px;
  cursor: pointer;
}
.sf-tab.is-active {
  background: #fff;
  color: var(--ink);
  font-weight: 700;
  box-shadow: var(--shadow-sm);
}
.sf-goal-card { cursor: pointer; }
.sf-cat-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border-radius: 14px;
  background: linear-gradient(145deg, #f5f7ea, var(--leaf-pale));
  font-size: 22px;
}
.sf-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}
.sf-opt {
  display: flex;
  flex-direction: column;
  gap: 2px;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 10px 8px;
  border: 1.5px solid var(--paper-deep);
  border-radius: 14px;
  background: var(--paper);
  color: var(--ink);
  font-size: 14px;
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.sf-opt.is-active {
  border-color: var(--leaf);
  background: color-mix(in srgb, var(--leaf-pale) 70%, white);
  font-weight: 700;
}
.sf-opt--check {
  flex-direction: row;
  gap: 8px;
  justify-content: flex-start;
  font-weight: 400;
}
.sf-opt--check input { width: 18px; height: 18px; accent-color: var(--leaf); }
.sf-week-days {
  display: flex;
  gap: 8px;
  justify-content: space-between;
  margin-bottom: 12px;
}
.sf-day {
  flex: 1;
  aspect-ratio: 1;
  max-width: 44px;
  border: 1.5px solid var(--paper-deep);
  border-radius: 50%;
  background: var(--paper);
  color: var(--ink-soft);
  font-size: 15px;
  cursor: pointer;
}
.sf-day.is-active {
  border-color: var(--leaf);
  background: var(--leaf);
  color: #fff;
  font-weight: 700;
}
.sf-flex {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  margin-bottom: 10px;
  border-radius: 12px;
  background: var(--paper-deep);
  font-size: 13px;
  cursor: pointer;
}
.sf-flex input { width: 18px; height: 18px; accent-color: var(--leaf); }
.sf-custom-row {
  display: flex;
  gap: 8px;
  margin-top: 10px;
}
.sf-custom-row .input { flex: 1; }
.sf-note {
  width: 100%;
  padding: 12px;
  border: 1.5px solid var(--paper-deep);
  border-radius: 12px;
  background: var(--paper);
  font-size: 14px;
  line-height: 1.6;
  resize: none;
}
.sf-note:focus { border-color: var(--leaf); outline: none; }
.sf-progress {
  height: 10px;
  margin: 10px 0 8px;
  border-radius: 99px;
  background: var(--paper-deep);
  overflow: hidden;
}
.sf-progress span {
  display: block;
  height: 100%;
  border-radius: 99px;
  background: linear-gradient(90deg, var(--leaf), var(--sun));
  transition: width 0.4s ease;
}
.sf-ledger {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 8px;
}
.sf-ledger-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 12px;
  background: var(--paper);
}
.sf-time { flex-shrink: 0; font-size: 12px; color: var(--ink-soft); font-variant-numeric: tabular-nums; }
.sf-min { flex-shrink: 0; font-size: 13px; color: var(--leaf-deep); font-weight: 700; }
.sf-dots {
  display: flex;
  justify-content: space-between;
  margin-top: 12px;
  font-size: 20px;
  line-height: 1;
}
.sf-dot { flex: 1; text-align: center; color: #c9cdd3; }
.sf-dot.is-done { color: var(--leaf-deep); }
.sf-dot.is-rest { color: var(--sun); }
.sf-daylabels {
  display: flex;
  justify-content: space-between;
  margin-top: 4px;
}
.sf-daylabels span { flex: 1; text-align: center; font-size: 11px; color: var(--ink-soft); }
.sf-bars {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  height: 130px;
  padding: 10px;
  border-radius: 14px;
  background: var(--paper);
}
.sf-bar-col {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  height: 100%;
  gap: 4px;
}
.sf-bar {
  width: 100%;
  max-width: 26px;
  border-radius: 6px 6px 3px 3px;
  background: linear-gradient(180deg, var(--leaf), color-mix(in srgb, var(--leaf) 60%, white));
  position: relative;
  transition: height 0.3s ease;
}
.sf-bar i {
  position: absolute;
  top: -16px;
  left: 50%;
  transform: translateX(-50%);
  font-style: normal;
  color: var(--ink-soft);
  white-space: nowrap;
}
.sf-legend-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 12px;
  background: var(--paper);
  font-size: 14px;
}
.sf-legend-dot {
  flex-shrink: 0;
  width: 12px;
  height: 12px;
  border-radius: 4px;
}
.sf-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.sf-chip {
  padding: 6px 12px;
  border-radius: 99px;
  background: color-mix(in srgb, var(--leaf-pale) 70%, white);
  color: var(--ink);
  font-size: 13px;
}
.sf-chip.muted { background: var(--paper-deep); color: var(--ink-soft); }
.sf-heat {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.sf-heat-week,
.sf-heat-row {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}
.sf-heat-week span { font-size: 11px; color: var(--ink-soft); text-align: center; }
.sf-heat-cell {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1;
  border-radius: 8px;
  font-size: 12px;
  color: var(--ink-soft);
  background: transparent;
}
.sf-heat-cell.is-out { opacity: 0.25; }
.sf-heat-cell.is-low { background: #e4efd2; color: var(--ink); }
.sf-heat-cell.is-mid { background: #c2dfae; color: var(--ink); }
.sf-heat-cell.is-high { background: #8fbf6f; color: #fff; font-weight: 700; }
.sf-heat-cell.is-rest { position: relative; }
.sf-heat-cell.is-rest::after {
  content: "";
  position: absolute;
  inset: 55% 18% 12% 18%;
  border-radius: 4px;
  background: color-mix(in srgb, var(--sun) 55%, white);
}
.sf-heat-legend {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 10px;
  flex-wrap: wrap;
}
.sf-heat-legend .sf-heat-cell { width: 20px; aspect-ratio: 1; font-size: 10px; }
.sf-plan-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px;
  border-radius: 14px;
  background: var(--paper);
}
.sf-plan-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  font-size: 14px;
}

/* ============================================================
   新用户介绍态 home-v3
   ============================================================ */
.home-v3 {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0 0 80px;
}

/* 首屏 hero */
.home-v3-hero {
  position: relative;
  min-height: 78vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px 24px 48px;
  background: linear-gradient(180deg, #f4f0e4 0%, #eef0df 40%, #e8ead8 100%);
  text-align: center;
  overflow: hidden;
}
.home-v3-hero__inner {
  position: relative;
  z-index: 1;
  max-width: 340px;
  width: 100%;
}
.home-v3-brand {
  font-size: 12px;
  letter-spacing: 0.12em;
  color: #7a8a78;
  margin: 0 0 24px;
}
.home-v3-title {
  font-size: 26px;
  font-weight: 800;
  line-height: 1.4;
  color: #2d3a2b;
  margin: 0 0 16px;
}
.home-v3-desc {
  font-size: 14px;
  line-height: 1.8;
  color: #5a6b58;
  margin: 0 0 32px;
}
.home-v3-actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 0 0 24px;
}
.home-v3-cta {
  display: block;
  width: 100%;
  padding: 14px 20px;
  font-size: 15px;
  font-weight: 600;
  color: #fdf8ed;
  background: #3d5c3a;
  border: none;
  border-radius: 14px;
  cursor: pointer;
  transition: opacity 0.2s;
}
.home-v3-cta:hover { opacity: 0.9; }
.home-v3-sub {
  display: block;
  width: 100%;
  padding: 13px 20px;
  font-size: 14px;
  font-weight: 500;
  color: #3d5c3a;
  background: transparent;
  border: 1.5px solid rgba(83, 105, 78, 0.3);
  border-radius: 14px;
  cursor: pointer;
  transition: all 0.2s;
}
.home-v3-sub:hover {
  border-color: #3d5c3a;
  background: rgba(255, 255, 255, 0.5);
}
.home-v3-date {
  font-size: 12px;
  color: #7a8a78;
  margin: 0;
}

/* 混乱输入区 */
.home-v3-chaos {
  padding: 0 20px;
  margin-top: -20px;
  position: relative;
  z-index: 2;
}
.home-v3-chaos__card {
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(83, 105, 78, 0.12);
  border-radius: 16px;
  padding: 20px 18px;
  box-shadow: 0 8px 24px rgba(53, 68, 55, 0.08);
}
.home-v3-chaos__label {
  font-size: 14px;
  font-weight: 600;
  color: #2d3a2b;
  margin: 0 0 12px;
  line-height: 1.5;
}
.home-v3-chaos__input {
  width: 100%;
  padding: 12px 14px;
  font-size: 14px;
  line-height: 1.6;
  color: #3a3a3a;
  background: rgba(255, 255, 255, 0.8);
  border: 1px solid rgba(83, 105, 78, 0.2);
  border-radius: 10px;
  resize: vertical;
  font-family: inherit;
  margin-bottom: 12px;
  box-sizing: border-box;
}
.home-v3-chaos__input:focus {
  outline: none;
  border-color: #3d5c3a;
  background: #fff;
}
.home-v3-chaos__hint {
  font-size: 12px;
  color: #7a8a78;
  margin: 0 0 12px;
  font-style: italic;
}
.home-v3-chaos__reset {
  display: block;
  margin: 12px auto 0;
  font-size: 13px;
  color: #3d5c3a;
  background: transparent;
  border: none;
  cursor: pointer;
  text-decoration: underline;
}
.home-v3-chaos__submit {
  margin-top: 4px;
}

/* 复利路径 */
.home-v3-path {
  padding: 48px 24px 40px;
}
.home-v3-path__title {
  font-size: 20px;
  font-weight: 700;
  color: #2d3a2b;
  text-align: center;
  margin: 0 0 24px;
}
.home-v3-path__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.home-v3-path__item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px;
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid rgba(83, 105, 78, 0.1);
  border-radius: 12px;
}
.home-v3-path__icon {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #3d5c3a;
  background: rgba(83, 105, 78, 0.1);
  border-radius: 50%;
}
.home-v3-path__icon svg {
  width: 22px;
  height: 22px;
}
.home-v3-path__text {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.home-v3-path__text b {
  font-size: 15px;
  font-weight: 700;
  color: #2d3a2b;
}
.home-v3-path__text span {
  font-size: 13px;
  line-height: 1.5;
  color: #5a6b58;
}
.home-v3-path__foot {
  font-size: 14px;
  line-height: 1.8;
  color: #5a6b58;
  text-align: center;
  margin: 24px 0 0;
  font-style: italic;
}

/* 演示区 */
.home-v3-demo {
  padding: 0 24px 40px;
}
.home-v3-demo__label {
  font-size: 16px;
  font-weight: 700;
  color: #2d3a2b;
  margin: 0 0 16px;
}
.home-v3-demo__row {
  display: flex;
  gap: 10px;
  padding: 14px;
  margin-bottom: 10px;
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid rgba(83, 105, 78, 0.1);
  border-radius: 10px;
  align-items: flex-start;
}
.home-v3-demo__tag {
  flex: 0 0 auto;
  padding: 3px 10px;
  font-size: 11px;
  font-weight: 600;
  color: #3d5c3a;
  background: rgba(83, 105, 78, 0.12);
  border-radius: 6px;
  white-space: nowrap;
  height: fit-content;
  margin-top: 1px;
}
.home-v3-demo__row p {
  flex: 1;
  font-size: 13px;
  line-height: 1.6;
  color: #3a3a3a;
  margin: 0;
}
.home-v3-demo__row em {
  color: #7a8a78;
  font-style: italic;
}

/* 跳过按钮 */
.home-v3-skip {
  display: block;
  margin: 0 auto 40px;
  padding: 10px 24px;
  font-size: 13px;
  color: #7a8a78;
  background: transparent;
  border: none;
  cursor: pointer;
  text-decoration: underline;
}

/* ============================================================
   首页"灵光林"内嵌预览（突现灵感整理标签页）
   ============================================================ */
.home-firefly-inline {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.home-firefly-inline__head {
  margin-bottom: 4px;
}
.home-firefly-inline__title {
  font-size: 18px;
  font-weight: 800;
  color: var(--ink);
  margin: 0 0 4px;
}
.home-firefly-inline__hint {
  font-size: 13px;
  color: var(--ink-soft);
  margin: 0;
  line-height: 1.5;
}
.home-firefly-inline__capture {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin: 14px 0 10px;
}
.home-firefly-inline__pending {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  cursor: pointer;
  background: color-mix(in srgb, var(--sun) 22%, var(--paper));
  margin-bottom: 10px;
}
.home-firefly-inline__pending-num {
  font-size: 22px;
  font-weight: 800;
  color: var(--clay);
  min-width: 28px;
  text-align: center;
}
.home-firefly-inline__today {
  margin-top: 4px;
}
.home-firefly-inline__label {
  font-size: 13px;
  font-weight: 600;
  color: var(--ink-soft);
  margin: 0 0 8px;
}
.home-firefly-inline__empty {
  text-align: center;
  padding: 16px 0;
}
.home-firefly-inline__more {
  display: block;
  width: 100%;
  margin-top: 12px;
  padding: 12px;
  border: none;
  border-radius: 12px;
  background: color-mix(in srgb, var(--leaf-pale) 50%, transparent);
  color: var(--leaf-deep);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}
.home-firefly-inline__more:active {
  background: color-mix(in srgb, var(--leaf-pale) 80%, transparent);
}

/* ============================================================
   底部单个辅助入口（先去地图看看）
   ============================================================ */
.home-aux-entry--single {
  grid-column: 1 / -1;
  min-height: 44px;
  font-size: 14px;
}

/* ============================================================
   地图模块简介弹窗
   ============================================================ */
.map-intro-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(30, 35, 28, 0.45);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  animation: map-intro-fade-in 0.2s ease;
}
@keyframes map-intro-fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
.map-intro-popup {
  position: relative;
  max-width: 320px;
  width: 100%;
  padding: 28px 24px 20px;
  border-radius: 20px;
  background: var(--paper, #fdf8ed);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.18);
  text-align: center;
  animation: map-intro-pop-in 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
}
@keyframes map-intro-pop-in {
  from { opacity: 0; transform: scale(0.85) translateY(10px); }
  to { opacity: 1; transform: scale(1) translateY(0); }
}
.map-intro-popup__icon {
  width: 56px;
  height: 56px;
  margin: 0 auto 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-size: 26px;
}
.map-intro-popup__title {
  font-size: 20px;
  font-weight: 800;
  color: var(--ink, #2d3a2b);
  margin: 0 0 6px;
}
.map-intro-popup__sub {
  font-size: 13px;
  color: var(--ink-soft, #7a8a78);
  margin: 0 0 12px;
}
.map-intro-popup__intro {
  font-size: 14px;
  line-height: 1.6;
  color: var(--ink, #3a3a3a);
  margin: 0 0 20px;
}
.map-intro-popup__actions {
  display: flex;
  gap: 12px;
}
.map-intro-popup__actions .button {
  flex: 1;
  min-height: 44px;
  font-size: 15px;
  font-weight: 600;
  border: none;
  border-radius: 12px;
  cursor: pointer;
  transition: transform 0.12s, opacity 0.15s;
}
.map-intro-popup__actions .button:active {
  transform: scale(0.97);
}
.map-intro-popup__actions .button--secondary {
  background: var(--paper-deep, #f0ead8);
  color: var(--ink-soft, #6a7a68);
}
.map-intro-popup__actions .button--primary {
  background: var(--leaf-deep, #5a7a4e);
  color: #fff;
}

