.graph-viewport-toggle { display:inline-flex!important; align-items:center; justify-content:center; gap:5px; white-space:nowrap; }
.graph-viewport-toggle svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.graph-viewport-toggle:focus-visible { outline:2px solid #a48ae8; outline-offset:3px; }
.graph-capture-toggle { position:absolute; bottom:15px; left:18px; z-index:5; padding:7px 11px; border:0; border-radius:9px; background:#ffffffc9; color:#88769e; font:inherit; font-size:12px; cursor:pointer; backdrop-filter:blur(8px); transition:background 240ms ease,color 240ms ease; }
.graph-capture-toggle:hover,.graph-capture-toggle[aria-pressed="true"] { background:#f0eafbe6; color:#7353bc; }
.graph-capture-toggle:focus-visible { outline:2px solid #a48ae8; outline-offset:3px; }
[data-graph-capture="false"], [data-graph-capture="false"] svg, [data-graph-capture="false"] svg * { touch-action:pan-y pinch-zoom!important; }
[data-graph-capture="false"] { cursor:default!important; }
[data-graph-capture="true"], [data-graph-capture="true"] svg { touch-action:none!important; }
.graph-viewport-placeholder { width:100%; pointer-events:none; }
.graph-viewport-backdrop { position:fixed; inset:0; z-index:980; opacity:0; background:#eae4f3c9; backdrop-filter:blur(14px) saturate(1.15); transition:opacity 400ms cubic-bezier(.22,1,.36,1); }
.graph-viewport-backdrop.is-visible { opacity:1; }
/* A popover enters the top layer while retaining the original DOM ancestors. */
.graph-viewport-expanded:is(.lx-workspace,.mm-workspace) { position:fixed!important; inset:18px; z-index:981!important; margin:0!important; width:auto; height:auto; max-width:none!important; max-height:none!important; padding:0; border:0!important; border-radius:20px!important; background:#fff!important; box-shadow:0 24px 100px #50376f26!important; overflow:hidden!important; transform:none!important; }
.graph-viewport-expanded::backdrop { background:transparent; }
.graph-viewport-expanded.graph-viewport-transitioning:is(.lx-workspace,.mm-workspace) {
  will-change:transform;
  transition-property:transform!important;
  transition-duration:400ms;
  transition-timing-function:cubic-bezier(.22,1,.36,1)!important;
}
.lx-workspace.graph-viewport-expanded .lx-main-surface,
.mm-root.mm-explorer .mm-workspace.graph-viewport-expanded .mm-map-surface { display:flex; flex-direction:column; min-height:0; height:100%; }
.lx-workspace.graph-viewport-expanded .lx-atlas { display:flex; flex-direction:column; min-height:0; height:100%; }
.lx-workspace.graph-viewport-expanded .lx-canvas,
.mm-root.mm-explorer .mm-workspace.graph-viewport-expanded .mm-graph-shell { flex:1; min-height:0; height:auto!important; }
.mm-root.mm-explorer .mm-workspace.graph-viewport-expanded .mm-graph { height:100%!important; }
.lx-workspace.graph-viewport-expanded .lx-inspector,
.mm-root.mm-explorer .mm-workspace.graph-viewport-expanded .mm-inspector { min-height:0; height:100%!important; max-height:100%; }
.graph-viewport-expanded :is(.lx-atlas-top,.mm-map-toolbar) { flex:none; padding-top:14px!important; padding-bottom:12px!important; }
.graph-viewport-expanded :is(.lx-atlas-bottom,.lx-theme-legend,.mm-legend) { flex:none; }
.graph-viewport-expanded :is(.lx-svg,#mm-svg) { height:100%; width:100%; }
@media(max-width:760px) {
  .graph-viewport-expanded:is(.lx-workspace,.mm-workspace) { inset:8px; border-radius:14px!important; grid-template-rows:minmax(0,1fr) minmax(140px,30%); }
  .graph-viewport-expanded :is(.lx-inspector,.mm-inspector) { height:100%!important; border-top:1px solid #eee7f4; }
  .graph-viewport-expanded :is(.lx-atlas-top,.mm-map-toolbar) { flex-wrap:wrap; gap:6px; padding:8px 10px!important; }
  .graph-viewport-expanded :is(.lx-theme-legend,.mm-legend) { max-height:70px; overflow:auto; }
  .graph-viewport-toggle { min-height:30px; }
}
@media(prefers-reduced-motion:reduce) {
  .graph-viewport-backdrop { transition:none; }
  .graph-viewport-expanded.graph-viewport-transitioning:is(.lx-workspace,.mm-workspace) { will-change:auto; transition:none!important; }
}
