/**
 * 到场 · 趣味层/陪伴营/问一下 样式（V2.2.0）
 * 夜空四层：#0B0F18 底 / #121826 / #161D2E / #1B2233 面板
 * 唯一强调色：暖灯 #F5C97A（亮芯 #FFE8B8）。禁渐变标题/玻璃拟态/emoji/红色。
 */

/* ---------- 0. 夜空容器 ---------- */
.night-sky {
  min-height: 100vh;
  background: #0B0F18;
  padding: 20px 16px 48px;
  position: relative;
  overflow: hidden;
  max-width: 560px;
  margin: 0 auto;
}
.night-sky::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: rgba(245, 201, 122, 0.10);
  pointer-events: none;
}
.night-sky.wx-rain::before {
  background: repeating-linear-gradient(115deg,
    rgba(138, 147, 168, 0.14) 0 1px, transparent 1px 7px);
  height: 120px;
}
.night-sky.wx-fog::before {
  background: radial-gradient(ellipse 90% 40px at 50% 0,
    rgba(138, 147, 168, 0.12), transparent 70%);
  height: 90px;
}
.night-sky.wx-snow::before {
  background: radial-gradient(circle 1px at 12% 20px, rgba(245,201,122,.28) 0 1px, transparent 2px),
              radial-gradient(circle 1px at 48% 46px, rgba(255,232,184,.22) 0 1px, transparent 2px),
              radial-gradient(circle 1px at 82% 14px, rgba(255,232,184,.2) 0 1px, transparent 2px);
  height: 80px;
}

