/* Component technical pages use a shared frame and content-specific structures. */
.cp-page{--cp-width:1240px;--cp-edge:max(28px,calc((100vw - var(--cp-width))/2));background:var(--sheet);color:var(--ink);min-width:0}
.cp-page .cp-hero{padding:34px var(--cp-edge) 42px;border-bottom:1px solid var(--line);background:var(--paper)}
.cp-page .cp-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:12px;color:var(--stone);font-size:12px;line-height:1.5;margin-bottom:34px}
.cp-page .cp-breadcrumb a{flex-shrink:0;white-space:nowrap}
.cp-page .cp-breadcrumb a:hover{color:var(--accent)}
.cp-page .cp-kicker{color:var(--accent);font:10px/1.6 var(--mono);letter-spacing:.1em;text-transform:uppercase;margin:0 0 16px}
.cp-page .cp-title-row{max-width:1050px}
.cp-page h1{font:400 clamp(37px,4.1vw,61px)/1.1 var(--heading);letter-spacing:-.035em;text-wrap:balance;max-width:19em;white-space:normal}
.cp-page .cp-title-row>.es-launch-status{display:inline-block;margin:18px 0 0}
.cp-page .cp-hero-description{max-width:900px;margin-top:24px}
.cp-page .cp-hero-description p{font-size:19px;line-height:1.75}
.cp-page .cp-back-product{display:inline-flex;gap:22px;align-items:center;padding:13px 0 0;margin-top:14px;font-size:14px;color:var(--accent);min-height:44px}
.cp-page .cp-layout{display:grid;grid-template-columns:205px minmax(0,1fr);gap:48px;padding:40px var(--cp-edge) 70px;align-items:start}
.cp-page .cp-navigation{position:sticky;top:calc(var(--header) + 25px);max-height:calc(100vh - var(--header) - 50px);overflow-y:auto;padding-right:10px}
.cp-page .cp-navigation>p{font:10px/1.5 var(--mono);color:var(--stone);letter-spacing:.08em;text-transform:uppercase;margin:0 0 15px}
.cp-page .cp-navigation nav{display:flex;flex-direction:column;gap:4px}
.cp-page .cp-navigation a{border-left:2px solid var(--line);padding:8px 12px;font-size:13px;line-height:1.6;color:var(--ink2)}
.cp-page .cp-navigation a:hover,.cp-page .cp-navigation a:focus-visible{border-color:var(--accent);color:var(--accent);background:var(--wash);text-decoration:none}
.cp-page .cp-content{min-width:0}
.cp-page .cp-section,.cp-page .cp-related{padding:38px 0;border-top:1px solid var(--line);scroll-margin-top:calc(var(--header) + 25px);min-width:0}
.cp-page .cp-content>.cp-section:first-child{border-top:0;padding-top:0}
.cp-page h2{font:400 clamp(27px,2.5vw,35px)/1.2 var(--heading);letter-spacing:-.025em;margin:0 0 24px;max-width:26em;white-space:normal;text-wrap:balance}
.cp-page h3{font-size:20px;line-height:1.35;font-weight:550;letter-spacing:-.015em;margin:0 0 12px}
.cp-page .cp-section-intro{margin:0 0 28px;max-width:53em}
.cp-page p,.cp-page dd{font-size:16px;line-height:1.8}
.cp-page .cp-small-label{font:10px/1.6 var(--mono);letter-spacing:.055em;color:var(--accent);margin-bottom:13px}
.cp-page .cp-note{font-size:14px;line-height:1.8;color:var(--stone);margin:25px 0 0;padding-left:16px;border-left:2px solid var(--line);max-width:64em}
.cp-page .cp-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.cp-page .cp-choices article{border-top:2px solid var(--accent);padding-top:20px;min-width:0}
.cp-page .cp-choices h3{font-size:22px}
.cp-page .cp-choices p:not(.cp-small-label){font-size:15px;line-height:1.8}
.cp-page .cp-architecture{margin-top:6px;background:var(--paper);border:1px solid var(--line)}
.cp-page .cp-architecture-track{display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1.12fr) 28px minmax(0,1.12fr);align-items:stretch;gap:0}
.cp-page .cp-architecture-node{padding:22px 18px;min-width:0;display:flex;flex-direction:column;justify-content:center}
.cp-page .cp-architecture-runtime{background:var(--wash);box-shadow:inset 0 3px 0 var(--accent)}
.cp-page .cp-architecture h3{font-size:20px;line-height:1.45}
.cp-page .cp-architecture-node p:not(.cp-small-label){font-size:14px;line-height:1.75}
.cp-page .cp-architecture figcaption{border-top:1px solid var(--line);font-size:12px;line-height:1.7;color:var(--stone);padding:15px 25px}
.cp-page .cp-table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;margin-top:6px}
.cp-page table{width:100%;min-width:630px;border-collapse:separate;border-spacing:0;font-size:14px;line-height:1.7;text-align:left}
.cp-page caption{text-align:left;color:var(--stone);font-size:13px;line-height:1.7;padding:0 0 15px;caption-side:top}
.cp-page caption .es-launch-status{display:inline-block;margin:0 0 0 9px;vertical-align:baseline}
.cp-page th,.cp-page td{padding:16px;vertical-align:top;border-bottom:1px solid var(--line);overflow-wrap:break-word}
.cp-page thead th{background:var(--wash);color:var(--accent);font-weight:550;border-top:1px solid var(--line)}
.cp-page tbody th{font-weight:550;color:var(--ink);background:var(--sheet);width:21%;min-width:145px}
.cp-page tbody td{color:var(--ink2)}
.cp-page tbody tr:nth-child(even) td,.cp-page tbody tr:nth-child(even) th{background:var(--paper)}
.cp-page-edge #hardware table{min-width:760px}
.cp-page-edge #hardware tbody th{width:19%;min-width:130px}
.cp-page-edge #hardware td{width:27%}
.cp-page .cp-sequence{list-style:none;margin:0;padding:0}
.cp-page .cp-sequence li{display:grid;grid-template-columns:42px minmax(0,1fr);gap:22px;position:relative;padding-bottom:30px}
.cp-page .cp-sequence li:last-child{padding-bottom:0}
.cp-page .cp-step-number{font:11px/1.6 var(--mono);color:var(--accent);padding-top:5px;border-top:2px solid var(--accent);display:block}
.cp-page .cp-sequence li:not(:last-child):after{content:'';position:absolute;left:20px;top:34px;bottom:10px;border-left:1px solid var(--line)}
.cp-page .cp-sequence p{max-width:53em}
.cp-page .cp-intake{display:grid;grid-template-columns:1fr 1fr;gap:35px}
.cp-page .cp-intake>div{padding:24px;background:var(--paper);border-top:2px solid var(--line)}
.cp-page .cp-intake>div:last-child{background:var(--wash);border-color:var(--accent)}
.cp-page .cp-intake h3{font-size:21px}
.cp-page .cp-intake ul{list-style:none;padding:0;margin:20px 0 0}
.cp-page .cp-intake li{padding:11px 0;border-top:1px solid var(--line);font-size:14px;line-height:1.75;color:var(--ink2)}
.cp-page .cp-link{display:flex;align-items:baseline;justify-content:space-between;gap:20px;color:var(--accent);font-size:16px;line-height:1.55;padding:10px 0;min-height:44px}
.cp-page .cp-link>span[aria-hidden]{flex-shrink:0}
.cp-page .cp-section-action{margin-top:23px;max-width:420px;border-top:1px solid var(--line)}
.cp-page .cp-relationships article{display:grid;grid-template-columns:1fr 1.6fr;gap:35px;padding:25px 0;border-top:1px solid var(--line)}
.cp-page .cp-relationships article:first-child{padding-top:0;border-top:0}
.cp-page .cp-relationships article:last-child{padding-bottom:0}
.cp-page .cp-relationships h3{font-size:23px}
.cp-page .cp-pipeline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;list-style:none;padding:0;margin:30px 0 0}
.cp-page .cp-pipeline li{position:relative;padding-top:0}
.cp-page .cp-pipeline .cp-step-number{margin-bottom:20px}
.cp-page .cp-pipeline h3{font-size:20px}
.cp-page .cp-pipeline p{font-size:15px;line-height:1.8}
.cp-page .cp-definitions>div{display:grid;grid-template-columns:1fr 2fr;gap:32px;padding:24px 0;border-top:1px solid var(--line)}
.cp-page .cp-definitions>div:first-child{padding-top:0;border-top:0}
.cp-page .cp-definitions>div:last-child{padding-bottom:0}
.cp-page .cp-definitions dt{font-size:19px;line-height:1.5;color:var(--ink);font-weight:550}
.cp-page .cp-task-record{background:var(--paper);border:1px solid var(--line);border-top:3px solid var(--accent);padding:25px}
.cp-page .cp-task-record>p{margin-bottom:23px}
.cp-page .cp-task-record dl{display:grid;grid-template-columns:1fr 1fr;gap:24px 32px}
.cp-page .cp-task-record dl>div{border-top:1px solid var(--line);padding-top:20px}
.cp-page .cp-task-record dt{font-size:18px;font-weight:550;color:var(--ink);line-height:1.45;margin-bottom:10px}
.cp-page .cp-task-record dd{font-size:15px}
.cp-page .cp-related{padding:32px;background:var(--paper);border-top:2px solid var(--accent);margin-top:20px}
.cp-page .cp-related h2{font-size:28px}
.cp-page .cp-related article{padding:15px 0;border-top:1px solid var(--line)}
.cp-page .cp-related article:last-child{padding-bottom:0}
.cp-page .cp-related article p{font-size:14px;line-height:1.75}
@media(min-width:1600px){.cp-page{--cp-edge:max(40px,calc((100vw - 1320px)/2))}.cp-page .cp-layout{grid-template-columns:215px minmax(0,1fr);gap:60px}}
@media(max-width:1100px){.cp-page .cp-layout{grid-template-columns:175px minmax(0,1fr);gap:30px}.cp-page .cp-choices{grid-template-columns:1fr}.cp-page .cp-choices article{display:grid;grid-template-columns:1fr 1.6fr;gap:0 28px}.cp-page .cp-choices .cp-small-label{grid-column:1}.cp-page .cp-choices h3{grid-column:1}.cp-page .cp-choices p:not(.cp-small-label){grid-column:2;grid-row:1/span 2}.cp-page .cp-pipeline{grid-template-columns:1fr 1fr}.cp-page .cp-intake{gap:22px}.cp-page .cp-intake>div{padding:20px}}
@media(max-width:760px){.cp-page{--cp-edge:22px}.cp-page .cp-hero{padding-top:25px;padding-bottom:33px}.cp-page .cp-breadcrumb{margin-bottom:25px;font-size:11px}.cp-page h1{font-size:36px;line-height:1.12;max-width:20em}.cp-page .cp-hero-description p{font-size:17px;line-height:1.8}.cp-page .cp-layout{display:block;padding-top:24px;padding-bottom:45px}.cp-page .cp-navigation{position:static;max-height:none;padding:0 0 20px;margin-bottom:26px;border-bottom:1px solid var(--line);overflow:visible}.cp-page .cp-navigation>p{display:none}.cp-page .cp-navigation nav{flex-direction:row;gap:10px;overflow-x:auto;scrollbar-width:thin;padding:2px 0 9px}.cp-page .cp-navigation a{flex-shrink:0;max-width:245px;font-size:12px;line-height:1.55;border:1px solid var(--line);padding:9px 12px}.cp-page .cp-section{padding:30px 0}.cp-page h2{font-size:28px;line-height:1.25;margin-bottom:22px}.cp-page h3{font-size:19px}.cp-page p,.cp-page dd{font-size:16px;line-height:1.8}.cp-page .cp-choices article{display:block;padding-top:20px}.cp-page .cp-choices h3{font-size:22px}.cp-page .cp-architecture-node{padding:20px}.cp-page .cp-architecture h3{font-size:18px}.cp-page .cp-architecture figcaption{padding:14px 20px}.cp-page table{font-size:13px;line-height:1.7}.cp-page th,.cp-page td{padding:14px}.cp-page tbody th{position:sticky;left:0;z-index:1;box-shadow:1px 0 0 var(--line)}.cp-page .cp-note{font-size:13px}.cp-page .cp-sequence li{grid-template-columns:32px minmax(0,1fr);gap:17px;padding-bottom:27px}.cp-page .cp-sequence li:not(:last-child):after{left:15px}.cp-page .cp-intake{grid-template-columns:1fr}.cp-page .cp-intake>div{padding:22px}.cp-page .cp-relationships article{display:block;padding:22px 0}.cp-page .cp-relationships h3{margin-bottom:15px;font-size:22px}.cp-page .cp-pipeline{grid-template-columns:1fr 1fr;gap:24px 22px}.cp-page .cp-pipeline h3{font-size:19px}.cp-page .cp-pipeline p{font-size:14px}.cp-page .cp-definitions>div{display:block;padding:22px 0}.cp-page .cp-definitions dt{margin-bottom:13px}.cp-page .cp-task-record{padding:22px}.cp-page .cp-task-record dl{grid-template-columns:1fr}.cp-page .cp-related{padding:24px;margin-top:10px}.cp-page .cp-related h2{font-size:26px}.cp-page .cp-related .cp-link{font-size:15px}}
@media(max-width:430px){.cp-page .cp-architecture-track{display:block}.cp-page .cp-pipeline{grid-template-columns:1fr}.cp-page .cp-pipeline li{display:grid;grid-template-columns:27px minmax(0,1fr);gap:0 17px}.cp-page .cp-pipeline .cp-step-number{grid-column:1;grid-row:1/span 2}.cp-page .cp-pipeline h3,.cp-page .cp-pipeline p{grid-column:2}}
@media print{.cp-page .cp-navigation,.cp-page .cp-breadcrumb,.cp-page .cp-back-product{display:none}.cp-page .cp-hero,.cp-page .cp-layout{padding:18px 0}.cp-page .cp-layout{display:block}.cp-page .cp-section{break-inside:auto}.cp-page .cp-table-wrap{overflow:visible}.cp-page table,.cp-page-edge #hardware table{min-width:0;font-size:10px}.cp-page th,.cp-page td{padding:8px}.cp-page tbody th{position:static}.cp-page .cp-related{break-inside:avoid}}


/* Field/control ↔ Edge ↔ context and task consumers: connections, not a compulsory product chain. */
.cp-page .cp-architecture-consumers{display:grid;align-content:center;border-left:1px solid var(--line)}
.cp-page .cp-architecture-consumers .cp-architecture-node+.cp-architecture-node{border-top:1px solid var(--line)}
.cp-page .cp-flow-arrow{display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:24px;background:var(--sheet)}
@media(max-width:1100px){.cp-page .cp-architecture-track{display:grid;grid-template-columns:minmax(0,1fr)}.cp-page .cp-flow-arrow{height:34px;font-size:0}.cp-page .cp-flow-arrow:after{content:'↕';font-size:24px}.cp-page .cp-architecture-consumers{grid-template-columns:1fr 1fr;border-left:0;border-top:1px solid var(--line)}.cp-page .cp-architecture-consumers .cp-architecture-node+.cp-architecture-node{border-top:0;border-left:1px solid var(--line)}}
@media(max-width:430px){.cp-page .cp-architecture-consumers{grid-template-columns:1fr}.cp-page .cp-architecture-consumers .cp-architecture-node+.cp-architecture-node{border-left:0;border-top:1px solid var(--line)}}

.cp-page .cp-anchor-alias{display:block;height:0;scroll-margin-top:calc(var(--header) + 25px)}

.cp-page .cp-navigation a{text-wrap:balance}
