/* Complementary roles, not a chain of command. */
.impl-model{container:implementation-model / inline-size;margin:2rem 0 2.8rem;border:1px solid #d9dfde;border-radius:14px;background:#fffdf9;color:#30465d;overflow:hidden;box-shadow:0 8px 28px #293d5510}
.impl-model .impl-model-header{padding:32px 34px 25px;border-bottom:1px solid #e1e4df}
.impl-model-header:before{content:'';display:block;width:56px;height:3px;background:#a67156;margin-bottom:18px}
.reader-shell .article-body .impl-model .impl-model-header h2{color:#253d54;font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.25;margin:5px 0 13px;border:0;padding:0;letter-spacing:-.025em}
.reader-shell .article-body .impl-model .impl-model-header p{color:#536275;font-size:.92rem;line-height:1.7;margin:0;max-width:65ch}
.reader-shell .article-body .impl-model .impl-model-header .impl-model-kicker{color:#75678f;font-size:.67rem;font-weight:750;line-height:1.5;letter-spacing:.05em}
.impl-model-system{position:relative;display:grid;gap:23px;margin:28px 26px 27px;padding-left:25px}
.impl-model-rail{position:absolute;left:8px;top:78px;bottom:90px;border-left:1.5px dashed #b3bdc4}
.impl-model-band{--model-accent:#3f6686;--model-pale:#edf2f5;position:relative;display:grid;grid-template-columns:minmax(175px,.36fr) minmax(0,1fr);gap:25px;align-items:center;min-height:158px;background:var(--model-pale);border:1px solid #dbe1e3;border-left:3px solid var(--model-accent);border-radius:8px;padding:25px 26px}
.impl-model-band:before{content:'';position:absolute;left:-22px;top:calc(50% - 5px);width:8px;height:8px;border:1.5px solid var(--model-accent);border-radius:50%;background:#fffdf9}
.impl-model-band:after{content:'';position:absolute;left:-14px;top:50%;width:11px;border-top:1.5px dashed #b3bdc4}
.impl-model-regional{--model-accent:#75678f;--model-pale:#f1eef5}.impl-model-support{--model-accent:#a67156;--model-pale:#f7efe8}
.impl-model-role{display:flex;flex-direction:column;align-items:flex-start;gap:14px;align-self:start;min-width:0}
.impl-model-icon{width:36px;height:36px;color:var(--model-accent);flex-shrink:0}
.reader-shell .article-body .impl-model .impl-model-role h3{font-size:1.01rem;line-height:1.45;font-weight:750;margin:0;color:#30465d;word-break:normal;overflow-wrap:normal;hyphens:none}
.impl-model-content{min-width:0;border-left:1px solid #d6dde0;padding-left:25px}
.reader-shell .article-body .impl-model .impl-model-tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:0;margin:0 0 17px;list-style:none}
.reader-shell .article-body .impl-model .impl-model-tags li{position:relative;padding:0;margin:0;color:#374f65;font-size:.84rem;font-weight:750;line-height:1.7}
.impl-model-tags li:not(:last-child):after{content:'';position:absolute;width:3px;height:3px;border-radius:50%;background:#a6b0ba;right:-9px;top:calc(50% - 1px)}
.reader-shell .article-body .impl-model .impl-model-content>p{font-size:.84rem;line-height:1.75;color:#4e6174;margin:0}
.reader-shell .article-body .impl-model .impl-model-content .impl-model-organization{color:#384c62;font-size:1rem;font-weight:750;line-height:1.3;margin-bottom:14px}
.impl-model-support-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.impl-model-support-actions details{min-width:0;background:#fffdf9;border:1px solid #d8d7d4;border-radius:5px;align-self:start}
.impl-model-support-actions summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 11px;color:#46556a;cursor:pointer;font-size:.76rem;font-weight:750;line-height:1.55;list-style:none}
.impl-model-support-actions summary::-webkit-details-marker{display:none}
.impl-model-toggle{position:relative;width:10px;height:10px;flex-shrink:0}.impl-model-toggle:before,.impl-model-toggle:after{content:'';position:absolute;background:#876f62}.impl-model-toggle:before{width:10px;height:1px;left:0;top:5px}.impl-model-toggle:after{width:1px;height:10px;left:5px;top:0}.impl-model-support-actions details[open] .impl-model-toggle:after{display:none}
.reader-shell .article-body .impl-model .impl-model-support-actions p{font-size:.74rem;line-height:1.7;margin:0;padding:0 11px 13px;color:#4d5e70}
.reader-shell .article-body .impl-model .impl-model-content .impl-model-support-hint{font-size:.69rem;color:#6b6c73;margin-top:10px}
.impl-model-support-actions summary:hover{background:#f6f1eb}.impl-model a:focus-visible,.impl-model summary:focus-visible{outline:3px solid #b66e32;outline-offset:4px}
.impl-model-message{display:grid;gap:13px;padding:25px 30px;margin:0 26px 28px 51px;border:1px solid #e0e5e4;border-radius:8px;background:#f1f3f3}
.reader-shell .article-body .impl-model .impl-model-message p{font-size:clamp(1.04rem,2.15cqi,1.3rem);line-height:1.6;color:#344b63;margin:0;padding-left:18px;border-left:2px solid #cbd3d7;max-width:none}
.impl-model-message p:nth-child(1) strong{color:#3f6686}.impl-model-message p:nth-child(2) strong{color:#75678f}.impl-model-message p:nth-child(3) strong{color:#925e45}
.impl-model-footer{display:flex;justify-content:space-between;align-items:center;gap:25px;background:#f2f2ee;border-top:1px solid #dfe1dc;padding:19px 25px}
.reader-shell .article-body .impl-model .impl-model-footer p{font-size:.77rem;line-height:1.65;margin:0;color:#4e5e70}
.reader-shell .article-body .impl-model .impl-model-footer a{display:inline-flex;align-items:center;gap:12px;color:#3f5f7b;font-size:.75rem;font-weight:750;line-height:1.6;white-space:nowrap;text-decoration:underline;text-underline-offset:4px}
.impl-model-footer a span{font-size:1.2rem}
@container implementation-model (max-width:720px){.impl-model-band{grid-template-columns:150px minmax(0,1fr);padding:22px 20px;gap:19px}.impl-model-content{padding-left:19px}.reader-shell .article-body .impl-model .impl-model-role h3{font-size:.94rem}.reader-shell .article-body .impl-model .impl-model-tags li{font-size:.79rem}.reader-shell .article-body .impl-model .impl-model-content>p{font-size:.79rem}.impl-model-support-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.impl-model-message{padding:23px 25px}.impl-model-footer{flex-wrap:wrap;gap:10px}.impl-model-rail{bottom:115px}}
@container implementation-model (max-width:520px){.impl-model .impl-model-header{padding:26px 22px 22px}.impl-model-system{margin:23px 17px 22px;padding-left:18px;gap:20px}.impl-model-band{grid-template-columns:1fr;padding:21px 18px;gap:17px;min-height:0}.impl-model-role{flex-direction:row;align-items:center;gap:12px}.impl-model-icon{width:29px;height:29px}.reader-shell .article-body .impl-model .impl-model-role h3{font-size:.95rem}.impl-model-content{border-left:0;border-top:1px solid #d6dde0;padding-left:0;padding-top:16px}.reader-shell .article-body .impl-model .impl-model-tags{gap:8px 16px;margin-bottom:14px}.reader-shell .article-body .impl-model .impl-model-tags li{font-size:.79rem}.impl-model-rail{left:5px;top:37px;bottom:270px}.impl-model-band:before{left:-18px;top:31px}.impl-model-band:after{left:-10px;top:36px;width:7px}.impl-model-message{margin:0 17px 23px 35px;padding:21px 17px;gap:15px}.reader-shell .article-body .impl-model .impl-model-message p{font-size:1rem;line-height:1.65;padding-left:12px}.impl-model-footer{padding:18px 22px}.impl-model-support-actions summary{font-size:.79rem;padding:11px}.reader-shell .article-body .impl-model .impl-model-content .impl-model-support-hint{font-size:.69rem}.reader-shell .article-body .impl-model .impl-model-header p{font-size:.87rem}}
@container implementation-model (max-width:280px){.impl-model-support-actions{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.impl-model *{scroll-behavior:auto!important}}
@media print{.impl-model{box-shadow:none;break-inside:auto;border-color:#ccd3d4;background:#fff}.impl-model-band,.impl-model-message{break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact}.impl-model-system{display:block}.impl-model-band{margin-bottom:20px}.impl-model-support-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.impl-model-support-actions details{border:0;background:transparent}.impl-model-support-actions summary{padding:0;cursor:default}.impl-model-toggle,.impl-model-support-actions p,.impl-model-support-hint,.impl-model-footer a{display:none!important}.impl-model-rail{display:none}.impl-model-band:before,.impl-model-band:after{display:none}.impl-model-message{margin-left:26px}.impl-model-footer{display:block}}
