/*
 * Authority Engine — front-end.
 *
 * Everything here is scoped to .mppae* and driven by custom properties, so the
 * MPP Authority theme can restyle it by redefining tokens and any other theme
 * still gets something coherent out of the box.
 */

:root {
	--mppae-ink: #1a1720;
	--mppae-body: #3b3745;
	--mppae-muted: #6b6878;
	--mppae-line: #e0dde5;
	--mppae-surface: #faf9fb;
	--mppae-plum: #5e2a50;
	--mppae-verify: #2f6f5e;
	--mppae-heat-1: #cfd4e0;
	--mppae-heat-2: #b8b6c9;
	--mppae-heat-3: #a97fa0;
	--mppae-heat-4: #8f4a78;
	--mppae-heat-5: #6d2450;
	--mppae-radius: 4px;
	--mppae-gap: 1.5rem;
}

.mppae {
	margin: 2.75rem 0;
	color: var(--mppae-body);
	font-variant-numeric: tabular-nums;
}

.mppae__title {
	font-size: 1.4rem;
	line-height: 1.2;
	margin: 0 0 1rem;
	padding-bottom: .55rem;
	border-bottom: 2px solid var(--mppae-ink);
	color: var(--mppae-ink);
	letter-spacing: -.01em;
}

.mppae h3 {
	font-size: 1.05rem;
	margin: 1.5rem 0 .6rem;
	color: var(--mppae-ink);
}

.mppae-ul { margin: 0 0 1rem 1.15rem; padding: 0; }
.mppae-ul li { margin-bottom: .45rem; }

/* ---------- Decision snapshot ---------- */

.mppae--decision-snapshot {
	background: var(--mppae-surface);
	border: 1px solid var(--mppae-line);
	border-left: 4px solid var(--mppae-plum);
	border-radius: var(--mppae-radius);
	padding: 1.5rem;
}

.mppae-lede {
	font-size: 1.2rem;
	line-height: 1.4;
	font-weight: 600;
	color: var(--mppae-ink);
	margin: 0 0 .75rem;
}

.mppae-verdict { margin: 0 0 1.25rem; }

.mppae-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--mppae-gap);
}

@media (max-width: 640px) {
	.mppae-split { grid-template-columns: 1fr; }
}

.mppae-split__col h3 {
	margin-top: 0;
	font-size: .78rem;
	text-transform: uppercase;
	letter-spacing: .09em;
}

