main.today-page {
	.today-entry-overview {
		display: grid;
		gap: var(--space-6);
	}

	.entry-form {
		display: grid;
		gap: var(--space-4);
	}

	.today-save-status {
		min-height: 1.5rem;
		display: flex;
		align-items: center;
		justify-content: flex-end;
		gap: var(--space-2);
		color: var(--color-muted);
		opacity: 0;
	}

	.today-save-status.htmx-request {
		color: var(--color-text);
		opacity: 1;
		animation: none;
	}

	.today-save-status--saved {
		color: var(--color-success-text);
		opacity: 1;
		animation: today-save-status-fade 2.4s ease forwards;
	}

	.today-save-status.htmx-request .today-save-status-check,
	.today-save-status.htmx-request .today-save-status-label--saved {
		display: none;
	}

	.today-save-status-spinner,
	.today-save-status-check {
		width: 1rem;
		height: 1rem;
		flex: 0 0 1rem;
		display: none;
	}

	.today-save-status-spinner {
		border: 2px solid var(--color-border);
		border-top-color: var(--color-text);
		border-radius: 999px;
	}

	.today-save-status.htmx-request .today-save-status-spinner {
		display: block;
		animation: today-save-spinner 0.8s linear infinite;
	}

	.today-save-status--saved .today-save-status-check {
		display: grid;
		place-items: center;
		font-size: 0.95rem;
		font-weight: 700;
		line-height: 1;
	}

	.today-save-status-label {
		display: none;
		font-size: 0.95rem;
		font-weight: 700;
		letter-spacing: 0.02em;
	}

	.today-save-status.htmx-request .today-save-status-label--saving,
	.today-save-status--saved .today-save-status-label--saved {
		display: block;
	}

	.entry-textarea {
		width: 100%;
		min-height: 24rem;
		border: 1px solid var(--color-border);
		border-radius: var(--radius);
		padding: var(--space-4);
		background: var(--color-surface);
		color: var(--color-text);
		font: inherit;
		line-height: 1.7;
		white-space: pre-wrap;
	}
}

@keyframes today-save-spinner {
	to {
		transform: rotate(360deg);
	}
}

@keyframes today-save-status-fade {
	0%,
	70% {
		opacity: 1;
	}

	100% {
		opacity: 0;
	}
}
