:where(.markstream-angular) button{appearance:none;-webkit-appearance:none;-moz-appearance:none;background:transparent;border:0;font:inherit;color:inherit}.markstream-angular{--border: 214.3 31.8% 91.4%;--background: 0 0% 100%;--foreground: 222.2 84% 4.9%;--secondary: 210 40% 96%;--muted: 210 40% 96%;--muted-foreground: 215.4 16.3% 46.9%;color:hsl(var(--foreground));font:400 16px/1.72 IBM Plex Sans,Segoe UI,sans-serif;word-break:break-word;position:relative;contain:layout;content-visibility:auto;contain-intrinsic-size:800px 600px}.markstream-angular.virtualized{content-visibility:visible;contain-intrinsic-size:auto}.dark .markstream-angular,.markstream-angular.dark{--border: 217.2 32.6% 17.5%;--background: 222.2 84% 4.9%;--foreground: 210 40% 98%;--secondary: 217.2 32.6% 17.5%;--muted: 217.2 32.6% 17.5%;--muted-foreground: 215 20.2% 65.1%}.markstream-angular>:first-child{margin-top:0}.markstream-angular>:last-child{margin-bottom:0}.markstream-angular .node-slot,.markstream-angular .node-content{width:100%}.markstream-angular markstream-angular-blockquote-node,.markstream-angular markstream-angular-paragraph-node,.markstream-angular markstream-angular-image-node{display:flow-root;width:100%}.markstream-angular markstream-angular-nested-renderer,.markstream-angular markstream-angular-node-outlet{display:contents}.markstream-angular .node-placeholder{width:100%;min-height:1rem;margin:.25rem 0;border-radius:.5rem;background-image:linear-gradient(90deg,#94a3b82e,#94a3b80d,#94a3b82e);background-size:200% 100%;animation:node-placeholder-shimmer 1.1s ease-in-out infinite}.markstream-angular .node-spacer{width:100%}.markstream-angular .typewriter-node{opacity:0;animation:typewriter-fade .9s ease-out forwards}.markstream-angular h1,.markstream-angular h2,.markstream-angular h3,.markstream-angular h4,.markstream-angular h5,.markstream-angular h6{margin:1.8rem 0 .8rem;line-height:1.15;font-weight:700;letter-spacing:-.02em}.markstream-angular h1{font-size:clamp(2rem,4vw,2.65rem)}.markstream-angular h2{font-size:clamp(1.55rem,3vw,2rem)}.markstream-angular h3{font-size:1.35rem}.markstream-angular h4{font-size:1.15rem}.markstream-angular p,.markstream-angular ul,.markstream-angular ol,.markstream-angular blockquote,.markstream-angular pre,.markstream-angular table,.markstream-angular details,.markstream-angular dl{margin:1rem 0}.markstream-angular ul,.markstream-angular ol{padding-left:1.45rem}.markstream-angular li+li{margin-top:.35rem}.markstream-angular li>p{margin:.35rem 0}.markstream-angular a{color:#2563eb;text-decoration:underline;text-underline-offset:.18em}.markstream-angular .link-node{color:var(--link-color, #0366d6);text-decoration:none}.markstream-angular .link-node:hover{text-decoration:underline;text-underline-offset:.2rem}.markstream-angular .link-loading{display:inline-flex;align-items:baseline;gap:.375rem}.markstream-angular .link-loading .link-text-wrapper{position:relative;display:inline-flex}.markstream-angular .link-loading .link-text{position:relative;z-index:2}.markstream-angular .underline-anim{position:absolute;left:0;right:0;height:var(--underline-height, 2px);bottom:var(--underline-bottom, -3px);background:currentColor;transform-origin:center center;will-change:transform,opacity;opacity:var(--underline-opacity, .9);transform:scaleX(0);animation:underlineLoop var(--underline-duration, .8s) var(--underline-timing, linear) var(--underline-iteration, infinite)}@keyframes underlineLoop{0%{transform:scaleX(0);opacity:var(--underline-opacity, .9)}75%{transform:scaleX(1);opacity:var(--underline-opacity, .9)}99%{transform:scaleX(1);opacity:var(--underline-opacity, .9)}to{transform:scaleX(0);opacity:0}}.markstream-angular strong{font-weight:700}.markstream-angular em{font-style:italic}.markstream-angular code{padding:.12rem .35rem;border-radius:.42rem;background:#0f172a0f;font:500 .92em/1.5 IBM Plex Mono,SFMono-Regular,Consolas,monospace}.markstream-angular pre{overflow:auto;padding:1rem 1.1rem;border-radius:1rem;background:#0f172a;color:#e2e8f0;box-shadow:inset 0 0 0 1px #94a3b824}.markstream-angular pre code{padding:0;background:transparent;color:inherit}.markstream-angular blockquote,.markstream-angular .blockquote-node{font-weight:500;font-style:italic;border-left:.25rem solid var(--blockquote-border-color, #e2e8f0);quotes:"“" "”" "‘" "’";margin:1.6em 0;padding-left:1em;background:transparent;border-radius:0;color:inherit}.markstream-angular .blockquote-node .markstream-angular,.markstream-angular blockquote .markstream-angular{content-visibility:visible;contain:content;contain-intrinsic-size:0 0}.markstream-angular .blockquote-node>markstream-angular-nested-renderer,.markstream-angular blockquote>markstream-angular-nested-renderer,.markstream-angular .blockquote-node>markstream-angular-node-outlet,.markstream-angular blockquote>markstream-angular-node-outlet{display:block;width:100%}.markstream-angular hr{margin:1.5rem 0;border:0;border-top:1px solid rgba(15,23,42,.12)}.markstream-angular table{width:100%;border-collapse:collapse;overflow:hidden;border-radius:1rem;box-shadow:inset 0 0 0 1px #0f172a14}.markstream-angular th,.markstream-angular td{padding:.7rem .8rem;border:1px solid rgba(15,23,42,.08);text-align:left;vertical-align:top}.markstream-angular th{background:#0f172a0d;font-weight:700}.markstream-angular img{display:block;max-width:100%;height:auto;border-radius:.9rem}.markstream-angular .image-node{margin:2rem 0;text-align:center}.markstream-angular .image-node__inner{position:relative;display:inline-block;width:min(100%,24rem);max-width:24rem}.markstream-angular .image-node__img{display:inline-block;width:100%;max-width:24rem;height:auto;border-radius:.75rem;box-shadow:0 15px 35px #0f172a14}.markstream-angular .image-node__img--svg{box-shadow:none}.markstream-angular details{padding:.85rem 1rem;border-radius:.9rem;border:1px solid rgba(15,23,42,.08);background:#0f172a08}.markstream-angular summary{cursor:pointer;font-weight:700}.markstream-angular dl{display:grid;gap:.45rem}.markstream-angular dt{font-weight:700}.markstream-angular dd{margin:0 0 .45rem 1rem}.markstream-angular input[type=checkbox]{margin-right:.4rem}.markstream-angular mark{padding:.08rem .24rem;border-radius:.3rem;background:#facc1547}.markstream-angular ins,.markstream-angular del{text-decoration-thickness:.08em}body>div[id^=dmermaid-]{position:fixed;top:0;left:0;width:0;height:0;overflow:hidden;pointer-events:none}.markstream-angular .markstream-nested-custom{display:block;margin:1rem 0;padding:.9rem 1rem;border-radius:.9rem;background:#0f172a0a;border:1px solid rgba(15,23,42,.08)}.markstream-angular .markstream-nested-custom--thinking{background:linear-gradient(180deg,#0ea5e914,#ffffffeb);border-color:#0ea5e92e}.markstream-angular .markstream-nested-admonition{margin:1rem 0;padding:1rem 1.1rem;border-radius:1rem;border:1px solid rgba(37,99,235,.14);background:#2563eb0d}.markstream-angular .markstream-nested-admonition__title{margin-bottom:.55rem;font-weight:700}.markstream-angular .markstream-nested-admonition--warning{border-color:#f59e0b3d;background:#f59e0b14}.markstream-angular .markstream-nested-admonition--error,.markstream-angular .markstream-nested-admonition--danger{border-color:#ef444438;background:#ef444412}.markstream-angular .markstream-nested-admonition--tip{border-color:#10b98133;background:#10b98112}.markstream-angular .markstream-nested-reference,.markstream-angular .markstream-nested-footnote-ref{font-family:IBM Plex Mono,SFMono-Regular,Consolas,monospace}.markstream-angular .math-inline-wrapper{position:relative;display:inline-block}.markstream-angular .math-inline{display:inline-block;vertical-align:middle}.markstream-angular .math-inline--hidden{visibility:hidden}.markstream-angular .math-inline__loading{display:inline-flex;align-items:center;justify-content:center;pointer-events:none}.markstream-angular .math-inline__spinner{width:1rem;height:1rem;border-radius:9999px;border:2px solid rgba(94,104,121,.25);border-top-color:#5e6879cc;animation:spin 1s linear infinite}.markstream-angular .math-block,.markstream-angular .markstream-nested-math-block{position:relative;text-align:center;overflow-x:auto;min-height:40px;padding:.5rem}.markstream-angular .math-rendering{opacity:.3;transition:opacity .2s ease}.markstream-angular .markstream-nested-math-block__render .katex-display{margin:0;overflow-x:auto;overflow-y:hidden}.markstream-angular .markstream-angular-mermaid{background:#fffffff5;color:#0f172a}.markstream-angular.dark .markstream-angular-mermaid,.dark .markstream-angular .markstream-angular-mermaid{background:#0f172aeb;color:#e2e8f0}.markstream-angular .markstream-angular-mermaid svg{display:block;max-width:100%;height:auto;margin:0 auto}.markstream-angular .mermaid-block{border:1px solid rgba(148,163,184,.3);border-radius:1rem;background:#fff;color:#0f172a;margin:1.25rem 0;overflow:hidden}.markstream-angular.dark .mermaid-block,.dark .markstream-angular .mermaid-block{background:#0f172a;color:#e2e8f0;border-color:#94a3b866}.markstream-angular .mermaid-modal-overlay{position:fixed;inset:0;z-index:9999;display:flex;flex-direction:column;background:#0009}.markstream-angular .mermaid-modal-panel{position:relative;width:min(64rem,calc(100% - 2rem));margin:2rem auto;border-radius:.75rem;overflow:hidden;background:#fff;color:#0f172a;box-shadow:0 24px 60px #00000038}.markstream-angular .mermaid-modal-panel.is-dark{background:#0f172a;color:#e2e8f0}.markstream-angular .mermaid-modal-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;border-bottom:1px solid rgba(148,163,184,.25)}.markstream-angular .mermaid-modal-title{font-size:.875rem;font-weight:600}.markstream-angular .mermaid-modal-close{font-size:.875rem;padding:.25rem .5rem;border-radius:.375rem;cursor:pointer;opacity:.9}.markstream-angular .mermaid-modal-close:hover{opacity:1;background:#94a3b829}.markstream-angular .mermaid-modal-body{padding:1rem;max-height:80vh;overflow:auto}.markstream-angular .mermaid-modal-content{width:100%;height:100%;display:flex;justify-content:center;transform-origin:center center}.markstream-angular .fullscreen{width:100%;max-height:100%!important;height:100%!important}.markstream-angular .mermaid-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem .9rem;border-bottom:1px solid rgba(148,163,184,.3);background:#f8fafcd9}.markstream-angular.dark .mermaid-header,.dark .markstream-angular .mermaid-header{background:#0f172ad9;border-color:#47556999}.markstream-angular .mermaid-title__text{font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:inherit}.markstream-angular .mermaid-actions{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;justify-content:flex-end}.markstream-angular .mermaid-btn{border:1px solid rgba(148,163,184,.4);background:transparent;color:inherit;font-size:.75rem;padding:.2rem .65rem;border-radius:.35rem;cursor:pointer;transition:background .2s ease,color .2s ease,opacity .2s ease}.markstream-angular .mermaid-btn:hover:not(:disabled){background:#3b82f626;color:#1d4ed8}.markstream-angular.dark .mermaid-btn:hover:not(:disabled),.dark .markstream-angular .mermaid-btn:hover:not(:disabled){background:#3b82f64d;color:#bfdbfe}.markstream-angular .mermaid-btn:disabled{opacity:.4;cursor:not-allowed}.markstream-angular .mermaid-toggle{display:inline-flex;border-radius:9999px;border:1px solid rgba(148,163,184,.3);overflow:hidden}.markstream-angular .mermaid-toggle-btn{border:none;background:transparent;color:inherit;font-size:.75rem;padding:.2rem .65rem;cursor:pointer;transition:background .2s ease}.markstream-angular .mermaid-toggle-btn--active{background:#3b82f62e;color:#1d4ed8}.markstream-angular.dark .mermaid-toggle-btn--active,.dark .markstream-angular .mermaid-toggle-btn--active{background:#3b82f64d;color:#bfdbfe}.markstream-angular .mermaid-body{position:relative;padding:1rem}.markstream-angular .mermaid-preview{width:100%;min-height:180px;display:flex;align-items:center;justify-content:center;text-align:center;transform-origin:top center}.markstream-angular .mermaid-preview svg{width:100%;height:auto}.markstream-angular .mermaid-source{background:#0f172af2;color:#e2e8f0;border-radius:.5rem;padding:1rem;overflow-x:auto}.markstream-angular .mermaid-error{padding:.85rem 1rem;color:#b91c1c;background:#f8717126;border-top:1px solid rgba(248,113,113,.25)}.markstream-angular .mermaid-loading{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem 1rem;font-size:.85rem;color:#0f172a99}.markstream-angular.dark .mermaid-loading,.dark .markstream-angular .mermaid-loading{color:#e2e8f0b3}.markstream-angular .mermaid-spinner{width:.85rem;height:.85rem;border-radius:9999px;border:2px solid rgba(59,130,246,.2);border-top-color:#2563eb;animation:spin 1s linear infinite}.markstream-angular .markstream-angular-enhanced-block{margin:1rem 0;border-radius:1rem;overflow:hidden;border:1px solid rgba(15,23,42,.08);background:#f8fafcf0;box-shadow:inset 0 1px #fff6}.markstream-angular .markstream-angular-enhanced-block__header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem .95rem;border-bottom:1px solid rgba(15,23,42,.08);background:#ffffffb8}.markstream-angular .markstream-angular-enhanced-block__actions{display:inline-flex;align-items:center;gap:.45rem}.markstream-angular .markstream-angular-enhanced-block__action{padding:.28rem .62rem;border-radius:999px;background:#0f172a0f;box-shadow:inset 0 0 0 1px #0f172a14;font:600 .78rem/1 IBM Plex Mono,SFMono-Regular,Consolas,monospace;cursor:pointer;transition:background-color .18s ease}.markstream-angular .markstream-angular-enhanced-block__action:hover{background:#2563eb1f}.markstream-angular .markstream-angular-enhanced-block__badge{display:inline-flex;align-items:center;padding:.22rem .55rem;border-radius:999px;background:#2563eb1a;color:#1d4ed8;font:700 .72rem/1 IBM Plex Mono,SFMono-Regular,Consolas,monospace;letter-spacing:.04em;text-transform:uppercase}.markstream-angular .markstream-angular-enhanced-block__body{position:relative;overflow:auto;padding:.95rem;background:#ffffffd1}.markstream-angular .markstream-angular-enhanced-block__body>:first-child{margin-top:0}.markstream-angular .markstream-angular-enhanced-block__body>:last-child{margin-bottom:0}.markstream-angular .markstream-angular-enhanced-block__body--code{padding:0;background:#0b1220}.markstream-angular .markstream-angular-enhanced-block__body--code .monaco-editor,.markstream-angular .markstream-angular-enhanced-block__body--code .monaco-diff-editor{min-height:inherit}.markstream-angular .markstream-angular-enhanced-block__details{margin:0;border-top:1px solid rgba(15,23,42,.08);border-radius:0;background:#f8fafceb}.markstream-angular .markstream-angular-enhanced-block__details summary{padding:.8rem .95rem}.markstream-angular .markstream-angular-enhanced-block__source{margin:0;border-radius:0}.markstream-angular .markstream-angular-enhanced-block--d2 svg,.markstream-angular .markstream-angular-enhanced-block--infographic svg{display:block;width:100%;height:auto}.markstream-angular.dark .markstream-angular-enhanced-block,.dark .markstream-angular .markstream-angular-enhanced-block{border-color:#94a3b82e;background:#0f172ad1}.markstream-angular.dark .markstream-angular-enhanced-block__header,.dark .markstream-angular .markstream-angular-enhanced-block__header{border-bottom-color:#94a3b82e;background:#0f172af0}.markstream-angular.dark .markstream-angular-enhanced-block__action,.dark .markstream-angular .markstream-angular-enhanced-block__action{background:#94a3b824;box-shadow:inset 0 0 0 1px #94a3b833}.markstream-angular.dark .markstream-angular-enhanced-block__action:hover,.dark .markstream-angular .markstream-angular-enhanced-block__action:hover{background:#60a5fa33}.markstream-angular.dark .markstream-angular-enhanced-block__badge,.dark .markstream-angular .markstream-angular-enhanced-block__badge{background:#60a5fa29;color:#93c5fd}.markstream-angular.dark .markstream-angular-enhanced-block__body,.dark .markstream-angular .markstream-angular-enhanced-block__body{background:#0f172ae6}.markstream-angular.dark .markstream-angular-enhanced-block__details,.dark .markstream-angular .markstream-angular-enhanced-block__details{border-top-color:#94a3b82e;background:#0f172af5}@keyframes node-placeholder-shimmer{0%{background-position:200% 0%}to{background-position:-200% 0%}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes typewriter-fade{0%{opacity:0}to{opacity:1}}.markstream-angular .code-block-container{margin:1rem 0;overflow:hidden;border:1px solid rgba(148,163,184,.24);border-radius:.75rem;background:#fff;box-shadow:0 18px 38px -28px #0f172a73}.markstream-angular .code-block-container.is-dark,.dark .markstream-angular .code-block-container{border-color:#4755698c;background:#0f172a;box-shadow:0 22px 44px -30px #020617f2}.markstream-angular .code-block-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.625rem 1rem;border-bottom:1px solid rgba(148,163,184,.1)}.markstream-angular .code-block-header__meta{display:flex;flex:1 1 auto;align-items:center;gap:.5rem;min-width:0}.markstream-angular .code-block-header__label{min-width:0;overflow:hidden;color:inherit;text-overflow:ellipsis;white-space:nowrap;font:500 .95rem/1.2 IBM Plex Mono,SFMono-Regular,Consolas,monospace}.markstream-angular .code-block-header__actions{display:flex;flex:0 0 auto;align-items:center;justify-content:flex-end;gap:.25rem;margin-left:auto}.markstream-angular .code-block-language-icon{width:1rem;height:1rem;flex:0 0 1rem;color:#2563eb}.markstream-angular.dark .code-block-language-icon,.dark .markstream-angular .code-block-language-icon{color:#93c5fd}.markstream-angular .code-block-language-icon svg,.markstream-angular .code-block-language-icon img{display:block;width:100%;height:100%}.markstream-angular .code-block-language-icon__image{-o-object-fit:contain;object-fit:contain}.markstream-angular .code-block-body{position:relative;min-height:120px}.code-block-body--expanded{max-height:none}.code-block-body--collapsed{min-height:0;height:0;overflow:hidden}.markstream-angular .code-action-btn{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;padding:0;border-radius:.375rem;color:inherit;transition:background-color .14s ease,color .14s ease,transform .14s ease,opacity .14s ease}.markstream-angular .code-action-btn:hover{background:var(--vscode-editor-selectionBackground, rgba(148, 163, 184, .18))}.markstream-angular .code-action-btn__icon,.markstream-angular .code-action-btn svg{display:block;width:.8rem;height:.8rem;flex:0 0 auto}.markstream-angular .code-action-btn:active{transform:scale(.98)}.markstream-angular .code-action-btn:disabled{opacity:.5;cursor:not-allowed}.markstream-angular .code-action-btn:disabled:hover{background:transparent}.html-preview-frame__backdrop{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:50}.html-preview-frame__backdrop--dark{background-color:#0f172acc}.html-preview-frame{width:80vw;max-width:960px;height:70vh;background-color:#fff;border-radius:.5rem;overflow:hidden;box-shadow:0 10px 40px #00000040;display:flex;flex-direction:column}.html-preview-frame--dark{background-color:#020617;color:#e5e7eb;box-shadow:0 10px 40px #0009}.html-preview-frame__header{display:flex;justify-content:space-between;align-items:center;padding:.4rem .75rem;border-bottom:1px solid rgba(0,0,0,.06)}.html-preview-frame--dark .html-preview-frame__header{border-bottom-color:#94a3b859}.html-preview-frame__title{display:inline-flex;align-items:center;gap:.4rem;font-size:.75rem;font-weight:500;letter-spacing:.02em;text-transform:uppercase;opacity:.85}.html-preview-frame__dot{width:.5rem;height:.5rem;border-radius:999px;background-color:#22c55e}.html-preview-frame--dark .html-preview-frame__dot{background-color:#4ade80}.html-preview-frame__label{white-space:nowrap}.html-preview-frame__close{border:none;background:transparent;font-size:1.25rem;line-height:1;cursor:pointer}.html-preview-frame__close--dark{color:#e5e7eb}.html-preview-frame__iframe{width:100%;height:100%;border:none;display:block}@media(max-width:640px){.html-preview-frame{width:100vw;height:80vh;border-radius:0}}.ms-tooltip{position:fixed;padding:.4rem .65rem;font-size:.875rem;border-radius:.375rem;border-width:1px;border-style:solid;box-shadow:0 10px 15px #00000014;pointer-events:none;z-index:9999;opacity:0;transition:opacity .12s linear,transform .22s cubic-bezier(.16,1,.3,1)}.ms-tooltip[data-visible=true]{opacity:1}.ms-tooltip[data-dark=true]{background-color:#111827;color:#f9fafb;border-color:#374151}.ms-tooltip[data-dark=false],.ms-tooltip:not([data-dark=true]){background-color:#fff;color:#111827;border-color:#e5e7eb}.markstream-angular .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.markstream-angular .d2-block-body{position:relative}.markstream-angular .d2-source{font-family:var(--vscode-editor-font-family, "Fira Code", "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace)}.markstream-angular .d2-code{white-space:pre;font-size:.875rem;line-height:1.5}.markstream-angular .d2-render{overflow:auto}.markstream-angular .d2-svg svg,.markstream-angular .infographic-render svg{max-width:100%;height:auto;display:block;margin:0 auto}.markstream-angular .mode-btn{opacity:.7;transition:opacity .2s}.markstream-angular .mode-btn.is-active{opacity:1;font-weight:600}.markstream-angular .d2-action-btn{opacity:.7;transition:opacity .2s}.markstream-angular .d2-action-btn:hover:not(:disabled){opacity:1}.markstream-angular .d2-action-btn:disabled{opacity:.3;cursor:not-allowed}.markstream-angular .d2-error{color:#dc2626;margin-top:.75rem}.markstream-angular .infographic-render{width:100%;min-height:320px;overflow:auto}
