@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&display=swap');

:root {
	--sicon-blue: #1a4b7c;
	--sicon-blue-mid: #2563a8;
	--sicon-blue-pale: #e8f1f8;
	--sicon-accent: #0f68d2;
	--sicon-gray: #64748b;
	--sicon-gray-dark: #1e293b;
	--sicon-bg: #f5f7fa;
	--sicon-white: #fff;
	--sicon-font: 'Montserrat', 'Segoe UI', sans-serif;
}

html,
body.sic-error-page {
	height: 100%;
	margin: 0;
	width: 100%;
	font-family: var(--sicon-font);
	background: var(--sicon-bg);
	color: var(--sicon-gray-dark);
}

body.sic-error-page {
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	overflow: hidden;
}

.sic-error-bg {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background:
		radial-gradient(circle at 12% 18%, rgba(15, 104, 210, 0.12), transparent 32%),
		radial-gradient(circle at 88% 82%, rgba(26, 75, 124, 0.14), transparent 36%),
		var(--sicon-bg);
}

.sic-error-shell {
	position: relative;
	z-index: 1;
	width: min(560px, calc(100% - 2rem));
	padding: 1.5rem 0;
}

.sic-error-card {
	background: var(--sicon-white);
	border-radius: 20px;
	box-shadow: 0 24px 60px rgba(15, 23, 42, 0.12);
	padding: 2.4rem 2rem 2rem;
	text-align: center;
}

.sic-error-logo {
	width: 92px;
	height: auto;
	margin: 0 auto 1.15rem;
	display: block;
}

.sic-error-badge {
	width: 72px;
	height: 72px;
	margin: 0 auto 1rem;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: rgba(15, 104, 210, 0.1);
	color: var(--sicon-accent);
	font-size: 1.7rem;
}

.sic-error-badge i {
	animation: sicErrorPulse 2.8s ease-in-out infinite;
}

.sic-error-code {
	margin: 0 0 0.35rem;
	font-size: clamp(3.2rem, 8vw, 4.6rem);
	font-weight: 800;
	letter-spacing: -0.04em;
	line-height: 1;
	color: var(--sicon-blue);
}

.sic-error-title {
	margin: 0 0 0.65rem;
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--sicon-gray-dark);
}

.sic-error-help {
	margin: 0 auto 1.35rem;
	max-width: 38rem;
	font-size: 14px;
	line-height: 1.55;
	color: var(--sicon-gray);
}

.sic-error-detail {
	margin: 0 auto 1.4rem;
	max-width: 38rem;
	text-align: left;
	border: 1px solid #e2e8f0;
	border-radius: 10px;
	padding: 0.55rem 0.8rem;
	background: #f8fafc;
}

.sic-error-detail summary {
	cursor: pointer;
	font-size: 12px;
	font-weight: 600;
	color: var(--sicon-blue-mid);
	user-select: none;
}

.sic-error-detail p {
	margin: 0.55rem 0 0.2rem;
	font-size: 12px;
	line-height: 1.45;
	color: #475569;
	word-break: break-word;
}

.sic-error-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
	justify-content: center;
}

.sic-error-actions .sic-btn,
.sic-error-actions .btn {
	min-width: 140px;
}

.sic-error-foot {
	margin-top: 1.15rem;
	font-size: 11.2px;
	color: #94a3b8;
}

@keyframes sicErrorPulse {
	0%, 100% { opacity: 0.55; }
	50% { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
	.sic-error-badge i {
		animation: none;
		opacity: 1;
	}
}

@media (max-width: 480px) {
	.sic-error-card {
		padding: 1.8rem 1.2rem 1.5rem;
	}
}
