.product-architecture{padding-block:62px 42px;border-top:1px solid #72877c44;scroll-margin-top:0}.product-architecture-heading{padding-bottom:32px}.product-architecture-heading>.micro{color:#8caa9b;font-size:12px;margin-bottom:20px}.product-architecture-heading h2{font-size:clamp(39px,4.5vw,70px);font-weight:400;line-height:1.08;letter-spacing:-.055em;max-width:1080px}.product-architecture-heading>p:last-child{font-size:18px;line-height:1.5;color:#a1b6aa;margin-top:20px;max-width:950px}.product-architecture .incident-toolbar>.micro{max-width:500px;line-height:1.6}.product-architecture .incident-boundary{max-width:1100px}.product-architecture .incident-notes{border-top:0}.product-architecture .incident-notes h3{font-size:20px;font-weight:400;margin:23px 0 15px}.product-architecture-links{display:flex;flex-wrap:wrap;gap:22px 34px;padding-top:27px;font-size:14px;line-height:1.5}.product-architecture-links a{text-decoration:none}.product-architecture-links a:last-child{margin-left:auto}.product-architecture-links a:hover{color:#ef926d}.detail-architecture-link{font-size:14px;display:inline-flex;gap:35px;align-items:center;text-decoration:none;margin-top:20px;color:#d1e0d6}.detail-architecture-link:hover{color:#ef926d}.detail-architecture-link span{font-size:20px}.product-architecture .incident-notes ol{margin-block:18px}
@media(max-width:760px){.product-architecture{padding-block:44px 32px}.product-architecture-heading{padding-bottom:26px}.product-architecture-heading h2{font-size:clamp(36px,8.6vw,59px)}.product-architecture-heading>p:last-child{font-size:17px;margin-top:19px}.product-architecture-heading>.micro{margin-bottom:17px}.product-architecture .incident-toolbar>.micro{max-width:none}.product-architecture-links{display:grid;gap:21px}.product-architecture-links a:last-child{margin-left:0}.product-architecture .incident-canvas{padding-top:20px}}
.nllm-zone{fill:#192c2820;stroke:#738c8055}.nllm-preparation-zone{stroke-dasharray:4 5}.nllm-zone-title{font-size:22px;fill:#a7c4b5!important}.nllm-zone-sub,.nllm-reference-label,.nllm-review-label,.nllm-qualifier{font-size:14px;fill:#a7bbad!important}.nllm-reference .incident-route{stroke-dasharray:3 5;opacity:.7}.nllm-reference-label{fill:#81c9c5!important}.nllm-review-label{fill:#c49b7c!important}.nllm-review .incident-terminal-name{font-size:22px}.nllm-architecture .incident-experience.is-enhanced .nllm-knowledge-index:not(.on-path){opacity:.7}
@media(max-width:760px){.nllm-svg.incident-narrow .incident-node-sub{font-size:18px}.nllm-svg.incident-narrow .incident-terminal-sub{font-size:17px}.nllm-svg.incident-narrow .nllm-zone-title{font-size:21px}.nllm-svg.incident-narrow :is(.nllm-zone-sub,.nllm-reference-label,.nllm-review-label,.nllm-qualifier){font-size:16px}}
.icore-plane-label{font-size:16px;fill:#95b2a3!important}.icore-path-label{font-size:14px;fill:#afadeb!important}.icore-control-node .incident-glyph{stroke:#afadeb}.icore-optional-node .incident-node-frame{stroke-dasharray:4 4}.icore-svg .flow-evidence .icore-path-label{fill:#81c9c5!important}

.operating-zone{fill:#192c2820;stroke:#738c8060}.operating-zone-label{font-size:17px;fill:#a7c4b5!important}.operating-zone-sub{font-size:14px;fill:#9bb5a8!important}.operating-path-label{font-size:14px;fill:#afadeb!important}.operating-svg .flow-evidence .operating-path-label{fill:#81c9c5!important}.private-5g .incident-experience.is-enhanced .incident-node:not(.on-path){opacity:.45}.operating-node[data-node="authorize"] .incident-node-frame{stroke:#ef926d80;stroke-dasharray:5 3}.operating-node[data-node="tools"] .incident-node-frame{stroke:#ef926d80}.operating-node[data-node="context"] .incident-node-frame{stroke:#81c9c5a0}.operating-node[data-node="command"] .incident-node-frame{fill:#20302a;stroke:#a7c4b580}
@media(max-width:760px){.operating-svg .incident-node-name{font-size:20px}.operating-svg .incident-node-sub{font-size:14px}.operating-svg .incident-number{font-size:12px}.operating-zone-label{font-size:18px}.operating-zone-sub{font-size:15px}.operating-path-label{font-size:15px}}
/* Keep the user-plane connection visible while session control is explained. */
.private-5g .incident-experience[data-scenario="onboard"] .incident-flow[data-flow="radio-upf"]{display:block;opacity:.65}
.private-5g .incident-experience[data-scenario="onboard"]:has(.incident-node[data-node="upf"].is-current) .incident-flow[data-flow="radio-upf"] :is(.incident-token,.incident-trail){opacity:1;animation:incident-scan 1.7s linear infinite}
.private-5g .incident-experience[data-scenario="onboard"]:not(:has(.incident-node[data-node="upf"].is-current,.incident-node[data-node="upf"].is-done)) .incident-flow[data-flow="device-radio"] :is(.incident-route,.incident-token,.incident-trail){stroke:#afadeb}
.control-label-mobility{display:none}.private-5g .incident-experience[data-scenario="mobility"] .control-label-default{display:none}.private-5g .incident-experience[data-scenario="mobility"] .control-label-mobility{display:block}
.private-5g .incident-experience[data-scenario="mobility"]:has(.incident-node[data-node="radioB"].is-current,.incident-node[data-node="radioB"].is-done) .incident-flow[data-flow="device-radioB"]{display:block;opacity:1}
.private-5g .incident-experience[data-scenario="mobility"]:has(.incident-node[data-node="radioB"].is-current) .incident-flow[data-flow="device-radioB"] :is(.incident-token,.incident-trail){opacity:1;animation:incident-scan 1.7s linear infinite}
.private-5g .incident-experience[data-scenario="mobility"]:has(.incident-node[data-node="radioB"].is-current,.incident-node[data-node="radioB"].is-done) .incident-flow[data-flow="device-radio"]{opacity:.2}
.private-5g .incident-experience[data-scenario="onboard"]:not(:has(.incident-node[data-node="upf"].is-current,.incident-node[data-node="upf"].is-done)) .incident-flow[data-flow="device-radio"] .incident-route{stroke-dasharray:5 5;marker-end:url(#private-5g-desktop-recommendation-arrow)}
@media(max-width:760px){.private-5g .incident-experience[data-scenario="onboard"]:not(:has(.incident-node[data-node="upf"].is-current,.incident-node[data-node="upf"].is-done)) .incident-flow[data-flow="device-radio"] .incident-route{marker-end:url(#private-5g-mobile-recommendation-arrow)}}
@media(prefers-reduced-motion:reduce){.private-5g .incident-experience[data-scenario="mobility"] .incident-flow[data-flow="device-radioB"]{display:block;opacity:1}}
/* gFabric keeps accounting separate from requests and authorized execution. */
.gfabric-reference{fill:none;stroke:#81c9c5;stroke-dasharray:2 4;opacity:.6}.gfabric-selected{font-size:17px;fill:#9bb5a8!important}.gfabric-selection-dot{opacity:0}.gfabric-architecture .incident-flow[data-flow$="-usage"] .incident-route{stroke-dasharray:2 6}.gfabric-architecture .operating-node[data-node="blocked"] .incident-node-frame{fill:#27241f;stroke:#c49b7c80}.gfabric-architecture .incident-experience:is([data-scenario="boundary"],[data-scenario="agent"]) :is(.gfabric-destinations,.gfabric-inputs){opacity:.22}
.gfabric-architecture .incident-experience[data-scenario="model"]:has([data-node="infer"]:is(.is-current,.is-done)) .gfabric-selected,.gfabric-architecture .incident-experience[data-scenario="placement"]:has([data-node="plan"]:is(.is-current,.is-done)) .gfabric-selected{fill:#81c9c5!important;animation:incident-glow 3.4s ease-in-out infinite}
.gfabric-architecture .incident-experience[data-scenario="model"]:has([data-node="infer"]:is(.is-current,.is-done)) .gfabric-selection-dot,.gfabric-architecture .incident-experience[data-scenario="placement"]:has([data-node="plan"]:is(.is-current,.is-done)) .gfabric-selection-dot{opacity:1}
@media(prefers-reduced-motion:reduce){.gfabric-architecture .incident-experience:is([data-scenario="model"],[data-scenario="placement"]) .gfabric-selected{fill:#81c9c5!important}.gfabric-architecture .incident-experience:is([data-scenario="model"],[data-scenario="placement"]) .gfabric-selection-dot{opacity:1}}
