/* ========== Error pages ========== */

.error-message {
	max-width: 600px;
	margin: 80px auto;
	text-align: center;
	padding: 48px 32px;
	background: var(--color-surface, #fff);
	border-radius: 12px;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);
}

.error-icon {
	width: 80px;
	height: 80px;
	margin: 0 auto 24px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--color-danger-bg, #fee2e2);
	color: var(--color-danger-text, #991b1b);
	border-radius: 50%;
}

.error-icon-warning {
	background: var(--color-warning-bg, #fef3c7);
	color: var(--color-warning-text, #92400e);
}

.error-icon-server {
	background: #fef3c7;
	color: #92400e;
}

.error-icon-maintenance {
	background: var(--color-blush, #fef0ec);
	color: var(--color-primary, #ff855b);
}

.maintenance-pulse {
	width: 48px;
	height: 48px;
	animation: pulse 1.2s ease-in-out infinite;
}

@keyframes pulse {
	0%, 100% {
		opacity: 1;
		transform: scale(1);
	}
	50% {
		opacity: 0.5;
		transform: scale(0.92);
	}
}

.error-code {
	font-size: 72px;
	margin-bottom: 8px;
	color: var(--color-primary);
	line-height: 1;
}

.error-message h2 {
	margin-bottom: 16px;
}

.error-message .error-lead {
	font-size: 18px;
	margin-bottom: 12px;
}

.error-message p {
	font-family: var(--font-body, 'Raleway', sans-serif);
	font-size: 16px;
	margin-bottom: 8px;
	line-height: 1.6;
}

.error-message p:last-of-type {
	margin-bottom: 0;
}

.error-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	margin-top: 32px;
}

.error-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 24px;
	font-size: 15px;
	text-decoration: none;
}

button.error-btn {
	border: none;
	cursor: pointer;
}

.error-btn svg {
	flex-shrink: 0;
}
