/* ============================================================
   KidDaily 首页 index.html — 积分卡 / 日历卡 / 愿望墙卡
   由原型机械抽取，裸 hex 全部收编为 var() Token
   ============================================================ */

/* ---------- 卡片 4 · 积分 ---------- */
.points-left{
  width:200px;height:100%;flex:0 0 auto;
  display:flex;flex-direction:column;justify-content:space-between;gap:18px;
}
.points-sum{display:flex;flex-direction:column;gap:12px;}
.points-total{
  font-family:var(--font-num);
  font-size:52px;font-weight:700;color:var(--ink);line-height:62px;
  font-variant-numeric:tabular-nums;letter-spacing:.5px;
}
.points-note{font-size:12.5px;font-weight:400;color:var(--muted);line-height:18px;}
.points-delta{display:flex;align-items:center;gap:5px;color:var(--up);}
.points-delta span{font-size:12.5px;font-weight:500;color:var(--up);line-height:18px;}

.btn-points{width:100%;height:46px;}
.btn-points span{font-size:14px;font-weight:500;line-height:20px;}

.points-chart{flex:1 1 auto;min-width:0;height:403px;}

/* ---------- 卡片 5 · 日历 ---------- */
.cal-head{
  width:100%;height:34px;flex:0 0 auto;
  display:flex;align-items:center;justify-content:space-between;
}
.cal-head h2{font-size:16px;font-weight:700;color:var(--ink);line-height:22px;}

.month-nav{
  height:32px;border-radius:var(--radius-pill);background:var(--field);
  padding:0 8px;display:flex;align-items:center;gap:4px;
}
.nav-btn{
  width:16px;height:16px;display:flex;align-items:center;justify-content:center;
  border-radius:50%;transition:background-color .16s ease;flex:0 0 auto;
  color:var(--muted);
}
.nav-btn:hover{background:var(--icon-btn-hover);}
.nav-btn:active{transform:scale(.9);}
.nav-btn svg{display:block;}
.month-label{
  font-size:13px;font-weight:600;color:var(--ink-3);line-height:18px;
  min-width:82px;text-align:center;font-variant-numeric:tabular-nums;
}

.weekdays{width:100%;height:24px;flex:0 0 auto;display:flex;gap:8px;}
.weekdays span{
  flex:1 1 0;text-align:center;
  font-size:12px;font-weight:500;color:var(--label);line-height:17px;
}

.week-rows{
  width:100%;flex:1 1 auto;min-height:0;
  display:flex;flex-direction:column;gap:10px;
}
.week-row{display:flex;gap:8px;height:48px;flex:0 0 48px;}
.week-rows.is-dense .week-row{height:auto;flex:1 1 0;min-height:0;}

.day{
  flex:1 1 0;border-radius:var(--radius-sm);
  display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:400;color:var(--ink-2);
  border:2px solid transparent;
  transition:background-color .18s ease,color .18s ease,transform .12s ease;
}
.day.is-out{color:var(--faded);pointer-events:none;}
.day.is-task{cursor:pointer;font-weight:700;}
.day.is-done{background:var(--success);color:#fff;}
.day.is-done:hover{background:var(--done-hover);}
.day.is-pending{background:var(--pending);color:var(--pending-ink);}
.day.is-pending:hover{background:var(--pending-hover);}
.day.is-today{border-color:var(--coral);}
.day.is-plain{cursor:pointer;}
.day.is-plain:hover{background:var(--day-hover);}
.day:active{transform:scale(.94);}

.cal-foot{
  width:100%;height:34px;flex:0 0 auto;
  display:flex;align-items:center;justify-content:space-between;
}
.legend{display:flex;align-items:center;gap:16px;}
.legend-item{display:flex;align-items:center;gap:6px;}
.legend-item i{width:10px;height:10px;border-radius:50%;display:block;flex:0 0 auto;}
.legend-item span{font-size:12px;font-weight:400;color:var(--muted-2);line-height:17px;}

.btn-plans{height:36px;padding:0 15px;gap:6px;}
.btn-plans span{font-size:13px;font-weight:500;line-height:18px;}

/* ---------- 卡片 6 · 愿望墙 ---------- */
.wish-head{
  width:100%;height:42px;flex:0 0 auto;
  display:flex;flex-direction:column;gap:3px;
}
.wish-head h2{font-size:16px;font-weight:700;color:var(--ink);line-height:22px;}
.wish-head p{font-size:12px;font-weight:400;color:var(--muted);line-height:17px;}

.wish-row{width:100%;height:349px;flex:0 0 auto;display:flex;gap:16px;}
.wish-block{
  width:266px;height:349px;flex:0 0 auto;
  display:flex;flex-direction:column;align-items:center;gap:8px;
}
.wish-label{
  width:100%;font-size:12px;font-weight:500;color:var(--label);
  letter-spacing:2px;line-height:16px;
}
.wish-text{
  width:100%;font-size:15px;font-weight:500;color:var(--ink);line-height:24px;
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;
}
.wish-img{
  width:244px;height:244px;border-radius:16px;overflow:hidden;flex:0 0 auto;
  background:var(--scroll-track);
}
.wish-img img{width:100%;height:100%;object-fit:cover;display:block;}

.btn-swap{
  width:100%;height:34px;gap:6px;
  background:var(--card);border:1px solid var(--line-soft);
}
.btn-swap:hover{border-color:var(--ghost-hover-border);background:var(--ghost-hover-bg);}
.btn-swap span{font-size:12.5px;font-weight:500;color:var(--ink-3);line-height:18px;}

/* ---------- kidwiki 页脚横条（DESIGN §9.7，整条零 coral） ---------- */
.kidwiki-bar{
  width:1860px;height:64px;flex:0 0 auto;
  background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius-lg);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 24px;text-decoration:none;
  transition:background-color var(--motion-fast) var(--ease-standard);
}
.kidwiki-bar:hover{background:var(--ghost-hover-bg);}
.kidwiki-bar:focus-visible{box-shadow:var(--focus-ring);outline:none;}
.kidwiki-left{display:flex;align-items:center;gap:12px;color:var(--muted);}
.kidwiki-title{font-size:14px;font-weight:500;color:var(--ink-2);line-height:20px;}
.kidwiki-sub{font-size:13px;font-weight:400;color:var(--muted);line-height:18px;}
.kidwiki-right{display:flex;align-items:center;gap:8px;color:var(--muted);}
.kidwiki-right span{font-size:13px;line-height:18px;}
.kidwiki-right svg{transition:transform var(--motion-fast) var(--ease-standard);}
.kidwiki-bar:hover .kidwiki-right svg{transform:translate(1px,-1px);}

/* ---------- 无宝贝空状态（AC-05：页面中部只显示添加宝贝） ---------- */
.no-baby{
  width:604px;background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius-card);box-shadow:var(--shadow-card);
  padding:56px 40px;display:flex;flex-direction:column;align-items:center;gap:16px;
}
.no-baby h2{font-size:20px;font-weight:700;color:var(--ink);line-height:28px;}
