:root {
	--bg: #ffffff;
	--card: #f6f6f6;
	--text: #111111;
	--muted: #666666;
	--line: #e3e3e3;
	--accent: #c8102e;
	--ok: #166534;
	--error: #991b1b;
}



.card {
	border: 1px solid var(--line);
	background: var(--card);
	border-radius: 12px;
	padding: 16px;
	width:100%;
	align-items: center;
}

.top-actions {
	margin-bottom: 14px;
}

.back-link {
	color: var(--accent);
	text-decoration: none;
	font-weight: 700;
}

.back-link:hover {
	text-decoration: underline;
}

.ranking-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 12px;
}

.ranking-title {
	margin: 0;
	font-size: 1.2rem;
	font-weight: 700;
}

.ranking-position {
	margin: 0 0 14px;
	color: var(--muted);
	font-weight: 600;
}

.username-register-wrap {
	display: grid;
	gap: 8px;
	margin-bottom: 12px;
}

.username-input {
	width: 100%;
	height: 40px;
	border: 1px solid #d5d5d5;
	border-radius: 8px;
	padding: 0 10px;
	font-size: 0.96rem;
}

.username-save-btn {
	height: 40px;
	border: 0;
	border-radius: 8px;
	background: var(--accent);
	color: #ffffff;
	font-weight: 700;
	padding: 0 14px;
	cursor: pointer;
	width: fit-content;
}

.username-save-btn:disabled {
	opacity: 0.7;
	cursor: wait;
}

.username-msg {
	min-height: 20px;
	font-size: 0.92rem;
	color: var(--muted);
}

.username-msg.is-error {
	color: var(--error);
}

.username-msg.is-ok {
	color: var(--ok);
}

.username-registered-note {
	margin: 0 0 14px;
	color: var(--ok);
	font-weight: 600;
}

.ranking-table-wrap {
	overflow-x: auto;
	border: 1px solid var(--line);
	border-radius: 14px;
	background: #fff;
}

.ranking-table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	background: #fff;
}

.ranking-table th,
.ranking-table td {
	padding: 14px 16px;
	border: 0;
	border-bottom: 1px solid #efefef;
	text-align: center;
	font-weight: 600;
}

.ranking-table th {
	background: #fff;
	color: #444444;
	font-size: 0.9rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.ranking-table td {
	background: #fff;
	color: #444444;
	font-size: 0.9rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-align: center;
}


.ranking-table tbody tr:last-child td {
	border-bottom: 0;
}

.ranking-table tbody tr.is-current-user td {
	background: #f34b45;
	color: #ffffff;
	border-bottom-color: #f34b45;
}

.ranking-table .num {
	text-align: center;
	font-variant-numeric: tabular-nums;
}

.ranking-user-cell {
	/* display: flex; */
	align-items: center;
	gap: 8px;
}

.ranking-current-user {
	display: grid;
	grid-template-columns: 36px minmax(0, 1fr) auto;
	align-items: center;
	gap: 16px;
	margin-top: 14px;
	padding: 12px 14px;
	border: 2px solid #bdbdbd;
	border-radius: 14px;
	background: #ffffff;
	box-shadow: 0 1px 0 rgba(17, 17, 17, 0.03);
}

.ranking-current-user-position,
.ranking-current-user-points {
	font-weight: 800;
	font-variant-numeric: tabular-nums;
}

.ranking-current-user-position {
	color: #444444;
}

.ranking-current-user-identity {
	min-width: 0;
}

.ranking-current-user-name {
	font-weight: 700;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.ranking-current-user-email {
	margin-top: 2px;
	color: var(--muted);
	font-size: 0.84rem;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.ranking-empty {
	margin-top: 12px;
	color: var(--muted);
	font-style: italic;
}

@media (max-width: 640px) {
	.ranking-table th,
	.ranking-table td {
		padding: 12px;
	}

	.ranking-current-user {
		grid-template-columns: 28px minmax(0, 1fr) auto;
		gap: 10px;
		padding: 10px 12px;
	}

	.ranking-current-user-email {
		font-size: 0.78rem;
	}
}
