/* ── Week strip — how much is planned on each day ── */
.review-week {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  margin-bottom: 2rem;
  border-bottom: 1px solid var(--border);
}
.review-week-day {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: .25rem 0 .625rem;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
}
.review-week-day.today { border-bottom-color: var(--accent); }
.review-week-day.past { opacity: .55; }
.review-week-day.past .hot { opacity: 1; }
.review-week-name { font-size: .75rem; font-weight: 400; color: var(--text-3); white-space: nowrap; }
.review-week-day.today .review-week-name { color: var(--accent); }
.review-week-count { font-size: 1.375rem; font-weight: 400; color: var(--text); line-height: 1.3; }
.review-week-sub { font-size: .6875rem; font-weight: 400; color: var(--text-3); white-space: nowrap; }
.review-week .hot { color: var(--accent); }

/* ── Sections ── */
.review-section { margin-bottom: 2rem; }
.review-section-title { font-size: 1.0625rem; font-weight: 400; letter-spacing: -.01em; color: var(--text); }
.review-hint { font-size: .8125rem; font-weight: 300; color: var(--text-3); margin: -.375rem 0 .25rem; }
.review-empty { padding: .75rem 0; text-align: left; font-size: .875rem; font-weight: 300; }

.review-row {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: .5625rem 0;
}
.review-text-wrap { flex: 1; min-width: 0; }
.review-text { font-size: .875rem; font-weight: 300; color: var(--text); line-height: 1.45; overflow-wrap: anywhere; }
.review-row.planned .review-text { color: var(--text-2); }
.review-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0 .375rem;
  margin-top: .125rem;
  font-size: .6875rem;
  font-weight: 400;
  color: var(--text-3);
}
.review-meta .hot { color: var(--accent); }

.review-actions { display: flex; align-items: center; gap: .5rem; flex-shrink: 0; }

/* Day picker — segmented, hairline-bordered like To Do's view controls */
.review-days { display: flex; border: 1px solid var(--border); }
.review-day {
  font-family: inherit;
  font-size: .6875rem;
  font-weight: 400;
  color: var(--text-3);
  background: none;
  border: none;
  width: 2.125rem;
  padding: .25rem 0;
  cursor: pointer;
  transition: color var(--transition), background var(--transition);
}
.review-day + .review-day { border-left: 1px solid var(--border); }
.review-day:hover:not(:disabled) { color: var(--accent); }
.review-day.today { color: var(--text); font-weight: 500; }
.review-day.active { color: #fff; background: var(--accent); }
.review-day:disabled { color: var(--border); cursor: default; }

.review-link {
  font-family: inherit;
  font-size: .6875rem;
  font-weight: 400;
  color: var(--text-3);
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  white-space: nowrap;
  transition: color var(--transition);
}
.review-link:hover { color: var(--accent); }
.review-link.hidden { visibility: hidden; }

.review-hint-row { display: flex; align-items: baseline; gap: 1rem; margin: -.375rem 0 .25rem; }
.review-hint-row .review-hint { margin: 0; flex: 1; }
.review-bulk { font-size: .75rem; margin-left: auto; }

/* Pushed items — collapsed by default; only "Bring back" on each row */
.review-pushed { margin-bottom: 2rem; }
.review-pushed summary {
  cursor: pointer;
  font-size: .875rem;
  font-weight: 400;
  color: var(--text-3);
  padding: .25rem 0;
}
.review-pushed summary:hover { color: var(--accent); }
.review-pushed .review-text { color: var(--text-2); }

/* ── Finish ── */
.review-finish {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
}
.review-finish-btn {
  font-family: inherit;
  font-size: .875rem;
  font-weight: 400;
  color: #fff;
  background: var(--accent);
  border: none;
  padding: .5rem 1rem;
  cursor: pointer;
}
.review-finish-note,
.review-finish-done { font-size: .8125rem; font-weight: 300; color: var(--text-3); }
.review-back { margin-left: auto; font-size: .8125rem; color: var(--text-3); text-decoration: none; transition: color var(--transition); }
.review-back:hover { color: var(--accent); }

/* Phones: the day picker drops under the text and spreads to full width */
@media (max-width: 640px) {
  .review-row { flex-direction: column; gap: .375rem; }
  .review-actions { width: 100%; }
  .review-days { flex: 1; }
  .review-actions { flex-wrap: wrap; row-gap: .375rem; }
  .review-day { flex: 1; width: auto; padding: .4375rem 0; font-size: .75rem; }
  .review-week-name { font-size: .6875rem; }
  .review-week-count { font-size: 1.125rem; }
  .review-week-sub { font-size: .625rem; }
}
