.end-week-shell {
  padding-bottom: calc(96px + env(safe-area-inset-bottom));
}


.end-week-progress-card,
.end-week-completion-state,
.end-week-group-card {
  display: grid;
  gap: 10px;
}


.end-week-progress-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}


.end-week-groups {
  display: grid;
  gap: 12px;
}


.end-week-task-list {
  display: grid;
  gap: 8px;
}


/* End of Week row contract. Row surfaces reuse the shared --checklist-row-* tokens
   (same semantics as Chore Mode checklist rows); title/points text uses the
   --end-week-row-text / --end-week-row-checked-text tokens. Themes assign tokens at
   their root and keep only row shape (radius, border sides, shadow) in their own rules. */
.end-week-task-row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
  min-height: 58px;
  border: 1px solid var(--checklist-row-border, var(--border));
  border-radius: 14px;
  background: var(--checklist-row-bg, var(--bg-elev));
  padding: 12px;
  cursor: pointer;
}


.end-week-task-row:has(input:checked) {
  background: var(--checklist-row-checked-bg, var(--checklist-row-bg, var(--bg-elev)));
  border-color: var(--checklist-row-checked-border, var(--checklist-row-border, var(--border)));
}


.end-week-task-row input {
  width: 22px;
  height: 22px;
}


.end-week-task-title {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  color: var(--end-week-row-text, inherit);
}


.end-week-task-points {
  font-weight: 700;
  color: var(--end-week-row-text, var(--primary-strong));
}


.end-week-task-row input:checked ~ :is(.end-week-task-title, .end-week-task-points) {
  color: var(--end-week-row-checked-text, var(--end-week-row-text, inherit));
}


.end-week-actions-sticky {
  position: sticky;
  bottom: calc(28px + env(safe-area-inset-bottom));
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 10px;
  background: color-mix(in srgb, var(--bg-elev) 92%, transparent);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 12px;
  backdrop-filter: blur(8px);
}


.end-week-history-task-list {
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 6px;
}


.end-week-history-task-list li {
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 8px;
  background: var(--bg-soft);
}


@media (max-width: 560px) {
  .end-week-task-row {
    grid-template-columns: auto 1fr;
  }

  .end-week-task-points {
    grid-column: 2;
  }}


[data-theme="cozy-pastel"] .end-week-progress-card,
[data-theme="cozy-pastel"] .end-week-group-card {
  background: linear-gradient(145deg, rgba(95, 158, 154, 0.1), rgba(255, 255, 255, 0.98));
  border-color: rgba(95, 158, 154, 0.34);
}


[data-theme="graphite"] .end-week-actions-sticky {
  background: rgba(24, 30, 38, 0.97);
  border-color: rgba(148, 174, 187, 0.16);
  backdrop-filter: blur(12px);
}