.mppae-split__col--yes h3 { color: var(--mppae-verify); }
.mppae-split__col--no h3 { color: #a03a2c; }

.mppae-split__col ul { list-style: none; margin: 0; padding: 0; }

.mppae-split__col li {
	position: relative;
	padding-left: 1.35rem;
	margin-bottom: .5rem;
	line-height: 1.5;
}

.mppae-split__col li::before {
	position: absolute;
	left: 0;
	top: -.05em;
	font-weight: 700;
}

.mppae-split__col--yes li::before { content: "+"; color: var(--mppae-verify); }
.mppae-split__col--no li::before { content: "−"; color: #a03a2c; }

.mppae-confidence {
	margin: 1.25rem 0 0;
	padding-top: .8rem;
	border-top: 1px dashed var(--mppae-line);
	font-size: .82rem;
	color: var(--mppae-muted);
}

.mppae-confidence::before {
	content: "";
	display: inline-block;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	margin-right: .5rem;
	vertical-align: middle;
	background: var(--mppae-muted);
}

.mppae-confidence--high::before { background: var(--mppae-verify); }
.mppae-confidence--medium::before { background: #b8892f; }
.mppae-confidence--low::before { background: #a03a2c; }

/* ---------- Texture map ---------- */

.mppae-map { margin: 1.5rem 0; }

.mppae-map__cap {
	display: flex;
	justify-content: space-between;
	font-size: .68rem;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--mppae-muted);
	margin-bottom: .4rem;
}

.mppae-map__svg {
	display: block;
	width: 100%;
	height: 54px;
}

.mppae-map__seg--1 { fill: var(--mppae-heat-1); }
.mppae-map__seg--2 { fill: var(--mppae-heat-2); }
.mppae-map__seg--3 { fill: var(--mppae-heat-3); }
.mppae-map__seg--4 { fill: var(--mppae-heat-4); }
.mppae-map__seg--5 { fill: var(--mppae-heat-5); }

.mppae-map__tick { fill: #fff; opacity: .8; }

.mppae-map__legend {
	list-style: none;
	margin: .75rem 0 0;
	padding: 0;
	display: grid;
	gap: .1rem;
}

.mppae-map__item {
	display: grid;
	grid-template-columns: 8.5rem 1fr auto;
	gap: .75rem;
	align-items: baseline;
	padding: .5rem 0;
	border-bottom: 1px solid var(--mppae-line);
	font-size: .9rem;
}

@media (max-width: 560px) {
	.mppae-map__item { grid-template-columns: 1fr auto; }
	.mppae-map__zone { grid-column: 1 / -1; }
}

.mppae-map__zone {
	font-size: .68rem;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--mppae-muted);
}

.mppae-map__intensity {
	font-size: .7rem;
	letter-spacing: .12em;
	color: var(--mppae-plum);
	white-space: nowrap;
}

/* ---------- Specs ---------- */

.mppae-specs {
	width: 100%;
	border-collapse: collapse;
	margin: 1.25rem 0;
	font-size: .92rem;
}

.mppae-specs caption {
	text-align: left;
	font-size: .68rem;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--mppae-muted);
	padding-bottom: .5rem;
}

.mppae-specs th,
.mppae-specs td {
	padding: .55rem .75rem;
	border-bottom: 1px solid var(--mppae-line);
	text-align: left;
}

.mppae-specs th {
	width: 45%;
	font-weight: 500;
	color: var(--mppae-muted);
}

.mppae-specs td { color: var(--mppae-ink); font-weight: 600; }

/* ---------- Scorecard ---------- */

.mppae-scorecard {
	border: 1px solid var(--mppae-line);
	border-radius: var(--mppae-radius);
	padding: 1.35rem;
	margin: 2rem 0;
	background: #fff;
}

.mppae-scorecard__overall {
	display: flex;
	align-items: baseline;
	gap: .35rem;
	padding-bottom: 1rem;
	margin-bottom: 1rem;
	border-bottom: 1px solid var(--mppae-line);
}

.mppae-scorecard__num {
	font-size: 3rem;
	line-height: 1;
	font-weight: 700;
	color: var(--mppae-plum);
	letter-spacing: -.03em;
}

.mppae-scorecard__denom { font-size: 1rem; color: var(--mppae-muted); }

.mppae-scorecard__cap {
	margin-left: auto;
	font-size: .68rem;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--mppae-muted);
}

.mppae-score__list { list-style: none; margin: 0; padding: 0; }

.mppae-score__row {
	display: grid;
	grid-template-columns: 10rem 1fr 2.5rem;
	gap: .75rem;
	align-items: center;
	margin-bottom: .55rem;
	font-size: .87rem;
}

@media (max-width: 560px) {
	.mppae-score__row { grid-template-columns: 1fr 2.5rem; }
	.mppae-score__bar { grid-column: 1 / -1; order: 3; }
}

.mppae-score__label { color: var(--mppae-muted); }

.mppae-score__bar {
	height: 6px;
	background: var(--mppae-line);
	border-radius: 3px;
	overflow: hidden;
}

.mppae-score__fill {
	display: block;
	height: 100%;
	background: var(--mppae-plum);
	border-radius: 3px;
}

.mppae-score__num { text-align: right; font-weight: 600; color: var(--mppae-ink); }

.mppae-scorecard__foot {
	margin: 1rem 0 0;
	font-size: .8rem;
}

/* ---------- Tags / chips ---------- */

.mppae-tags { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }

.mppae-tags__item {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: .85rem;
	align-items: baseline;
}

@media (max-width: 560px) {
	.mppae-tags__item { grid-template-columns: 1fr; gap: .2rem; }
}

.mppae-tags__tag {
	display: inline-block;
	background: var(--mppae-ink);
	color: #fff;
	padding: .25rem .6rem;
	border-radius: 2px;
	font-size: .72rem;
	text-transform: uppercase;
	letter-spacing: .06em;
	white-space: nowrap;
}

.mppae-chips { list-style: none; margin: .75rem 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }

.mppae-chips li {
	background: var(--mppae-surface);
	border: 1px solid var(--mppae-line);
	padding: .3rem .65rem;
	border-radius: 100px;
	font-size: .82rem;
}

/* ---------- Definition lists ---------- */

.mppae-dl { margin: 0; }
.mppae-dl dt { font-weight: 600; color: var(--mppae-ink); margin-top: .8rem; }
.mppae-dl dd { margin: .15rem 0 0; padding-left: 0; }

.mppae-level {
	font-size: .85rem;
	color: var(--mppae-muted);
}

.mppae-level span {
	text-transform: uppercase;
	letter-spacing: .08em;
	font-size: .68rem;
	margin-right: .4rem;
}

/* ---------- Provenance ---------- */

.mppae-provenance {
	list-style: none;
	margin: 0 0 1.25rem;
	padding: 1rem 1.15rem;
	background: var(--mppae-surface);
	border: 1px solid var(--mppae-line);
	border-radius: var(--mppae-radius);
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: .9rem;
}

.mppae-provenance__k {
	display: block;
	font-size: .66rem;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--mppae-muted);
	margin-bottom: .15rem;
}

.mppae-provenance__v {
	display: block;
	font-weight: 600;
	color: var(--mppae-ink);
}

.mppae-method-link { font-size: .85rem; }

/* ---------- Tables ---------- */

.mppae-table-wrap { overflow-x: auto; margin: 1.25rem 0; }

.mppae-compare,
.mppae-coupon-table {
	width: 100%;
	border-collapse: collapse;
	font-size: .92rem;
	min-width: 480px;
}

.mppae-compare th,
.mppae-compare td,
.mppae-coupon-table th,
.mppae-coupon-table td {
	padding: .7rem .8rem;
	border-bottom: 1px solid var(--mppae-line);
	text-align: left;
	vertical-align: top;
}

