.mermaid-diagram-wrapper{position:relative;display:block;width:100%;overflow:hidden;border-radius:4px;background:0 0}.mermaid-diagram-wrapper>svg{display:block;max-width:100%;height:auto;user-select:none}.mermaid-diagram-wrapper.panzoom-active>svg{max-width:none;width:100%;height:100%;cursor:grab}.mermaid-diagram-wrapper.panzoom-active>svg:active{cursor:grabbing}.mermaid-controls-toolbar{position:absolute;top:12px;right:12px;display:flex;gap:4px;padding:4px;background:rgba(255,255,255,.95);border:1px solid rgba(0,0,0,.1);border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,.1);opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;z-index:10;pointer-events:auto}.mermaid-controls-toolbar.visible{opacity:1;visibility:visible}.mermaid-control-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;margin:0;background:0 0;border:none;border-radius:6px;color:#333;cursor:pointer;transition:all .15s ease;outline:none}.mermaid-control-btn:hover{background:rgba(0,0,0,6%)}.mermaid-control-btn:active{background:rgba(0,0,0,.12);transform:scale(.95)}.mermaid-control-btn:focus-visible{outline:2px solid #06c;outline-offset:2px}.mermaid-control-btn svg{pointer-events:none}[data-bs-theme=dark] .mermaid-controls-toolbar{background:rgba(30,30,30,.95);border-color:rgba(255,255,255,.15);box-shadow:0 2px 12px rgba(0,0,0,.4)}[data-bs-theme=dark] .mermaid-control-btn{color:#e0e0e0}[data-bs-theme=dark] .mermaid-control-btn:hover{background:rgba(255,255,255,.1)}[data-bs-theme=dark] .mermaid-control-btn:active{background:rgba(255,255,255,.2)}.mermaid-fullscreen-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.75);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:9998;opacity:0;transition:opacity .3s ease;cursor:pointer;display:flex;align-items:center;justify-content:center}.mermaid-fullscreen-backdrop.visible{opacity:1}[data-bs-theme=dark] .mermaid-fullscreen-backdrop{background:rgba(0,0,0,.85)}.mermaid-modal-container{position:relative;width:90vw;height:90vh;max-width:1600px;max-height:1200px;background:#fff;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.3);overflow:auto;cursor:default}[data-bs-theme=dark] .mermaid-modal-container{background:#1a1a1a;box-shadow:0 20px 60px rgba(0,0,0,.6)}.mermaid-close-btn{position:absolute;top:12px;left:12px;display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;margin:0;background:rgba(255,255,255,.95);border:1px solid rgba(0,0,0,.1);border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,.1);color:#333;cursor:pointer;transition:all .15s ease;z-index:11;outline:none}.mermaid-close-btn:hover{background:#fee;color:#c00;border-color:#faa}.mermaid-close-btn:active{transform:scale(.95)}.mermaid-close-btn:focus-visible{outline:2px solid #06c;outline-offset:2px}.mermaid-close-btn svg{pointer-events:none}[data-bs-theme=dark] .mermaid-close-btn{background:rgba(30,30,30,.95);border-color:rgba(255,255,255,.15);box-shadow:0 2px 12px rgba(0,0,0,.4);color:#e0e0e0}[data-bs-theme=dark] .mermaid-close-btn:hover{background:rgba(200,0,0,.2);color:#faa;border-color:rgba(200,0,0,.4)}.mermaid-diagram-wrapper.fullscreen-mode{position:absolute;top:0;left:0;right:0;bottom:0;z-index:auto;background:0 0;padding:0;overflow:visible;border-radius:0}.mermaid-diagram-wrapper.fullscreen-mode svg{width:100%;height:100%}.mermaid-diagram-wrapper.fullscreen-mode .mermaid-controls-toolbar{opacity:1;visibility:visible}body.mermaid-fullscreen-active{overflow:hidden}@media(max-width:768px){.mermaid-controls-toolbar{opacity:1;visibility:visible;top:8px;right:8px}.mermaid-control-btn{width:44px;height:44px}.mermaid-modal-container{width:95vw;height:95vh;border-radius:8px}.mermaid-close-btn{width:44px;height:44px}}@media(max-width:576px){.mermaid-controls-toolbar{gap:2px;padding:3px;border-radius:6px}.mermaid-control-btn{width:38px;height:38px}.mermaid-modal-container{width:100vw;height:100vh;border-radius:0}}@media(prefers-reduced-motion:reduce){.mermaid-controls-toolbar,.mermaid-control-btn,.mermaid-fullscreen-backdrop{transition:none}}