/* ---- weekly cards: stable alignment and word wrapping ---- */
.wk-card{ min-width:0; display:flex; flex-direction:column; }
.wk-head{ align-items:flex-start; min-width:0; }
.wk-head > span:first-child{ min-width:0; overflow-wrap:anywhere; word-break:break-word; line-height:1.25; }
.wk-badge{ flex-shrink:0; }
.wk-text,.wk-empty{ overflow-wrap:anywhere; word-break:break-word; line-height:1.45; min-width:0; }
.wk-actions{ margin-top:auto; flex-wrap:wrap; }

/* ---- robust text wrapping ---- */
.wk-card, .wk-card *{ min-width:0; max-width:100%; }
.wk-head, .wk-text, .wk-empty, .deck-item, .tl-title, .tl-notes,
.goal-text, .archive-info, .planb-info,
.timeline-title, .timeline-notes{
  overflow-wrap:anywhere;
  word-break:break-word;
  hyphens:auto;
}
.wk-head{ align-items:flex-start; }
.wk-head > span:first-child{ flex:1 1 auto; min-width:0; }
.wk-text, .wk-empty{ white-space:normal; }
.week-events-grid{ align-items:stretch; }
.week-events-grid .wk-card{ overflow:hidden; }
@media (max-width:380px){
  .week-events-grid{ grid-template-columns:1fr; }
}

/* ---- Telegram reminders ---- */
.tg-reminder-status{
  display:flex; align-items:center; gap:9px; margin:10px 0 12px;
  padding:11px 12px; border-radius:12px; background:var(--cream);
  font-size:12px; line-height:1.35;
}
.tg-reminder-dot{ width:9px; height:9px; border-radius:50%; background:#C9D0DC; flex-shrink:0; }
.tg-reminder-dot.on{ background:var(--mint); }
.tg-reminder-dot.warn{ background:var(--sun); }
.tg-reminder-actions{ display:flex; gap:8px; }
.tg-reminder-actions button{ flex:1; }

/* ---- focus: white cards with black text ---- */
#view-focus .stat{ background:var(--white); }
#view-focus .stat .num, #view-focus .stat .label{ color:#111827; }

.more-list{ display:flex; flex-direction:column; gap:10px; margin-top:14px; }
