/* Авторы и рейтинг — Наши авторы, Рейтинг участников */

/* ── Фильтры авторов ────────────────────────────────────────── */
.nd-authors-filters {
	background: #fff; border-radius: var(--nd-radius-card); padding: 16px 24px;
	display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.nd-authors-search {
	display: flex; align-items: center; gap: 8px; flex: 1; min-width: 0;
}
.nd-authors-search-input {
	flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px;
	height: 42px; padding: 0 14px; border-radius: var(--nd-radius-field);
	background: var(--nd-field); color: var(--nd-text);
}
.nd-authors-search-input input {
	flex: 1; min-width: 0; border: 0; background: transparent; outline: none;
	font-size: 15px; color: var(--nd-text);
}
.nd-authors-search-input input::placeholder { color: var(--nd-text-3); }
.nd-authors-search-input svg { flex: none; color: var(--nd-text-3); }

/* ── Сетка авторов ────────────────────────────────────────── */
.nd-authors-grid {
	display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 8px;
}
.nd-author-card {
	background: #fff; border-radius: var(--nd-radius-card); padding: 20px;
	display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px;
}
.nd-author-avatar {
	flex: none; width: 72px; height: 72px; border-radius: 50%;
	background: #EDF1F6; color: #33393F; display: flex; align-items: center; justify-content: center;
	font-weight: 500; font-size: 24px; line-height: 1; overflow: hidden;
	text-decoration: none; margin-bottom: 6px;
}
.nd-author-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.nd-author-name {
	margin: 0; font: 500 17px/23px var(--nd-font);
}
.nd-author-name a { color: var(--nd-text); text-decoration: none; }
.nd-author-name a:hover { color: var(--nd-accent); }
.nd-author-region {
	font-size: 14px; color: var(--nd-text-3);
}
.nd-author-level {
	display: inline-flex; align-items: center; height: 24px; padding: 0 10px;
	border-radius: var(--nd-radius-pill); background: var(--nd-neutral);
	color: #33393F; font-size: 13px; line-height: 24px; margin-top: 6px;
}
.nd-author-profile-link {
	margin-top: 10px; color: var(--nd-accent); font-size: 14px; text-decoration: none;
}
.nd-author-profile-link:hover { color: var(--nd-accent-hover); }

/* ── Фильтры рейтинга ────────────────────────────────────────── */
.nd-rating-filters {
	background: #fff; border-radius: var(--nd-radius-card); padding: 16px 24px;
}
.nd-rating-form { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.nd-rating-controls { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; flex: 1; }
.nd-rating-periods { display: flex; gap: 8px; }
.nd-btn--period {
	height: 38px; padding: 0 16px; border: 0; border-radius: var(--nd-radius-pill);
	background: transparent; color: var(--nd-text); font: 500 14px/1 var(--nd-font);
	cursor: pointer; transition: background-color .15s;
}
.nd-btn--period:hover { background: var(--nd-neutral); }
.nd-btn--period.nd-btn--active { background: var(--nd-dark); color: #fff; }
.nd-rating-select { position: relative; width: 210px; }
.nd-rating-select select {
	width: 100%; height: 38px; padding: 0 12px; border: 1px solid var(--nd-line-warm);
	border-radius: var(--nd-radius-field); background: var(--nd-select); color: var(--nd-text);
	font-size: 14px; cursor: pointer;
}

/* ── Мой прогресс ────────────────────────────────────────── */
.nd-rating-progress {
	background: var(--nd-dark); color: var(--nd-text-on-dark); border-radius: var(--nd-radius-card);
	padding: 20px 24px; position: relative; overflow: hidden;
}
.nd-rating-progress::before {
	content: ''; position: absolute; top: -90px; right: -60px;
	width: 210px; height: 210px; border-radius: 50%;
	background: radial-gradient(circle at 30% 30%, #2B4A7A, var(--nd-dark) 70%);
	z-index: 0;
}
.nd-rating-progress > * { position: relative; z-index: 1; }
.nd-rating-progress-head {
	display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 16px;
}
.nd-rating-progress-title {
	margin: 0; font: 500 20px/26px var(--nd-font); color: var(--nd-text-on-dark);
}
.nd-rating-progress-level {
	font-size: 13px; color: var(--nd-text-on-dark-2);
}
.nd-rating-progress-score {
	display: flex; align-items: baseline; gap: 6px;
}
.nd-rating-progress-score strong {
	font: 500 30px/34px var(--nd-font); color: var(--nd-text-on-dark);
}
.nd-rating-progress-score span {
	font-size: 14px; color: var(--nd-text-on-dark-2);
}
.nd-rating-progress-info {
	display: flex; justify-content: space-between; font-size: 13px; color: var(--nd-text-on-dark-2); margin-bottom: 6px;
}
.nd-rating-progress-label { }
.nd-rating-progress-values { }
.nd-rating-progress-perks {
	margin: 10px 0 0; font-size: 13px; line-height: 19px; color: var(--nd-text-on-dark-2);
}

/* ── Квест ────────────────────────────────────────── */
.nd-quest {
	background: #fff; border-radius: var(--nd-radius-card); padding: 20px 24px;
}
.nd-quest-head {
	display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 6px;
}
.nd-quest-head h2 {
	margin: 0; font: 500 20px/26px var(--nd-font);
}
.nd-quest-deadline {
	font-size: 13px; color: var(--nd-text-3);
}
.nd-quest-text {
	margin: 6px 0 0; font-size: 14px; line-height: 20px; color: var(--nd-text-2);
}
.nd-quest-progress {
	display: flex; justify-content: space-between; font-size: 13px; color: var(--nd-text-3); margin-top: 14px;
}

/* ── Прогресс-бар ────────────────────────────────────────── */
.nd-progress-bar {
	height: 8px; border-radius: var(--nd-radius-pill); background: #F0F1F3; overflow: hidden;
	margin-top: 6px;
}
.nd-progress-bar i {
	display: block; height: 100%; border-radius: var(--nd-radius-pill); background: var(--nd-accent);
}
.nd-rating-progress .nd-progress-bar i {
	background: #7FA8E4;
}

/* ── Таблица рейтинга ────────────────────────────────────────── */
.nd-rating-table {
	background: #fff; border-radius: var(--nd-radius-card); padding: 8px;
	display: flex; flex-direction: column; gap: 0;
}
.nd-rating-row {
	position: relative; display: flex; align-items: center; gap: 14px; padding: 12px 14px;
	border-radius: var(--nd-radius-card); background: transparent; transition: background-color .15s;
}
.nd-rating-row:hover { background: #F7F8FA; }
.nd-rating-row--me {
	background: #F0F3F7;
}
.nd-rating-place {
	flex: none; width: 34px; font: 500 17px/1 var(--nd-font); text-align: right; color: var(--nd-text-2);
}
.nd-rating-avatar {
	flex: none; width: 40px; height: 40px; border-radius: 50%;
	background: #EDF1F6; color: #33393F; display: flex; align-items: center; justify-content: center;
	font-weight: 500; font-size: 14px; line-height: 1; overflow: hidden;
	text-decoration: none;
}
.nd-rating-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.nd-rating-name {
	flex: 1; min-width: 0;
}
.nd-rating-name strong {
	display: block; font: 500 16px/22px var(--nd-font); color: var(--nd-text);
}
.nd-rating-name strong a { color: var(--nd-text); text-decoration: none; }
.nd-rating-name strong a:hover { color: var(--nd-accent); }
.nd-rating-me {
	display: inline-block; height: 20px; padding: 0 8px; margin-left: 8px;
	border-radius: var(--nd-radius-pill); background: var(--nd-dark); color: #fff;
	font-size: 12px; line-height: 20px;
}
.nd-rating-meta {
	display: block; font-size: 13px; color: var(--nd-text-3);
}
.nd-rating-points {
	flex: none; display: flex; align-items: baseline; gap: 6px;
	font: 500 17px/1 var(--nd-font); color: var(--nd-text);
}

/* ── Уровни ────────────────────────────────────────── */
.nd-levels {
	background: #fff; border-radius: var(--nd-radius-card); padding: 20px 24px;
}
.nd-levels h2 {
	margin: 0 0 14px; font: 500 20px/26px var(--nd-font);
}
.nd-levels-list {
	display: flex; flex-direction: column; gap: 2px;
}
.nd-level-item {
	display: flex; align-items: flex-start; gap: 14px; padding: 12px 14px;
	border-radius: var(--nd-radius-card); background: transparent; transition: background-color .15s;
}
.nd-level-item:hover { background: #F7F8FA; }
.nd-level-item--done { background: #F0F3F7; }
.nd-level-item--current { background: #EDF3FC; }
.nd-level-item > b {
	flex: none; width: 30px; height: 30px; border-radius: 50%; display: flex;
	align-items: center; justify-content: center; font: 500 14px/1 var(--nd-font);
	background: #F4F5F7; color: var(--nd-text-3);
}
.nd-level-item--done > b { background: var(--nd-accent); color: #fff; }
.nd-level-item--current > b { background: var(--nd-accent); color: #fff; }
.nd-level-info {
	flex: 1; min-width: 0;
}
.nd-level-info strong {
	display: block; font: 500 16px/22px var(--nd-font); color: var(--nd-text);
}
.nd-level-info small {
	display: block; font-size: 14px; line-height: 20px; color: var(--nd-text-2); margin-top: 2px;
}
.nd-level-state {
	flex: none; font-size: 13px; color: var(--nd-text-3); white-space: nowrap;
}
.nd-level-item--done .nd-level-state { color: var(--nd-accent); }
.nd-level-item--current .nd-level-state { color: var(--nd-accent); }

/* ── Таблица баллов ────────────────────────────────────────── */
.nd-actions {
	background: #fff; border-radius: var(--nd-radius-card); padding: 20px 24px;
}
.nd-actions h2 {
	margin: 0 0 14px; font: 500 20px/26px var(--nd-font);
}
.nd-actions-scroll {
	overflow-x: auto;
}
.nd-actions-table {
	width: 100%; border-collapse: collapse; font-size: 15px;
}
.nd-actions-table thead {
	background: transparent;
}
.nd-actions-table th {
	text-align: left; padding: 0 12px 10px 0; font: 500 13px/18px var(--nd-font);
	color: var(--nd-text-3); border-bottom: 1px solid var(--nd-line);
}
.nd-actions-table th:last-child {
	text-align: right; padding-right: 0;
}
.nd-actions-table td {
	padding: 12px 12px 12px 0; border-bottom: 1px solid #F4F5F6; color: var(--nd-text);
}
.nd-actions-table td:last-child {
	text-align: right; padding-right: 0;
}
.nd-actions-table tbody tr:hover {
	background: #F7F8FA;
}
.nd-actions-points {
	font: 500 15px/1 var(--nd-font); color: #1F6B34;
}
.nd-actions-points--minus {
	color: var(--nd-danger);
}

/* ── Достижения ────────────────────────────────────────── */
.nd-achievements {
	background: #fff; border-radius: var(--nd-radius-card); padding: 20px 24px;
}
.nd-achievements-head {
	display: flex; align-items: baseline; gap: 10px; margin-bottom: 16px;
}
.nd-achievements-head h2 {
	margin: 0; font: 500 20px/26px var(--nd-font);
}
.nd-achievements-count {
	font-size: 13px; color: var(--nd-text-3);
}
.nd-achievements-grid {
	display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px;
}
.nd-achievement {
	border-radius: var(--nd-radius-card); padding: 14px; background: #F7F8FA;
	display: flex; flex-direction: column; gap: 4px;
}
.nd-achievement--locked {
	opacity: 0.6;
}
.nd-achievement-icon {
	display: flex; align-items: center; justify-content: center; font-size: 24px; line-height: 1;
	margin-bottom: 4px;
}
.nd-achievement strong {
	margin-top: 4px; font: 500 15px/20px var(--nd-font); color: var(--nd-text);
}
.nd-achievement small {
	font-size: 13px; line-height: 18px; color: var(--nd-text-3);
}

/* ── Честные баллы ────────────────────────────────────────── */
.nd-honest-rating {
	background: #fff; border-radius: var(--nd-radius-card); padding: 18px 24px;
}
.nd-honest-rating h2 {
	margin: 0 0 12px; font: 500 20px/26px var(--nd-font);
}
.nd-honest-rating p {
	margin: 0; font-size: 14px; line-height: 20px; color: var(--nd-text-2);
}

/* ── Рост недели ────────────────────────────────────────── */
.nd-risers {
	background: #fff; border-radius: var(--nd-radius-card); padding: 20px 24px;
}
.nd-risers h2 {
	margin: 0 0 12px; font: 500 18px/24px var(--nd-font);
}
.nd-risers-list {
	display: flex; flex-direction: column; gap: 2px;
}
.nd-riser-item {
	display: flex; align-items: center; gap: 10px; padding: 8px; border-radius: var(--nd-radius-card);
	background: transparent; color: var(--nd-text); text-decoration: none;
	transition: background-color .15s;
}
.nd-riser-item:hover { background: #F7F8FA; }
.nd-riser-name {
	flex: 1; min-width: 0; font-size: 15px;
}
.nd-riser-delta {
	flex: none; font: 500 13px/1 var(--nd-font); color: #1F6B34;
}

/* ── Адаптив 1200px ────────────────────────────────────────── */
@media (max-width: 1200px) {
	.nd-authors-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* ── Адаптив 700px ────────────────────────────────────────── */
@media (max-width: 700px) {
	.nd-authors-filters {
		flex-direction: column; padding: 12px 16px;
	}
	.nd-authors-search {
		width: 100%;
	}
	.nd-authors-search-input {
		padding: 0 12px;
	}
	.nd-authors-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px;
	}
	.nd-author-card {
		padding: 12px; border-radius: 8px;
	}
	.nd-author-avatar {
		width: 56px; height: 56px; font-size: 18px;
	}
	.nd-author-name {
		font-size: 14px;
	}
	.nd-author-profile-link {
		font-size: 12px; margin-top: 6px;
	}

	.nd-rating-filters {
		padding: 12px 16px;
	}
	.nd-rating-controls {
		width: 100%;
	}
	.nd-rating-periods {
		width: 100%; justify-content: flex-start; flex-wrap: wrap;
	}
	.nd-rating-select {
		width: 100% !important; flex-basis: 100%;
	}
	.nd-rating-select select {
		width: 100%;
	}

	.nd-rating-progress {
		padding: 16px;
	}
	.nd-rating-progress-head {
		flex-direction: column;
	}
	.nd-rating-progress-score {
		width: 100%;
	}

	.nd-quest {
		padding: 16px;
	}
	.nd-quest-head {
		flex-direction: column; gap: 4px;
	}

	.nd-rating-row {
		padding: 10px 12px; gap: 10px;
	}
	.nd-rating-place {
		width: 28px; font-size: 14px;
	}
	.nd-rating-avatar {
		width: 36px; height: 36px; font-size: 12px;
	}
	.nd-rating-name strong {
		font-size: 14px;
	}
	.nd-rating-meta {
		font-size: 12px;
	}
	.nd-rating-points {
		font-size: 14px;
	}

	.nd-level-item {
		padding: 10px 12px;
	}
	.nd-level-item > b {
		width: 28px; height: 28px; font-size: 12px;
	}
	.nd-level-info strong {
		font-size: 14px;
	}
	.nd-level-info small {
		font-size: 12px;
	}

	.nd-actions-table th,
	.nd-actions-table td {
		font-size: 13px; padding: 8px 8px 8px 0;
	}
	.nd-actions-table th:first-child,
	.nd-actions-table td:first-child {
		padding-left: 0;
	}

	.nd-achievements-grid {
		grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
	}
	.nd-achievement {
		padding: 10px;
	}
	.nd-achievement strong {
		font-size: 13px;
	}
	.nd-achievement small {
		font-size: 11px;
	}
}

/* ── Адаптив 400px ────────────────────────────────────────── */
@media (max-width: 400px) {
	.nd-authors-grid {
		grid-template-columns: repeat(1, minmax(0, 1fr));
	}

	.nd-rating-row {
		padding: 10px;
	}
	.nd-rating-place {
		width: 24px; font-size: 13px;
	}
	.nd-rating-avatar {
		width: 32px; height: 32px; font-size: 11px;
	}
	.nd-rating-points {
		font-size: 13px;
	}

	.nd-achievements-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* Авторы в вашем регионе и Топ по вкладу — new-design/Authors.dc.html. */
.nd-authors-near { background: #E7EBF0; border: 1px solid #D3DAE3; border-radius: 10px; padding: 20px; }
.nd-authors-near-title { margin: 0; font: 500 18px/24px Roboto, sans-serif; color: #16202B; }
.nd-authors-near-sub { margin: 4px 0 0; font-size: 13px; color: #808080; }
.nd-authors-near-list { margin-top: 10px; display: flex; flex-direction: column; gap: 6px; }
.nd-authors-near-item { display: flex; align-items: center; gap: 10px; padding: 10px; border-radius: 10px; background: #fff; color: #000; }
.nd-authors-near-item:hover { background: #F5F7FA; }
.nd-authors-near-item img { width: 30px; height: 30px; border-radius: 50%; flex: none; }
.nd-authors-near-name { font-size: 15px; line-height: 20px; }
.nd-authors-near .nd-read { display: inline-block; margin-top: 12px; }
.nd-authors-top-list { display: flex; flex-direction: column; gap: 2px; }
.nd-authors-top-item { display: flex; align-items: center; gap: 10px; padding: 8px; border-radius: 10px; color: #000; }
.nd-authors-top-item:hover { background: #F0F3F7; }
.nd-authors-top-num { flex: none; width: 22px; height: 22px; border-radius: 6px; background: #F2F3F5; color: #33393F; display: flex; align-items: center; justify-content: center; font: 500 13px/1 Roboto, sans-serif; }
.nd-authors-top-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 15px; line-height: 20px; }
.nd-authors-top-points { flex: none; font: 500 14px/1 Roboto, sans-serif; color: #33393F; }
}