/* ---------- 1. 夜色 hero ---------- */
.night-hero { background: #121826; border: 1px solid #1B2233; }
.night-hero h1 { margin: 4px 0 6px; color: #F5EFE4; }
.night-seq { letter-spacing: 1px; margin-bottom: 2px; }
.night-sub { color: #AAB2C5; font-size: 15px; margin: 0; }
.night-head {
  display: flex; align-items: center; gap: 14px;
  color: #8A93A8; font-size: 14px; margin: 0 2px 14px;
}
.night-head .seq { color: #AAB2C5; letter-spacing: 1px; }

/* ---------- 2. 房东在：呼吸点 ---------- */
.host-line {
  display: inline-flex; align-items: center; gap: 8px;
  color: #AAB2C5; font-size: 14px; margin: 0 2px 14px;
}
.host-dot, .host-line .dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: #F5C97A; display: inline-block;
  animation: host-breathe 5.4s ease-in-out infinite;
}
@keyframes host-breathe {
  0%, 100% { transform: scale(.82); opacity: .55; }
  50%      { transform: scale(1);   opacity: 1; }
}

/* ---------- 3. 窗排 ---------- */
.street { margin: 6px 2px 18px; }
.building {
  display: flex; align-items: flex-end; gap: 10px;
  background: #121826; border: 1px solid #1B2233;
  border-radius: 8px; padding: 18px 16px;
}
.window {
  width: 14px; height: 18px; border-radius: 2px;
  background: #1B2233; position: relative; display: inline-block;
}
.window.lit {
  background: #F5C97A;
  box-shadow: 0 0 6px rgba(245, 201, 122, 0.45), 0 0 2px rgba(245, 201, 122, 0.6);
}
.window.lit.mine {
  outline: 1px solid #FFE8B8; outline-offset: 1px;
}
.window .you {
  position: absolute; right: -2px; bottom: -16px;
  font-size: 12px; font-style: normal; color: #F5C97A;
  white-space: nowrap;
}
.building { padding-bottom: 26px; }

/* ---------- 4. 小引（窗台上的小东西） ---------- */
.spirit-box {
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  margin: 4px 0 18px; padding: 20px 0 6px;
}
.spirit { width: 12px; height: 12px; border-radius: 50%; }
.spirit i { display: none; }
.spirit-sleep { background: #2A3346; animation: spirit-breathe 6.2s ease-in-out infinite; }
.spirit-awake { background: #F5C97A; box-shadow: 0 0 6px rgba(245,201,122,.4); animation: spirit-breathe 5.4s ease-in-out infinite; }
.spirit-talk  { background: #FFE8B8; box-shadow: 0 0 10px rgba(255,232,184,.55); animation: spirit-breathe 4.6s ease-in-out infinite; }
@keyframes spirit-breathe {
  0%, 100% { transform: scale(.85); opacity: .6; }
  50%      { transform: scale(1);   opacity: 1; }
}

/* ---------- 5. 文本层级 ---------- */
.task-card { background: #121826; border: 1px solid #1B2233; }
.t-kicker { color: #8A93A8; font-size: 13px; margin: 0 0 6px; }
.t-main { color: #F5EFE4; font-size: 20px; font-weight: 500; line-height: 1.5; margin: 0 0 8px; }
.t-alt, .t-meta { color: #8A93A8; font-size: 14px; margin: 0; }
.t-meta a { color: #8A93A8; text-decoration: underline; text-underline-offset: 3px; }
.total-line { margin: 0 2px 16px; text-align: center; }
.chair-line { background: #121826; border: 1px solid #F5C97A33; margin-bottom: 16px; }
.chair-line p { margin: 0 0 10px; color: #C9CFDC; }
.center { text-align: center; }

/* ---------- 6. 口令 / 结营卡 ---------- */
.pass-code {
  font-size: 26px; letter-spacing: 2px;
  font-variant-numeric: tabular-nums;
  color: #FFE8B8; margin: 6px 0 10px;
  word-break: break-all;
}
.report-card {
  background: #121826; border: 1px solid rgba(245, 201, 122, 0.2);
  border-radius: 10px; padding: 26px 20px; position: relative;
  max-width: 560px; margin: 0 auto 16px;
}
.report-sample {
  position: absolute; top: 10px; right: 12px;
  font-size: 12px; color: #8A93A8;
}
.report-title { color: #F5EFE4; font-size: 18px; font-weight: 500; margin: 0 0 18px; letter-spacing: 1px; }
.report-nums { margin: 0 0 16px; display: flex; flex-direction: column; gap: 12px; }
.report-nums .rn { display: flex; align-items: baseline; justify-content: space-between; }
.report-nums dt { color: #8A93A8; font-size: 14px; }
.report-nums dd { color: #F5EFE4; font-size: 18px; margin: 0; font-variant-numeric: tabular-nums; }
.report-nums dd small { color: #8A93A8; font-size: 13px; }
.report-spirit { color: #C9CFDC; font-size: 14px; margin: 0 0 14px; }
.report-sign { color: #F5C97A; font-size: 13px; letter-spacing: 2px; margin: 0; }
.report-btns { display: flex; gap: 10px; max-width: 560px; margin: 0 auto 10px; }
.report-ask { text-align: center; }
.camp-empty { text-align: center; }

/* ---------- 7. 问一下 ---------- */
.ask-page { max-width: 560px; margin: 0 auto; }
.ask-promise { padding: 10px 4px 18px; }
.ask-promise h2 { color: #F5EFE4; margin: 0 0 8px; }
.ask-promise p { color: #AAB2C5; font-size: 15px; margin: 0 0 4px; }
.ask-flash { margin: 0 0 10px; }
.ask-kinds { border: 0; padding: 0; margin: 0 0 14px; display: flex; flex-direction: column; gap: 8px; }
.ask-kinds legend { color: #8A93A8; font-size: 14px; padding: 0 0 8px; }
.ask-kind {
  display: flex; align-items: center; gap: 10px;
  border: 1px solid #1B2233; border-radius: 8px;
  padding: 10px 12px; cursor: pointer; background: #161D2E;
}
.ask-kind span { color: #C9CFDC; font-size: 15px; }
.ask-kind:has(input:checked), .ask-kind.on {
  border-color: #F5C97A;
  box-shadow: 0 0 0 1px rgba(245, 201, 122, 0.35);
}
.ask-kind input { accent-color: #F5C97A; }
.ask-receipt p { color: #F5EFE4; margin: 0 0 6px; }
.ask-self details { border-top: 1px solid #1B2233; padding: 10px 2px; }
.ask-self details:first-of-type { border-top: 0; }
.ask-self summary { cursor: pointer; color: #C9CFDC; font-size: 15px; }
.ask-self details p { margin: 8px 0 0; }
/* 后台 P0 竖条（问一下收件箱） */
.rank-p0 { border-left: 3px solid #F5C97A; padding-left: 10px; }

/* ---------- 8. 许愿池 ---------- */
.wish-list { list-style: none; margin: 0; padding: 0; }
.wish-item {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 2px; border-top: 1px solid #1B2233; font-size: 14px;
}
.wish-item:first-child { border-top: 0; }
.wish-desc { color: #AAB2C5; flex: 1; }
.wish-date { color: #8A93A8; font-size: 13px; font-variant-numeric: tabular-nums; }
.badge {
  display: inline-block; font-size: 12px; padding: 2px 8px;
  border-radius: 999px; border: 1px solid #1B2233; color: #8A93A8;
}
.wish-badge-done { color: #F5C97A; border-color: rgba(245, 201, 122, 0.35); }
.wish-badge-doing { color: #C9CFDC; }
.enroll-done { border-color: rgba(245, 201, 122, 0.25); }

/* ---------- 9. 动效降级 / 打印 ---------- */
@media (prefers-reduced-motion: reduce) {
  .host-dot, .host-line .dot, .spirit-sleep, .spirit-awake, .spirit-talk {
    animation: none;
  }
}
@media print {
  body { background: #FAF6EE; }
  .night-sky { background: #FAF6EE; padding: 0; }
  .report-card { background: #FFF; border: 1px solid #D8C9A8; color: #2B2B2B; }
  .report-title, .report-nums dd { color: #2B2B2B; }
  .report-nums dt, .report-sample, .report-spirit { color: #6B6552; }
  .report-sign { color: #8A6D1F; }
  .btns, .report-btns, .report-ask, .night-head, .host-line, .street, .spirit-box, .task-card, .total-line { display: none !important; }
}

/* ── V2.2.0 首页新功能宣传卡 ── */
.camp-promo .promo-list { list-style: none; margin: 0; padding: 0; }
.camp-promo .promo-list li + li { border-top: 1px solid rgba(245, 201, 122, .18); }
.camp-promo .promo-list a {
 display: block; padding: 10px 0; text-decoration: none; color: inherit;
}
.camp-promo .promo-list b { display: block; font-size: 15px; color: #F5C97A; }
.camp-promo .promo-list span { display: block; font-size: 13px; color: #8A93A8; margin-top: 2px; }
