.plans-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.6rem;
  margin: 1.5rem 0;
  padding: 3rem 1.5rem;
  background-color: var(--ctp-mantle);
  border: 2px dashed var(--ctp-surface1);
  border-radius: 16px;
  text-align: center;
}

.plans-empty-icon {
  font-size: 2.25rem;
  line-height: 1;
}

.plans-empty-title {
  color: var(--ctp-text);
  font-size: 1.25rem;
  font-weight: 700;
}

.plans-empty-text,
.plans-empty-note {
  max-width: 44ch;
  color: var(--ctp-subtext0);
  line-height: 1.6;
}

.plans-empty-note {
  color: var(--ctp-overlay1);
  font-size: 0.875rem;
}

.plans-empty .new-plan-btn {
  margin-top: 0.75rem;
}

/* Hidden as soon as a plan card exists, so create and delete need no stream updates. */
.plans-container:has(.plan-card) .plans-empty {
  display: none;
}

/* An empty summary accordion is just noise. */
.planner-container:not(:has(.plan-card)) .materials-accordion {
  display: none;
}
