/* 治愈空间 */
.healing-hub-page { max-width: 600px; margin: 0 auto; padding: 16px; }
.healing-hub-intro { text-align: center; color: var(--text-secondary); font-size: 14px; margin-bottom: 20px; }
.healing-card {
  display: flex; align-items: center; gap: 14px;
  padding: 20px 18px; margin-bottom: 12px;
  border-radius: var(--radius-lg); border: 1px solid var(--border);
  background: linear-gradient(135deg, #FFF9F5, #FFE8EC);
  cursor: pointer; text-decoration: none; color: inherit;
}
.healing-card:active { opacity: 0.92; }
.healing-card .emoji { font-size: 32px; }
.healing-card h3 { margin: 0 0 4px; font-size: 16px; }
.healing-card p { margin: 0; font-size: 13px; color: var(--text-secondary); }

/* 梦境探索 — 语音输入 */
.voice-input-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
  margin-bottom: 4px;
}
.voice-btn {
  border: none;
  border-radius: 20px;
  padding: 8px 14px;
  font-size: 13px;
  background: #E8E0F8;
  color: #6B67B3;
  cursor: pointer;
}
.voice-btn-active {
  background: #E87471;
  color: #fff;
}
.voice-status {
  flex: 1;
  font-size: 12px;
  color: var(--text-secondary);
  min-height: 18px;
}

.mini-room-card {
  padding: 18px; margin-bottom: 12px; border-radius: var(--radius-lg);
  border: 1px solid var(--border); cursor: pointer;
}
.mini-room-inner { display: flex; align-items: center; gap: 12px; }
.mini-room-scene {
  min-height: 280px; border-radius: var(--radius-lg);
  margin: 12px; overflow: hidden; position: relative;
}
.mini-ctrl-row {
  display: flex; justify-content: space-evenly; padding: 16px;
}
.mini-ctrl-btn {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  border: none; background: transparent; font-size: 12px; cursor: pointer;
}