.mppae-compare thead th,
.mppae-coupon-table thead th {
	font-size: .68rem;
	text-transform: uppercase;
	letter-spacing: .09em;
	color: var(--mppae-muted);
	border-bottom: 2px solid var(--mppae-ink);
}

.mppae-coupon-table caption {
	text-align: left;
	font-size: .68rem;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--mppae-muted);
	padding-bottom: .5rem;
}

.mppae-coupon__code code {
	background: var(--mppae-ink);
	color: #fff;
	padding: .3rem .65rem;
	border-radius: 2px;
	font-size: .88rem;
	letter-spacing: .04em;
}

.mppae-nocode { color: var(--mppae-muted); font-style: italic; }

.mppae-coupon__verified {
	color: var(--mppae-verify);
	font-size: .82rem;
	white-space: nowrap;
}

.mppae-check {
	display: inline-block;
	width: 14px;
	height: 14px;
	margin-right: .4rem;
	vertical-align: -2px;
	border-radius: 50%;
	background: var(--mppae-verify);
	position: relative;
}

.mppae-check::after {
	content: "";
	position: absolute;
	left: 4px;
	top: 2px;
	width: 4px;
	height: 7px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(42deg);
}

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

.mppae-notice {
	border: 1px solid var(--mppae-line);
	border-left: 4px solid var(--mppae-muted);
	background: var(--mppae-surface);
	padding: 1.1rem 1.25rem;
	border-radius: var(--mppae-radius);
	margin: 1.5rem 0;
}

.mppae-notice p:first-child { margin-top: 0; font-weight: 600; color: var(--mppae-ink); }
.mppae-notice p:last-child { margin-bottom: 0; }

.mppae-note { font-size: .85rem; color: var(--mppae-muted); }

/* ---------- Takeaways ---------- */

.mppae-takeaways {
	list-style: none;
	margin: 0;
	padding: 0;
	counter-reset: mppae-take;
}

.mppae-takeaways li {
	counter-increment: mppae-take;
	position: relative;
	padding-left: 2.25rem;
	margin-bottom: .8rem;
	line-height: 1.55;
}

.mppae-takeaways li::before {
	content: counter(mppae-take);
	position: absolute;
	left: 0;
	top: 0;
	width: 1.5rem;
	height: 1.5rem;
	background: var(--mppae-ink);
	color: #fff;
	border-radius: 50%;
	display: grid;
	place-items: center;
	font-size: .72rem;
	font-weight: 700;
}

/* ---------- FAQ ---------- */

.mppae-faq { border-top: 1px solid var(--mppae-line); }

.mppae-faq__item { border-bottom: 1px solid var(--mppae-line); }

.mppae-faq__item summary {
	cursor: pointer;
	padding: .95rem 2rem .95rem 0;
	position: relative;
	list-style: none;
}

.mppae-faq__item summary::-webkit-details-marker { display: none; }

.mppae-faq__item summary h3 {
	display: inline;
	margin: 0;
	font-size: 1rem;
	color: var(--mppae-ink);
}

.mppae-faq__item summary::after {
	content: "";
	position: absolute;
	right: .3rem;
	top: 1.35rem;
	width: 8px;
	height: 8px;
	border-right: 2px solid var(--mppae-muted);
	border-bottom: 2px solid var(--mppae-muted);
	transform: rotate(45deg);
	transition: transform .18s ease;
}

.mppae-faq__item[open] summary::after { transform: rotate(-135deg); }

.mppae-faq__a { padding: 0 0 1rem; }
.mppae-faq__a p { margin: 0 0 .6rem; }

@media (prefers-reduced-motion: reduce) {
	.mppae-faq__item summary::after { transition: none; }
}

/* ---------- Disclosure ---------- */

.mppae-disclosure {
	display: flex;
	align-items: flex-start;
	gap: .6rem;
	font-size: .82rem;
	line-height: 1.45;
	color: var(--mppae-muted);
	background: var(--mppae-surface);
	border: 1px solid var(--mppae-line);
	border-radius: var(--mppae-radius);
	padding: .7rem .9rem;
	margin: 0 0 1.75rem;
}

.mppae-disclosure__mark {
	flex: none;
	width: 15px;
	height: 15px;
	margin-top: .1rem;
	border-radius: 50%;
	border: 1.5px solid var(--mppae-muted);
	position: relative;
}

.mppae-disclosure__mark::after {
	content: "i";
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	font-size: 10px;
	font-style: italic;
	font-weight: 700;
	color: var(--mppae-muted);
}

/* ---------- Author card ---------- */

.mppae-author {
	display: grid;
	grid-template-columns: 76px 1fr;
	gap: 1.15rem;
	align-items: start;
	border-top: 2px solid var(--mppae-ink);
	padding-top: 1.35rem;
	margin: 2.75rem 0 0;
}

@media (max-width: 480px) {
	.mppae-author { grid-template-columns: 56px 1fr; gap: .85rem; }
}

.mppae-author__img { border-radius: 50%; width: 100%; height: auto; display: block; }

