.system-architecture{--sa-blue:#236fa5;--sa-violet:#7054a6;--sa-teal:#187c79;--sa-amber:#966321;border:1px solid #cedce5;border-radius:10px;overflow:hidden;background:#fff;box-shadow:0 12px 40px #17384e08}.sa-toolbar{display:flex;justify-content:space-between;align-items:center;padding:24px 28px;background:#f7fafc;gap:20px;border-bottom:1px solid #dce6ed}.sa-toolbar h3{font:600 20px/1.5 'Libre Franklin',sans-serif;margin:5px 0 0}.sa-context{font:11px/1.6 'DM Mono',monospace;color:#526b7e}.sa-controls{display:flex;justify-content:space-between;gap:16px;padding:18px 28px 10px;align-items:center;flex-wrap:wrap}.sa-flow-tabs{display:flex;gap:5px;flex-wrap:wrap;background:#f0f4f7;padding:4px;border-radius:7px}.sa-controls button{min-height:38px;padding:8px 13px;border:1px solid transparent;border-radius:5px;font:500 12px/1.4 'DM Sans',sans-serif;background:transparent;color:#4a6273;cursor:pointer}.sa-flow-tabs button[aria-pressed=true]{background:white;color:#153c53;box-shadow:0 1px 5px #17384e12;border-color:#dce6ed}.sa-controls .sa-motion{border-color:#cedce5;background:white;color:#166997}.sa-legend{display:flex;gap:17px;align-items:center;padding:10px 28px 19px;font-size:11px;color:#526b7e;flex-wrap:wrap}.sa-legend>span{display:flex;gap:7px;align-items:center}.sa-key{width:8px;height:8px;border-radius:2px}.sa-key.blue{background:var(--sa-blue)}.sa-key.violet{background:var(--sa-violet)}.sa-key.teal{background:var(--sa-teal)}.sa-key.amber{background:var(--sa-amber)}.sa-hint{margin-left:auto}.sa-diagram{display:block;width:100%;height:auto;border-block:1px solid #e0e8ee}.sa-boundary-title{font:500 11px 'DM Mono',monospace;letter-spacing:1px;fill:#335368}.sa-boundary-note{font:11px 'DM Sans',sans-serif;fill:#536e80}.sa-layer>rect{stroke-width:1}.sa-layer.blue>rect{fill:#eaf3fb;stroke:#c8deef}.sa-layer.violet>rect{fill:#f0edf8;stroke:#dad1eb}.sa-layer.teal>rect{fill:#eaf5f2;stroke:#c9e1da}.sa-layer.amber>rect{fill:#faf3e8;stroke:#eaddc4}.sa-layer-index{font:500 12px 'DM Mono',monospace;fill:#526b7e}.sa-layer-name{font:500 10px 'DM Mono',monospace;fill:#324e62;letter-spacing:.3px}.sa-component{cursor:pointer;transition:opacity .2s}.sa-component>rect{fill:#fff;stroke:#bcd0df;stroke-width:1.2;filter:drop-shadow(0 2px 2px #1b344a08)}.sa-component.violet>rect{stroke:#c3b5de}.sa-component.teal>rect{stroke:#a5cfc5}.sa-component.amber>rect{stroke:#dbc59d}.sa-component:hover>rect,.sa-component[aria-pressed=true]>rect{stroke:#176e9d;stroke-width:2.5}.sa-component:focus{outline:none}.sa-component:focus-visible>rect{stroke:#111820;stroke-width:3;stroke-dasharray:5 3}.sa-component-title{font:600 13px 'DM Sans',sans-serif;fill:#203d50}.sa-component-sub{font:11px 'DM Sans',sans-serif;fill:#526a7b}.sa-component-icon{stroke:var(--sa-blue);stroke-width:1.3;fill:none}.sa-component.violet .sa-component-icon{stroke:var(--sa-violet)}.sa-component.teal .sa-component-icon{stroke:var(--sa-teal)}.sa-component.amber .sa-component-icon{stroke:var(--sa-amber)}.sa-wire{fill:none;stroke:#78909d;stroke-width:1.4}.sa-edge text{font:9px 'DM Mono',monospace;fill:#42657a;paint-order:stroke;stroke:#f7fafc;stroke-width:4;stroke-linejoin:round}.sa-pulse{fill:none;stroke:#167eb5;stroke-width:2.5;stroke-dasharray:4 80;opacity:0}.sa-animated .sa-pulse{opacity:1;animation:sa-travel 3.5s linear infinite}.sa-muted{opacity:.16}.sa-edge{transition:opacity .2s}.sa-inspector{padding:24px 28px;min-height:144px;border-left:4px solid #2497d4;background:#f7fafc}.sa-inspector h4{font:600 19px/1.5 'Libre Franklin',sans-serif;margin:8px 0}.sa-inspector p{font-size:14px;line-height:1.8;color:#52616c;margin:0;max-width:900px}.sa-contract{display:grid;grid-template-columns:1fr 1fr;gap:24px;border-top:1px solid #d8e4ed;padding-top:15px;margin-top:18px;font-size:12px;line-height:1.7;color:#42657a}.sa-contract b{display:block;font-size:11px;color:#203d50;margin-bottom:5px}.sa-extensions{border-top:1px dashed #bac9d4;padding:20px 28px}.sa-extensions summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:14px;font-weight:600;list-style:none}.sa-extensions summary:before{content:'+';font:20px 'DM Mono',monospace;color:#167eb5}.sa-extensions[open] summary:before{content:'−'}.sa-extensions summary span{margin-right:auto}.sa-extensions summary small{font-size:11px;font-weight:400;color:#526b7e}.sa-extension-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:22px 0}.sa-extension-grid>div{border:1px dashed #93aebf;padding:18px;font-size:13px;line-height:1.6;display:flex;gap:10px}.sa-extension-grid span{color:#167eb5}.sa-extensions p{font-size:12px;line-height:1.8;color:#526b7e}.sa-mobile-map{display:none}.sa-controls button:focus-visible,.sa-extensions summary:focus-visible,.sa-mobile-node:focus-visible{outline:3px solid #2497d4;outline-offset:3px}@keyframes sa-travel{to{stroke-dashoffset:-168}}@media(prefers-reduced-motion:reduce){.sa-animated .sa-pulse{animation:none;stroke-dasharray:8 10}.sa-component,.sa-edge{transition:none}}
@media(max-width:780px){.sa-diagram{display:none}.sa-mobile-map{display:grid;padding:14px;gap:22px;background:#f7fafc}.sa-mobile-layer{position:relative;border:1px solid #ccdce7;background:#eaf3fb;border-radius:7px;padding:16px}.sa-mobile-layer.violet{background:#f0edf8;border-color:#dad1eb}.sa-mobile-layer.teal{background:#eaf5f2;border-color:#c9e1da}.sa-mobile-layer.amber{background:#faf3e8;border-color:#eaddc4}.sa-mobile-layer h4{font:500 12px/1.6 'DM Mono',monospace;margin:0;color:#324e62}.sa-mobile-layer h4 span{margin-right:8px}.sa-mobile-layer>p{font-size:12px;color:#526b7e;margin:6px 0 14px}.sa-mobile-node{display:grid;grid-template-columns:1fr 18px;width:100%;text-align:left;border:1px solid #c5d6e1;background:white;border-radius:5px;padding:13px;margin-top:8px;color:#203d50;cursor:pointer;transition:opacity .2s}.sa-mobile-node strong{font:600 14px/1.5 'DM Sans',sans-serif}.sa-mobile-node span{font-size:12px;line-height:1.8;grid-column:1}.sa-mobile-node b{grid-column:2;grid-row:1/3;align-self:center;color:#167eb5}.sa-mobile-node[aria-pressed=true]{border:2px solid #167eb5}.sa-mobile-arrow{position:absolute;bottom:-23px;left:50%;color:#78909d}.sa-mobile-layer:last-child .sa-mobile-arrow{display:none}.sa-toolbar{padding:20px;display:block}.sa-context{display:block;margin-top:8px}.sa-controls{padding:14px}.sa-legend{padding:5px 15px 14px;gap:12px}.sa-hint{margin:0;width:100%}.sa-inspector{padding:20px}.sa-contract{grid-template-columns:1fr;gap:12px}.sa-extensions{padding:20px}.sa-extensions summary{flex-wrap:wrap;gap:8px}.sa-extensions summary small{width:100%;padding-left:20px}.sa-extension-grid{grid-template-columns:1fr;gap:10px}.sa-motion{display:none}.sa-flow-tabs button{font-size:11px;padding:9px}}
.sa-inline-detail{padding:14px 4px 8px;font-size:13px;line-height:1.8;color:#324e62}
