/*
 * gotham.scss test theme for experimenting with icon themes
 */
/** Cross theme styles */
/*
 * Global.scss provides styles and configuration
 * all themes.
 *
 */
/** Global styles and values */
/** styles and values */
/** Global Styles */
/** Navigation Elements (Back, Forward, Stop, etc)*/
/** UI Trim (Popup menu buttons, close buttons, etc)*/
#stop4895-3 {
  stop-color: #b7c9e3;
  stop-opacity: 1; }

#stop4897-7 {
  stop-color: #f3f5f6;
  stop-opacity: 1; }

#stop4740-7 {
  stop-color: #8a9b9e;
  stop-opacity: 1; }

#stop4742-4 {
  stop-color: #5b7aaa;
  stop-opacity: 1; }

#stop3997-2 {
  stop-color: #8a9b9e;
  stop-opacity: 1; }

#stop3999-1 {
  stop-color: #5b7aaa;
  stop-opacity: 1; }

#stop4895-3-8 {
  stop-color: #b7c9e3;
  stop-opacity: 1; }

#stop4897-7-7 {
  stop-color: #f3f5f6;
  stop-opacity: 1; }

#stop4740-7-5 {
  stop-color: #8a9b9e;
  stop-opacity: 1; }

#stop4742-4-0 {
  stop-color: #5b7aaa;
  stop-opacity: 1; }

#stop3997-2-9 {
  stop-color: #8a9b9e;
  stop-opacity: 1; }

#stop3999-1-3 {
  stop-color: #5b7aaa;
  stop-opacity: 1; }

#stop4895-3-8-2 {
  stop-color: #b7c9e3;
  stop-opacity: 1; }

#stop4897-7-7-4 {
  stop-color: #f3f5f6;
  stop-opacity: 1; }

#stop4740-7-5-7 {
  stop-color: #8a9b9e;
  stop-opacity: 1; }

#stop4742-4-0-6 {
  stop-color: #5b7aaa;
  stop-opacity: 1; }

#stop3997-2-9-2 {
  stop-color: #8a9b9e;
  stop-opacity: 1; }

#stop3999-1-3-3 {
  stop-color: #5b7aaa;
  stop-opacity: 1; }

#layer1 {
  display: inline; }

#g3265-2-9-0 {
  display: inline; }

#rect3968-7-2-7 {
  fill: url(../../../../../../eclipse-svg/org.eclipse.ui/icons/full/etool16//saveall_edit_memory.svg#linearGradient3282-0-1-6);
  fill-opacity: 1;
  stroke: url(../../../../../../eclipse-svg/org.eclipse.ui/icons/full/etool16//saveall_edit_memory.svg#linearGradient3284-1-3-2);
  stroke-opacity: 1; }

#rect3100-4-5-6-2 {
  fill: #ffd300;
  fill-opacity: 1;
  stroke: none;
  display: inline; }

#rect3100-4-2-0-7-2 {
  fill: #ffd300;
  fill-opacity: 1;
  stroke: none;
  display: inline; }

#rect3100-4-1-7-5-3 {
  fill: #ffd300;
  fill-opacity: 1;
  stroke: none;
  display: inline; }

#path4373-52-5-9 {
  fill: #ffffff;
  fill-opacity: 0;
  stroke: #7189a4;
  stroke-width: 1px;
  stroke-linecap: butt;
  stroke-linejoin: miter;
  stroke-opacity: 1; }

#path4373-5-5-2-9 {
  fill: #ffffff;
  fill-opacity: 0;
  stroke: #7189a4;
  stroke-width: 1px;
  stroke-linecap: butt;
  stroke-linejoin: miter;
  stroke-opacity: 1;
  display: inline; }

#path4373-5-0-7-9-8 {
  fill: #ffffff;
  fill-opacity: 0;
  stroke: #7189a4;
  stroke-width: 1px;
  stroke-linecap: butt;
  stroke-linejoin: miter;
  stroke-opacity: 1;
  display: inline; }

#rect3100-4-2-5-7-2-4 {
  fill: #fbff00;
  fill-opacity: 1;
  stroke: none;
  display: inline; }

#rect3100-4-2-5-3-3-9-8 {
  fill: #fbff00;
  fill-opacity: 1;
  stroke: none;
  display: inline; }

#rect3100-4-2-5-3-4-4-7-1 {
  fill: #fbff00;
  fill-opacity: 1;
  stroke: none;
  display: inline; }

#path3993-4-4-7 {
  fill: url(../../../../../../eclipse-svg/org.eclipse.ui/icons/full/etool16//saveall_edit_memory.svg#linearGradient3286-7-6-8);
  fill-opacity: 1;
  stroke: none; }

#path3993-0-3-2-9 {
  fill: #666666;
  fill-opacity: 0.47031962;
  stroke: none;
  display: inline; }

#path3993-1-7-0-1 {
  fill: #000000;
  fill-opacity: 0.47031962;
  stroke: none;
  display: inline; }

#g3265-2-9 {
  display: inline; }