.mppae-author__name { margin: 0 0 .25rem; font-weight: 700; color: var(--mppae-ink); }

.mppae-author__role {
	display: block;
	font-weight: 400;
	font-size: .74rem;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--mppae-muted);
	margin-top: .15rem;
}

.mppae-author__bio { margin: .4rem 0; font-size: .9rem; line-height: 1.55; }

.mppae-author__checked,
.mppae-author__verified {
	margin: .3rem 0 0;
	font-size: .78rem;
	color: var(--mppae-muted);
}

/* ---------- Team grid ---------- */

.mppae-team {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 1.5rem;
	margin: 1.75rem 0;
}

.mppae-team__card {
	border: 1px solid var(--mppae-line);
	border-radius: var(--mppae-radius);
	overflow: hidden;
	background: #fff;
	display: flex;
	flex-direction: column;
}

.mppae-team__media img {
	display: block;
	width: 100%;
	height: 200px;
	object-fit: cover;
}

.mppae-team__body { padding: 1.1rem; }

.mppae-team__name { margin: 0 0 .2rem; font-size: 1.05rem; }
.mppae-team__name a { text-decoration: none; color: var(--mppae-ink); }
.mppae-team__name a:hover { text-decoration: underline; }

.mppae-team__role {
	margin: 0 0 .65rem;
	font-size: .7rem;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--mppae-plum);
}

.mppae-team__bio { margin: 0 0 .7rem; font-size: .88rem; line-height: 1.55; }

.mppae-team__covers { margin: 0; font-size: .8rem; color: var(--mppae-muted); }

.mppae-team__covers span {
	text-transform: uppercase;
	letter-spacing: .08em;
	font-size: .64rem;
	display: block;
	margin-bottom: .1rem;
}

.mppae-team__links { margin: .6rem 0 0; font-size: .82rem; }

/* =========================================================================
   Texture map — depth-proportional zones
   ====================================================================== */

.mppae-map { margin: 1.75rem 0; }

.mppae-map__scale {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	font-size: .72rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--mppae-muted, #6b6472);
	margin-bottom: .4rem;
}

