* { box-sizing: border-box; }

html {
	min-height: 100%;
	background-color: #0c0a0b;
}

/* One background for the whole screen, also when the page is shorter than the phone. */
body {
	margin: 0;
	min-height: 100vh;
	background-attachment: fixed;
	background: radial-gradient(ellipse at 0% 100%, rgba(225, 29, 46, 0.25) 0%, rgba(225, 29, 46, 0) 60%), #0c0a0b fixed;
	color: #f4f4f6;
	font: 16px/1.45 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

[hidden] { display: none !important; }

.card {
	max-width: 480px;
	margin: 0 auto;
	padding: 28px 20px 40px;
}

.brand {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 28px;
}

.mark {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border-radius: 10px;
	background: #e11d2e;
	font-weight: 800;
}

.word {
	font-weight: 800;
	letter-spacing: 2px;
}

h1 {
	margin: 0 0 8px;
	font-size: 26px;
	line-height: 1.2;
}

.lead, .note, .state p {
	color: #b4b4be;
}

.note {
	margin-top: 18px;
	font-size: 13px;
	color: #8a8a96;
}

.tabs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
	margin: 22px 0 18px;
	padding: 4px;
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.06);
}

.tab {
	padding: 11px 8px;
	border: 0;
	border-radius: 10px;
	background: transparent;
	color: #c4c4cc;
	font: inherit;
	font-weight: 600;
}

.tab.active {
	background: #e11d2e;
	color: #fff;
}

label {
	display: block;
	margin-bottom: 14px;
}

label span {
	display: block;
	margin-bottom: 6px;
	font-size: 14px;
	color: #b4b4be;
}

input {
	width: 100%;
	padding: 13px 14px;
	border: 2px solid rgba(255, 255, 255, 0.1);
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.05);
	color: #fff;
	font: inherit;
	font-size: 16px;
}

input:focus {
	outline: none;
	border-color: #e11d2e;
}

details {
	margin: 4px 0 18px;
}

summary {
	margin-bottom: 14px;
	color: #b4b4be;
	cursor: pointer;
}

.primary {
	width: 100%;
	padding: 15px;
	border: 0;
	border-radius: 14px;
	background: #e11d2e;
	color: #fff;
	font: inherit;
	font-size: 17px;
	font-weight: 700;
}

.primary:disabled {
	opacity: 0.6;
}

.error {
	margin: 0 0 14px;
	padding: 12px 14px;
	border-radius: 12px;
	background: rgba(225, 29, 46, 0.15);
	color: #ffb4bb;
}

.state {
	padding: 40px 0;
	text-align: center;
}

.ok {
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	margin: 0 auto 18px;
	border-radius: 50%;
	background: #1f9d55;
	font-size: 32px;
}

.spin {
	display: inline-block;
	width: 32px;
	height: 32px;
	border: 3px solid rgba(255, 255, 255, 0.2);
	border-top-color: #e11d2e;
	border-radius: 50%;
	animation: spin 0.8s linear infinite;
}

@keyframes spin { to { transform: rotate(360deg); } }
