/* Article 002 (fuel): the visuals the shared layout does not already provide, a single-series
   horizontal bar list used for the state, channel and operator charts. Palette tokens come from
   .g2m-tra; the truck-traffic band bars reuse the shared band classes. */

.g2m-frb__bars {
	list-style: none;
	margin: 0;
	padding: 0;
}

.g2m-frb__bars li {
	display: grid;
	grid-template-columns: minmax(11rem, 17rem) minmax(0, 1fr);
	gap: 0.35rem 1rem;
	align-items: center;
	padding: 0.4rem 0;
	border-top: 1px solid var(--g2m-tra-line);
	list-style: none;
}

.g2m-frb__bars li:first-child {
	border-top: 0;
}

.g2m-frb__barlabel {
	font-size: 0.9rem;
	line-height: 1.3;
	color: var(--g2m-tra-ink);
}

.g2m-frb__barlabel small {
	display: block;
	color: var(--g2m-tra-muted);
	font-size: 0.74rem;
	letter-spacing: 0.02em;
}

.g2m-frb__track {
	position: relative;
	display: block;
	height: 18px;
	background: var(--g2m-tra-band-0);
	border-radius: 4px;
	overflow: visible;
}

.g2m-frb__bar {
	display: block;
	height: 100%;
	background: var(--g2m-tra-teal);
	border-radius: 4px;
}

.g2m-frb__bar--muted {
	background: var(--g2m-tra-navy);
}

.g2m-frb__value {
	position: absolute;
	top: 50%;
	left: calc(var(--v) + 0.5rem);
	transform: translateY(-50%);
	color: var(--g2m-tra-navy);
	font-size: 0.82rem;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.g2m-frb__pairstart td,
.g2m-frb__pairstart th {
	border-top: 2px solid var(--g2m-tra-line);
}

/* The ranking tables carry several supporting measures. Give the metro its own readable column
   and let the existing table wrapper scroll when the viewport cannot hold every measure. */
.g2m-frb__ranking-table {
	min-width: 1080px;
}

.g2m-frb__ranking-table .g2m-frb__metro {
	width: 15rem;
	min-width: 15rem;
}

/* The corridor map. Weight and colour carry the freight volume: the heaviest routes are the
   featured teal, the rest recede to navy and a band grey, so the picture reads as one measure at
   three intensities rather than three categories. */
.g2m-frb__mapfigure {
	margin-inline: 0;
}

.g2m-frb__map {
	display: block;
	width: 100%;
	height: auto;
}

.g2m-frb__states polygon {
	fill: var(--g2m-tra-band-0);
	stroke: var(--g2m-tra-surface, #fff);
	stroke-width: 2;
}

.g2m-frb__road polyline {
	fill: none;
	stroke-linecap: round;
	stroke-linejoin: round;
	vector-effect: non-scaling-stroke;
}

/* The ramp is the measure: one hue at three weights, so the network stays legible as a network
   while the eye still finds the heaviest routes first. Teal is reserved for those, as it is for
   the featured series everywhere else. A light tint alone did not work here, because the lightest
   band sat too close to the state fill and forty thousand miles of road simply disappeared. */
.g2m-frb__road--light polyline { stroke: var(--g2m-tra-navy); opacity: 0.3; }
.g2m-frb__road--mid polyline { stroke: var(--g2m-tra-navy); opacity: 0.7; }
.g2m-frb__road--heavy polyline { stroke: var(--g2m-tra-teal); }

.g2m-frb__marker {
	fill: var(--g2m-tra-teal);
	fill-opacity: 0.85;
	stroke: var(--g2m-tra-navy);
	stroke-width: 2;
}

.g2m-frb__leader {
	stroke: var(--g2m-tra-navy);
	stroke-width: 1.5;
	opacity: 0.55;
}

.g2m-frb__maplabel {
	font-size: 26px;
	font-weight: 600;
	fill: var(--g2m-tra-ink);
	paint-order: stroke;
	stroke: var(--g2m-tra-surface, #fff);
	stroke-width: 5px;
	stroke-linejoin: round;
}

.g2m-frb__maplegend {
	margin-top: 0.6rem;
}

.g2m-frb__swatch {
	display: inline-block;
	width: 1.1rem;
	height: 0;
	margin-right: 0.35rem;
	border-top-style: solid;
	vertical-align: middle;
}

.g2m-frb__swatch.g2m-frb__road--light { border-top-width: 2px; border-top-color: var(--g2m-tra-navy); opacity: 0.3; }
.g2m-frb__swatch.g2m-frb__road--mid { border-top-width: 3px; border-top-color: var(--g2m-tra-navy); opacity: 0.7; }
.g2m-frb__swatch.g2m-frb__road--heavy { border-top-width: 5px; border-top-color: var(--g2m-tra-teal); }

.g2m-frb__swatch--marker {
	width: 0.7rem;
	height: 0.7rem;
	border: 2px solid var(--g2m-tra-navy);
	border-radius: 50%;
	background: var(--g2m-tra-teal);
}

@media (max-width: 640px) {
	/* The labels are sized for the rendered width; on a phone the map is half that, so they are
	   dropped rather than allowed to overlap the roads they point at. */
	.g2m-frb__maplabel {
		display: none;
	}
}

@media (max-width: 640px) {
	.g2m-frb__bars li {
		grid-template-columns: 1fr;
		gap: 0.25rem;
	}
}
