.prose{max-width:80ch;color:var(--foreground)}.prose a{color:hsl(var(--primary));text-decoration:underline;font-weight:500}.prose strong{color:var(--foreground);font-weight:600}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{color:var(--foreground);font-weight:700;margin-top:2em;margin-bottom:1em;line-height:1.3}.prose h1{font-size:2.25em;margin-top:0}.prose h2{font-size:1.5em}.prose h3{font-size:1.25em}.prose p,.prose ul,.prose ol{margin-top:1.25em;margin-bottom:1.25em}.prose ul{list-style-type:disc;padding-left:1.5em}.prose ol{list-style-type:decimal;padding-left:1.5em}.prose li{margin-bottom:.5em}.prose li>ul,.prose li>ol{margin-top:.5em;margin-bottom:.5em}.prose img{margin-top:2em;margin-bottom:2em;border-radius:.5rem}.prose .mermaid-frame{position:relative;margin-block:2em;width:100%;min-width:0;max-width:100%;overflow-x:auto;overflow-y:hidden;display:flex;justify-content:safe center;scrollbar-width:thin;scrollbar-color:hsl(var(--muted-foreground) / .3) transparent;border-radius:.5rem;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}.prose .mermaid-frame>svg[id^=mermaid-]{display:block;height:auto;flex:0 0 auto}.dark .prose .mermaid-frame svg[id^=mermaid-] .messageText,.dark .prose .mermaid-frame svg[id^=mermaid-] .messageText>tspan,.dark .prose .mermaid-frame svg[id^=mermaid-] .labelText,.dark .prose .mermaid-frame svg[id^=mermaid-] .labelText>tspan,.dark .prose .mermaid-frame svg[id^=mermaid-] .loopText,.dark .prose .mermaid-frame svg[id^=mermaid-] .loopText>tspan,.dark .prose .mermaid-frame svg[id^=mermaid-] .sectionTitle,.dark .prose .mermaid-frame svg[id^=mermaid-] .sectionTitle>tspan{fill:hsl(var(--foreground))!important;color:hsl(var(--foreground))!important}.dark .prose .mermaid-frame svg[id^=mermaid-] rect.actor,.dark .prose .mermaid-frame svg[id^=mermaid-] rect.actor.outer-path,.dark .prose .mermaid-frame svg[id^=mermaid-] .labelBox{fill:hsl(var(--muted))!important;stroke:hsl(var(--muted-foreground) / .6)!important}.dark .prose .mermaid-frame svg[id^=mermaid-] text.actor,.dark .prose .mermaid-frame svg[id^=mermaid-] text.actor>tspan,.dark .prose .mermaid-frame svg[id^=mermaid-] text.actor-box,.dark .prose .mermaid-frame svg[id^=mermaid-] text.actor-box>tspan{fill:hsl(var(--foreground))!important}.dark .prose .mermaid-frame svg[id^=mermaid-] .actor-line{stroke:hsl(var(--muted-foreground) / .6)!important}.dark .prose .mermaid-frame svg[id^=mermaid-] .messageLine0,.dark .prose .mermaid-frame svg[id^=mermaid-] .messageLine1{stroke:hsl(var(--muted-foreground))!important;fill:none!important}.dark .prose .mermaid-frame svg[id^=mermaid-] [id$=-arrowhead] path,.dark .prose .mermaid-frame svg[id^=mermaid-] [id$=-crosshead] path,.dark .prose .mermaid-frame svg[id^=mermaid-] .marker,.dark .prose .mermaid-frame svg[id^=mermaid-] .marker.cross,.dark .prose .mermaid-frame svg[id^=mermaid-] [id$=-sequencenumber]{stroke:hsl(var(--muted-foreground))!important;fill:hsl(var(--muted-foreground))!important}.dark .prose .mermaid-frame svg[id^=mermaid-] g.node>rect,.dark .prose .mermaid-frame svg[id^=mermaid-] g.node>polygon,.dark .prose .mermaid-frame svg[id^=mermaid-] g.node>circle,.dark .prose .mermaid-frame svg[id^=mermaid-] g.node>path,.dark .prose .mermaid-frame svg[id^=mermaid-] g.node rect.basic.label-container{fill:hsl(var(--muted))!important;stroke:hsl(var(--muted-foreground) / .6)!important}.dark .prose .mermaid-frame svg[id^=mermaid-] .nodeLabel,.dark .prose .mermaid-frame svg[id^=mermaid-] .nodeLabel>p,.dark .prose .mermaid-frame svg[id^=mermaid-] foreignObject .nodeLabel,.dark .prose .mermaid-frame svg[id^=mermaid-] foreignObject p{color:hsl(var(--foreground))!important;fill:hsl(var(--foreground))!important}.dark .prose .mermaid-frame svg[id^=mermaid-] .edgeLabel,.dark .prose .mermaid-frame svg[id^=mermaid-] .edgeLabel>p,.dark .prose .mermaid-frame svg[id^=mermaid-] .edgeLabel>tspan,.dark .prose .mermaid-frame svg[id^=mermaid-] .edgeLabel foreignObject,.dark .prose .mermaid-frame svg[id^=mermaid-] .edgeLabel foreignObject p{color:hsl(var(--foreground))!important;fill:hsl(var(--foreground))!important}.dark .prose .mermaid-frame svg[id^=mermaid-] .edgeLabel rect,.dark .prose .mermaid-frame svg[id^=mermaid-] .edgeLabel .label-container{fill:hsl(var(--background))!important}.dark .prose .mermaid-frame svg[id^=mermaid-] .flowchart-link,.dark .prose .mermaid-frame svg[id^=mermaid-] path.flowchart-link{stroke:hsl(var(--muted-foreground))!important;fill:none!important}.prose .mermaid-frame:after{content:"";position:sticky;right:0;flex:0 0 2rem;margin-left:-2rem;background:linear-gradient(to right,transparent,hsl(var(--background)));pointer-events:none;align-self:stretch}.prose code{color:hsl(var(--primary));background-color:hsl(var(--muted));padding:.2em .4em;border-radius:.25em;font-size:.875em}.prose pre{background-color:hsl(var(--muted));border-radius:.5rem;overflow-x:auto;padding:1em}.prose pre code{background-color:transparent;padding:0;color:inherit}.prose blockquote{border-left:4px solid hsl(var(--border));padding-left:1em;font-style:italic}.dark .prose{color:hsl(var(--foreground))}.dark .prose a{color:hsl(var(--primary))}.dark .prose strong{color:hsl(var(--foreground))}.dark .prose code{color:hsl(var(--primary));background-color:hsl(var(--muted))}.dark .prose pre{background-color:hsl(var(--muted))}.prose .mermaid-wrapper{position:relative;margin-block:2em;border:1px solid hsl(var(--border));border-radius:.5rem;background:hsl(var(--card) / .4);overflow:hidden;transition:box-shadow .2s ease,border-color .2s ease}.prose .mermaid-wrapper:hover,.prose .mermaid-wrapper:focus-within{border-color:hsl(var(--border));box-shadow:0 8px 32px -16px hsl(var(--foreground) / .25)}.prose .mermaid-wrapper>.mermaid-frame{margin-block:0;border-radius:0;border:none}.prose .mermaid-frame{cursor:zoom-in}.prose .mermaid-wrapper__toolbar{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;padding:.4rem .5rem;border-bottom:1px solid hsl(var(--border));background:hsl(var(--muted) / .4)}.prose .mermaid-frame__expand{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .65rem;border-radius:.4rem;background:transparent;color:hsl(var(--muted-foreground));border:1px solid transparent;font-size:.75rem;font-weight:500;line-height:1;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .15s ease}.prose .mermaid-frame__expand:hover,.prose .mermaid-frame__expand:focus-visible{background:hsl(var(--accent));color:hsl(var(--accent-foreground));border-color:hsl(var(--border));outline:none}.prose .mermaid-frame__expand:active{transform:translateY(1px)}html.mermaid-modal-open,html.mermaid-modal-open body{overflow:hidden}.mermaid-modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center}.mermaid-modal[hidden]{display:none!important}.mermaid-modal__backdrop{position:absolute;inset:0;background:hsl(var(--background) / .85);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);cursor:zoom-out}.mermaid-modal__panel{position:relative;width:min(96vw,1400px);height:min(92vh,900px);background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:.75rem;box-shadow:0 24px 64px -16px hsl(var(--foreground) / .4);display:flex;flex-direction:column;overflow:hidden}.mermaid-modal__toolbar{display:flex;align-items:center;gap:.4rem;padding:.6rem .75rem;border-bottom:1px solid hsl(var(--border));background:hsl(var(--card));flex-shrink:0}.mermaid-modal__btn{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:.4rem;background:transparent;color:hsl(var(--foreground));border:1px solid transparent;cursor:pointer;transition:background .12s ease,border-color .12s ease}.mermaid-modal__btn:hover{background:hsl(var(--muted));border-color:hsl(var(--border))}.mermaid-modal__btn:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}.mermaid-modal__sep{flex:1}.mermaid-modal__stage{position:relative;flex:1 1 auto;overflow:hidden;display:flex;align-items:center;justify-content:center;background:linear-gradient(0deg,hsl(var(--muted) / .4),hsl(var(--muted) / .4));background-image:linear-gradient(hsl(var(--border) / .4) 1px,transparent 1px),linear-gradient(90deg,hsl(var(--border) / .4) 1px,transparent 1px);background-size:24px 24px;cursor:grab}.mermaid-modal__stage:active{cursor:grabbing}.mermaid-modal__svg{width:100%;height:100%;display:flex;align-items:center;justify-content:center;transform-origin:0 0}.mermaid-modal__svg svg{width:100%;height:100%;max-width:none;max-height:none}.mermaid-modal__svg svg[id^=mermaid-] rect.actor,.mermaid-modal__svg svg[id^=mermaid-] rect.actor.outer-path,.mermaid-modal__svg svg[id^=mermaid-] .labelBox{fill:hsl(var(--muted))!important;stroke:hsl(var(--muted-foreground))!important;stroke-width:1.2!important}.mermaid-modal__svg svg[id^=mermaid-] g.node>rect,.mermaid-modal__svg svg[id^=mermaid-] g.node>polygon,.mermaid-modal__svg svg[id^=mermaid-] g.node>circle,.mermaid-modal__svg svg[id^=mermaid-] g.node>path,.mermaid-modal__svg svg[id^=mermaid-] g.node rect.basic.label-container{fill:hsl(var(--muted))!important;stroke:hsl(var(--muted-foreground))!important;stroke-width:1.2!important}.mermaid-modal__svg svg[id^=mermaid-] line.actor-line{stroke:hsl(var(--muted-foreground))!important;stroke-width:1.2!important}.mermaid-modal__svg svg[id^=mermaid-] .messageText,.mermaid-modal__svg svg[id^=mermaid-] .messageText>tspan,.mermaid-modal__svg svg[id^=mermaid-] .labelText,.mermaid-modal__svg svg[id^=mermaid-] .labelText>tspan,.mermaid-modal__svg svg[id^=mermaid-] .loopText,.mermaid-modal__svg svg[id^=mermaid-] .loopText>tspan,.mermaid-modal__svg svg[id^=mermaid-] .sectionTitle,.mermaid-modal__svg svg[id^=mermaid-] .sectionTitle>tspan,.mermaid-modal__svg svg[id^=mermaid-] text.actor,.mermaid-modal__svg svg[id^=mermaid-] text.actor>tspan,.mermaid-modal__svg svg[id^=mermaid-] text.actor-box,.mermaid-modal__svg svg[id^=mermaid-] text.actor-box>tspan{fill:#fff!important;font-weight:600!important}.mermaid-modal__svg svg[id^=mermaid-] .nodeLabel,.mermaid-modal__svg svg[id^=mermaid-] .nodeLabel>p,.mermaid-modal__svg svg[id^=mermaid-] foreignObject .nodeLabel,.mermaid-modal__svg svg[id^=mermaid-] foreignObject p,.mermaid-modal__svg svg[id^=mermaid-] .edgeLabel,.mermaid-modal__svg svg[id^=mermaid-] .edgeLabel>p{color:#fff!important;font-weight:600!important}.mermaid-modal__svg svg[id^=mermaid-] .messageLine0,.mermaid-modal__svg svg[id^=mermaid-] .messageLine1,.mermaid-modal__svg svg[id^=mermaid-] .actor-line,.mermaid-modal__svg svg[id^=mermaid-] .flowchart-link{stroke:#cbd5e1!important;stroke-width:1.4!important;fill:none!important}.mermaid-modal__svg svg[id^=mermaid-] [id$=-arrowhead] path,.mermaid-modal__svg svg[id^=mermaid-] [id$=-crosshead] path,.mermaid-modal__svg svg[id^=mermaid-] .marker{fill:#cbd5e1!important;stroke:#cbd5e1!important}.mermaid-modal__hint{position:absolute;left:50%;bottom:.75rem;transform:translate(-50%);padding:.35rem .7rem;border-radius:999px;background:hsl(var(--card) / .9);border:1px solid hsl(var(--border));color:hsl(var(--muted-foreground));font-size:.7rem;pointer-events:none;white-space:nowrap;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}@media(max-width:640px){.mermaid-modal__hint{font-size:.65rem;padding:.25rem .5rem}.mermaid-modal__panel{border-radius:.5rem}}@media(prefers-reduced-motion:reduce){.prose .mermaid-frame,.prose .mermaid-frame__expand,.mermaid-modal__btn{transition:none}}
