.ffsa-intro-note {
	margin:0 1.1rem 1rem;
	padding:.75rem .85rem;
	border-left:4px solid var(--ff-brand,#184f4b);
	border-radius:0 9px 9px 0;
	background:var(--ff-soft-green,#eef5f1);
}
.ffsa-intro-note strong { display:block; font-size:.78rem; }
.ffsa-intro-note p { margin:.2rem 0 0; color:var(--ff-muted,#667472); font-size:.7rem; line-height:1.45; }

.ffsa-edge-fieldset {
	margin:.9rem 1.1rem 1rem;
	padding:.85rem;
	border:1px solid #dfe3de;
	border-radius:11px;
	background:#f8faf8;
}
.ffsa-edge-fieldset legend { padding:0 .3rem; color:var(--ff-ink,#17312f); font-size:.75rem; font-weight:800; }
.ffsa-edge-fieldset > small { display:block; margin-top:.6rem; color:var(--ff-muted,#667472); font-size:.63rem; line-height:1.4; }
.ffsa-edge-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.45rem; }
.ffsa-edge-grid label {
	display:flex;
	gap:.42rem;
	align-items:center;
	padding:.58rem .62rem;
	border:1px solid #e1e4df;
	border-radius:8px;
	background:#fff;
	font-size:.68rem;
	font-weight:750;
}
.ffsa-edge-grid input { margin:0; accent-color:var(--ff-brand,#184f4b); }

.ffsa-result-note {
	margin:0 1rem 1rem;
	padding:.8rem;
	border:1px solid #e1ddd5;
	border-radius:10px;
	background:#fbf8f2;
}
.ffsa-result-note strong { display:block; color:var(--ff-ink,#17312f); font-size:.72rem; }
.ffsa-result-note p { margin:.2rem 0 0; color:var(--ff-muted,#667472); font-size:.65rem; line-height:1.42; }

.ffsa-stale,.ffsa-error {
	margin:.8rem 1rem 1rem;
	padding:.7rem .8rem;
	border-radius:9px;
	font-size:.73rem;
}
.ffsa-stale { background:#fff3df; color:#704a10; }
.ffsa-stale strong { margin-right:.35rem; }
.ffsa-error { border:1px solid rgba(185,79,50,.22); background:#fff0eb; color:#8f3522; }

.ffsa-lower-grid { margin-top:1rem; }
.ffsa-panel__head--accent { background:var(--ff-accent,#b94f32); color:#fff; }
.ffsa-panel__head--accent .qbc-panel__eyebrow,
.ffsa-panel__head--accent h2 { color:#fff; }
.ffsa-panel__head--accent .qbc-step { background:rgba(255,255,255,.18); color:#fff; }

.ffsa-plan-body {
	display:grid;
	grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);
	gap:1rem;
	padding:1rem 1.1rem 1.15rem;
}
.ffsa-visual {
	display:grid;
	place-items:center;
	min-height:275px;
	padding:1rem;
	border:1px solid #ddd6ca;
	border-radius:12px;
	background:#fbf6ec;
}
.ffsa-visual-placeholder { max-width:230px; color:var(--ff-muted,#667472); font-size:.72rem; line-height:1.5; text-align:center; }
.ffsa-diagram { display:grid; place-items:center; gap:.75rem; width:100%; }
.ffsa-diagram__piece {
	position:relative;
	width:min(76%,220px);
	aspect-ratio:1.45;
	border:2px solid var(--ff-brand,#184f4b);
	background:#f7f0e7;
	box-shadow:0 8px 18px rgba(23,49,47,.08);
}
.ffsa-diagram__band { position:absolute; display:block; background:transparent; }
.ffsa-diagram__band.is-active { background:rgba(185,79,50,.28); }
.ffsa-diagram__band--top { top:0; left:0; right:0; height:17%; }
.ffsa-diagram__band--bottom { bottom:0; left:0; right:0; height:17%; }
.ffsa-diagram__band--left { top:0; bottom:0; left:0; width:13%; }
.ffsa-diagram__band--right { top:0; bottom:0; right:0; width:13%; }
.ffsa-diagram__inner {
	position:absolute;
	top:17%; right:13%; bottom:17%; left:13%;
	display:grid;
	place-items:center;
	border:2px dashed rgba(23,49,47,.72);
	background:rgba(255,255,255,.72);
}
.ffsa-diagram__inner span { color:var(--ff-muted,#667472); font-size:.62rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
.ffsa-diagram--remove .ffsa-diagram__band.is-active { background:rgba(108,141,123,.28); }
.ffsa-diagram__caption { max-width:260px; text-align:center; }
.ffsa-diagram__caption strong,.ffsa-diagram__caption span { display:block; }
.ffsa-diagram__caption strong { color:var(--ff-ink,#17312f); font-size:.75rem; }
.ffsa-diagram__caption span { margin-top:.18rem; color:var(--ff-muted,#667472); font-size:.63rem; line-height:1.4; }

.ffsa-plan-list { display:grid; align-content:center; }
.ffsa-plan-list > div,
.ffsa-summary-list > div {
	display:flex;
	justify-content:space-between;
	gap:1rem;
	padding:.72rem 0;
	border-bottom:1px solid #e5e5e0;
}
.ffsa-plan-list span,
.ffsa-summary-list span { color:var(--ff-muted,#667472); font-size:.71rem; }
.ffsa-plan-list strong,
.ffsa-summary-list strong { color:var(--ff-ink,#17312f); text-align:right; font-size:.75rem; word-break:break-word; }
.ffsa-summary-list { padding:1rem 1.1rem 1.15rem; }

.ffsa-size-reference {
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:.7rem;
	margin:1rem 0 1.6rem;
}
.ffsa-size-reference__row {
	display:grid;
	padding:.9rem;
	border:1px solid #e0ddd5;
	border-radius:11px;
	background:#fff;
}
.ffsa-size-reference__row strong { color:var(--ff-brand,#184f4b); font-family:var(--ff-serif,Georgia,serif); font-size:1rem; }
.ffsa-size-reference__row span { display:block; margin-top:.12rem; color:var(--ff-accent,#b94f32); font-size:.7rem; font-weight:800; }
.ffsa-size-reference__row p { margin:.4rem 0 0; color:var(--ff-muted,#667472); font-size:.7rem; line-height:1.5; }
.ffsa-related-links { display:flex; flex-wrap:wrap; gap:.35rem .55rem; align-items:center; }
.ffsa-related-links span { color:#9aa5a1; }

@media (max-width:760px) {
	.ffsa-plan-body { grid-template-columns:1fr; }
	.ffsa-edge-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.ffsa-size-reference { grid-template-columns:1fr; }
	.ffsa-visual { min-height:230px; }
}
@media (max-width:480px) {
	.ffsa-edge-grid { grid-template-columns:1fr; }
	.ffsa-visual { min-height:205px; }
	.ffsa-plan-list > div,
	.ffsa-summary-list > div { display:grid; gap:.2rem; }
	.ffsa-plan-list strong,
	.ffsa-summary-list strong { text-align:left; }
}
