/* Source-owned spec catalogue projection. Replace with shared catalogue UI after monorepo integration. */
.sp22-lineage{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1.3fr) auto minmax(0,1.3fr);gap:16px;align-items:center;padding:22px 0;margin:24px 0;border-block:1px solid #d4ddd3;text-align:left}
.sp22-lineage a{display:flex;flex-direction:column;gap:7px;min-width:0;color:inherit;text-decoration:none}
.sp22-lineage small{font:9px/1.5 SourcePlexMono,ui-monospace,monospace;letter-spacing:.04em;color:#68765f}
.sp22-lineage strong{font-weight:500;font-size:clamp(15px,2vw,22px);line-height:1.2;letter-spacing:-.03em;color:#253d2d}
.sp22-lineage span{font-size:12px;line-height:1.5;color:#65705f}
.sp22-lineage i{font-size:19px;font-style:normal;color:#83967e}
.sp22-lineage a:hover strong{color:#608048}
.sp22-lineage a:focus-visible,.sp22-main a:focus-visible,.sp22-invitation a:focus-visible{outline:3px solid #a98339;outline-offset:5px;border-radius:3px}
.sp22-lineage-compact{gap:12px;padding:15px 0;margin:0 0 20px}
.sp22-lineage-compact small{font-size:8px}.sp22-lineage-compact strong{font-size:16px}.sp22-lineage-compact span{font-size:11px}
.sp22-invitation{padding-block:68px;border-block:1px solid #d4ddd3;display:grid;grid-template-columns:minmax(260px,.9fr) minmax(0,1.6fr);gap:20px 42px;align-items:center}
.sp22-invitation header>h2{font-size:clamp(27px,3vw,40px);font-weight:500;letter-spacing:-.045em;line-height:1.15;margin:14px 0}
.sp22-invitation header>p{font-size:14px;line-height:1.7;max-width:520px;color:#63705e}
.sp22-invitation .sp22-action{grid-column:2;font-size:13px;text-decoration:none;color:#415d35;border-bottom:1px solid #abbca1;justify-self:start;padding-bottom:5px}
.sp22-main .pe-page-hero{padding-bottom:35px}.sp22-jumps{display:flex;flex-wrap:wrap;gap:12px 24px;margin:26px 0 12px}
.sp22-jumps>a{font-size:13px;color:#425d36;text-underline-offset:4px}
.sp22-catalogue-section{padding-block:34px 52px;scroll-margin-top:110px}.sp22-catalogue-section>header{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:22px}
.sp22-catalogue-section h2{font-size:30px;font-weight:500;letter-spacing:-.035em}.sp22-catalogue-section>header>span{font-size:12px;color:#68745f}
.sp22-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.sp22-card{display:flex;flex-direction:column;align-items:start;gap:12px;min-width:0;padding:25px;border:1px solid #d1dccc;border-top:3px solid #738f5e;border-radius:9px;background:#f8faf4;color:#243d2c;text-decoration:none;transition:border-color .15s,background .15s}
.sp22-card:hover{border-color:#749365;background:#f0f5e9}.sp22-card>span{font:9px/1.5 SourcePlexMono,ui-monospace,monospace;letter-spacing:.06em;text-transform:uppercase;color:#6c825e}
.sp22-card h3,.sp22-card h4{font-size:23px;font-weight:500;line-height:1.2;letter-spacing:-.035em;margin:0}.sp22-card p{font-size:13px;line-height:1.65;color:#616d59;margin:0}
.sp22-card code{font-size:10px;line-height:1.6;word-break:break-word;margin-top:auto;color:#708163}.sp22-card>b{font-size:11px;font-weight:500;color:#446039;margin-top:5px}
.sp22-package-name{display:block;font:13px/1.6 SourcePlexMono,ui-monospace,monospace;overflow-wrap:anywhere;margin-top:24px;color:#527140}.sp22-source-path{font-size:12px;overflow-wrap:anywhere;color:#75816b}
.sp22-relations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;padding-block:50px}
.sp22-relations h2,.sp22-consumers h2,.sp22-source h2,.sp22-next h2,.sp22-boundary h2{font-size:28px;font-weight:500;letter-spacing:-.035em;line-height:1.2;margin:0 0 20px}
.sp22-relations ul,.sp22-source ul{padding:0;list-style:none;margin:0}.sp22-relations li{display:flex;flex-direction:column;gap:7px;padding:17px 0;border-bottom:1px solid #d9e0d4}
.sp22-relations li>a{font-size:17px;color:#304c26;text-underline-offset:4px}.sp22-relations li>span{font-size:12px;color:#617750}.sp22-relations li>small{font-size:10px;line-height:1.6;color:#7c846f}.sp22-relations li>p{font-size:12px;line-height:1.65;color:#6d775f;margin:0}
.sp22-consumers,.sp22-source,.sp22-next,.sp22-boundary{padding-block:44px;border-top:1px solid #d4ddd0}.sp22-consumers>p,.sp22-source>p,.sp22-boundary p{max-width:850px;font-size:14px;line-height:1.75;color:#627059}
.sp22-package-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:0;list-style:none}.sp22-package-list>li{padding:18px;border:1px solid #d4ddd0;border-radius:7px;min-width:0}
.sp22-package-list a{font-size:12px;line-height:1.6;color:#365328;overflow-wrap:anywhere}.sp22-package-list code{display:block;font-size:10px;line-height:1.6;overflow-wrap:anywhere;color:#77836a;margin-top:10px}.sp22-package-list p{font-size:12px;line-height:1.65;color:#63705b}
.sp22-source li{margin:13px 0;font-size:12px;overflow-wrap:anywhere}.sp22-source a,.sp22-next a,.sp22-boundary>a{color:#405e33;text-underline-offset:4px}.sp22-next>a{display:inline-block;margin:8px 28px 0 0;font-size:14px}
.sp22-boundary>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}.sp22-boundary h3{font-size:19px;font-weight:500;letter-spacing:-.02em;margin-top:0}
.ts22-owner{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px;padding:13px 17px;border:1px solid var(--ts-line,#cbd3c8);border-radius:7px;background:color-mix(in srgb,var(--ts-paper,#f6f7f2) 75%,transparent);color:var(--ts-ink,#24372f)}
.ts22-owner>a{font-size:18px;font-weight:600;letter-spacing:-.04em;color:inherit;text-decoration:none}.ts22-owner>span{font:9px/1.6 SourcePlexMono,ui-monospace,monospace;letter-spacing:.04em;text-transform:uppercase;color:var(--ts-muted,#667267);text-align:right}
.ts20-stack .sp22-lineage{margin:0 0 20px}.ts20-stack-compact .ts22-owner{margin-bottom:12px;padding:10px 14px}.ts20-stack-compact .sp22-lineage{padding:8px 0 14px;margin-bottom:14px}.ts20-stack-compact .sp22-lineage small,.ts20-stack-compact .sp22-lineage span{display:none}.ts20-stack-compact .sp22-lineage strong{font-size:12px;line-height:1.4}
.network-os .ts22-owner{background:#122536}.network-os .sp22-lineage{border-color:#35475d}.network-os .sp22-lineage strong{color:#dce8d2}.network-os .sp22-lineage small,.network-os .sp22-lineage span{color:#a4b599}
@media(max-width:1000px){.sp22-grid,.sp22-package-list{grid-template-columns:repeat(2,minmax(0,1fr))}.sp22-invitation{grid-template-columns:1fr;gap:12px}.sp22-invitation .sp22-action{grid-column:1}}
@media(max-width:650px){.sp22-grid,.sp22-package-list,.sp22-relations,.sp22-boundary>div{grid-template-columns:1fr}.sp22-lineage{gap:8px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);padding-block:16px}.sp22-lineage small{font-size:7px}.sp22-lineage strong{font-size:13px;line-height:1.3}.sp22-lineage span{font-size:10px}.sp22-lineage i{font-size:15px}.sp22-lineage-compact span{display:none}.sp22-lineage-compact small{font-size:7px}.sp22-invitation{padding-block:40px}.sp22-card{padding:22px}.sp22-catalogue-section>header{align-items:start;flex-direction:column;gap:4px}.sp22-catalogue-section h2{margin:0}.sp22-relations{gap:30px}.ts22-owner{padding:11px 13px}.ts22-owner>span{font-size:8px}}
@media(prefers-reduced-motion:reduce){.sp22-card{transition:none}}

.sp22-subgroup{margin-top:28px}.sp22-subgroup>h3{font:10px/1.6 SourcePlexMono,ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase;color:#718462;margin:0 0 15px}.sp22-contract-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;padding:18px 22px;margin-top:26px;background:#f4f7ee;border:1px solid #d4dfca;border-radius:7px}.sp22-contract-facts>p{display:flex;flex-direction:column;gap:8px;margin:0;font-size:12px;line-height:1.6;color:#69785c}.sp22-contract-facts strong{font-size:11px;font-weight:500;color:#425c31}@media(max-width:650px){.sp22-contract-facts{grid-template-columns:1fr;gap:17px}}