/* 睡前电台 — 固定底栏 + 列表可滚动 */
.radio-page {
  display: flex;
  flex-direction: column;
  height: calc(100vh - var(--nav-h));
  height: calc(100dvh - var(--nav-h));
  max-height: calc(100vh - var(--nav-h));
  overflow: hidden;
}
.radio-page .page-header { flex-shrink: 0; }
.radio-mood-row {
  flex-shrink: 0;
  display: flex; gap: 8px; padding: 10px 16px; max-width: 640px; margin: 0 auto; width: 100%;
}
.radio-tracks-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: #B8C4D8 transparent;
}
.radio-tracks-scroll::-webkit-scrollbar { width: 6px; }
.radio-tracks-scroll::-webkit-scrollbar-thumb {
  background: #B8C4D8;
  border-radius: 3px;
}
.radio-tracks-scroll::-webkit-scrollbar-track { background: transparent; }
.radio-mood-chip {
  flex: 1; padding: 10px 6px; border-radius: 20px; font-size: 11px; font-weight: 500;
  border: 1px solid transparent; cursor: pointer; text-align: center; line-height: 1.3;
}
.radio-mood-chip[data-mood="busy"] { background: #E8E8F5; color: #3D3866; border-color: rgba(61,56,102,0.15); }
.radio-mood-chip[data-mood="anxious"] { background: #FFE8EC; color: #8B4040; border-color: rgba(139,64,64,0.15); }
.radio-mood-chip[data-mood="tired"] { background: #E8F5EC; color: #3D5A48; border-color: rgba(61,90,72,0.15); }
.radio-mood-chip[data-mood="deepSleep"] { background: #D8E8F5; color: #2D4A66; border-color: rgba(45,74,102,0.15); }
.radio-mood-chip[data-mood="busy"].active { background: #6B67B3; color: #fff; border-color: #6B67B3; }
.radio-mood-chip[data-mood="anxious"].active { background: #E87471; color: #fff; border-color: #E87471; }
.radio-mood-chip[data-mood="tired"].active { background: #7CB896; color: #fff; border-color: #7CB896; }
.radio-mood-chip[data-mood="deepSleep"].active { background: #5A7BB8; color: #fff; border-color: #5A7BB8; }
.radio-tracks-wrap {
  max-width: 55%; min-width: 280px; margin: 0 auto; padding: 4px 16px 12px;
}
.radio-track {
  display: flex; align-items: center; gap: 12px; padding: 10px 14px; margin-bottom: 6px;
  border-radius: 12px; border: 1px solid #E8ECF2; background: #fff; cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
}
.radio-track:hover { background: #FAFBFD; }
.radio-track.playing { background: #F0F4FA; border-color: #5A6B8E; }
.radio-track span:first-child { font-size: 20px; flex-shrink: 0; }
.radio-track span:nth-child(2) { flex: 1; font-size: 14px; font-weight: 500; color: #4A4A5E; }
.radio-track span:last-child { flex-shrink: 0; font-size: 14px; }
.radio-bottom {
  flex-shrink: 0;
  display: flex; gap: 10px; padding: 10px 16px 14px;
  max-width: 55%; min-width: 280px; margin: 0 auto; width: 100%;
  background: linear-gradient(180deg, rgba(255,255,255,0) 0%, #fff 24%);
  box-sizing: border-box;
}
.radio-play-btn {
  flex: 3; min-height: 48px; padding: 12px 16px; border-radius: 14px; border: none;
  background: #5A6B8E; color: #fff; font-size: 15px; font-weight: 600; cursor: pointer;
}
.radio-play-btn:active { opacity: 0.92; }
.radio-link-btn {
  flex: 2; min-height: 48px; padding: 12px; border-radius: 14px;
  border: 1px solid #B8C4D8; background: #fff; color: #5A6B8E;
  font-size: 14px; font-weight: 500; cursor: pointer;
}

.answer-modes { display: flex; gap: 10px; padding: 12px 16px; }
.answer-modes button {
  flex: 1; padding: 14px 6px; border-radius: 14px; font-size: 13px; font-weight: 500;
  border: 1px solid transparent; cursor: pointer; transition: transform 0.15s;
}
.answer-modes button[data-m="moon"] { background: #E8E0F8; color: #4A3D6B; border-color: rgba(74,61,107,0.2); }
.answer-modes button[data-m="sun"] { background: #FFF0C8; color: #8B5A10; border-color: rgba(139,90,16,0.2); }
.answer-modes button[data-m="star"] { background: #D8ECF8; color: #2D5A6E; border-color: rgba(45,90,110,0.2); }
.answer-modes button[data-m="moon"].active { background: #7B6BB3; color: #fff; border-color: #7B6BB3; box-shadow: 0 2px 8px rgba(123,107,179,0.35); }
.answer-modes button[data-m="sun"].active { background: #E8A030; color: #fff; border-color: #E8A030; box-shadow: 0 2px 8px rgba(232,160,48,0.35); }
.answer-modes button[data-m="star"].active { background: #5A9BB8; color: #fff; border-color: #5A9BB8; box-shadow: 0 2px 8px rgba(90,155,184,0.35); }
.answer-form-center {
  display: flex; flex-direction: column; align-items: center;
  padding: 16px 0; flex: 1;
  margin-top: 20px;
}
.answer-input {
  width: 52%; min-width: 280px; max-width: 520px;
  min-height: 240px; padding: 14px; box-sizing: border-box;
  border-radius: 12px; border: 1px solid #E5E7EB; resize: vertical;
  background: #fff; text-align: center; font-family: inherit; font-size: 15px;
}
.answer-gen-wrap { width: 52%; min-width: 280px; max-width: 520px; padding: 0 16px 16px; }
.answer-gen-btn {
  width: 100%; min-height: 48px; padding: 14px 16px;
  border-radius: 12px; border: none; cursor: pointer;
  background: #5A5A6E; color: #fff; font-size: 16px; font-weight: 600;
}
.answer-gen-btn:active { opacity: 0.9; }
.answer-hex-banner {
  margin: 8px 16px 0; padding: 12px 14px; text-align: center;
  background: #FFF9E5; border-radius: 12px; border: 1px solid #E5E7EB;
  font-size: 14px; line-height: 1.5;
}
.answer-hex-banner small { color: var(--text-secondary); font-size: 12px; }
.answer-result-card {
  margin: 16px; padding: 20px; border-radius: 16px;
  background: linear-gradient(160deg, #FFF9E5, #FFE5EC);
  line-height: 1.75; white-space: pre-wrap; font-size: 15px;
}
.answer-actions { display: flex; justify-content: space-evenly; padding: 16px; }
.header-notif-wrap { position: relative; display: inline-flex; }
