/*! API Syndication 1.5.0 — frontend.css. Built from assets/css/frontend.css. */
/*
 * API Syndication — public displays.
 *
 * Every rule is scoped to `.api-syndication:not(body)` (or the layout box),
 * so a theme that adds a page slug as a body class can never be restyled
 * by accident. Colours come from custom properties: light by default, the
 * Page Design dark tokens for theme="dark", and the visitor's preference
 * for theme="inherit".
 */

.api-syndication:not(body) {
	--apis-bg: #ffffff;
	--apis-surface: #f6f7f9;
	--apis-border: #d4d7dd;
	--apis-text: #1d2127;
	--apis-muted: #4f5662;
	--apis-link: #0a58a6;
	--apis-positive: #13703a;
	--apis-negative: #b3261e;
	--apis-amber: #8a5a00;
	--apis-focus: #0a58a6;
	--apis-radius: 6px;
	--apis-gap: 16px;
	--apis-row-pad: 10px;

	box-sizing: border-box;
	max-width: var(--apis-max-width, 1280px);
	margin: 0 auto 24px;
	color: var(--apis-text);
	font-size: 1rem;
	line-height: 1.5;
	overflow-wrap: anywhere;
	/* A link or form that jumps here leaves room for a sticky header. */
	scroll-margin-top: var(--apis-anchor-offset, 96px);
}

/* Nothing inside a display may widen the page. */
.api-syndication:not(body) img,
.api-syndication:not(body) video,
.api-syndication:not(body) iframe,
.api-syndication:not(body) pre {
	max-width: 100%;
}

.api-syndication:not(body) [id] {
	scroll-margin-top: var(--apis-anchor-offset, 96px);
}

.api-syndication:not(body) *,
.api-syndication:not(body) *::before,
.api-syndication:not(body) *::after {
	box-sizing: inherit;
}

