.ff-projects-list {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}

.ff-project-card {
	border: 1px solid #ddd;
	border-radius: 8px;
	padding: 1rem;
}

.ff-progress-bar {
	position: relative;
	background: #eee;
	border-radius: 999px;
	height: 20px;
	overflow: hidden;
	margin-top: 0.5rem;
}

.ff-progress-fill {
	background: #4c8bf5;
	height: 100%;
	transition: width 0.3s ease;
}

.ff-progress-label {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.75rem;
	font-weight: 600;
	color: #222;
}

.ff-chore-list li.ff-chore-done {
	text-decoration: line-through;
	opacity: 0.6;
}

.ff-message {
	border-bottom: 1px solid #eee;
	padding: 0.75rem 0;
}

.ff-message-time {
	font-size: 0.75rem;
	color: #888;
}

.ff-calendar-list li,
.ff-thread-list li {
	padding: 0.4rem 0;
	border-bottom: 1px solid #eee;
}

.ff-memory-timeline {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}

.ff-memory-card {
	border: 1px solid #ddd;
	border-radius: 8px;
	padding: 1rem;
}

.ff-memory-card img {
	max-width: 100%;
	border-radius: 6px;
	margin-bottom: 0.5rem;
}

.ff-memory-date {
	display: block;
	font-size: 0.75rem;
	color: #888;
	margin-top: 0.5rem;
}

.ff-memory-badge {
	display: inline-block;
	background: #f0e6ff;
	color: #5b21b6;
	font-size: 0.7rem;
	padding: 2px 8px;
	border-radius: 999px;
	margin-top: 0.4rem;
}

.ff-packing-list li {
	list-style: none;
	padding: 0.25rem 0;
}

.ff-packing-list .ff-packed {
	text-decoration: line-through;
	opacity: 0.6;
}