.mppae-map__depth {
	font-variant-numeric: tabular-nums;
	letter-spacing: 0;
	text-transform: none;
	font-size: .78rem;
	color: var(--mppae-ink, #1a1720);
}

.mppae-map__svg {
	display: block;
	width: 100%;
	height: 96px;
	overflow: visible;
}

/* Intensity is encoded twice — bar height and fill weight — so the shape
   survives greyscale printing and colour-vision differences. */
.mppae-map__zone { fill: var(--mppae-accent, #5e2a50); }
.mppae-map__zone--1 { fill-opacity: .22; }
.mppae-map__zone--2 { fill-opacity: .38; }
.mppae-map__zone--3 { fill-opacity: .56; }
.mppae-map__zone--4 { fill-opacity: .76; }
.mppae-map__zone--5 { fill-opacity: 1; }

.mppae-map__tick { stroke: var(--mppae-line, #e4e0e6); stroke-width: 1; }

.mppae-map__tick-label {
	font-size: 10px;
	fill: var(--mppae-muted, #6b6472);
	font-variant-numeric: tabular-nums;
}

.mppae-map__marker {
	stroke: var(--mppae-alert, #a03a2c);
	stroke-width: 2;
	stroke-dasharray: 3 3;
}

.mppae-map__legend {
	list-style: none;
	margin: 1rem 0 0;
	padding: 0;
	display: grid;
	gap: .5rem;
}

.mppae-map__legend-item {
	display: grid;
	grid-template-columns: minmax(7rem, 10rem) 1fr;
	gap: .25rem .9rem;
	padding: .5rem 0;
	border-top: 1px solid var(--mppae-line, #e4e0e6);
	font-size: .88rem;
}

.mppae-map__legend-name { font-weight: 600; }

.mppae-map__legend-facts {
	font-variant-numeric: tabular-nums;
	color: var(--mppae-muted, #6b6472);
	font-size: .82rem;
}

.mppae-map__legend-feature { grid-column: 2; }

.mppae-map__caveat {
	font-size: .82rem;
	color: var(--mppae-muted, #6b6472);
	font-style: italic;
	margin-top: .6rem;
}

/* =========================================================================
   Fit calculator
   ====================================================================== */

.mppae-fit {
	margin: 2rem 0;
	padding: 1.4rem 1.5rem 1.5rem;
	border: 1px solid var(--mppae-line, #e4e0e6);
	border-left: 3px solid var(--mppae-accent, #5e2a50);
	background: var(--mppae-tint, #f6f3f7);
}

.mppae-fit__title { margin: 0 0 .5rem; font-size: 1.15rem; }

.mppae-fit__intro,
.mppae-fit__note {
	font-size: .87rem;
	color: var(--mppae-muted, #6b6472);
	margin: 0 0 1rem;
}

.mppae-fit__note { margin: 1rem 0 0; font-style: italic; }

.mppae-fit__controls {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
	gap: .5rem 1.25rem;
	align-items: end;
}

.mppae-fit__controls label {
	display: flex;
	flex-direction: column;
	font-weight: 600;
	font-size: .88rem;
	gap: .1rem;
}

.mppae-fit__unit {
	font-weight: 400;
	font-size: .76rem;
	color: var(--mppae-muted, #6b6472);
}

.mppae-fit__controls input {
	width: 100%;
	padding: .5rem .6rem;
	border: 1px solid var(--mppae-line, #e4e0e6);
	background: #fff;
	font: inherit;
	font-variant-numeric: tabular-nums;
	border-radius: 2px;
}

.mppae-fit__controls input:focus-visible {
	outline: 2px solid var(--mppae-accent, #5e2a50);
	outline-offset: 1px;
}

.mppae-fit__result { margin-top: 1.25rem; }

.mppae-fit__headline {
	font-size: 1rem;
	margin: 0 0 .75rem;
}

.mppae-fit__headline strong {
	font-size: 1.6rem;
	font-variant-numeric: tabular-nums;
	color: var(--mppae-accent, #5e2a50);
}

.mppae-fit__glans {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: .45rem;
	padding: .7rem .85rem;
	background: #fff;
	border-left: 3px solid var(--mppae-verified, #2f6f5e);
	margin: 0 0 1rem;
}

.mppae-fit__glans-label {
	font-size: .76rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--mppae-muted, #6b6472);
}

.mppae-fit__glans-zone { font-weight: 700; }

.mppae-fit__glans-feature {
	flex: 1 1 100%;
	font-size: .87rem;
	color: var(--mppae-muted, #6b6472);
}

.mppae-fit__zones { list-style: none; margin: 0 0 1rem; padding: 0; }

.mppae-fit__zone {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: .5rem;
	padding: .4rem 0;
	border-top: 1px solid var(--mppae-line, #e4e0e6);
	font-size: .88rem;
}

.mppae-fit__zone-name { flex: 1 1 auto; font-weight: 600; }

.mppae-fit__zone-state {
	font-size: .74rem;
	letter-spacing: .05em;
	text-transform: uppercase;
	padding: .1rem .45rem;
	border-radius: 2px;
}

.mppae-fit__zone.is-full .mppae-fit__zone-state {
	background: rgba(47, 111, 94, .12);
	color: var(--mppae-verified, #2f6f5e);
}

.mppae-fit__zone.is-partial .mppae-fit__zone-state {
	background: rgba(94, 42, 80, .1);
	color: var(--mppae-accent, #5e2a50);
}

.mppae-fit__zone.is-unreached { opacity: .55; }

.mppae-fit__zone.is-unreached .mppae-fit__zone-state {
	background: rgba(160, 58, 44, .1);
	color: var(--mppae-alert, #a03a2c);
}

.mppae-fit__zone-grip {
	font-size: .78rem;
	color: var(--mppae-muted, #6b6472);
	font-style: italic;
}

.mppae-fit__verdict,
.mppae-fit__stretch {
	font-size: .9rem;
	margin: .5rem 0 0;
	padding-left: .8rem;
	border-left: 2px solid var(--mppae-line, #e4e0e6);
}

/* Worked examples */
.mppae-fitgrid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
	gap: .9rem;
	margin: 1rem 0;
}

.mppae-fitgrid__card {
	border: 1px solid var(--mppae-line, #e4e0e6);
	padding: .9rem 1rem;
	background: #fff;
}

.mppae-fitgrid__len {
	font-size: 1.7rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	line-height: 1;
	margin: 0 0 .5rem;
	color: var(--mppae-accent, #5e2a50);
}

.mppae-fitgrid__len span {
	display: block;
	font-size: .7rem;
	font-weight: 400;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--mppae-muted, #6b6472);
}

.mppae-fitgrid__exp { font-size: .88rem; margin: 0 0 .6rem; }

.mppae-fitgrid__miss {
	font-size: .8rem;
	color: var(--mppae-alert, #a03a2c);
	margin: 0;
}

.mppae-fitgrid__miss span {
	text-transform: uppercase;
	letter-spacing: .05em;
	font-size: .72rem;
}

.mppae-fitgrid__miss--none { color: var(--mppae-verified, #2f6f5e); }

/* =========================================================================
   Scorecard — three classes
   ====================================================================== */

.mppae-scorecard__basis {
	font-size: .82rem;
	color: var(--mppae-muted, #6b6472);
	font-variant-numeric: tabular-nums;
	margin: .3rem 0 1rem;
	text-align: center;
}

.mppae-scorecard__block { margin-top: 1.25rem; }

.mppae-scorecard__head {
	font-size: .76rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	margin: 0 0 .15rem;
	color: var(--mppae-ink, #1a1720);
}

.mppae-scorecard__note {
	font-size: .78rem;
	color: var(--mppae-muted, #6b6472);
	margin: 0 0 .6rem;
	font-style: italic;
}

/* Cost bars read in the opposite direction, so they get their own hue —
   a long brick bar is unambiguously "this is a chore". */
.mppae-score__row--cost .mppae-score__fill {
	background: var(--mppae-alert, #a03a2c);
	opacity: .7;
}

/* Character profile: a position on a spectrum, never a mark out of five. */
.mppae-profile { list-style: none; margin: 0; padding: 0; }

.mppae-profile__row { padding: .45rem 0; }

.mppae-profile__label {
	display: block;
	font-size: .84rem;
	font-weight: 600;
	margin-bottom: .2rem;
}

.mppae-profile__scale {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: .5rem;
}

.mppae-profile__pole {
	font-size: .7rem;
	color: var(--mppae-muted, #6b6472);
	max-width: 6.5rem;
	line-height: 1.25;
}

.mppae-profile__pole:last-child { text-align: right; }

.mppae-profile__track {
	position: relative;
	height: 3px;
	background: var(--mppae-line, #e4e0e6);
	border-radius: 2px;
}

.mppae-profile__dot {
	position: absolute;
	top: 50%;
	width: 11px;
	height: 11px;
	margin-left: -5.5px;
	transform: translateY(-50%);
	border-radius: 50%;
	background: var(--mppae-accent, #5e2a50);
}

/* =========================================================================
   Session fit, care, provenance, variants
   ====================================================================== */

.mppae-table-wrap { overflow-x: auto; }

.mppae-sessions,
.mppae-variants__table {
	width: 100%;
	border-collapse: collapse;
	font-size: .89rem;
}

.mppae-sessions th,
.mppae-sessions td,
.mppae-variants__table th,
.mppae-variants__table td {
	text-align: left;
	padding: .6rem .7rem;
	border-bottom: 1px solid var(--mppae-line, #e4e0e6);
	vertical-align: top;
}

.mppae-sessions thead th,
.mppae-variants__table thead th {
	font-size: .72rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--mppae-muted, #6b6472);
	border-bottom-width: 2px;
}

.mppae-pill {
	display: inline-block;
	font-size: .74rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	padding: .12rem .5rem;
	border-radius: 2px;
	white-space: nowrap;
}

.mppae-pill--good     { background: rgba(47, 111, 94, .14); color: var(--mppae-verified, #2f6f5e); }
.mppae-pill--workable { background: rgba(94, 42, 80, .11); color: var(--mppae-accent, #5e2a50); }
.mppae-pill--poor     { background: rgba(160, 58, 44, .12); color: var(--mppae-alert, #a03a2c); }
.mppae-pill--unknown  { background: var(--mppae-line, #e4e0e6); color: var(--mppae-muted, #6b6472); }

.mppae-care { margin: 0 0 1rem; }

.mppae-care__row {
	display: grid;
	grid-template-columns: minmax(8rem, 12rem) 1fr;
	gap: .3rem 1rem;
	padding: .55rem 0;
	border-bottom: 1px solid var(--mppae-line, #e4e0e6);
}

.mppae-care__row dt { font-weight: 600; font-size: .86rem; }
.mppae-care__row dd { margin: 0; }

.mppae-failures {
	border-left: 3px solid var(--mppae-alert, #a03a2c);
	padding: .1rem 0 .1rem 1rem;
	margin-top: 1rem;
}

.mppae-failures h3 { font-size: .95rem; margin: .4rem 0 .5rem; }

.mppae-prov,
.mppae-variants { margin: 2rem 0; }

.mppae-prov__title,
.mppae-variants__title { font-size: 1.1rem; margin: 0 0 .6rem; }

.mppae-variants__intro {
	font-size: .87rem;
	color: var(--mppae-muted, #6b6472);
	margin: 0 0 .9rem;
}

.mppae-prov__list { margin: 0; }

.mppae-prov__row {
	display: grid;
	grid-template-columns: minmax(8rem, 13rem) 1fr;
	gap: .25rem 1rem;
	padding: .45rem 0;
	border-bottom: 1px solid var(--mppae-line, #e4e0e6);
	font-size: .89rem;
}

.mppae-prov__row dt { color: var(--mppae-muted, #6b6472); }
.mppae-prov__row dd { margin: 0; font-weight: 600; }

.mppae-prov__aliases { margin-top: 1.2rem; }
.mppae-prov__aliases h3 { font-size: .95rem; margin: 0 0 .25rem; }

.mppae-prov__aliases-note {
	font-size: .82rem;
	color: var(--mppae-muted, #6b6472);
	margin: 0 0 .5rem;
}

.mppae-prov__source { font-size: .84rem; margin-top: .9rem; }

.mppae-variants__table tr.is-tested { background: rgba(47, 111, 94, .05); }

.mppae-variants__flag {
	display: inline-block;
	font-size: .66rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: .08rem .38rem;
	margin-left: .35rem;
	border-radius: 2px;
	background: rgba(47, 111, 94, .14);
	color: var(--mppae-verified, #2f6f5e);
	vertical-align: middle;
}

.mppae-caveat {
	font-size: .84rem;
	font-style: italic;
	color: var(--mppae-muted, #6b6472);
	margin-top: .8rem;
}

@media (max-width: 640px) {
	.mppae-map__legend-item,
	.mppae-care__row,
	.mppae-prov__row { grid-template-columns: 1fr; }

	.mppae-map__legend-feature { grid-column: 1; }
	.mppae-profile__scale { grid-template-columns: 1fr; gap: .25rem; }
	.mppae-profile__pole:last-child { text-align: left; }
}

/* =========================================================================
   Reader forms
   ====================================================================== */

.mppae-form {
	background: var(--mppae-tint, #f6f3f7);
	border: 1px solid var(--mppae-line, #e4e0e6);
	padding: 1.5rem 1.6rem;
	height: 100%;
}

.mppae-form--news { border-left: 3px solid var(--mppae-accent, #5e2a50); }
.mppae-form--req { border-left: 3px solid var(--mppae-verified, #2f6f5e); }

.mppae-form__title { margin: 0 0 .5rem; font-size: 1.15rem; }

.mppae-form__lede {
	font-size: .89rem;
	color: var(--mppae-muted, #6b6472);
	margin: 0 0 1rem;
}

.mppae-form__fields label {
	display: block;
	font-weight: 600;
	font-size: .86rem;
	margin: .8rem 0 .25rem;
}

.mppae-form__optional {
	font-weight: 400;
	color: var(--mppae-muted, #6b6472);
	font-size: .78rem;
}

.mppae-form__fields input[type="email"],
.mppae-form__fields input[type="text"],
.mppae-form__fields textarea {
	width: 100%;
	padding: .55rem .65rem;
	border: 1px solid var(--mppae-line, #e4e0e6);
	background: #fff;
	font: inherit;
	border-radius: 2px;
}

.mppae-form__fields input:focus-visible,
.mppae-form__fields textarea:focus-visible {
	outline: 2px solid var(--mppae-accent, #5e2a50);
	outline-offset: 1px;
}

.mppae-form__row { display: flex; gap: .5rem; flex-wrap: wrap; }
.mppae-form__row input { flex: 1 1 12rem; }

.mppae-btn {
	background: var(--mppae-accent, #5e2a50);
	color: #fff;
	border: 0;
	padding: .6rem 1.2rem;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
	border-radius: 2px;
	margin-top: .8rem;
}

.mppae-form__row .mppae-btn { margin-top: 0; }
.mppae-btn:hover { background: var(--mppae-ink, #1a1720); }

.mppae-form__consent {
	display: flex !important;
	gap: .55rem;
	align-items: flex-start;
	font-weight: 400 !important;
	font-size: .82rem;
	margin-top: .9rem !important;
	line-height: 1.4;
}

.mppae-form__consent input { margin-top: .2rem; flex: 0 0 auto; }

.mppae-form__small {
	font-size: .78rem;
	color: var(--mppae-muted, #6b6472);
	margin: .9rem 0 0;
}

.mppae-formnotice {
	padding: .6rem .8rem;
	margin: 0 0 1rem;
	font-size: .87rem;
	border-left: 3px solid;
}

.mppae-formnotice--ok { border-color: var(--mppae-verified, #2f6f5e); background: rgba(47,111,94,.08); }
.mppae-formnotice--err { border-color: var(--mppae-alert, #a03a2c); background: rgba(160,58,44,.08); }

.mppae-requested { list-style: none; margin: .6rem 0 0; padding: 0; }

.mppae-requested li {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: .45rem 0;
	border-bottom: 1px solid var(--mppae-line, #e4e0e6);
	font-size: .89rem;
}

.mppae-requested__count {
	color: var(--mppae-muted, #6b6472);
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

/* =========================================================================
   Authority signals
   ====================================================================== */

.mppae-stats {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
	gap: 1.2rem;
}

.mppae-stats li { text-align: center; }

.mppae-stats__num {
	display: block;
	font-size: 2.2rem;
	font-weight: 700;
	line-height: 1;
	font-variant-numeric: tabular-nums;
	color: var(--mppae-accent, #5e2a50);
}

.mppae-stats__label {
	display: block;
	font-size: .8rem;
	color: var(--mppae-muted, #6b6472);
	margin-top: .3rem;
	line-height: 1.35;
}

.mppae-stats__note {
	font-size: .78rem;
	color: var(--mppae-muted, #6b6472);
	text-align: center;
	margin: 1rem 0 0;
	font-style: italic;
}

.mppae-corrections__list { list-style: none; margin: 0; padding: 0; }

.mppae-correction {
	display: grid;
	grid-template-columns: 7rem 1fr;
	gap: .3rem 1rem;
	padding: .8rem 0;
	border-top: 1px solid var(--mppae-line, #e4e0e6);
}

.mppae-correction time {
	font-size: .8rem;
	color: var(--mppae-muted, #6b6472);
	font-variant-numeric: tabular-nums;
}

.mppae-correction__what { margin: .2rem 0 0; font-size: .9rem; }
.mppae-correction__why { margin: .2rem 0 0; font-size: .84rem; color: var(--mppae-muted, #6b6472); }

.mppae-corrections__empty {
	font-size: .88rem;
	color: var(--mppae-muted, #6b6472);
	border-left: 3px solid var(--mppae-line, #e4e0e6);
	padding-left: 1rem;
	font-style: italic;
}

.mppae-postcorrections {
	border: 1px solid var(--mppae-alert, #a03a2c);
	border-left-width: 3px;
	padding: 1rem 1.2rem;
	margin: 2rem 0;
	background: rgba(160,58,44,.04);
}

.mppae-postcorrections h2 { margin: 0 0 .6rem; font-size: 1rem; }
.mppae-postcorrections ul { list-style: none; margin: 0; padding: 0; }

.mppae-postcorrections li {
	padding: .4rem 0;
	border-top: 1px solid var(--mppae-line, #e4e0e6);
	font-size: .89rem;
}

.mppae-postcorrections li:first-child { border-top: 0; }
.mppae-postcorrections time { color: var(--mppae-muted, #6b6472); margin-right: .5rem; font-variant-numeric: tabular-nums; }
.mppae-postcorrections em { display: block; color: var(--mppae-muted, #6b6472); font-size: .84rem; }

@media (max-width: 640px) {
	.mppae-correction { grid-template-columns: 1fr; }
}

/* =========================================================================
   Profile band, limits, contributors
   ====================================================================== */

.mppae-band {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0 1rem;
	align-items: start;
	border: 1px solid var(--mppae-accent, #5e2a50);
	border-left-width: 3px;
	background: rgba(94, 42, 80, .045);
	padding: 1rem 1.2rem;
	margin: 0 0 1.5rem;
}

.mppae-band__tag {
	margin: 0;
	font-size: .68rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	font-weight: 700;
	color: var(--mppae-accent, #5e2a50);
	white-space: nowrap;
	padding-top: .15rem;
}

.mppae-band__lead { margin: 0 0 .5rem; font-size: .92rem; line-height: 1.5; }

.mppae-band__links { margin: 0; display: flex; flex-wrap: wrap; gap: 1rem; font-size: .84rem; }

.mppae-limits {
	border: 1px dashed var(--mppae-line, #e4e0e6);
	padding: 1.1rem 1.3rem;
	margin: 2rem 0;
	background: var(--mppae-tint, #f6f3f7);
}

.mppae-limits h2 { margin: 0 0 .6rem; font-size: 1rem; }
.mppae-limits ul { margin: 0; padding-left: 1.1rem; }
.mppae-limits li { margin-bottom: .4rem; font-size: .89rem; }

.mppae-limits__foot {
	margin: .9rem 0 0;
	font-size: .84rem;
	color: var(--mppae-muted, #6b6472);
	font-style: italic;
}

/* Contributors */
.mppae-contribs { margin: 2.5rem 0; }

.mppae-contribs__title { font-size: 1.05rem; margin: 0 0 1rem; }

.mppae-contribs__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
	gap: 1rem;
}

.mppae-contrib {
	display: grid;
	grid-template-columns: 3.5rem 1fr;
	gap: .9rem;
	align-items: start;
	border: 1px solid var(--mppae-line, #e4e0e6);
	padding: .9rem 1rem;
	background: #fff;
}

.mppae-contrib__photo img {
	width: 3.5rem;
	height: 3.5rem;
	object-fit: cover;
	border-radius: 50%;
	display: block;
}

.mppae-contrib__role {
	margin: 0;
	font-size: .66rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--mppae-muted, #6b6472);
}

.mppae-contrib__name { margin: .1rem 0; font-weight: 700; font-size: .98rem; }
.mppae-contrib__name a { text-decoration: none; }
.mppae-contrib__name a:hover { text-decoration: underline; }

.mppae-contrib__title { margin: 0; font-size: .8rem; color: var(--mppae-muted, #6b6472); }
.mppae-contrib__bio { margin: .45rem 0 0; font-size: .84rem; line-height: 1.45; }

.mppae-contrib__li {
	display: inline-flex;
    align-items: center;
	gap: .3rem;
	margin-top: .5rem;
	font-size: .76rem;
	color: var(--mppae-accent, #5e2a50);
	text-decoration: none;
}

.mppae-contrib__li:hover { text-decoration: underline; }

/* Compact variant for the product header */
.mppae-contribs--compact { margin: 1rem 0 0; }

.mppae-contribs--compact .mppae-contribs__list {
	display: flex;
	flex-wrap: wrap;
	gap: 1.25rem;
}

.mppae-contribs--compact .mppae-contrib {
	border: 0;
	padding: 0;
	background: none;
	grid-template-columns: 2.2rem 1fr;
	gap: .55rem;
}

.mppae-contribs--compact .mppae-contrib__photo img { width: 2.2rem; height: 2.2rem; }
.mppae-contribs--compact .mppae-contrib__name { font-size: .86rem; margin: 0; }
.mppae-contribs--compact .mppae-contrib__title { font-size: .72rem; }
.mppae-contribs--compact .mppae-contrib__li { margin-top: .15rem; font-size: .7rem; }

.mppae-contribs__foot {
	margin: 1rem 0 0;
	display: flex;
	flex-wrap: wrap;
	gap: 1.2rem;
	font-size: .84rem;
}

@media (max-width: 640px) {
	.mppae-band { grid-template-columns: 1fr; gap: .4rem; }
}
