/* STS Charts — frontend styles v1.5.0 */
/* Dynamic colors via CSS Custom Properties set inline on wrapper */

/* ── Shared wrapper ─────────────────────────────── */
.sts-wrapper {
	box-sizing: border-box;
	font-family: inherit;
}

/* ══════════════════════════════════════════════════
   RANKING TABLE
   ══════════════════════════════════════════════════ */
.sts-ranking-wrap {
	position: relative;
	overflow: hidden;
	background: linear-gradient(to bottom right, #FFFFFF 0%, #D3DADF 55%, #F1F3F5 100%);
	padding: 25px 30px;
	border: 3px solid var(--sts-cp);
	border-radius: 22px;
	box-sizing: border-box;
	font-family: inherit;
}

.sts-ranking-wrap .rl-triangle {
	position: absolute;
	right: 0; bottom: 0;
	width: 220px; height: 220px;
	background: var(--sts-cl);
	clip-path: polygon(100% 0, 0 100%, 100% 100%);
	z-index: 0;
}

.sts-ranking-wrap .rl-inner {
	position: relative;
	z-index: 1;
}

.sts-ranking-wrap .rl-title {
	margin: 0;
	text-align: center;
	font-size: 34px;
	font-weight: 800;
	line-height: 1.15;
	color: #1a1a1a;
}

.sts-ranking-wrap .rl-title span {
	display: inline-block;
	padding: 0 5px 14px;
	border-bottom: 2px solid var(--sts-cp);
}

.sts-ranking-wrap .rl-wrap {
	max-width: min(90%, 1100px);
	margin: 18px auto 0;
	overflow-x: auto;
}

.sts-ranking-wrap .rl-head {
	display: grid;
	grid-template-columns: var(--sts-grid);
	gap: 8px;
	align-items: end;
	text-align: center;
	font-weight: 900;
	font-size: 13px;
	opacity: .85;
	margin-bottom: 8px;
}

.sts-ranking-wrap .rl-head > div {
	display: flex;
	align-items: center;
	justify-content: center;
}

.sts-ranking-wrap .rl-rows {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.sts-ranking-wrap .rl-row {
	display: grid;
	grid-template-columns: var(--sts-grid);
	gap: 8px;
	align-items: center;
}

.sts-ranking-wrap .rl-cell {
	height: 42px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 2px solid rgba(var(--sts-cp-rgb), .28);
	border-radius: 12px;
	background: rgba(255,255,255,.35);
	padding: 0 10px;
	box-sizing: border-box;
	font-size: 15px;
	font-weight: 800;
	color: #000;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	text-align: center;
}

.sts-ranking-wrap .rl-cell--delta {
	border: none;
	background: transparent;
	padding: 0;
	overflow: visible;
}

.sts-ranking-wrap .rl-delta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 96px;
	height: 28px;
	border-radius: 10px;
	color: #fff;
	font-weight: 900;
	font-size: 13px;
	white-space: nowrap;
}

.sts-ranking-wrap .rl-up   { background: var(--sts-cp); }
.sts-ranking-wrap .rl-down { background: var(--sts-cn); }
.sts-ranking-wrap .rl-flat { background: var(--sts-cu); }

.sts-ranking-wrap .rl-source {
	width: 260px;
	max-width: 100%;
	margin: 20px auto 0;
	text-align: center;
	background: var(--sts-cp);
	color: #fff;
	border-radius: 14px;
	padding: 12px 18px;
	font-weight: 800;
	font-size: 15px;
	box-sizing: border-box;
}

.sts-ranking-wrap .rl-source a {
	color: #fff;
	text-decoration: none;
}

@media (max-width: 1024px) {
	.sts-ranking-wrap { padding: 20px; }
	.sts-ranking-wrap .rl-title { font-size: 28px; }
	.sts-ranking-wrap .rl-head { font-size: 12px; }
	.sts-ranking-wrap .rl-cell { height: 38px; font-size: 14px; padding: 0 8px; }
	.sts-ranking-wrap .rl-delta { width: 80px; height: 26px; font-size: 12px; }
}

@media (max-width: 720px) {
	.sts-ranking-wrap { padding: 15px 12px; }
	.sts-ranking-wrap .rl-head { display: none; }
	.sts-ranking-wrap .rl-row {
		grid-template-columns: 1fr;
		gap: 8px;
		padding: 8px 0;
	}
	.sts-ranking-wrap .rl-cell {
		justify-content: flex-end;
		text-align: right;
		height: 44px;
		font-size: 16px;
		padding: 0 12px;
	}
	.sts-ranking-wrap .rl-cell::before {
		content: attr(data-label);
		font-weight: 900;
		font-size: 13px;
		opacity: .75;
		margin-right: auto;
		padding-right: 10px;
		text-align: left;
		white-space: normal;
	}
	.sts-ranking-wrap .rl-cell--delta {
		display: flex;
		justify-content: flex-end;
		height: 44px;
	}
	.sts-ranking-wrap .rl-cell--delta::before {
		content: attr(data-label);
		font-weight: 900;
		font-size: 13px;
		opacity: .75;
		margin-right: auto;
		padding-right: 10px;
	}
	.sts-ranking-wrap .rl-delta {
		width: 130px;
		height: 32px;
		font-size: 14px;
	}
}

@media (max-width: 480px) {
	.sts-ranking-wrap { padding: 12px 8px; border-width: 2px; }
	.sts-ranking-wrap .rl-title { font-size: 22px; }
	.sts-ranking-wrap .rl-title span { padding: 0 3px 10px; }
}

/* ══════════════════════════════════════════════════
   BAR CHART
   ══════════════════════════════════════════════════ */
.sts-barchart-wrap {
	display: flex;
	justify-content: center;
	padding: 40px 0;
	font-family: inherit;
}

.sts-barchart-wrap .sts-box {
	width: 1200px;
	max-width: 100%;
	position: relative;
	border: 3px solid var(--sts-cp);
	border-radius: 22px;
	background: linear-gradient(to bottom right, #ffffff 0%, #D3DADF 55%, #F1F3F5 100%);
	padding: 40px 60px;
	box-sizing: border-box;
	overflow: hidden;
}

.sts-barchart-wrap .sts-title {
	text-align: center;
	font-size: 34px;
	font-weight: 700;
	margin: 0 0 10px;
	position: relative;
	z-index: 2;
	color: #1a1a1a;
}

.sts-barchart-wrap .sts-underline {
	width: 500px;
	max-width: 80%;
	height: 6px;
	background: var(--sts-cp);
	margin: 0 auto 40px;
}

.sts-barchart-wrap .sts-chart {
	position: relative;
	display: flex;
	align-items: flex-end;
	--bar-max: 400px;
	height: 500px;
	gap: 16px;
	z-index: 2;
	padding-bottom: 3px;
	box-sizing: border-box;
}

.sts-barchart-wrap .sts-zero-line {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 3px;
	background: var(--sts-cp);
}

.sts-barchart-wrap .sts-bar-item {
	flex: 1;
	min-width: 0;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-end;
}

.sts-barchart-wrap .sts-bar-delta {
	margin-bottom: 10px;
	padding: 6px 12px;
	border-radius: 8px;
	font-size: 16px;
	font-weight: 700;
	color: #fff;
}

.sts-barchart-wrap .sts-bar-delta-pos { background: var(--sts-cp); }
.sts-barchart-wrap .sts-bar-delta-neg { background: var(--sts-cn); }

.sts-barchart-wrap .sts-bar {
	width: 70%;
	max-width: 120px;
	border-radius: 12px;
	height: calc(var(--bar-ratio) * var(--bar-max));
	background: var(--sts-bar-bg);
}

.sts-barchart-wrap .sts-bar-value {
	margin-bottom: 6px;
	font-size: 20px;
	font-weight: 700;
	color: #333;
}

.sts-barchart-wrap .sts-chart-labels {
	display: flex;
	gap: 16px;
	margin-top: 12px;
	align-items: flex-start;
}

.sts-barchart-wrap .sts-bar-label-wrap {
	flex: 1;
	min-width: 0;
	text-align: center;
	font-weight: 700;
	font-size: 15px;
	line-height: 1.5;
	overflow-wrap: break-word;
}

.sts-barchart-wrap .sts-source {
	width: 260px;
	max-width: 100%;
	margin: 20px auto 0;
	text-align: center;
	background: var(--sts-cp);
	color: #fff;
	border-radius: 14px;
	padding: 12px 18px;
	font-weight: 800;
	font-size: 15px;
	box-sizing: border-box;
}

.sts-barchart-wrap .sts-source a {
	color: #fff;
	text-decoration: none;
}

@media (max-width: 1024px) {
	.sts-barchart-wrap .sts-box { padding: 30px 30px; }
	.sts-barchart-wrap .sts-title { font-size: 28px; }
	.sts-barchart-wrap .sts-chart { --bar-max: 320px; height: 420px; gap: 12px; }
}

@media (max-width: 768px) {
	.sts-barchart-wrap .sts-box { padding: 24px 20px; }
	.sts-barchart-wrap .sts-title { font-size: 24px; }
	.sts-barchart-wrap .sts-chart { --bar-max: 220px; height: 300px; gap: 8px; }
	.sts-barchart-wrap .sts-bar-value { font-size: 14px; }
	.sts-barchart-wrap .sts-bar-label-wrap { font-size: 12px; }
	.sts-barchart-wrap .sts-chart-labels { gap: 8px; }
	.sts-barchart-wrap .sts-bar-delta { font-size: 12px; padding: 4px 8px; }
}

@media (max-width: 480px) {
	.sts-barchart-wrap .sts-box { padding: 16px 12px; }
	.sts-barchart-wrap .sts-title { font-size: 18px; margin: 0 0 6px; }
	.sts-barchart-wrap .sts-underline { height: 4px; margin: 0 auto 16px; }
	.sts-barchart-wrap .sts-chart { --bar-max: 140px; height: 200px; gap: 4px; }
	.sts-barchart-wrap .sts-bar-value { font-size: 11px; margin-bottom: 4px; }
	.sts-barchart-wrap .sts-bar-label-wrap { font-size: 10px; }
	.sts-barchart-wrap .sts-chart-labels { gap: 4px; margin-top: 8px; }
	.sts-barchart-wrap .sts-bar-delta { font-size: 10px; padding: 2px 4px; margin-bottom: 4px; }
}
