.zoomableContainer { position: relative; width: 100%; margin: 2rem 0; border: 1px solid var(--ifm-color-emphasis-300); border-radius: 8px; overflow: hidden; background: var(--ifm-background-color); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); } .diagramTitle { margin: 0; padding: 1rem 1.5rem; background: var(--ifm-color-primary); color: #ffffff !important; font-size: 1.25rem; font-weight: 600; border-bottom: 1px solid var(--ifm-color-emphasis-300); } /* Ensure title text is white in both light and dark modes */ .diagramTitle, .diagramTitle * { color: #ffffff !important; } html[data-theme='dark'] .diagramTitle, html[data-theme='dark'] .diagramTitle * { color: #ffffff !important; } .controls { padding: 0.75rem 1.5rem; background: var(--ifm-color-emphasis-100); border-bottom: 1px solid var(--ifm-color-emphasis-300); } .controlsLabel { font-size: 0.9rem; color: var(--ifm-color-emphasis-700); } .zoomControls { position: absolute; top: 80px; right: 20px; z-index: 10; display: flex; flex-direction: column; gap: 8px; background: white; border-radius: 8px; padding: 8px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); } html[data-theme='dark'] .zoomControls { background: var(--ifm-background-color); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4); } .zoomButton { min-width: 100px; padding: 8px 16px; border: 1px solid var(--ifm-color-emphasis-300); background: #ffffff; color: #333333; border-radius: 6px; cursor: pointer; font-size: 14px; font-weight: 500; transition: all 0.2s ease; display: flex; align-items: center; justify-content: center; gap: 4px; } html[data-theme='dark'] .zoomButton { background: var(--ifm-background-color); color: var(--ifm-font-color-base); } .zoomButton:hover { background: var(--ifm-color-primary); color: #ffffff !important; border-color: var(--ifm-color-primary); transform: translateY(-1px); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); } .zoomButton:active { transform: translateY(0); box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); } .transformWrapper { width: 100%; height: 4800px; overflow: hidden; cursor: grab; background-image: linear-gradient(var(--ifm-color-emphasis-200) 1px, transparent 1px), linear-gradient(90deg, var(--ifm-color-emphasis-200) 1px, transparent 1px); background-size: 20px 20px; background-position: -1px -1px; } .transformWrapper:active { cursor: grabbing; } .transformContent { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; } .mermaidWrapper { padding: 2rem; background: var(--ifm-background-color); border-radius: 8px; box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08); display: inline-block; } .mermaidWrapper svg { display: block; max-width: none; height: auto; } /* Responsive adjustments */ @media (max-width: 768px) { .transformWrapper { height: 2400px; } .zoomControls { top: 60px; right: 10px; flex-direction: row; padding: 6px; } .zoomButton { min-width: auto; padding: 6px 12px; font-size: 12px; } .controls { padding: 0.5rem 1rem; } .controlsLabel { font-size: 0.8rem; } } /* Improve Mermaid diagram visibility */ .mermaidWrapper :global(.mermaid) { min-width: 100%; min-height: 600px; } .mermaidWrapper :global(svg) { max-width: none !important; height: auto !important; }