#rect3968-7-2 {
  fill: url(../../../../../../eclipse-svg/org.eclipse.ui/icons/full/etool16//saveall_edit_memory.svg#linearGradient3282-0-1);
  fill-opacity: 1;
  stroke: url(../../../../../../eclipse-svg/org.eclipse.ui/icons/full/etool16//saveall_edit_memory.svg#linearGradient3284-1-3);
  stroke-opacity: 1; }

#rect3100-4-5-6 {
  fill: #ffd300;
  fill-opacity: 1;
  stroke: none;
  display: inline; }

#rect3100-4-2-0-7 {
  fill: #ffd300;
  fill-opacity: 1;
  stroke: none;
  display: inline; }

#rect3100-4-1-7-5 {
  fill: #ffd300;
  fill-opacity: 1;
  stroke: none;
  display: inline; }

#path4373-52-5 {
  fill: #ffffff;
  fill-opacity: 0;
  stroke: #7189a4;
  stroke-width: 1px;
  stroke-linecap: butt;
  stroke-linejoin: miter;
  stroke-opacity: 1; }

#path4373-5-5-2 {
  fill: #ffffff;
  fill-opacity: 0;
  stroke: #7189a4;
  stroke-width: 1px;
  stroke-linecap: butt;
  stroke-linejoin: miter;
  stroke-opacity: 1;
  display: inline; }

#path4373-5-0-7-9 {
  fill: #ffffff;
  fill-opacity: 0;
  stroke: #7189a4;
  stroke-width: 1px;
  stroke-linecap: butt;
  stroke-linejoin: miter;
  stroke-opacity: 1;
  display: inline; }

#rect3100-4-2-5-7-2 {
  fill: #fbff00;
  fill-opacity: 1;
  stroke: none;
  display: inline; }

#rect3100-4-2-5-3-3-9 {
  fill: #fbff00;
  fill-opacity: 1;
  stroke: none;
  display: inline; }

#rect3100-4-2-5-3-4-4-7 {
  fill: #fbff00;
  fill-opacity: 1;
  stroke: none;
  display: inline; }

#path3993-4-4 {
  fill: url(../../../../../../eclipse-svg/org.eclipse.ui/icons/full/etool16//saveall_edit_memory.svg#linearGradient3286-7-6);
  fill-opacity: 1;
  stroke: none; }

#path3993-0-3-2 {
  fill: #666666;
  fill-opacity: 0.47031962;
  stroke: none;
  display: inline; }

#path3993-1-7-0 {
  fill: #000000;
  fill-opacity: 0.47031962;
  stroke: none;
  display: inline; }

#g3265-2 {
  display: inline; }

#rect3968-7 {
  fill: url(../../../../../../eclipse-svg/org.eclipse.ui/icons/full/etool16//saveall_edit_memory.svg#linearGradient3282-0);
  fill-opacity: 1;
  stroke: url(../../../../../../eclipse-svg/org.eclipse.ui/icons/full/etool16//saveall_edit_memory.svg#linearGradient3284-1);
  stroke-opacity: 1; }

#rect3100-4-5 {
  fill: #ffd300;
  fill-opacity: 1;
  stroke: none;
  display: inline; }

#rect3100-4-2-0 {
  fill: #ffd300;
  fill-opacity: 1;
  stroke: none;
  display: inline; }

#rect3100-4-1-7 {
  fill: #ffd300;
  fill-opacity: 1;
  stroke: none;
  display: inline; }

#path4373-52 {
  fill: #ffffff;
  fill-opacity: 0;
  stroke: #7189a4;
  stroke-width: 1px;
  stroke-linecap: butt;
  stroke-linejoin: miter;
  stroke-opacity: 1; }

#path4373-5-5 {
  fill: #ffffff;
  fill-opacity: 0;
  stroke: #7189a4;
  stroke-width: 1px;
  stroke-linecap: butt;
  stroke-linejoin: miter;
  stroke-opacity: 1;
  display: inline; }

#path4373-5-0-7 {
  fill: #ffffff;
  fill-opacity: 0;
  stroke: #7189a4;
  stroke-width: 1px;
  stroke-linecap: butt;
  stroke-linejoin: miter;
  stroke-opacity: 1;
  display: inline; }

#rect3100-4-2-5-7 {
  fill: #fbff00;
  fill-opacity: 1;
  stroke: none;
  display: inline; }

#rect3100-4-2-5-3-3 {
  fill: #fbff00;
  fill-opacity: 1;
  stroke: none;
  display: inline; }

#rect3100-4-2-5-3-4-4 {
  fill: #fbff00;
  fill-opacity: 1;
  stroke: none;
  display: inline; }

#path3993-4 {
  fill: url(../../../../../../eclipse-svg/org.eclipse.ui/icons/full/etool16//saveall_edit_memory.svg#linearGradient3286-7);
  fill-opacity: 1;
  stroke: none; }

#path3993-0-3 {
  fill: #666666;
  fill-opacity: 0.47031962;
  stroke: none;
  display: inline; }

#path3993-1-7 {
  fill: #000000;
  fill-opacity: 0.47031962;
  stroke: none;
  display: inline; }
