.mermaid-diagram,.zoomable-image{position:relative;cursor:zoom-in}.zoomable-image{display:inline-block}.zoom-trigger{position:absolute;top:8px;right:8px;display:flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--entry);color:var(--primary);cursor:pointer;opacity:0;transform:translateY(-2px);transition:opacity .15s ease,transform .15s ease}.zoom-trigger svg{width:16px;height:16px}@media(hover:hover){.mermaid-diagram:hover .zoom-trigger,.mermaid-diagram:focus-within .zoom-trigger,.zoomable-image:hover .zoom-trigger,.zoomable-image:focus-within .zoom-trigger{opacity:1;transform:translateY(0)}}@media(hover:none){.zoom-trigger{opacity:.55;transform:translateY(0)}}.zoom-trigger:focus-visible{opacity:1;outline:2px solid var(--primary);outline-offset:2px}.zoom-overlay{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.82);padding:env(safe-area-inset-top)env(safe-area-inset-right)env(safe-area-inset-bottom)env(safe-area-inset-left)}.zoom-overlay[hidden]{display:none}body.zoom-lock{overflow:hidden}.zoom-dialog{position:relative;display:flex;flex-direction:column;width:96vw;max-width:1400px;height:92vh;max-height:900px;background:var(--theme);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 20px 60px rgba(0,0,0,.55);outline:none}@media(prefers-reduced-motion:no-preference){.zoom-dialog{animation:zoom-dialog-in .18s ease-out}}@keyframes zoom-dialog-in{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.zoom-toolbar{display:flex;justify-content:flex-end;gap:8px;padding:10px;border-bottom:1px solid var(--border);background:var(--entry);border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.zoom-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--border);border-radius:var(--radius);background:var(--theme);color:var(--primary);cursor:pointer}.zoom-btn svg{width:18px;height:18px}.zoom-btn:hover,.zoom-btn:focus-visible{background:var(--tertiary);outline:none}.zoom-close{margin-left:8px}.zoom-viewport{flex:1;overflow:hidden;touch-action:none;cursor:grab;background:var(--theme)}.zoom-viewport:active{cursor:grabbing}.zoom-canvas{width:100%;height:100%;display:flex;align-items:center;justify-content:center;transform-origin:center center;will-change:transform}.zoom-canvas svg,.zoom-canvas img{filter:drop-shadow(0 4px 18px rgba(0,0,0,.45))}.zoom-canvas svg{max-width:none!important}.zoom-canvas img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:0}.zoom-hint{margin:0;padding:6px 10px;text-align:center;font-size:.8rem;color:var(--secondary);border-top:1px solid var(--border)}@media(max-width:600px){.zoom-dialog{width:100vw;height:100vh;border-radius:0;border:none}}