/* 孩子的积分页：先看收获，再登记；明细按需展开。 */
.family-points-panel {
  --points-ink: #345244;
  --points-muted: #647468;
  background: #fffef9;
  border-color: #e5e8da;
}
.family-points-panel .family-points-heading h2 { font-size: calc(25px * var(--fs, 1)); color: #304c3e; }
.family-points-heading-icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 16px; background: #fff3c6; font-size: 28px; }
.family-points-panel .family-points-connect { margin: 16px 0; padding: 0 14px; border: 1px solid #d8e4dc; border-radius: 14px; background: #f3f8f3; }
.family-points-panel .family-points-connect > summary { min-height: 48px; color: #355e49; font-size: calc(14px * var(--fs, 1)); font-weight: 800; }
.family-points-panel .family-points-connect > summary span::before { content: '🔗 '; }
.family-points-panel .family-points-connect[open] > summary span::before { content: '🔗 '; }
.family-points-panel .family-points-connect > summary small { font-size: calc(12px * var(--fs, 1)); font-weight: 500; color: #546b5e; }
.family-points-panel .family-points-connect-row button { background: #3d7559; border-color: #3d7559; color: #fff; }
.family-points-wallet { display: grid; grid-template-columns: minmax(0, 1fr) minmax(130px, .65fr); gap: 20px; padding: 24px; border: 1px solid #eadfba; border-radius: 22px; background: linear-gradient(115deg, #fff2c7 0%, #fff9e5 68%, #f6f8e7 100%); }
.family-points-panel .family-points-balance { min-width: 0; align-items: flex-start; justify-content: center; padding: 0; color: #624f22; background: transparent; border-radius: 0; box-shadow: none; }
.family-points-panel .family-points-balance > small:first-child { margin: 0 0 7px; font-size: calc(14px * var(--fs, 1)); font-weight: 800; }
.family-points-panel .family-points-balance > div { display: flex; align-items: baseline; gap: 8px; max-width: 100%; }
.family-points-panel .family-points-balance strong { font-size: clamp(42px, 6vw, 64px); line-height: 1.1; font-weight: 900; letter-spacing: -2px; overflow-wrap: anywhere; }
.family-points-balance > div > span { font-size: calc(15px * var(--fs, 1)); font-weight: 800; }
.family-points-panel .family-points-balance > small:last-child { margin-top: 10px; font-size: calc(12px * var(--fs, 1)); opacity: 1; color: #7b6c46; }
.family-points-wallet-status { display: flex; flex-direction: column; justify-content: center; gap: 12px; border-left: 1px solid #e9deb7; padding-left: 20px; }
.family-points-wallet-status > span { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.family-points-wallet-status small { font-size: calc(12px * var(--fs, 1)); color: #796b47; line-height: 1.5; }
.family-points-wallet-status b { font-size: calc(22px * var(--fs, 1)); line-height: 1.1; font-variant-numeric: tabular-nums; }
.family-points-arrived b { color: #357451; }
.family-points-waiting b { color: #85651d; }
.family-points-wallet-status #familyPointsWaitingNote { font-size: calc(11px * var(--fs, 1)); }
.family-points-panel .family-points-next { margin-top: 14px; padding: 16px 18px; background: #f3f8f0; border-color: #dbe6d6; }
.family-points-panel.is-empty .family-points-next { display: block; }
.family-points-panel .family-points-next-copy small { color: #68775e; font-size: calc(12px * var(--fs, 1)); }
.family-points-panel .family-points-next-copy b { margin-top: 6px; color: #345244; font-size: calc(16px * var(--fs, 1)); line-height: 1.5; }
.family-points-panel .family-points-track { background: #dfe9d9; height: 12px; }
.family-points-panel .family-points-track i { background: #74a667; }
.family-points-reward-ready { margin: 10px 0 0; color: #357451; font-size: calc(13px * var(--fs, 1)); font-weight: 800; }
.family-points-reward-list { margin-top: 7px; }
.family-points-reward-list > summary, .family-points-statistics > summary { display: list-item; min-height: 44px; padding: 12px 0; cursor: pointer; color: #466851; font-size: calc(13px * var(--fs, 1)); font-weight: 800; }
.family-points-reward-list > small { display: block; margin-top: 10px; color: #647468; font-size: calc(12px * var(--fs, 1)); }
.family-points-panel .family-points-tiers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin: 0; }
.family-points-panel .family-points-tier { display: grid; grid-template-columns: 25px minmax(0, 1fr); gap: 2px 7px; padding: 10px; }
.family-points-tier > i { grid-row: span 2; font-size: 21px; }
.family-points-tier > em { grid-column: 2; font-size: calc(11px * var(--fs, 1)); }
.family-points-panel .family-points-menu-wrap { margin-top: 26px; }
.family-points-panel .family-points-menu-wrap > .family-points-history-heading { align-items: baseline; flex-wrap: wrap; gap: 5px 12px; }
.family-points-panel .family-points-menu-wrap > .family-points-history-heading > span { color: #345244; font-size: calc(19px * var(--fs, 1)); }
.family-points-panel .family-points-menu-wrap > .family-points-history-heading > small { color: #647468; font-size: calc(12px * var(--fs, 1)); }
.family-points-panel .family-points-menu-status { min-height: 20px; margin: 7px 0 12px; color: #647468; }
.family-points-panel .family-points-menu { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-items: start; margin-top: 0; }
.family-points-panel .family-points-menu-group { padding: 11px 12px 7px; background: #fff; border-radius: 17px; }
.family-points-panel .family-points-menu-head { padding-bottom: 9px; }
.family-points-panel .family-points-menu-head > b { font-size: calc(16px * var(--fs, 1)); }
.family-points-panel .family-points-menu-head > small { margin-top: 4px; }
.family-points-panel .family-points-menu-score { padding: 5px 9px; font-size: calc(11px * var(--fs, 1)); }
.family-points-panel .family-points-menu-score b { font-size: calc(15px * var(--fs, 1)); }
.family-points-panel .family-points-menu-item { grid-template-columns: 24px minmax(0, 1fr) 53px; gap: 3px 8px; min-height: 88px; padding: 12px 3px; }
.family-points-panel .family-points-menu-item b { font-size: calc(14px * var(--fs, 1)); line-height: 1.45; }
.family-points-panel .family-points-menu-item small { line-height: 1.5; }
.family-points-panel .family-points-menu-item .family-points-menu-state { margin-top: 2px; background: transparent; padding: 0; font-size: calc(11px * var(--fs, 1)); color: #688271; }
.family-points-panel .family-points-menu-item.is-pending .family-points-menu-state { color: #8b6512; }
.family-points-panel .family-points-menu-item.is-rejected .family-points-menu-state { color: #8b6512; }
.family-points-panel .family-points-menu-item.is-rejected { background: #fffaf0; }
.family-points-panel .family-points-menu-item.is-rejected i { background: #fff1d9; border-color: #e5c688; color: #8b6512; }
.family-points-panel .family-points-menu-item:disabled { opacity: 1; }
.family-points-panel .family-points-menu-points { min-width: 0; padding: 8px 4px; }
.family-points-panel .family-points-menu-item:focus-visible, .family-points-panel summary:focus-visible { outline: 3px solid #63916e; outline-offset: 3px; border-radius: 9px; }
.family-points-records { margin-top: 22px; padding-top: 5px; border-top: 1px solid #e2e7da; }
.family-points-records > summary { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 6px; min-height: 50px; padding: 12px 0; color: #49624f; font-size: calc(14px * var(--fs, 1)); font-weight: 800; cursor: pointer; }
.family-points-records > summary::marker { content: ''; }
.family-points-records > summary > span::before { content: '▸ '; }
.family-points-records[open] > summary > span::before { content: '▾ '; }
.family-points-records > summary > small { color: #72816e; font-size: calc(12px * var(--fs, 1)); font-weight: 500; }
.family-points-statistics { margin-top: 10px; }
.family-points-panel .family-points-privacy { margin-top: 12px; color: #77836f; }
@media (max-width: 700px) {
  .family-points-panel { padding: 18px; }
  .family-points-panel .family-points-menu { grid-template-columns: minmax(0, 1fr); }
  .family-points-wallet { gap: 12px; padding: 20px 16px; grid-template-columns: minmax(0, 1fr) 118px; }
  .family-points-wallet-status { padding-left: 13px; }
  .family-points-wallet-status b { font-size: calc(19px * var(--fs, 1)); }
  .family-points-panel .family-points-balance strong { font-size: clamp(38px, 12vw, 56px); letter-spacing: -1px; }
  .family-points-panel .family-points-balance > small:last-child { font-size: calc(11px * var(--fs, 1)); line-height: 1.5; }
  .family-points-panel .family-points-tiers { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .family-points-panel .family-points-menu-item.is-flash,
  .family-points-panel .family-points-menu-item.is-flash .family-points-menu-points { animation: none; }
  .family-points-panel .family-points-track i { transition: none; }
}

.family-points-connection-current { padding: 4px 0 14px; }
.family-points-connection-current p { margin: 8px 0; font-size: calc(14px * var(--fs, 1)); }
.family-points-connection-current button, #familyPointsConnectCancel { min-height: 42px; padding: 8px 14px; border: 1px solid #b9cfc0; border-radius: 10px; background: #fff; color: #355e49; font: inherit; font-weight: 700; }
.family-points-panel #familyPointsConnectCancel { color: #355e49; background: #fff; }
@media (max-width: 520px) {
  .family-points-panel .family-points-connect-row { flex-wrap: wrap; }
  .family-points-panel .family-points-connect-row input { flex: 1 1 100%; width: 100%; }
}

.family-points-chip.is-deduction { color:#804b38; background:#faf0e9; white-space:normal; overflow-wrap:anywhere; }
#familyPointsTodayTotal.is-minus { color:#804b38; }
.family-points-metrics { grid-template-columns:repeat(4,minmax(0,1fr)); }
@media (max-width:600px) { .family-points-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); } }