.api-syndication:not(body).apis-theme-dark {
	--apis-bg: var(--apis-dark-background, #0b0c0f);
	--apis-surface: var(--apis-dark-surface, #15171c);
	--apis-border: var(--apis-dark-border, #2a2d35);
	--apis-text: var(--apis-dark-text, #f3f4f6);
	--apis-muted: var(--apis-dark-muted, #b8bec9);
	--apis-link: var(--apis-dark-link, #67d3e2);
	--apis-positive: var(--apis-dark-positive, #6ad98b);
	--apis-negative: var(--apis-dark-negative, #ff8f93);
	--apis-amber: var(--apis-dark-amber, #f4c764);
	--apis-focus: var(--apis-dark-link, #67d3e2);
	background: var(--apis-bg);
	color-scheme: dark;
}

@media (prefers-color-scheme: dark) {
	.api-syndication:not(body).apis-theme-inherit {
		--apis-bg: var(--apis-dark-background, #0b0c0f);
		--apis-surface: var(--apis-dark-surface, #15171c);
		--apis-border: var(--apis-dark-border, #2a2d35);
		--apis-text: var(--apis-dark-text, #f3f4f6);
		--apis-muted: var(--apis-dark-muted, #b8bec9);
		--apis-link: var(--apis-dark-link, #67d3e2);
		--apis-positive: var(--apis-dark-positive, #6ad98b);
		--apis-negative: var(--apis-dark-negative, #ff8f93);
		--apis-amber: var(--apis-dark-amber, #f4c764);
		--apis-focus: var(--apis-dark-link, #67d3e2);
		/* Paint the section as explicit dark mode does: on a light theme
		 * page, light text would otherwise sit on the page's white. */
		background: var(--apis-bg);
		color: var(--apis-text);
		color-scheme: dark;
	}
}

.api-syndication:not(body).apis-density-compact {
	--apis-gap: 10px;
	--apis-row-pad: 6px;
	font-size: 0.9375rem;
}

.api-syndication:not(body) a {
	color: var(--apis-link);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.api-syndication:not(body) a:hover {
	text-decoration-thickness: 2px;
}

.api-syndication:not(body) :focus-visible {
	outline: 3px solid var(--apis-focus);
	outline-offset: 2px;
}

.api-syndication:not(body) .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	border: 0;
	white-space: nowrap;
}

.api-syndication:not(body) .apis-heading {
	margin: 0 0 12px;
	font-size: 1.5rem;
	line-height: 1.25;
}

/* ---------- Toolbar, views, filters ---------- */

.api-syndication:not(body) .apis-toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 16px;
	align-items: center;
	margin: 0 0 12px;
}

/* Count on the left; views and sort share the right, wrapping as a unit. */
.api-syndication:not(body) .apis-toolbar > .apis-count {
	flex: 1 1 14em;
	min-width: 0;
	margin: 0;
}

.api-syndication:not(body) .apis-toolbar > .apis-views,
.api-syndication:not(body) .apis-toolbar > .apis-sort {
	flex: 0 1 auto;
	min-width: 0;
}

.api-syndication:not(body) .apis-sort {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 8px;
	align-items: center;
	margin: 0;
}

.api-syndication:not(body) .apis-sort label {
	color: var(--apis-muted);
	font-size: 0.875rem;
	font-weight: 600;
	white-space: nowrap;
}

.api-syndication:not(body) .apis-sort select {
	box-sizing: border-box !important;
	width: auto !important;
	min-width: 0;
	max-width: 100%;
	margin: 0;
	min-height: 44px;
	padding: 6px 10px;
	border: 1px solid var(--apis-border);
	border-radius: var(--apis-radius);
	background: var(--apis-bg);
	color: var(--apis-text);
	font: inherit;
}

@media (max-width: 600px) {
	/* Views and sort share one line: the sort's select shrinks to the room
	   left, and the row wraps only when even that does not fit. */
	.api-syndication:not(body) .apis-toolbar > .apis-views {
		flex: 0 0 auto;
	}
	.api-syndication:not(body) .apis-toolbar > .apis-sort {
		flex: 1 1 12em;
		flex-wrap: nowrap;
	}
	.api-syndication:not(body) .apis-sort select {
		flex: 1 1 0;
		min-width: 5em;
	}
}

.api-syndication:not(body) .apis-views {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
}

.api-syndication:not(body) .apis-view-link,
.api-syndication:not(body) .apis-button,
.api-syndication:not(body) .apis-chip,
.api-syndication:not(body) .apis-clear {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 6px 14px;
	border: 1px solid var(--apis-border);
	border-radius: var(--apis-radius);
	background: var(--apis-surface);
	color: var(--apis-text);
	font: inherit;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
}

.api-syndication:not(body) .apis-view-link[aria-current="page"],
.api-syndication:not(body) .apis-view-link[aria-current="true"],
.api-syndication:not(body) .apis-button[aria-pressed="true"] {
	border-color: var(--apis-link);
	box-shadow: inset 0 -3px 0 var(--apis-link);
	font-weight: 600;
}

.api-syndication:not(body) .apis-filters {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 190px), 1fr));
	gap: 8px 12px;
	align-items: end;
	margin: 0 0 16px;
	padding: 12px;
	border: 1px solid var(--apis-border);
	border-radius: var(--apis-radius);
	background: var(--apis-surface);
}

.api-syndication:not(body) .apis-field {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
	margin: 0;
}

.api-syndication:not(body) .apis-field--search {
	grid-column: 1 / -1;
}

.api-syndication:not(body) .apis-field label {
	color: var(--apis-muted);
	font-size: 0.875rem;
	font-weight: 600;
}

.api-syndication:not(body) .apis-field input,
.api-syndication:not(body) .apis-field select {
	box-sizing: border-box !important;
	width: 100% !important;
	min-width: 0;
	max-width: 100% !important;
	margin: 0;
	min-height: 44px;
	padding: 6px 10px;
	border: 1px solid var(--apis-border);
	border-radius: var(--apis-radius);
	background: var(--apis-bg);
	color: var(--apis-text);
	font: inherit;
}

/* iOS draws search fields with their own intrinsic width and rounding. */
.api-syndication:not(body) .apis-field input[type="search"] {
	-webkit-appearance: none;
	appearance: none;
}

.api-syndication:not(body) .apis-field--submit {
	flex-direction: row;
	flex-wrap: wrap;
	gap: 8px;
}

.api-syndication:not(body) .apis-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	align-items: center;
	margin: 0 0 12px;
}

.api-syndication:not(body) .apis-chips__label {
	color: var(--apis-muted);
	font-size: 0.875rem;
}

.api-syndication:not(body) .apis-chip {
	min-height: 36px;
	padding: 4px 10px;
	font-size: 0.875rem;
}

.api-syndication:not(body) .apis-count,
.api-syndication:not(body) .apis-updated,
.api-syndication:not(body) .apis-hint,
.api-syndication:not(body) .apis-cal-basis,
.api-syndication:not(body) .apis-ics {
	margin: 0 0 8px;
	color: var(--apis-muted);
	font-size: 0.875rem;
}

/* ---------- Notices ---------- */

.api-syndication:not(body) .apis-notice,
.apis-notice {
	margin: 0 0 12px;
	padding: 10px 14px;
	border-left: 4px solid var(--apis-link, #0a58a6);
	border-radius: 0 var(--apis-radius, 6px) var(--apis-radius, 6px) 0;
	background: var(--apis-surface, #f6f7f9);
	color: var(--apis-text, #1d2127);
}

.api-syndication:not(body) .apis-notice--error,
.apis-notice--error {
	border-left-color: var(--apis-negative, #b3261e);
}

.api-syndication:not(body) .apis-notice--stale,
.api-syndication:not(body) .apis-notice--warning {
	border-left-color: var(--apis-amber);
}

.apis-admin-diagnostics {
	margin: 0 0 12px;
	padding: 10px 14px;
	border: 1px dashed #8a5a00;
	background: #fffaf0;
	color: #1d2127;
	font-size: 0.875rem;
}

/* ---------- List and cards ---------- */

.api-syndication:not(body) .apis-list {
	display: grid;
	gap: var(--apis-gap);
	margin: 0 0 16px;
	padding: 0;
	list-style: none;
}

/* Standard cards: a known number of columns at each width of the
   display's column (4, 3, 2, 1), so the page size can be a whole number of
   rows (DisplayRenderer::cardsPerPage) and no full page ends with an open
   slot. The breakpoints keep cards at least about 260px wide. */
.api-syndication:not(body) .apis-list--cards {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

@container (max-width: 1100px) {
	.api-syndication:not(body) .apis-list--cards {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@container (max-width: 820px) {
	.api-syndication:not(body) .apis-list--cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@container (max-width: 540px) {
	.api-syndication:not(body) .apis-list--cards {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Themes often space list items with a bottom margin on every item but
   the last ("li:not(:last-child)"), with more specific selectors than
   ours. In a grid that margin shortens each stretched cell, so the last
   card of the list ended lower than the rest of its row. The gap between
   cards is the grid's, so items never carry a margin. */
.api-syndication:not(body) .apis-list > li {
	margin: 0 !important;
}

.api-syndication:not(body) .apis-item {
	position: relative;
	height: 100%;
	padding: var(--apis-gap);
	border: 1px solid var(--apis-border);
	border-radius: var(--apis-radius);
	background: var(--apis-bg);
}

.api-syndication:not(body) .apis-item__title {
	margin: 0 0 6px;
	padding-right: 48px;
	font-size: 1.125rem;
	line-height: 1.3;
}

.api-syndication:not(body) .apis-item__meta {
	margin: 0 0 6px;
	color: var(--apis-muted);
	font-size: 0.9375rem;
}

/* Separators stay on the line of the part before them (see Templates::meta). */
.api-syndication:not(body) .apis-item__meta .apis-sep {
	margin-right: 0.125em;
}

.api-syndication:not(body) .apis-item__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 6px;
	align-items: center;
	margin: 0 0 6px;
	color: var(--apis-muted);
	font-size: 0.9375rem;
}

.api-syndication:not(body) .apis-excerpt,
.api-syndication:not(body) .apis-annotation {
	margin: 6px 0;
}

.api-syndication:not(body) .apis-annotation {
	padding-left: 10px;
	border-left: 3px solid var(--apis-link);
	font-style: italic;
}

.api-syndication:not(body) .apis-source-link {
	display: inline-block;
	margin-top: 4px;
	font-size: 0.9375rem;
}

/* Cards: one column of content with the source link ("More information",
   "Read the full story" …) always at the bottom of the card, so the links
   of a row of equal-height cards line up. */
.api-syndication:not(body) .apis-list--cards .apis-item {
	display: flex;
	flex-direction: column;
}

/* Every card of a row as tall as the row. The cell is a flex column and the
   card grows to fill it: a percentage height inside a stretched grid cell
   is not resolved by every browser (Safari ends each card where its own
   content ends, so one card in a row could be longer than the others). */
.api-syndication:not(body) .apis-list--cards,
.api-syndication:not(body) .apis-list--styled {
	align-items: stretch;
}

.api-syndication:not(body) .apis-list--cards > li,
.api-syndication:not(body) .apis-list--styled > li {
	display: flex;
	flex-direction: column;
	align-self: stretch;
}

.api-syndication:not(body) .apis-list--cards > li > .apis-item,
.api-syndication:not(body) .apis-list--styled > li > .apis-sitem {
	flex: 1 1 auto;
	height: auto;
}

/* Where subgrid is supported, a cell (the card, then the administrators'
   Edit control when shown) spans two rows of the list's grid and lays its
   two parts on them. Every card of a row then sits on the same grid track,
   so the cards are the same height by construction. This does not depend
   on a stretched cell's height reaching the card, which Safari does not
   always pass on when an Edit control sits below the card (the last card
   of a row ended lower than the others). Row gaps move to each cell's
   bottom padding so a row without Edit controls keeps the usual spacing. */
@supports (grid-template-rows: subgrid) {
	/* Two classes: a layout style's own gap rule comes later in this file. */
	.api-syndication:not(body) .apis-list.apis-list--cards,
	.api-syndication:not(body) .apis-list.apis-list--styled {
		row-gap: 0;
	}

	.api-syndication:not(body) .apis-list--cards > li,
	.api-syndication:not(body) .apis-list--styled > li {
		display: grid;
		grid-row: span 2;
		grid-template-rows: subgrid;
		row-gap: 0;
		padding-bottom: var(--apis-gap);
	}

	.api-syndication:not(body) .apis-list--styled > li {
		padding-bottom: var(--apis-s-gap, 20px);
	}

	.api-syndication:not(body) .apis-list--cards > li > .apis-item,
	.api-syndication:not(body) .apis-list--styled > li > .apis-sitem {
		grid-row: 1;
		min-height: 0;
	}
}

/* The image never sizes the card: it fills its 16:9 frame without adding
   its own (possibly much taller) natural height to the row. */
.api-syndication:not(body) .apis-list--cards .apis-media__frame {
	position: relative;
}

.api-syndication:not(body) .apis-list--cards .apis-media__frame img {
	position: absolute;
	inset: 0;
}

.api-syndication:not(body) .apis-list--cards .apis-item > .apis-source-link {
	align-self: flex-start;
	margin-top: auto;
	padding-top: 12px;
}

.api-syndication:not(body) .apis-group-heading {
	margin: 20px 0 8px;
	font-size: 1.125rem;
}

/* Badges carry words; colour is never the only signal. */
.api-syndication:not(body) .apis-badge {
	display: inline-block;
	padding: 1px 8px;
	border: 1px solid var(--apis-border);
	border-radius: 999px;
	background: var(--apis-surface);
	color: var(--apis-text);
	font-size: 0.8125rem;
	line-height: 1.6;
	white-space: nowrap;
}

.api-syndication:not(body) .apis-badge--forecast,
.api-syndication:not(body) .apis-badge--approx {
	border-style: dashed;
	border-color: var(--apis-amber);
}

/* Provider images: on cards only, where media rights allow, always with
   credit. Each image is fitted whole inside a 16:9 frame (never cropped);
   a card whose record has no image shows a grey "Image not available"
   frame of the same size, so a row of cards stays aligned. */
.api-syndication:not(body) .apis-media {
	margin: calc(var(--apis-gap) * -1) calc(var(--apis-gap) * -1) 10px;
	overflow: hidden;
	border-radius: var(--apis-radius) var(--apis-radius) 0 0;
	background: var(--apis-surface);
}

.api-syndication:not(body) .apis-media__frame {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--apis-surface);
}

.api-syndication:not(body) .apis-media__frame img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.api-syndication:not(body) .apis-media--none .apis-media__frame {
	background: var(--apis-border);
	color: var(--apis-muted);
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.02em;
}

.api-syndication:not(body) .apis-media__credit {
	padding: 2px 8px;
	color: var(--apis-muted);
	font-size: 0.75rem;
	line-height: 1.4;
}

.api-syndication:not(body) .apis-badge--live {
	border-color: var(--apis-negative);
	color: var(--apis-negative);
	font-weight: 600;
}

.api-syndication:not(body) .apis-links,
.api-syndication:not(body) .apis-crew {
	margin: 0 0 12px;
	padding-left: 1.25em;
}

.api-syndication:not(body) .apis-outcome--success {
	border-color: var(--apis-positive);
	color: var(--apis-positive);
}

.api-syndication:not(body) .apis-outcome--failure,
.api-syndication:not(body) .apis-outcome--partial-failure {
	border-color: var(--apis-negative);
	color: var(--apis-negative);
}

.api-syndication:not(body) .apis-date--unknown,
.api-syndication:not(body) .apis-na {
	color: var(--apis-muted);
	font-style: italic;
}

.api-syndication:not(body) .apis-rank {
	display: inline-block;
	min-width: 2.5em;
	font-variant-numeric: tabular-nums;
	font-weight: 700;
}

/* ---------- Table ---------- */

.api-syndication:not(body) .apis-table-wrap {
	position: relative;
	max-width: 100%;
	overscroll-behavior-x: contain;
	margin: 0 0 16px;
	overflow-x: auto;
	border: 1px solid var(--apis-border);
	border-radius: var(--apis-radius);
}

.api-syndication:not(body) .apis-table {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
	background: var(--apis-bg);
	color: var(--apis-text);
}

/* Cells wrap between words; a wide table scrolls in its wrapper instead of
 * breaking identifiers and names mid-word ("S000 / 05"). */
.api-syndication:not(body) .apis-table :where(th, td) {
	overflow-wrap: break-word;
}

.api-syndication:not(body) .apis-table caption {
	padding: 8px var(--apis-row-pad);
	color: var(--apis-muted);
	text-align: left;
}

.api-syndication:not(body) .apis-table th,
.api-syndication:not(body) .apis-table td {
	padding: var(--apis-row-pad) 12px;
	border-bottom: 1px solid var(--apis-border);
	text-align: left;
	vertical-align: top;
}

.api-syndication:not(body) .apis-table thead th {
	position: sticky;
	top: 0;
	background: var(--apis-surface);
	font-size: 0.875rem;
	white-space: nowrap;
}

.api-syndication:not(body) .apis-table .apis-num {
	font-variant-numeric: tabular-nums;
	text-align: right;
}

/* Dates and short values never break mid-value; long text columns wrap. */
.api-syndication:not(body) .apis-table .apis-col--date,
.api-syndication:not(body) .apis-table .apis-col--nowrap {
	white-space: nowrap;
}

.api-syndication:not(body) .apis-table .apis-col--title {
	min-width: 12em;
}

/* Long text (DisplayRenderer marks columns by their longest cell) keeps a
 * readable measure instead of one word per line; the wrapper scrolls when
 * the columns no longer fit. Width and min-width together hold in every
 * engine's automatic table layout. */
.api-syndication:not(body) .apis-table .apis-w-sm {
	min-width: 8em;
}

.api-syndication:not(body) .apis-table .apis-w-md {
	width: 14em;
	min-width: 14em;
}

.api-syndication:not(body) .apis-table .apis-w-lg {
	width: 24em;
	min-width: 24em;
}

/* Sortable headers: the whole header is the control; the arrow is decorative. */
.api-syndication:not(body) .apis-table thead th .apis-sort-link {
	display: inline-flex;
	gap: 4px;
	align-items: center;
	min-height: 32px;
	color: inherit;
	text-decoration: none;
}

.api-syndication:not(body) .apis-table thead th .apis-sort-link:hover,
.api-syndication:not(body) .apis-table thead th .apis-sort-link:focus-visible {
	color: var(--apis-link);
	text-decoration: underline;
}

.api-syndication:not(body) .apis-sort-arrow {
	display: inline-block;
	min-width: 1em;
	color: var(--apis-muted);
	font-size: 0.8em;
	text-align: center;
}

.api-syndication:not(body) th[aria-sort] .apis-sort-arrow {
	color: var(--apis-link);
}

.api-syndication:not(body) .apis-table tbody tr:hover {
	background: var(--apis-surface);
}

/* Cards on small screens: each row becomes a labelled block. */
@media (max-width: 700px) {
	.api-syndication:not(body).apis-mobile-cards .apis-table-wrap {
		overflow: visible;
		border: 0;
	}

	/* The header row becomes a row of sort buttons (labels stay in cells). */
	.api-syndication:not(body).apis-mobile-cards .apis-table thead {
		display: block;
		margin: 0 0 10px;
	}

	.api-syndication:not(body).apis-mobile-cards .apis-table thead tr {
		display: flex;
		flex-wrap: wrap;
		gap: 6px;
		margin: 0;
		padding: 0;
		border: 0;
	}

	.api-syndication:not(body).apis-mobile-cards .apis-table thead th {
		position: static;
		display: block;
		width: auto;
		padding: 0;
		border: 0;
		background: none;
	}

	.api-syndication:not(body).apis-mobile-cards .apis-table thead th:not(:has(.apis-sort-link)) {
		display: none;
	}

	.api-syndication:not(body).apis-mobile-cards .apis-table thead .apis-sort-link {
		min-height: 36px;
		padding: 4px 10px;
		border: 1px solid var(--apis-border);
		border-radius: var(--apis-radius);
		background: var(--apis-surface);
	}

	.api-syndication:not(body).apis-mobile-cards .apis-table thead th[aria-sort] .apis-sort-link {
		border-color: var(--apis-link);
		font-weight: 600;
	}

	.api-syndication:not(body).apis-mobile-cards .apis-table,
	.api-syndication:not(body).apis-mobile-cards .apis-table tbody,
	.api-syndication:not(body).apis-mobile-cards .apis-table tbody tr,
	.api-syndication:not(body).apis-mobile-cards .apis-table tbody th,
	.api-syndication:not(body).apis-mobile-cards .apis-table td {
		display: block;
		width: 100%;
	}

	.api-syndication:not(body).apis-mobile-cards .apis-table tbody tr {
		margin: 0 0 10px;
		padding: 8px 12px;
		border: 1px solid var(--apis-border);
		border-radius: var(--apis-radius);
	}

	.api-syndication:not(body).apis-mobile-cards .apis-table tbody th,
	.api-syndication:not(body).apis-mobile-cards .apis-table td {
		padding: 4px 0;
		border: 0;
		text-align: left;
	}

	.api-syndication:not(body).apis-mobile-cards .apis-table .apis-col--date,
	.api-syndication:not(body).apis-mobile-cards .apis-table .apis-col--nowrap {
		white-space: normal;
	}

	.api-syndication:not(body).apis-mobile-cards .apis-table .apis-w-sm,
	.api-syndication:not(body).apis-mobile-cards .apis-table .apis-w-md,
	.api-syndication:not(body).apis-mobile-cards .apis-table .apis-w-lg {
		min-width: 0;
	}

	.api-syndication:not(body).apis-mobile-cards .apis-table td[data-label]::before {
		content: attr(data-label) ": ";
		color: var(--apis-muted);
		font-weight: 600;
	}
}

/* ---------- Calendar ---------- */

.api-syndication:not(body) .apis-cal-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	justify-content: space-between;
	margin: 0 0 8px;
}

.api-syndication:not(body) .apis-calendar {
	width: 100%;
	border-collapse: collapse;
	table-layout: fixed;
}

.api-syndication:not(body) .apis-calendar th,
.api-syndication:not(body) .apis-calendar td {
	height: 6.5em;
	padding: 4px;
	border: 1px solid var(--apis-border);
	vertical-align: top;
}

.api-syndication:not(body) .apis-calendar thead th {
	height: auto;
	background: var(--apis-surface);
	font-size: 0.8125rem;
	text-align: center;
}

.api-syndication:not(body) .apis-calendar ul {
	margin: 2px 0 0;
	padding: 0;
	list-style: none;
	font-size: 0.8125rem;
}

.api-syndication:not(body) .apis-calendar li {
	margin: 0 0 2px;
	padding: 2px 4px;
	border-radius: 4px;
	background: var(--apis-surface);
}

.api-syndication:not(body) .apis-cal-day {
	display: block;
	color: var(--apis-muted);
	font-size: 0.8125rem;
	font-weight: 600;
}

.api-syndication:not(body) .apis-cal-approx,
.api-syndication:not(body) .apis-cal-forecasts {
	margin: 16px 0;
	padding: 12px;
	border: 1px dashed var(--apis-border);
	border-radius: var(--apis-radius);
}

.api-syndication:not(body) .apis-agenda {
	margin: 0;
	padding: 0;
	list-style: none;
}

.api-syndication:not(body) .apis-agenda-day {
	margin: 16px 0 6px;
	font-size: 1rem;
}

@media (max-width: 700px) {
	.api-syndication:not(body) .apis-calendar th,
	.api-syndication:not(body) .apis-calendar td {
		height: 4em;
		font-size: 0.75rem;
	}
}

/* ---------- Pagination, detail, scope, credits ---------- */

.api-syndication:not(body) .apis-pagination {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 16px;
	align-items: center;
	justify-content: space-between;
	margin: 16px 0;
}

.api-syndication:not(body) .apis-pagination__status {
	margin: 0;
	color: var(--apis-muted);
	font-size: 0.9375em;
}

/* Themes style lists as bulleted columns, some with !important; reset every part. */
.api-syndication:not(body) .apis-pagination .apis-pagination__list {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 6px;
	align-items: center;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.api-syndication:not(body) .apis-pagination .apis-pagination__item {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.api-syndication:not(body) .apis-pagination .apis-pagination__item::before,
.api-syndication:not(body) .apis-pagination .apis-pagination__item::marker {
	content: none !important;
}

.api-syndication:not(body) .apis-pagination .apis-pagination__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-width: 44px;
	min-height: 44px;
	margin: 0;
	padding: 4px 12px;
	border: 1px solid var(--apis-border);
	border-radius: var(--apis-radius);
	background: var(--apis-bg);
	color: var(--apis-link);
	font: inherit;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
}

.api-syndication:not(body) .apis-pagination a.apis-pagination__link:hover,
.api-syndication:not(body) .apis-pagination a.apis-pagination__link:focus-visible {
	border-color: var(--apis-link);
	text-decoration: underline;
}

.api-syndication:not(body) .apis-pagination .apis-pagination__current {
	border-color: var(--apis-link);
	background: var(--apis-link);
	color: var(--apis-bg);
	font-weight: 700;
}

.api-syndication:not(body) .apis-pagination .apis-pagination__gap {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 4px;
}

@media (max-width: 600px) {
	.api-syndication:not(body) .apis-pagination {
		justify-content: center;
	}
	.api-syndication:not(body) .apis-pagination__status {
		width: 100%;
		text-align: center;
	}
}

.api-syndication:not(body) .apis-detail {
	padding: var(--apis-gap);
	border: 1px solid var(--apis-border);
	border-radius: var(--apis-radius);
}

.api-syndication:not(body) .apis-facts {
	width: 100%;
	margin: 8px 0;
	border-collapse: collapse;
}

.api-syndication:not(body) .apis-facts th,
.api-syndication:not(body) .apis-facts td {
	padding: 6px 8px;
	border-bottom: 1px solid var(--apis-border);
	text-align: left;
	vertical-align: top;
}

.api-syndication:not(body) .apis-facts th {
	width: 35%;
	color: var(--apis-muted);
	font-weight: 600;
}

.api-syndication:not(body) .apis-history {
	padding-left: 1.2em;
	font-size: 0.9375rem;
}

/* About this data: rule, heading, credits, coverage — in markup order. */
.api-syndication:not(body) .apis-about,
.apis-about {
	clear: both;
	margin: 24px 0 0;
	color: var(--apis-muted, #4f5662);
	font-size: 0.875rem;
}

.api-syndication:not(body) .apis-about__rule,
.apis-about__rule {
	height: 0;
	margin: 0 0 12px;
	border: 0;
	border-top: 1px solid var(--apis-border, #d4d7dd);
	background: none;
}

.api-syndication:not(body) .apis-about__heading,
.apis-about__heading {
	margin: 0 0 8px;
	padding: 0;
	border: 0;
	color: var(--apis-text, #1d2127);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.3;
	text-transform: none;
}

.api-syndication:not(body) .apis-scope {
	margin: 8px 0 0;
}

.api-syndication:not(body) .apis-scope__note {
	margin: 0 0 4px;
}

.api-syndication:not(body) .apis-scope summary {
	min-height: 44px;
	padding: 10px 0;
	cursor: pointer;
}

.api-syndication:not(body) .apis-credits,
.apis-credits {
	margin: 0;
	padding: 0;
	color: var(--apis-muted, #4f5662);
	font-size: 0.8125rem;
}

/* Credits printed without the section (e.g. generated posts) keep a rule. */
.apis-credits:not(.apis-about .apis-credits) {
	margin: 16px 0 0;
	padding: 10px 0 0;
	border-top: 1px solid var(--apis-border, #d4d7dd);
}

.apis-credits ul {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* ---------- Statistics ---------- */

.api-syndication:not(body) .apis-stats td:nth-child(2) {
	font-variant-numeric: tabular-nums;
	font-weight: 600;
}

.api-syndication:not(body) .apis-breakdown {
	margin: 4px 0 0;
	padding-left: 1.2em;
	color: var(--apis-muted);
	font-size: 0.875rem;
	font-weight: 400;
}

/* ---------- Ticker ---------- */

.api-syndication:not(body) .apis-ticker {
	display: flex;
	gap: 12px;
	align-items: center;
	padding: 8px 12px;
	overflow: hidden;
	border: 1px solid var(--apis-border);
	border-radius: var(--apis-radius);
	background: var(--apis-surface);
}

.api-syndication:not(body) .apis-ticker__list {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.api-syndication:not(body) .apis-ticker__meta {
	color: var(--apis-muted);
	font-size: 0.875rem;
}

.api-syndication:not(body) .apis-ticker--scroll .apis-ticker__list {
	flex-wrap: nowrap;
	white-space: nowrap;
	animation: apis-ticker 40s linear infinite;
}

.api-syndication:not(body) .apis-ticker--scroll:hover .apis-ticker__list,
.api-syndication:not(body) .apis-ticker--scroll:focus-within .apis-ticker__list,
.api-syndication:not(body) .apis-ticker--paused .apis-ticker__list {
	animation-play-state: paused;
}

@keyframes apis-ticker {
	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(-50%);
	}
}

@media (prefers-reduced-motion: reduce) {
	.api-syndication:not(body) .apis-ticker--scroll .apis-ticker__list {
		flex-wrap: wrap;
		white-space: normal;
		animation: none;
	}
}

/* ---------- Saved items (progressive enhancement) ---------- */

.api-syndication:not(body) .apis-save {
	position: absolute;
	top: 8px;
	right: 8px;
	min-width: 44px;
	min-height: 44px;
	padding: 0;
	border: 1px solid var(--apis-border);
	border-radius: var(--apis-radius);
	background: var(--apis-bg);
	color: var(--apis-text);
	font-size: 1.25rem;
	line-height: 1;
	cursor: pointer;
}

.api-syndication:not(body) .apis-save[aria-pressed="true"] {
	border-color: var(--apis-link);
	color: var(--apis-link);
}

/* ---------- Page layout (Design & Display → Appearance) ---------- */

.api-syndication-layout {
	box-sizing: border-box;
	padding: var(--apis-page-pad-top, 40px) var(--apis-page-pad-side, 32px) var(--apis-page-pad-bottom, 64px);
	background: var(--apis-page-bg, transparent);
}

/*
 * Full width is the width of the viewport, not of the theme's content
 * column: the box leaves the column by half the difference between the
 * window and the column, which is exact for the usual centred column and
 * needs no JavaScript. When frontend.js runs it replaces this with an
 * offset measured from the actual column and the width without the
 * scrollbar, so off-centre columns line up too.
 */
.api-syndication-layout.apis-layout-full_width,
.api-syndication-layout.apis-layout-full_width_centered {
	position: relative;
	/* Block themes centre constrained children with margin:auto !important. */
	width: 100vw !important;
	max-width: 100vw !important;
	margin-right: calc(50% - 50vw) !important;
	margin-left: calc(50% - 50vw) !important;
}

.api-syndication-layout.apis-layout-full_width > .api-syndication:not(body),
.api-syndication-layout.apis-layout-full_width > .apis-page-heading,
.api-syndication-layout.apis-layout-full_width_centered > .api-syndication:not(body),
.api-syndication-layout.apis-layout-full_width_centered > .apis-page-heading,
.api-syndication-layout.apis-layout-full_width_centered > .apis-feed-directory {
	max-width: var(--apis-max-width, 1280px);
	margin-right: auto;
	margin-left: auto;
}

.api-syndication-layout.apis-layout-contained {
	max-width: var(--apis-max-width, 1280px);
	margin-right: auto;
	margin-left: auto;
}

@media (max-width: 767px) {
	.api-syndication-layout {
		padding-right: var(--apis-page-pad-side-mobile, 16px);
		padding-left: var(--apis-page-pad-side-mobile, 16px);
	}
}

/* 100vw includes the scrollbar; it must never turn into sideways scrolling. */
body.api-syndication-layout-full-width,
html:has(body.api-syndication-layout-full-width),
html.apis-has-bleed,
html.apis-has-bleed body {
	overflow-x: clip;
}

.api-syndication-layout .apis-page-heading {
	margin-top: 0;
	margin-bottom: 24px;
	padding: 0;
	font-size: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem);
	line-height: 1.2;
}

body.api-syndication-theme-dark .api-syndication-layout .apis-page-heading {
	color: #f3f4f6;
}

@media print {
	.api-syndication:not(body) .apis-filters,
	.api-syndication:not(body) .apis-views,
	.api-syndication:not(body) .apis-pagination,
	.api-syndication:not(body) .apis-save {
		display: none;
	}
}

/* ---------- Feed directory pages (Public Menus) ---------- */

.api-syndication:not(body) .apis-feed-directory__intro {
	margin: 0 0 16px;
	font-size: 1.0625rem;
}

.api-syndication:not(body) .apis-feed-directory__topic {
	margin: 0 0 24px;
}

.api-syndication:not(body) .apis-feed-directory__topic > h2 {
	margin: 0 0 6px;
	font-size: 1.25rem;
}

.api-syndication:not(body) .apis-feed-directory__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
	grid-auto-rows: 1fr;
	align-items: stretch;
	gap: 10px 16px;
	margin: 8px 0 0;
	padding: 0;
	list-style: none;
}

/* Every card the same size on the whole page (every topic): the title
 * takes at most two lines and the description three (full text on hover),
 * so a fixed minimum height fits every card; "Show statistics" sits at the
 * bottom left. Tag selectors outweigh theme list-item margins. */
.api-syndication:not(body) ul.apis-feed-directory__list > li.apis-feed-directory__feed {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-width: 0;
	min-height: calc(8.3rem + 40px);
	height: 100%;
	margin: 0;
	padding: 12px 14px;
	border: 1px solid var(--apis-border);
	border-radius: var(--apis-radius);
	background: var(--apis-bg);
}

.api-syndication:not(body) ul.apis-feed-directory__list > li.apis-feed-directory__feed::before,
.api-syndication:not(body) ul.apis-feed-directory__list > li.apis-feed-directory__feed::marker {
	content: none;
}

.api-syndication:not(body) .apis-feed-directory__feed > a {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	font-size: 1.0625rem;
	font-weight: 600;
	line-height: 1.4;
}

.api-syndication:not(body) .apis-feed-directory__feed .apis-hint {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	margin: 4px 0 0;
	font-size: 0.9375rem;
	line-height: 1.45;
}

/* ---- Feed statistics (directory "Show statistics") ----------------------
 * Roles, not raw hex: the reference categorical palette (validated: every
 * adjacent pair clears CVD ΔE 8 and normal-vision ΔE 15, light and dark),
 * stepped separately for the dark surface. Text never wears a series
 * colour; light slots below 3:1 are relieved by legends with values and
 * the table view.
 */
.api-syndication:not(body) .apis-feed-directory__feed > .apis-feed-directory__more {
	margin: auto 0 0;
	padding: 8px 0 0;
	line-height: 1.4;
	text-align: left;
}

.api-syndication:not(body) .apis-feed-directory__stats {
	font-size: 0.875rem;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.api-syndication:not(body) .apis-stats {
	--apis-s1: #2a78d6;
	--apis-s2: #eb6834;
	--apis-s3: #1baf7a;
	--apis-s4: #eda100;
	--apis-s5: #e87ba4;
	--apis-s-other: #898781;
	--apis-seq: #2a78d6;
	--apis-chart-surface: var(--apis-bg);
	--apis-chart-grid: #e1e0d9;
	--apis-chart-axis: #c3c2b7;
	--apis-chart-muted: #6b6a65;
	position: relative;
}

.api-syndication:not(body).apis-theme-dark .apis-stats {
	--apis-s1: #3987e5;
	--apis-s2: #d95926;
	--apis-s3: #199e70;
	--apis-s4: #c98500;
	--apis-s5: #d55181;
	--apis-seq: #3987e5;
	--apis-chart-grid: #2c2c2a;
	--apis-chart-axis: #383835;
	--apis-chart-muted: #a3a29b;
}

@media (prefers-color-scheme: dark) {
	.api-syndication:not(body).apis-theme-inherit .apis-stats {
		--apis-s1: #3987e5;
		--apis-s2: #d95926;
		--apis-s3: #199e70;
		--apis-s4: #c98500;
		--apis-s5: #d55181;
		--apis-seq: #3987e5;
		--apis-chart-grid: #2c2c2a;
		--apis-chart-axis: #383835;
		--apis-chart-muted: #a3a29b;
	}
}

.api-syndication:not(body) .apis-stats__back {
	margin: 0 0 8px;
}

.api-syndication:not(body) .apis-stats__tiles {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
	gap: 12px;
	margin: 16px 0 24px;
}

.api-syndication:not(body) .apis-stats__tile {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 12px 14px;
	border: 1px solid var(--apis-border);
	border-radius: var(--apis-radius);
	background: var(--apis-surface);
}

.api-syndication:not(body) .apis-stats__tile-label {
	color: var(--apis-muted);
	font-size: 0.8125rem;
}

.api-syndication:not(body) .apis-stats__tile-value {
	font-size: 1.375rem;
	font-weight: 600;
	line-height: 1.2;
	overflow-wrap: anywhere;
}

.api-syndication:not(body) .apis-stats__charts {
	display: grid;
	/* One chart per row: every chart takes the full width. */
	grid-template-columns: minmax(0, 1fr);
	gap: 24px;
	margin: 0 0 24px;
}

.api-syndication:not(body) .apis-stats__charts > .apis-stats__figure {
	margin: 0;
	min-width: 0;
}

.api-syndication:not(body) .apis-stats__figure {
	margin: 0 0 24px;
	padding: 14px 16px;
	border: 1px solid var(--apis-border);
	border-radius: var(--apis-radius);
	background: var(--apis-bg);
}

.api-syndication:not(body) .apis-stats__figure figcaption {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin: 0 0 10px;
}

.api-syndication:not(body) .apis-stats__plot {
	display: flex;
	flex-wrap: wrap;
	gap: 16px 24px;
	align-items: center;
}

.api-syndication:not(body) .apis-chart {
	display: block;
	width: 100%;
	max-width: 800px;
	height: auto;
	overflow: visible;
	font-family: inherit;
	font-size: 12px;
}

.api-syndication:not(body) .apis-chart--donut {
	max-width: 220px;
}

.api-syndication:not(body) .apis-chart__grid {
	stroke: var(--apis-chart-grid);
	stroke-width: 1;
}

.api-syndication:not(body) .apis-chart__axis {
	stroke: var(--apis-chart-axis);
	stroke-width: 1;
}

.api-syndication:not(body) .apis-chart__muted {
	fill: var(--apis-chart-muted);
	font-variant-numeric: tabular-nums;
}

.api-syndication:not(body) .apis-chart__label,
.api-syndication:not(body) .apis-chart__value {
	fill: var(--apis-text);
}

.api-syndication:not(body) .apis-chart__value {
	font-variant-numeric: tabular-nums;
}

.api-syndication:not(body) .apis-chart__center {
	fill: var(--apis-text);
	font-size: 22px;
	font-weight: 600;
}

.api-syndication:not(body) .apis-chart__line {
	fill: none;
	stroke: var(--apis-seq);
	stroke-width: 2;
	stroke-linejoin: round;
	stroke-linecap: round;
}

.api-syndication:not(body) .apis-chart__area {
	fill: var(--apis-seq);
	opacity: 0.1;
}

.api-syndication:not(body) .apis-chart__dot {
	fill: var(--apis-seq);
	stroke: var(--apis-chart-surface);
	stroke-width: 2;
}

.api-syndication:not(body) .apis-chart__crosshair {
	stroke: var(--apis-chart-muted);
	stroke-width: 1;
	pointer-events: none;
}

.api-syndication:not(body) .apis-chart__hit {
	fill: transparent;
}

.api-syndication:not(body) .apis-fill-seq {
	fill: var(--apis-seq);
}

.api-syndication:not(body) .apis-chart--donut path {
	stroke: var(--apis-chart-surface);
	stroke-width: 2;
}

.api-syndication:not(body) .apis-fill-1 { fill: var(--apis-s1); background: var(--apis-s1); }
.api-syndication:not(body) .apis-fill-2 { fill: var(--apis-s2); background: var(--apis-s2); }
.api-syndication:not(body) .apis-fill-3 { fill: var(--apis-s3); background: var(--apis-s3); }
.api-syndication:not(body) .apis-fill-4 { fill: var(--apis-s4); background: var(--apis-s4); }
.api-syndication:not(body) .apis-fill-5 { fill: var(--apis-s5); background: var(--apis-s5); }
.api-syndication:not(body) .apis-fill-other { fill: var(--apis-s-other); background: var(--apis-s-other); }

.api-syndication:not(body) .apis-mark {
	cursor: default;
	outline: none;
}

.api-syndication:not(body) .apis-mark:hover .apis-fill-seq,
.api-syndication:not(body) .apis-mark:focus-visible .apis-fill-seq,
.api-syndication:not(body) .apis-chart--donut .apis-mark:hover,
.api-syndication:not(body) .apis-chart--donut .apis-mark:focus-visible {
	opacity: 0.8;
}

.api-syndication:not(body) .apis-mark:focus-visible .apis-chart__hit,
.api-syndication:not(body) rect.apis-mark:focus-visible {
	stroke: var(--apis-focus);
	stroke-width: 2;
}

.api-syndication:not(body) .apis-stats__legend {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.api-syndication:not(body) .apis-stats__legend li {
	display: flex;
	align-items: center;
	gap: 8px;
}

.api-syndication:not(body) .apis-stats__swatch {
	flex: 0 0 auto;
	width: 12px;
	height: 12px;
	border-radius: 3px;
}

.api-syndication:not(body) .apis-stats__summary {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr));
	gap: 8px 16px;
	width: 100%;
	margin: 0;
}

.api-syndication:not(body) .apis-stats__summary dt {
	color: var(--apis-muted);
	font-size: 0.8125rem;
}

.api-syndication:not(body) .apis-stats__summary dd {
	margin: 0;
	font-weight: 600;
}

.api-syndication:not(body) .apis-stats__data {
	margin: 10px 0 0;
}

.api-syndication:not(body) .apis-stats__table {
	width: 100%;
	max-width: 640px;
	border-collapse: collapse;
	font-variant-numeric: tabular-nums;
}

.api-syndication:not(body) .apis-stats__table th,
.api-syndication:not(body) .apis-stats__table td {
	padding: 4px 8px;
	border-bottom: 1px solid var(--apis-border);
	text-align: left;
}

.api-syndication:not(body) .apis-stats__table td {
	text-align: right;
}

.api-syndication:not(body) .apis-stats__tip {
	position: absolute;
	z-index: 5;
	padding: 6px 10px;
	border: 1px solid var(--apis-border);
	border-radius: var(--apis-radius);
	background: var(--apis-bg);
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.14);
	color: var(--apis-text);
	font-size: 0.8125rem;
	font-weight: 600;
	pointer-events: none;
	white-space: nowrap;
}

@media (forced-colors: active) {
	.api-syndication:not(body) .apis-chart path,
	.api-syndication:not(body) .apis-chart rect:not(.apis-chart__hit) {
		forced-color-adjust: none;
	}
}

.api-syndication:not(body) .apis-stats--summary {
	margin: 0 0 var(--apis-gap);
	padding: 12px 16px;
	border: 1px solid #b7dfc3;
	border-radius: var(--apis-radius);
	background: #eaf7ee;
	color: #1d2127;
}

.api-syndication:not(body).apis-theme-dark .apis-stats--summary {
	border-color: #2f5a3d;
	background: #16281c;
	color: #f3f4f6;
}

@media (prefers-color-scheme: dark) {
	.api-syndication:not(body).apis-theme-inherit .apis-stats--summary {
		border-color: #2f5a3d;
		background: #16281c;
		color: #f3f4f6;
	}
}

.api-syndication:not(body) .apis-stats--summary > .apis-stats__heading {
	margin: 0;
	font-size: 1rem;
	font-weight: 600;
	cursor: pointer;
}

.api-syndication:not(body) .apis-stats--summary[open] > .apis-stats__heading {
	margin-bottom: 4px;
}

.api-syndication:not(body) .apis-stats--summary .apis-stats__tiles {
	margin: 8px 0 12px;
}

.api-syndication:not(body) .apis-stats__more {
	margin: 12px 0 0;
}

.api-syndication:not(body) .apis-stats__more > summary {
	cursor: pointer;
	font-weight: 600;
}

.api-syndication:not(body) .apis-stats__more[open] > summary {
	margin-bottom: 12px;
}

/* Starred records: their statistics and the offer to update them. */
.api-syndication:not(body) .apis-stats--starred > summary {
	cursor: pointer;
}

.api-syndication:not(body) .apis-starred-reload {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

/* In a table the star sits in the row's first cell, after the name. */
.api-syndication:not(body) .apis-table tr > :first-child .apis-save {
	position: static;
	min-width: 36px;
	min-height: 36px;
	margin-left: 6px;
	vertical-align: middle;
}

/* ---------- Countries: flag and code, with the name in a pop-up ---------- */

.api-syndication:not(body) .apis-country {
	display: inline-flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	gap: 4px;
	width: auto !important;
	min-width: 0;
	max-width: none;
	min-height: 24px;
	height: auto;
	margin: 0;
	padding: 0 4px;
	border: 1px solid transparent;
	border-radius: 4px;
	background: none;
	box-shadow: none;
	color: inherit;
	font: inherit;
	line-height: 1.2;
	letter-spacing: normal;
	text-transform: none;
	white-space: nowrap;
	vertical-align: middle;
	cursor: pointer;
}

.api-syndication:not(body) .apis-country:hover,
.api-syndication:not(body) .apis-country[aria-expanded="true"] {
	border-color: var(--apis-border);
	background: var(--apis-surface);
}

.api-syndication:not(body) .apis-country:focus-visible {
	outline: 2px solid var(--apis-focus);
	outline-offset: 1px;
}

.api-syndication:not(body) .apis-country__code {
	display: inline-block !important;
	margin: 0;
	line-height: 1.2;
	white-space: nowrap;
	text-decoration: underline dotted;
	text-underline-offset: 3px;
}

/* The flag sits on the same line as its code, left of it, at a fixed size:
   theme rules for every image (block display, full width, auto height,
   margins, borders) never move it. */
.api-syndication:not(body) .apis-country .apis-flag {
	display: inline-block !important;
	flex: 0 0 20px;
	width: 20px !important;
	min-width: 20px;
	max-width: 20px !important;
	height: 15px !important;
	max-height: 15px;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 2px;
	box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15);
	float: none !important;
	vertical-align: middle;
	object-fit: cover;
}

.apis-country-pop {
	position: absolute;
	z-index: 100000;
	max-width: min(280px, calc(100vw - 16px));
	margin: 0;
	padding: 10px 12px;
	border: 1px solid #d4d7dd;
	border-radius: 6px;
	background: #ffffff;
	color: #1d2127;
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);
	font-size: 0.9375rem;
	line-height: 1.4;
}

.apis-country-pop[hidden] {
	display: none;
}

.apis-country-pop__name {
	margin: 0 0 8px;
	font-weight: 600;
}

.apis-country-pop__dismiss {
	min-height: 32px;
	padding: 2px 12px;
	border: 1px solid #0a58a6;
	border-radius: 4px;
	background: #ffffff;
	color: #0a58a6;
	font: inherit;
	cursor: pointer;
}

.apis-country-pop__dismiss:focus-visible {
	outline: 2px solid #0a58a6;
	outline-offset: 2px;
}

.apis-country-pop--dark {
	border-color: #2a2d35;
	background: #15171c;
	color: #f3f4f6;
}

.apis-country-pop--dark .apis-country-pop__dismiss {
	border-color: #67d3e2;
	background: #15171c;
	color: #67d3e2;
}

/* Items showing the columns the administrator chose (list, cards, compact). */
.api-syndication:not(body) .apis-item__fields {
	display: grid;
	grid-template-columns: minmax(6em, max-content) 1fr;
	gap: 2px 12px;
	margin: 6px 0;
	font-size: 0.9375rem;
}

.api-syndication:not(body) .apis-item__field {
	display: contents;
}

.api-syndication:not(body) .apis-item__fields dt {
	color: var(--apis-muted);
	font-weight: 600;
}

.api-syndication:not(body) .apis-item__fields dd {
	min-width: 0;
	margin: 0;
	overflow-wrap: anywhere;
}

.api-syndication:not(body) .apis-list--compact .apis-item__fields {
	display: flex;
	flex-wrap: wrap;
	gap: 2px 16px;
}

.api-syndication:not(body) .apis-list--compact .apis-item__field {
	display: inline-flex;
	gap: 4px;
}

/* ---------- Layout styles for the Cards view (Design & Display → Layout Styles) ----------
   One card markup (Templates::styled); the list's classes show or hide each
   part and its CSS variables set columns, image size, lines and spacing.
   Breakpoints follow the width of the display's own column, not the window. */

.api-syndication:not(body) .apis-view--cards {
	container-type: inline-size;
}

.api-syndication:not(body) .apis-list--styled {
	display: grid;
	grid-template-columns: repeat(var(--apis-s-cols-d, 1), minmax(0, 1fr));
	gap: var(--apis-s-gap, 20px);
	margin: 0 0 16px;
	padding: 0;
	list-style: none;
}

@container (max-width: 900px) {
	.api-syndication:not(body) .apis-list--styled {
		grid-template-columns: repeat(var(--apis-s-cols-t, 1), minmax(0, 1fr));
	}
}

@container (max-width: 600px) {
	.api-syndication:not(body) .apis-list--styled {
		grid-template-columns: repeat(var(--apis-s-cols-p, 1), minmax(0, 1fr));
	}

	.api-syndication:not(body) .apis-styled--media-left .apis-sitem {
		grid-template-columns: minmax(0, 1fr);
	}
}

.api-syndication:not(body) .apis-list--styled > li {
	position: relative;
	margin: 0;
}

.api-syndication:not(body) .apis-sitem {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	height: 100%;
	overflow: hidden;
	border: 1px solid var(--apis-border);
	border-radius: var(--apis-s-radius, 6px);
	background: var(--apis-bg);
}

.api-syndication:not(body) .apis-styled--shadow .apis-sitem {
	border-color: transparent;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 4px 14px rgba(0, 0, 0, 0.08);
}

.api-syndication:not(body) .apis-styled--media-left .apis-sitem {
	grid-template-columns: var(--apis-s-media-w, 33%) minmax(0, 1fr);
}

.api-syndication:not(body) .apis-styled--media-left .apis-sitem--no-media {
	grid-template-columns: minmax(0, 1fr);
}

/* The image area: the whole frame of the card's side or top. */
.api-syndication:not(body) .apis-sitem__media .apis-media {
	height: 100%;
	margin: 0;
	border-radius: 0;
}

.api-syndication:not(body) .apis-sitem__media .apis-media__frame {
	height: 100%;
	aspect-ratio: auto;
}

/* Beside the text the image fills its column at the height the text needs
   (at least 180 px); it never makes the row taller. */
.api-syndication:not(body) .apis-styled--media-left .apis-sitem__media {
	position: relative;
	min-height: 180px;
}

.api-syndication:not(body) .apis-styled--media-left .apis-sitem__media .apis-media {
	position: absolute;
	inset: 0;
}

.api-syndication:not(body) .apis-styled--media-top .apis-sitem__media .apis-media__frame {
	aspect-ratio: var(--apis-s-ratio, 16 / 9);
}

@container (max-width: 600px) {
	.api-syndication:not(body) .apis-styled--media-left .apis-sitem__media {
		min-height: 0;
		aspect-ratio: 16 / 9;
	}
}

.api-syndication:not(body) .apis-styled--fit-cover .apis-media__frame img {
	object-fit: cover;
}

.api-syndication:not(body) .apis-styled--fit-contain .apis-media__frame img {
	object-fit: contain;
}

.api-syndication:not(body) .apis-styled--pad .apis-media--thumb .apis-media__frame {
	padding: 12px;
	background: #ffffff;
}

.api-syndication:not(body) .apis-sitem__media .apis-media__credit {
	position: absolute;
	right: 0;
	bottom: 0;
	max-width: 100%;
	background: rgba(255, 255, 255, 0.88);
	color: #3c434a;
}

.api-syndication:not(body) .apis-sitem__media .apis-media {
	position: relative;
}

/* The text. */
.api-syndication:not(body) .apis-sitem__body {
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
	padding: 18px 20px;
}

/* Room for the bookmark star (top right of the card) beside the text. */
.api-syndication:not(body) .apis-sitem:has(.apis-save) .apis-sitem__body {
	padding-right: 64px;
}

.api-syndication:not(body) .apis-styled--align-center .apis-sitem:has(.apis-save) .apis-sitem__body {
	padding-left: 64px;
}

.api-syndication:not(body) .apis-styled--align-center .apis-sitem__body {
	align-items: center;
	text-align: center;
}

.api-syndication:not(body) .apis-sitem__body > * {
	margin: 0;
}

.api-syndication:not(body) .apis-sitem__meta {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 4px 16px;
	align-self: stretch;
	color: var(--apis-muted);
	font-size: 0.9375rem;
}

.api-syndication:not(body) .apis-sitem__title {
	font-weight: 500;
	line-height: 1.25;
	overflow-wrap: anywhere;
}

.api-syndication:not(body) .apis-styled--title-s .apis-sitem__title {
	font-size: 1.0625rem;
}

.api-syndication:not(body) .apis-styled--title-m .apis-sitem__title {
	font-size: 1.375rem;
}

.api-syndication:not(body) .apis-styled--title-l .apis-sitem__title {
	font-size: 1.75rem;
}

.api-syndication:not(body) .apis-sitem__title a {
	color: inherit;
	text-decoration: none;
}

.api-syndication:not(body) .apis-sitem__title a:hover,
.api-syndication:not(body) .apis-sitem__title a:focus-visible {
	text-decoration: underline;
}

.api-syndication:not(body) .apis-sitem__subtitle,
.api-syndication:not(body) .apis-sitem__date {
	color: var(--apis-muted);
}

.api-syndication:not(body) .apis-sitem__desc {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: var(--apis-s-lines, 4);
	line-clamp: var(--apis-s-lines, 4);
}

.api-syndication:not(body) .apis-sitem__details {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 4px 16px;
	align-self: stretch;
	padding: 12px 0;
	border-top: 1px solid var(--apis-border);
	border-bottom: 1px solid var(--apis-border);
	text-align: left;
}

.api-syndication:not(body) .apis-sitem__row {
	display: contents;
}

.api-syndication:not(body) .apis-sitem__details dd {
	margin: 0;
	text-align: right;
	overflow-wrap: anywhere;
}

.api-syndication:not(body) .apis-sitem__details dd .apis-country {
	vertical-align: middle;
}

/* The links: at the bottom of the card, side by side or stacked. */
.api-syndication:not(body) .apis-sitem__links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px 40px;
	align-self: stretch;
	margin-top: auto;
	padding-top: 8px;
}

.api-syndication:not(body) .apis-styled--align-left .apis-sitem__links {
	justify-content: flex-start;
}

.api-syndication:not(body) .apis-styled--stack .apis-sitem__links {
	flex-direction: column;
	align-items: center;
	gap: 8px;
}

.api-syndication:not(body) .apis-sitem__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 32px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--apis-link);
	font: inherit;
	font-size: 0.9375rem;
	letter-spacing: 0.03em;
	text-decoration: none;
	text-transform: uppercase;
	cursor: pointer;
}

.api-syndication:not(body) .apis-sitem__link:hover,
.api-syndication:not(body) .apis-sitem__link:focus-visible {
	text-decoration: underline;
}

.api-syndication:not(body) .apis-sitem__link--watch {
	color: var(--apis-negative);
}

.api-syndication:not(body) .apis-icon {
	flex: none;
}

.api-syndication:not(body) .apis-icon__fill {
	fill: currentColor;
	stroke: none;
}

/* Parts a style leaves out. */
.api-syndication:not(body) .apis-styled--no-meta .apis-sitem__meta,
.api-syndication:not(body) .apis-styled--no-date .apis-sitem__date,
.api-syndication:not(body) .apis-styled--no-subtitle .apis-sitem__subtitle,
.api-syndication:not(body) .apis-styled--no-desc .apis-sitem__desc,
.api-syndication:not(body) .apis-styled--no-details .apis-sitem__details,
.api-syndication:not(body) .apis-styled--no-watch .apis-sitem__link--watch,
.api-syndication:not(body) .apis-styled--no-more .apis-sitem__link--more,
.api-syndication:not(body) .apis-styled--no-source .apis-sitem__link--source,
.api-syndication:not(body) .apis-styled--no-share .apis-sitem__link--share,
.api-syndication:not(body) .apis-styled--media-none .apis-sitem__media {
	display: none;
}

.api-syndication:not(body) .apis-styled--media-none .apis-sitem {
	grid-template-columns: minmax(0, 1fr);
}

.apis-share-note {
	margin-left: 8px;
	font-size: 0.875rem;
}

/* ---------- Wide tables: "Additional columns" at the top edges ---------- */

.api-syndication:not(body) .apis-scroll-hints {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 4px;
}

.api-syndication:not(body) .apis-scroll-hints[hidden],
.api-syndication:not(body) .apis-scroll-hint[hidden] {
	display: none;
}

.api-syndication:not(body) .apis-scroll-hint {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 32px;
	margin: 0;
	padding: 2px 10px;
	border: 1px solid var(--apis-border);
	border-radius: 999px;
	background: var(--apis-bg);
	color: var(--apis-link);
	font: inherit;
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.2;
	white-space: nowrap;
	cursor: pointer;
}

.api-syndication:not(body) .apis-scroll-hint:hover,
.api-syndication:not(body) .apis-scroll-hint:focus-visible {
	border-color: var(--apis-link);
	text-decoration: underline;
}

.api-syndication:not(body) .apis-scroll-hint--right {
	margin-left: auto;
}

.api-syndication:not(body) .apis-scroll-hint__arrow {
	font-size: 1.1em;
	line-height: 1;
}

/* ---------- ESA and NASA scientific records ---------- */

.api-syndication:not(body) .apis-measure {
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.api-syndication:not(body) .apis-measure sup {
	font-size: 0.75em;
	line-height: 0;
}

.api-syndication:not(body) .apis-notice--source,
.api-syndication:not(body) .apis-notice--historical {
	margin: 0 0 var(--apis-gap);
	padding: 8px 12px;
	border-left: 4px solid var(--apis-amber);
	background: var(--apis-surface);
}

.api-syndication:not(body) .apis-about__source {
	margin: 12px 0 0;
}

.api-syndication:not(body) .apis-about__source-name {
	margin: 0 0 4px;
	font-size: 1rem;
}

.api-syndication:not(body) .apis-about__notes {
	margin: 4px 0 0 1.25em;
	padding: 0;
}

.api-syndication:not(body) .apis-article {
	max-width: 72ch;
	overflow-wrap: anywhere;
}

.api-syndication:not(body) .apis-article img,
.api-syndication:not(body) .apis-detail__figure img {
	max-width: 100%;
	height: auto;
}

.api-syndication:not(body) .apis-message {
	max-width: 100%;
	overflow-x: auto;
	white-space: pre-wrap;
	overflow-wrap: anywhere;
}

/* A record's location (MapView): the map, or the request to load it. */
.api-syndication:not(body) .apis-map {
	margin: 16px 0;
}

.api-syndication:not(body) .apis-map__frame {
	display: block;
	width: 100%;
	max-width: 100%;
	border: 1px solid var(--apis-border);
	border-radius: var(--apis-radius);
}

.api-syndication:not(body) .apis-map__consent {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	padding: 12px 16px;
	border: 1px dashed var(--apis-border);
	border-radius: var(--apis-radius);
	background: var(--apis-surface);
}

.api-syndication:not(body) .apis-map__consent p {
	margin: 0 0 8px;
}

.api-syndication:not(body) .apis-map__meta {
	margin: 6px 0 0;
	color: var(--apis-muted);
	font-size: 0.875rem;
}

/* Dates in columns (tables, card and list fields, a record's details):
 * the day on one line, the time on the next, then any note ("(approx.
 * hour)") and badge ("Approximate") below it. Format::dateParts writes
 * the parts; elsewhere they read on one line ("5 Oct 2026, 11:38 EDT"). */
.api-syndication:not(body) :is(.apis-table td, .apis-table tbody th, .apis-facts td, .apis-item__field dd, .apis-sitem__row dd) .apis-date__sep {
	display: none;
}

.api-syndication:not(body) :is(.apis-table td, .apis-table tbody th, .apis-facts td, .apis-item__field dd, .apis-sitem__row dd) :is(.apis-date__time, .apis-date__note) {
	display: block;
}

.api-syndication:not(body) :is(.apis-table td, .apis-table tbody th, .apis-facts td, .apis-item__field dd, .apis-sitem__row dd) .apis-date ~ .apis-badge {
	display: table;
	margin-top: 2px;
}

/* ---- Feed Statistics view ---------------------------------------------- */

.api-syndication:not(body) .apis-fstats {
	display: grid;
	gap: var(--apis-gap);
	min-width: 0;
}

.api-syndication:not(body) .apis-fstats__head p {
	margin: 0 0 4px;
}

.api-syndication:not(body) .apis-fstats__coverage {
	font-weight: 600;
}

.api-syndication:not(body) .apis-fstats__scope {
	padding: 8px 12px;
	border: 1px solid var(--apis-border);
	border-radius: var(--apis-radius);
}

.api-syndication:not(body) .apis-fstats__filters {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 16px;
	margin: 4px 0 8px;
	padding: 0;
	list-style: none;
}

.api-syndication:not(body) .apis-fstats__section {
	min-width: 0;
}

.api-syndication:not(body) .apis-fstats__section-title {
	margin: 8px 0 8px;
	font-size: 1.125rem;
}

.api-syndication:not(body) .apis-fstats__cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 12px;
	margin-bottom: var(--apis-gap);
}

.api-syndication:not(body) .apis-fstats__card {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 12px 14px;
	border: 1px solid var(--apis-border);
	border-radius: var(--apis-radius);
	min-width: 0;
}

.api-syndication:not(body) .apis-fstats__card-label {
	font-size: 0.8125rem;
	color: var(--apis-chart-muted);
}

.api-syndication:not(body) .apis-fstats__card-value {
	font-size: 1.375rem;
	font-weight: 700;
	overflow-wrap: anywhere;
}

.api-syndication:not(body) .apis-fstats__card-sub {
	font-size: 0.8125rem;
}

.api-syndication:not(body) .apis-fstats__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--apis-gap);
}

@media (min-width: 900px) {
	.api-syndication:not(body) .apis-fstats__section--cols-2 .apis-fstats__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.api-syndication:not(body) .apis-fstats__section--cols-2 .apis-fstats__item--full {
		grid-column: 1 / -1;
	}
}

.api-syndication:not(body) .apis-fstats__item {
	/* A column, stretched to its grid row, so the download link can sit at
	   the bottom of every card whatever the height of its neighbour. */
	display: flex;
	flex-direction: column;
	align-self: stretch;
	margin: 0;
	padding: 12px 14px;
	border: 1px solid var(--apis-border);
	border-radius: var(--apis-radius);
	min-width: 0;
}

.api-syndication:not(body) .apis-fstats__item > * {
	flex: 0 0 auto;
	min-width: 0;
}

.api-syndication:not(body) .apis-fstats__item > .apis-fstats__download {
	margin-top: auto;
	padding-top: 8px;
}

.api-syndication:not(body) .apis-fstats__item figcaption {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin-bottom: 8px;
}

.api-syndication:not(body) .apis-fstats__item.is-unavailable {
	opacity: 0.8;
}

.api-syndication:not(body) .apis-fstats__context,
.api-syndication:not(body) .apis-fstats__notes {
	margin: 6px 0 0;
	font-size: 0.8125rem;
}

.api-syndication:not(body) .apis-fstats__notes {
	padding-left: 1.2em;
}

.api-syndication:not(body) .apis-fstats__about dl {
	display: grid;
	gap: 4px;
	margin: 6px 0 0;
	font-size: 0.8125rem;
}

.api-syndication:not(body) .apis-fstats__about dt {
	font-weight: 600;
}

.api-syndication:not(body) .apis-fstats__about dd {
	margin: 0;
}

.api-syndication:not(body) .apis-fstats__small {
	font-size: 0.75rem;
}

.api-syndication:not(body) .apis-fstats__table-wrap,
.api-syndication:not(body) .apis-fstats__heat-wrap {
	flex: 1 1 100%;
	min-width: 0;
	max-width: 100%;
	overflow-x: auto;
	scrollbar-width: thin;
}

.api-syndication:not(body) .apis-fstats__table {
	max-width: none;
}

/* Words are never split ("Aeronaut-ics", "Investigati-ons"): a cell wraps
   between words, and a table wider than its box scrolls inside it. */
.api-syndication:not(body) .apis-stats__table th,
.api-syndication:not(body) .apis-stats__table td {
	word-break: normal;
	overflow-wrap: normal;
	hyphens: manual;
}

.api-syndication:not(body) .apis-fstats__table thead th {
	min-width: 4.5rem;
	max-width: 14rem;
	vertical-align: bottom;
}

.api-syndication:not(body) .apis-fstats__table th[data-type="number"],
.api-syndication:not(body) .apis-fstats__table td {
	text-align: right;
	font-variant-numeric: tabular-nums;
}

.api-syndication:not(body) .apis-fstats__table th button {
	/* A plain header word, whatever the theme does to buttons (inheriting
	   everything copied the cell's borders onto it). */
	-webkit-appearance: none;
	appearance: none;
	display: inline;
	margin: 0;
	padding: 0;
	min-height: 0;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	color: inherit;
	font: inherit;
	letter-spacing: inherit;
	line-height: inherit;
	text-align: inherit;
	text-transform: none;
	cursor: pointer;
	text-decoration: underline dotted;
	text-underline-offset: 3px;
}

.api-syndication:not(body) .apis-fstats__heat {
	border-collapse: collapse;
	font-size: 0.8125rem;
	font-variant-numeric: tabular-nums;
}

.api-syndication:not(body) .apis-fstats__heat th,
.api-syndication:not(body) .apis-fstats__heat td {
	padding: 4px 8px;
	border: 1px solid var(--apis-chart-surface);
	text-align: right;
	white-space: nowrap;
}

.api-syndication:not(body) .apis-fstats__heat thead th {
	/* Long category names wrap, so a column is as wide as its counts need
	   and every column's figures stay in view (the wrapper scrolls the rest). */
	min-width: 4.5rem;
	max-width: 9rem;
	white-space: normal;
	overflow-wrap: break-word;
	hyphens: auto;
	vertical-align: bottom;
	text-align: center;
	line-height: 1.25;
}

.api-syndication:not(body) .apis-fstats__heat tbody th {
	max-width: 14rem;
	white-space: normal;
	overflow-wrap: break-word;
	text-align: left;
}

/* Each cell prints its count; the shade only repeats it. */
.api-syndication:not(body) .apis-heat-0 { background: transparent; }
.api-syndication:not(body) .apis-heat-1 { background: color-mix(in srgb, var(--apis-seq) 12%, transparent); }
.api-syndication:not(body) .apis-heat-2 { background: color-mix(in srgb, var(--apis-seq) 28%, transparent); }
.api-syndication:not(body) .apis-heat-3 { background: color-mix(in srgb, var(--apis-seq) 45%, transparent); }
.api-syndication:not(body) .apis-heat-4 { background: color-mix(in srgb, var(--apis-seq) 70%, transparent); color: #fff; }
.api-syndication:not(body) .apis-heat-5 { background: var(--apis-seq); color: #fff; }

.api-syndication:not(body) .apis-chart__partial {
	opacity: 0.55;
}

.api-syndication:not(body) .apis-chart__hatch-line {
	stroke: var(--apis-chart-surface);
	stroke-width: 2;
}

.api-syndication:not(body) .apis-chart__now {
	stroke: var(--apis-chart-muted);
	stroke-dasharray: 4 3;
}

.api-syndication:not(body) .apis-chart__whisker,
.api-syndication:not(body) .apis-chart__median {
	stroke: var(--apis-text, currentColor);
	stroke-width: 2;
}

.api-syndication:not(body) .apis-chart__box {
	opacity: 0.85;
}

.api-syndication:not(body) .apis-chart__point {
	fill: var(--apis-seq);
	fill-opacity: 0.6;
}

/* Countries by name (normalization formatter). */
.api-syndication:not(body) .apis-country--name {
	display: inline-flex;
	align-items: center;
	gap: 0.3em;
	white-space: nowrap;
	max-width: 100%;
}

.api-syndication:not(body) .apis-country--name .apis-country__name {
	white-space: normal;
}

/* Acronyms and Terminology, Related Articles: one button per panel below
   a feed page's content, closed until opened (details/summary, so the
   keyboard and screen readers work without scripting). */
.api-syndication:not(body).apis-term-panels {
	display: grid;
	gap: 12px;
	margin: 24px 0 0;
}

.api-syndication:not(body) .apis-term-panel {
	border: 1px solid var(--apis-border, #dcdcde);
	border-radius: 6px;
	background: var(--apis-surface, #fff);
}

.api-syndication:not(body) .apis-term-panel__toggle {
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 10px 14px;
	font-weight: 600;
	cursor: pointer;
	list-style: none;
}

.api-syndication:not(body) .apis-term-panel__toggle::-webkit-details-marker {
	display: none;
}

.api-syndication:not(body) .apis-term-panel__toggle::before {
	content: "";
	width: 0.5em;
	height: 0.5em;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(-45deg);
	transition: transform 0.15s ease;
}

.api-syndication:not(body) .apis-term-panel[open] > .apis-term-panel__toggle::before {
	transform: rotate(45deg);
}

.api-syndication:not(body) .apis-term-panel__toggle:focus-visible {
	outline: 2px solid var(--apis-accent, #2271b1);
	outline-offset: 2px;
}

.api-syndication:not(body) .apis-term-panel__body {
	padding: 0 14px 14px;
}

.api-syndication:not(body) .apis-term-panel__body dt {
	font-weight: 600;
	margin-top: 8px;
}

.api-syndication:not(body) .apis-term-panel__body dd {
	margin: 2px 0 0;
}

@media (prefers-reduced-motion: reduce) {
	.api-syndication:not(body) .apis-term-panel__toggle::before {
		transition: none;
	}
}

/* Statistics packages ([api_syndication_package]). */
.api-syndication:not(body).apis-pkg .apis-pkg__views ul {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0 0 var(--apis-gap);
	padding: 0;
	list-style: none;
}

.api-syndication:not(body).apis-pkg .apis-pkg__views a {
	display: inline-block;
	padding: 6px 12px;
	border: 1px solid var(--apis-border);
	border-radius: var(--apis-radius);
	color: var(--apis-link);
	text-decoration: none;
}

.api-syndication:not(body).apis-pkg .apis-pkg__views a[aria-current="page"] {
	background: var(--apis-surface);
	color: var(--apis-text);
	font-weight: 700;
	border-color: var(--apis-text);
}

.api-syndication:not(body).apis-pkg .apis-pkg__views a:focus-visible,
.api-syndication:not(body).apis-pkg .apis-pkg__filters :focus-visible {
	outline: 2px solid var(--apis-focus);
	outline-offset: 2px;
}

/* The package's filters are a feed directory's filter panel
   (.apis-filters, .apis-field): one look for every filter. */
.api-syndication:not(body) .apis-field--submit {
	align-items: center;
}

.api-syndication:not(body).apis-pkg .apis-pkg__cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 10px;
	margin: 0 0 var(--apis-gap);
}

.api-syndication:not(body).apis-pkg .apis-pkg__card {
	padding: 10px 12px;
	border: 1px solid var(--apis-border);
	border-radius: var(--apis-radius);
	min-width: 0;
}

.api-syndication:not(body).apis-pkg .apis-pkg__card dt {
	font-size: 0.8125rem;
	color: var(--apis-muted);
}

.api-syndication:not(body).apis-pkg .apis-pkg__card dd {
	display: flex;
	flex-direction: column;
	margin: 2px 0 0;
	overflow-wrap: anywhere;
}

.api-syndication:not(body).apis-pkg .apis-pkg__card strong {
	font-size: 1.375rem;
}

/* Two columns of figures only when the dashboard itself is wide (not the
   window): in a narrow column, such as an admin preview beside the
   WordPress menu on a tablet, two columns made charts too small to read. */
.api-syndication:not(body).apis-pkg {
	container-type: inline-size;
}

@container (min-width: 1100px) {
	.api-syndication:not(body).apis-pkg .apis-fstats__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.api-syndication:not(body).apis-pkg .apis-fstats__item--full {
		grid-column: 1 / -1;
	}
}

/* Tables: words never break letter by letter (the display's default lets
   long words break anywhere, which stacked headers one letter per line in
   narrow columns). A table takes its natural width, at least the card's;
   wider tables scroll inside their frame. Long text wraps between words
   within a readable column width. Text aligns left, numbers right. */
.api-syndication:not(body).apis-pkg .apis-fstats__table {
	width: max-content;
	min-width: 100%;
	max-width: none;
}

.api-syndication:not(body).apis-pkg .apis-fstats__table th,
.api-syndication:not(body).apis-pkg .apis-fstats__table td {
	overflow-wrap: normal;
	word-break: normal;
	hyphens: manual;
	vertical-align: top;
}

.api-syndication:not(body).apis-pkg .apis-fstats__table .apis-pkg__text {
	min-width: 7rem;
	max-width: 22rem;
	text-align: left;
}

.api-syndication:not(body).apis-pkg .apis-fstats__table .apis-pkg__num {
	text-align: right;
	white-space: nowrap;
}

.api-syndication:not(body).apis-pkg .apis-fstats__table thead th {
	vertical-align: bottom;
}

.api-syndication:not(body).apis-pkg .apis-pkg__rule {
	margin: calc(var(--apis-gap) * 2) 0 var(--apis-gap);
	border: 0;
	border-top: 1px solid var(--apis-border);
}

.api-syndication:not(body).apis-pkg .apis-pkg__about dl > div {
	margin: 0 0 8px;
}

.api-syndication:not(body).apis-pkg .apis-pkg__about dt {
	font-weight: 700;
}

.api-syndication:not(body).apis-pkg .apis-pkg__about dd {
	margin: 0;
}

/* Advertising: a labelled region beside the records, never inside them. */
.apis-ad {
	margin: 1.25rem 0;
	padding: 0.5rem 0;
	border-top: 1px solid var(--apis-border, #dcdcde);
	border-bottom: 1px solid var(--apis-border, #dcdcde);
}
.apis-ad__label {
	margin: 0 0 0.35rem;
	font-size: 0.75rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--apis-muted, #50575e);
}
.apis-ad__items {
	list-style: none;
	margin: 0;
	padding: 0;
}
.apis-ad__item[hidden] {
	display: none;
}
.apis-ad__img {
	display: block;
	width: 100%;
	max-width: 1200px;
	height: auto;
	aspect-ratio: 6 / 1;
	object-fit: contain;
}
.apis-ad__credit {
	display: block;
	font-size: 0.75rem;
	color: var(--apis-muted, #50575e);
}
.apis-ad__headline,
.apis-ad__sponsor {
	margin: 0;
	font-weight: 600;
}
.apis-ad__pause {
	margin-top: 0.35rem;
	font-size: 0.8rem;
}
.apis-promote__hp {
	position: absolute;
	left: -10000px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
.apis-promote__form input:not([type="checkbox"]):not([type="hidden"]),
.apis-promote__form select,
.apis-promote__form textarea {
	width: 100%;
	max-width: 36rem;
	box-sizing: border-box;
}
.apis-promote__notice {
	padding: 0.75rem 1rem;
	border-left: 4px solid var(--apis-accent, #2271b1);
	background: var(--apis-surface, #f6f7f7);
}
