jbrowse-plugin-protein3d 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/README.md +3 -0
  2. package/dist/AddHighlightModel/GenomeMouseoverHighlight.d.ts +6 -0
  3. package/dist/AddHighlightModel/GenomeMouseoverHighlight.js +24 -0
  4. package/dist/AddHighlightModel/GenomeMouseoverHighlight.js.map +1 -0
  5. package/dist/AddHighlightModel/Highlight.d.ts +10 -0
  6. package/dist/AddHighlightModel/Highlight.js +24 -0
  7. package/dist/AddHighlightModel/Highlight.js.map +1 -0
  8. package/dist/AddHighlightModel/HighlightComponents.d.ts +7 -0
  9. package/dist/AddHighlightModel/HighlightComponents.js +14 -0
  10. package/dist/AddHighlightModel/HighlightComponents.js.map +1 -0
  11. package/dist/AddHighlightModel/ProteinToGenomeClickHighlight.d.ts +7 -0
  12. package/dist/AddHighlightModel/ProteinToGenomeClickHighlight.js +13 -0
  13. package/dist/AddHighlightModel/ProteinToGenomeClickHighlight.js.map +1 -0
  14. package/dist/AddHighlightModel/ProteinToGenomeHoverHighlight.d.ts +7 -0
  15. package/dist/AddHighlightModel/ProteinToGenomeHoverHighlight.js +13 -0
  16. package/dist/AddHighlightModel/ProteinToGenomeHoverHighlight.js.map +1 -0
  17. package/dist/AddHighlightModel/index.d.ts +2 -0
  18. package/dist/AddHighlightModel/index.js +14 -0
  19. package/dist/AddHighlightModel/index.js.map +1 -0
  20. package/dist/AddHighlightModel/util.d.ts +9 -0
  21. package/dist/AddHighlightModel/util.js +17 -0
  22. package/dist/AddHighlightModel/util.js.map +1 -0
  23. package/dist/LaunchProteinView/calculateProteinSequence.d.ts +28 -0
  24. package/dist/LaunchProteinView/calculateProteinSequence.js +77 -0
  25. package/dist/LaunchProteinView/calculateProteinSequence.js.map +1 -0
  26. package/dist/LaunchProteinView/components/AlphaFoldDBSearch.d.ts +8 -0
  27. package/dist/LaunchProteinView/components/AlphaFoldDBSearch.js +71 -0
  28. package/dist/LaunchProteinView/components/AlphaFoldDBSearch.js.map +1 -0
  29. package/dist/LaunchProteinView/components/AlphaFoldDBSearchStatus.d.ts +8 -0
  30. package/dist/LaunchProteinView/components/AlphaFoldDBSearchStatus.js +19 -0
  31. package/dist/LaunchProteinView/components/AlphaFoldDBSearchStatus.js.map +1 -0
  32. package/dist/LaunchProteinView/components/HelpButton.d.ts +2 -0
  33. package/dist/LaunchProteinView/components/HelpButton.js +15 -0
  34. package/dist/LaunchProteinView/components/HelpButton.js.map +1 -0
  35. package/dist/LaunchProteinView/components/HelpDialog.d.ts +4 -0
  36. package/dist/LaunchProteinView/components/HelpDialog.js +16 -0
  37. package/dist/LaunchProteinView/components/HelpDialog.js.map +1 -0
  38. package/dist/LaunchProteinView/components/LaunchProteinViewDialog.d.ts +7 -0
  39. package/dist/LaunchProteinView/components/LaunchProteinViewDialog.js +23 -0
  40. package/dist/LaunchProteinView/components/LaunchProteinViewDialog.js.map +1 -0
  41. package/dist/LaunchProteinView/components/PreLoadedStructureMapping.d.ts +8 -0
  42. package/dist/LaunchProteinView/components/PreLoadedStructureMapping.js +72 -0
  43. package/dist/LaunchProteinView/components/PreLoadedStructureMapping.js.map +1 -0
  44. package/dist/LaunchProteinView/components/TabPanel.d.ts +6 -0
  45. package/dist/LaunchProteinView/components/TabPanel.js +6 -0
  46. package/dist/LaunchProteinView/components/TabPanel.js.map +1 -0
  47. package/dist/LaunchProteinView/components/TranscriptSelector.d.ts +9 -0
  48. package/dist/LaunchProteinView/components/TranscriptSelector.js +28 -0
  49. package/dist/LaunchProteinView/components/TranscriptSelector.js.map +1 -0
  50. package/dist/LaunchProteinView/components/UserProvidedStructure.d.ts +8 -0
  51. package/dist/LaunchProteinView/components/UserProvidedStructure.js +118 -0
  52. package/dist/LaunchProteinView/components/UserProvidedStructure.js.map +1 -0
  53. package/dist/LaunchProteinView/components/useCheckAlphaFoldDBExistence.d.ts +7 -0
  54. package/dist/LaunchProteinView/components/useCheckAlphaFoldDBExistence.js +26 -0
  55. package/dist/LaunchProteinView/components/useCheckAlphaFoldDBExistence.js.map +1 -0
  56. package/dist/LaunchProteinView/index.d.ts +2 -0
  57. package/dist/LaunchProteinView/index.js +45 -0
  58. package/dist/LaunchProteinView/index.js.map +1 -0
  59. package/dist/LaunchProteinView/useMyGeneInfo.d.ts +7 -0
  60. package/dist/LaunchProteinView/useMyGeneInfo.js +29 -0
  61. package/dist/LaunchProteinView/useMyGeneInfo.js.map +1 -0
  62. package/dist/LaunchProteinView/useProteinSequences.d.ts +10 -0
  63. package/dist/LaunchProteinView/useProteinSequences.js +30 -0
  64. package/dist/LaunchProteinView/useProteinSequences.js.map +1 -0
  65. package/dist/LaunchProteinView/util.d.ts +18 -0
  66. package/dist/LaunchProteinView/util.js +54 -0
  67. package/dist/LaunchProteinView/util.js.map +1 -0
  68. package/dist/ProteinModelSessionExtension.d.ts +11 -0
  69. package/dist/ProteinModelSessionExtension.js +53 -0
  70. package/dist/ProteinModelSessionExtension.js.map +1 -0
  71. package/dist/ProteinView/clearSelection.d.ts +4 -0
  72. package/dist/ProteinView/clearSelection.js +4 -0
  73. package/dist/ProteinView/clearSelection.js.map +1 -0
  74. package/dist/ProteinView/components/Header.d.ts +6 -0
  75. package/dist/ProteinView/components/Header.js +49 -0
  76. package/dist/ProteinView/components/Header.js.map +1 -0
  77. package/dist/ProteinView/components/ProteinAlignment.d.ts +6 -0
  78. package/dist/ProteinView/components/ProteinAlignment.js +62 -0
  79. package/dist/ProteinView/components/ProteinAlignment.js.map +1 -0
  80. package/dist/ProteinView/components/ProteinAlignmentHelpButton.d.ts +5 -0
  81. package/dist/ProteinView/components/ProteinAlignmentHelpButton.js +14 -0
  82. package/dist/ProteinView/components/ProteinAlignmentHelpButton.js.map +1 -0
  83. package/dist/ProteinView/components/ProteinAlignmentHelpDialog.d.ts +4 -0
  84. package/dist/ProteinView/components/ProteinAlignmentHelpDialog.js +20 -0
  85. package/dist/ProteinView/components/ProteinAlignmentHelpDialog.js.map +1 -0
  86. package/dist/ProteinView/components/ProteinView.d.ts +6 -0
  87. package/dist/ProteinView/components/ProteinView.js +79 -0
  88. package/dist/ProteinView/components/ProteinView.js.map +1 -0
  89. package/dist/ProteinView/components/SplitString.d.ts +9 -0
  90. package/dist/ProteinView/components/SplitString.js +11 -0
  91. package/dist/ProteinView/components/SplitString.js.map +1 -0
  92. package/dist/ProteinView/css/molstar.d.ts +2 -0
  93. package/dist/ProteinView/css/molstar.js +3137 -0
  94. package/dist/ProteinView/css/molstar.js.map +1 -0
  95. package/dist/ProteinView/genomeToProtein.d.ts +4 -0
  96. package/dist/ProteinView/genomeToProtein.js +13 -0
  97. package/dist/ProteinView/genomeToProtein.js.map +1 -0
  98. package/dist/ProteinView/highlightResidue.d.ts +7 -0
  99. package/dist/ProteinView/highlightResidue.js +14 -0
  100. package/dist/ProteinView/highlightResidue.js.map +1 -0
  101. package/dist/ProteinView/index.d.ts +2 -0
  102. package/dist/ProteinView/index.js +15 -0
  103. package/dist/ProteinView/index.js.map +1 -0
  104. package/dist/ProteinView/launchRemotePairwiseAlignment.d.ts +14 -0
  105. package/dist/ProteinView/launchRemotePairwiseAlignment.js +72 -0
  106. package/dist/ProteinView/launchRemotePairwiseAlignment.js.map +1 -0
  107. package/dist/ProteinView/loadStructureFromData.d.ts +17 -0
  108. package/dist/ProteinView/loadStructureFromData.js +20 -0
  109. package/dist/ProteinView/loadStructureFromData.js.map +1 -0
  110. package/dist/ProteinView/loadStructureFromURL.d.ts +17 -0
  111. package/dist/ProteinView/loadStructureFromURL.js +17 -0
  112. package/dist/ProteinView/loadStructureFromURL.js.map +1 -0
  113. package/dist/ProteinView/model.d.ts +226 -0
  114. package/dist/ProteinView/model.js +324 -0
  115. package/dist/ProteinView/model.js.map +1 -0
  116. package/dist/ProteinView/proteinAbbreviationMapping.d.ts +7 -0
  117. package/dist/ProteinView/proteinAbbreviationMapping.js +23 -0
  118. package/dist/ProteinView/proteinAbbreviationMapping.js.map +1 -0
  119. package/dist/ProteinView/proteinToGenomeMapping.d.ts +13 -0
  120. package/dist/ProteinView/proteinToGenomeMapping.js +69 -0
  121. package/dist/ProteinView/proteinToGenomeMapping.js.map +1 -0
  122. package/dist/ProteinView/selectResidue.d.ts +7 -0
  123. package/dist/ProteinView/selectResidue.js +10 -0
  124. package/dist/ProteinView/selectResidue.js.map +1 -0
  125. package/dist/ProteinView/useProteinView.d.ts +11 -0
  126. package/dist/ProteinView/useProteinView.js +57 -0
  127. package/dist/ProteinView/useProteinView.js.map +1 -0
  128. package/dist/ProteinView/useProteinViewClickBehavior.d.ts +8 -0
  129. package/dist/ProteinView/useProteinViewClickBehavior.js +34 -0
  130. package/dist/ProteinView/useProteinViewClickBehavior.js.map +1 -0
  131. package/dist/ProteinView/useProteinViewHoverBehavior.d.ts +6 -0
  132. package/dist/ProteinView/useProteinViewHoverBehavior.js +31 -0
  133. package/dist/ProteinView/useProteinViewHoverBehavior.js.map +1 -0
  134. package/dist/ProteinView/util.d.ts +19 -0
  135. package/dist/ProteinView/util.js +32 -0
  136. package/dist/ProteinView/util.js.map +1 -0
  137. package/dist/fetchUtils.d.ts +5 -0
  138. package/dist/fetchUtils.js +23 -0
  139. package/dist/fetchUtils.js.map +1 -0
  140. package/dist/genomeToTranscriptMapping.d.ts +7 -0
  141. package/dist/genomeToTranscriptMapping.js +36 -0
  142. package/dist/genomeToTranscriptMapping.js.map +1 -0
  143. package/dist/index.d.ts +8 -0
  144. package/dist/index.js +26 -0
  145. package/dist/index.js.map +1 -0
  146. package/dist/jbrowse-plugin-protein3d.umd.production.min.js +9298 -0
  147. package/dist/jbrowse-plugin-protein3d.umd.production.min.js.map +7 -0
  148. package/dist/mappings.d.ts +19 -0
  149. package/dist/mappings.js +67 -0
  150. package/dist/mappings.js.map +1 -0
  151. package/dist/mappings.test.d.ts +1 -0
  152. package/dist/mappings.test.js +27 -0
  153. package/dist/mappings.test.js.map +1 -0
  154. package/dist/test_data/gene.d.ts +67 -0
  155. package/dist/test_data/gene.js +603 -0
  156. package/dist/test_data/gene.js.map +1 -0
  157. package/package.json +70 -0
  158. package/src/AddHighlightModel/GenomeMouseoverHighlight.tsx +45 -0
  159. package/src/AddHighlightModel/Highlight.tsx +46 -0
  160. package/src/AddHighlightModel/HighlightComponents.tsx +26 -0
  161. package/src/AddHighlightModel/ProteinToGenomeClickHighlight.tsx +39 -0
  162. package/src/AddHighlightModel/ProteinToGenomeHoverHighlight.tsx +39 -0
  163. package/src/AddHighlightModel/index.tsx +25 -0
  164. package/src/AddHighlightModel/util.ts +17 -0
  165. package/src/LaunchProteinView/calculateProteinSequence.ts +127 -0
  166. package/src/LaunchProteinView/components/AlphaFoldDBSearch.tsx +141 -0
  167. package/src/LaunchProteinView/components/AlphaFoldDBSearchStatus.tsx +44 -0
  168. package/src/LaunchProteinView/components/HelpButton.tsx +23 -0
  169. package/src/LaunchProteinView/components/HelpDialog.tsx +43 -0
  170. package/src/LaunchProteinView/components/LaunchProteinViewDialog.tsx +57 -0
  171. package/src/LaunchProteinView/components/PreLoadedStructureMapping.tsx +153 -0
  172. package/src/LaunchProteinView/components/TabPanel.tsx +19 -0
  173. package/src/LaunchProteinView/components/TranscriptSelector.tsx +54 -0
  174. package/src/LaunchProteinView/components/UserProvidedStructure.tsx +226 -0
  175. package/src/LaunchProteinView/components/useCheckAlphaFoldDBExistence.ts +31 -0
  176. package/src/LaunchProteinView/index.ts +56 -0
  177. package/src/LaunchProteinView/useMyGeneInfo.ts +37 -0
  178. package/src/LaunchProteinView/useProteinSequences.ts +36 -0
  179. package/src/LaunchProteinView/util.ts +74 -0
  180. package/src/ProteinModelSessionExtension.ts +71 -0
  181. package/src/ProteinView/clearSelection.ts +5 -0
  182. package/src/ProteinView/components/Header.tsx +84 -0
  183. package/src/ProteinView/components/ProteinAlignment.tsx +119 -0
  184. package/src/ProteinView/components/ProteinAlignmentHelpButton.tsx +33 -0
  185. package/src/ProteinView/components/ProteinAlignmentHelpDialog.tsx +59 -0
  186. package/src/ProteinView/components/ProteinView.tsx +131 -0
  187. package/src/ProteinView/components/SplitString.tsx +35 -0
  188. package/src/ProteinView/css/molstar.ts +3136 -0
  189. package/src/ProteinView/genomeToProtein.ts +21 -0
  190. package/src/ProteinView/highlightResidue.ts +23 -0
  191. package/src/ProteinView/index.ts +18 -0
  192. package/src/ProteinView/launchRemotePairwiseAlignment.ts +113 -0
  193. package/src/ProteinView/loadStructureFromData.ts +48 -0
  194. package/src/ProteinView/loadStructureFromURL.ts +50 -0
  195. package/src/ProteinView/model.ts +384 -0
  196. package/src/ProteinView/proteinAbbreviationMapping.ts +24 -0
  197. package/src/ProteinView/proteinToGenomeMapping.ts +99 -0
  198. package/src/ProteinView/selectResidue.ts +19 -0
  199. package/src/ProteinView/useProteinView.ts +70 -0
  200. package/src/ProteinView/useProteinViewClickBehavior.ts +48 -0
  201. package/src/ProteinView/useProteinViewHoverBehavior.ts +44 -0
  202. package/src/ProteinView/util.ts +56 -0
  203. package/src/__snapshots__/mappings.test.ts.snap +1351 -0
  204. package/src/declare.d.ts +1 -0
  205. package/src/fetchUtils.ts +30 -0
  206. package/src/genomeToTranscriptMapping.ts +46 -0
  207. package/src/index.ts +32 -0
  208. package/src/mappings.test.ts +32 -0
  209. package/src/mappings.ts +89 -0
  210. package/src/test_data/gene.ts +604 -0
@@ -0,0 +1,4 @@
1
+ import { PluginContext } from 'molstar/lib/mol-plugin/context';
2
+ export default function clearSelection({ plugin }: {
3
+ plugin: PluginContext;
4
+ }): void;
@@ -0,0 +1,4 @@
1
+ export default function clearSelection({ plugin }) {
2
+ plugin?.managers.interactivity.lociSelects.deselectAll();
3
+ }
4
+ //# sourceMappingURL=clearSelection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clearSelection.js","sourceRoot":"","sources":["../../src/ProteinView/clearSelection.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAE,MAAM,EAA6B;IAC1E,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,EAAE,CAAA;AAC1D,CAAC"}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import { JBrowsePluginProteinViewModel } from '../model';
3
+ declare const ProteinViewHeader: ({ model, }: {
4
+ model: JBrowsePluginProteinViewModel;
5
+ }) => React.JSX.Element;
6
+ export default ProteinViewHeader;
@@ -0,0 +1,49 @@
1
+ import React from 'react';
2
+ import { observer } from 'mobx-react';
3
+ import CascadingMenuButton from '@jbrowse/core/ui/CascadingMenuButton';
4
+ // icons
5
+ import MenuIcon from '@mui/icons-material/Menu';
6
+ import Visibility from '@mui/icons-material/Visibility';
7
+ import ProteinAlignment from './ProteinAlignment';
8
+ import { LoadingEllipses } from '@jbrowse/core/ui';
9
+ const ProteinViewHeader = observer(function ({ model, }) {
10
+ const { alignment, showAlignment } = model;
11
+ return (React.createElement("div", null,
12
+ React.createElement(InformativeHeaderArea, { model: model }),
13
+ showAlignment && alignment ? (React.createElement(ProteinAlignment, { model: model })) : (React.createElement(LoadingEllipses, { message: "Loading pairwise alignment" }))));
14
+ });
15
+ const InformativeHeaderArea = observer(function ({ model, }) {
16
+ const { showAlignment, clickString, hoverString, showHighlight, zoomToBaseLevel, } = model;
17
+ return (React.createElement("div", { style: { display: 'flex' } },
18
+ React.createElement("span", null, [
19
+ clickString ? `Click: ${clickString}` : '',
20
+ hoverString ? `Hover: ${hoverString}` : '',
21
+ ].join(' ')),
22
+ React.createElement("span", { style: { flexGrow: 1 } }),
23
+ React.createElement(CascadingMenuButton, { menuItems: [
24
+ {
25
+ label: 'Show pairwise alignment area',
26
+ type: 'checkbox',
27
+ checked: showAlignment,
28
+ icon: Visibility,
29
+ onClick: () => model.setShowAlignment(!showAlignment),
30
+ },
31
+ {
32
+ label: 'Show pairwise alignment as highlight',
33
+ type: 'checkbox',
34
+ checked: showHighlight,
35
+ icon: Visibility,
36
+ onClick: () => model.setShowHighlight(!showHighlight),
37
+ },
38
+ {
39
+ label: 'Zoom to base level on click',
40
+ type: 'checkbox',
41
+ checked: zoomToBaseLevel,
42
+ icon: Visibility,
43
+ onClick: () => model.setZoomToBaseLevel(!zoomToBaseLevel),
44
+ },
45
+ ] },
46
+ React.createElement(MenuIcon, null))));
47
+ });
48
+ export default ProteinViewHeader;
49
+ //# sourceMappingURL=Header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/ProteinView/components/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,mBAAmB,MAAM,sCAAsC,CAAA;AAEtE,QAAQ;AACR,OAAO,QAAQ,MAAM,0BAA0B,CAAA;AAC/C,OAAO,UAAU,MAAM,gCAAgC,CAAA;AAIvD,OAAO,gBAAgB,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,UAAU,EAC3C,KAAK,GAGN;IACC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,KAAK,CAAA;IAC1C,OAAO,CACL;QACE,oBAAC,qBAAqB,IAAC,KAAK,EAAE,KAAK,GAAI;QACtC,aAAa,IAAI,SAAS,CAAC,CAAC,CAAC,CAC5B,oBAAC,gBAAgB,IAAC,KAAK,EAAE,KAAK,GAAI,CACnC,CAAC,CAAC,CAAC,CACF,oBAAC,eAAe,IAAC,OAAO,EAAC,4BAA4B,GAAG,CACzD,CACG,CACP,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,qBAAqB,GAAG,QAAQ,CAAC,UAAU,EAC/C,KAAK,GAGN;IACC,MAAM,EACJ,aAAa,EACb,WAAW,EACX,WAAW,EACX,aAAa,EACb,eAAe,GAChB,GAAG,KAAK,CAAA;IACT,OAAO,CACL,6BAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;QAC7B,kCACG;YACC,WAAW,CAAC,CAAC,CAAC,UAAU,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;YAC1C,WAAW,CAAC,CAAC,CAAC,UAAU,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;SAC3C,CAAC,IAAI,CAAC,GAAG,CAAC,CACN;QACP,8BAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAI;QAChC,oBAAC,mBAAmB,IAClB,SAAS,EAAE;gBACT;oBACE,KAAK,EAAE,8BAA8B;oBACrC,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,aAAa;oBACtB,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,aAAa,CAAC;iBACtD;gBACD;oBACE,KAAK,EAAE,sCAAsC;oBAC7C,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,aAAa;oBACtB,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,aAAa,CAAC;iBACtD;gBACD;oBACE,KAAK,EAAE,6BAA6B;oBACpC,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,eAAe;oBACxB,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,eAAe,CAAC;iBAC1D;aACF;YAED,oBAAC,QAAQ,OAAG,CACQ,CAClB,CACP,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,iBAAiB,CAAA"}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import { JBrowsePluginProteinViewModel } from '../model';
3
+ declare const ProteinAlignment: ({ model, }: {
4
+ model: JBrowsePluginProteinViewModel;
5
+ }) => React.JSX.Element;
6
+ export default ProteinAlignment;
@@ -0,0 +1,62 @@
1
+ import React from 'react';
2
+ import { observer } from 'mobx-react';
3
+ import { Tooltip, Typography } from '@mui/material';
4
+ import ProteinAlignmentHelpButton from './ProteinAlignmentHelpButton';
5
+ import { clickProteinToGenome, hoverProteinToGenome, } from '../proteinToGenomeMapping';
6
+ import SplitString from './SplitString';
7
+ const ProteinAlignment = observer(function ({ model, }) {
8
+ const { structureSeqHoverPos, alignment, structurePositionToAlignmentMap, alignmentToStructurePosition, showHighlight, } = model;
9
+ const a0 = alignment.alns[0].seq;
10
+ const a1 = alignment.alns[1].seq;
11
+ const con = alignment.consensus;
12
+ const set = new Set();
13
+ // eslint-disable-next-line unicorn/no-for-loop
14
+ for (let i = 0; i < con.length; i++) {
15
+ const letter = con[i];
16
+ if (letter === '|') {
17
+ set.add(i);
18
+ }
19
+ }
20
+ const alignmentHoverPos = structureSeqHoverPos !== undefined
21
+ ? structurePositionToAlignmentMap?.[structureSeqHoverPos]
22
+ : undefined;
23
+ function onMouseOver(alignmentPos) {
24
+ const structureSeqPos = alignmentToStructurePosition[alignmentPos];
25
+ model.setHoveredPosition({ structureSeqPos });
26
+ hoverProteinToGenome({ model, structureSeqPos });
27
+ }
28
+ function onClick(alignmentPos) {
29
+ const structureSeqPos = alignmentToStructurePosition[alignmentPos];
30
+ clickProteinToGenome({ model, structureSeqPos }).catch(e => {
31
+ console.error(e);
32
+ });
33
+ }
34
+ return (React.createElement("div", null,
35
+ React.createElement(ProteinAlignmentHelpButton, { model: model }),
36
+ React.createElement(Typography, null, "Alignment of the protein structure file's sequence with the selected transcript's sequence. Green is the aligned portion"),
37
+ React.createElement("div", { style: {
38
+ fontSize: 9,
39
+ fontFamily: 'monospace',
40
+ cursor: 'pointer',
41
+ margin: 8,
42
+ paddingBottom: 8,
43
+ overflow: 'auto',
44
+ whiteSpace: 'nowrap',
45
+ }, onMouseLeave: () => {
46
+ model.setHoveredPosition(undefined);
47
+ model.clearHoverGenomeHighlights();
48
+ } },
49
+ React.createElement("div", null,
50
+ React.createElement(Tooltip, { title: "This is the sequence of the protein from the structure file" },
51
+ React.createElement("span", null, "STRUCT\u00A0")),
52
+ React.createElement(SplitString, { str: a0, showHighlight: showHighlight, col: alignmentHoverPos, set: set, onMouseOver: onMouseOver, onClick: onClick })),
53
+ React.createElement("div", null,
54
+ React.createElement("span", null, "\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0"),
55
+ React.createElement(SplitString, { showHighlight: showHighlight, str: con, col: alignmentHoverPos, set: set, onMouseOver: onMouseOver, onClick: onClick })),
56
+ React.createElement("div", null,
57
+ React.createElement(Tooltip, { title: "This is the sequence of the protein from the reference genome transcript" },
58
+ React.createElement("span", null, "GENOME\u00A0")),
59
+ React.createElement(SplitString, { str: a1, col: alignmentHoverPos, showHighlight: showHighlight, set: set, onMouseOver: onMouseOver, onClick: onClick })))));
60
+ });
61
+ export default ProteinAlignment;
62
+ //# sourceMappingURL=ProteinAlignment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProteinAlignment.js","sourceRoot":"","sources":["../../../src/ProteinView/components/ProteinAlignment.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAInD,OAAO,0BAA0B,MAAM,8BAA8B,CAAA;AACrE,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,2BAA2B,CAAA;AAClC,OAAO,WAAW,MAAM,eAAe,CAAA;AAEvC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,UAAU,EAC1C,KAAK,GAGN;IACC,MAAM,EACJ,oBAAoB,EACpB,SAAS,EACT,+BAA+B,EAC/B,4BAA4B,EAC5B,aAAa,GACd,GAAG,KAAK,CAAA;IACT,MAAM,EAAE,GAAG,SAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAa,CAAA;IAC3C,MAAM,EAAE,GAAG,SAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAa,CAAA;IAC3C,MAAM,GAAG,GAAG,SAAU,CAAC,SAAS,CAAA;IAChC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAA;IAC7B,+CAA+C;IAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QACrB,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACZ,CAAC;IACH,CAAC;IAED,MAAM,iBAAiB,GACrB,oBAAoB,KAAK,SAAS;QAChC,CAAC,CAAC,+BAA+B,EAAE,CAAC,oBAAoB,CAAC;QACzD,CAAC,CAAC,SAAS,CAAA;IAEf,SAAS,WAAW,CAAC,YAAoB;QACvC,MAAM,eAAe,GAAG,4BAA4B,CAAC,YAAY,CAAC,CAAA;QAClE,KAAK,CAAC,kBAAkB,CAAC,EAAE,eAAe,EAAE,CAAC,CAAA;QAC7C,oBAAoB,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAA;IAClD,CAAC;IACD,SAAS,OAAO,CAAC,YAAoB;QACnC,MAAM,eAAe,GAAG,4BAA4B,CAAC,YAAY,CAAC,CAAA;QAClE,oBAAoB,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACzD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAClB,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,CACL;QACE,oBAAC,0BAA0B,IAAC,KAAK,EAAE,KAAK,GAAI;QAE5C,oBAAC,UAAU,mIAGE;QACb,6BACE,KAAK,EAAE;gBACL,QAAQ,EAAE,CAAC;gBACX,UAAU,EAAE,WAAW;gBACvB,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,CAAC;gBACT,aAAa,EAAE,CAAC;gBAChB,QAAQ,EAAE,MAAM;gBAChB,UAAU,EAAE,QAAQ;aACrB,EACD,YAAY,EAAE,GAAG,EAAE;gBACjB,KAAK,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAA;gBACnC,KAAK,CAAC,0BAA0B,EAAE,CAAA;YACpC,CAAC;YAED;gBACE,oBAAC,OAAO,IAAC,KAAK,EAAC,6DAA6D;oBAC1E,iDAAyB,CACjB;gBACV,oBAAC,WAAW,IACV,GAAG,EAAE,EAAE,EACP,aAAa,EAAE,aAAa,EAC5B,GAAG,EAAE,iBAAiB,EACtB,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,GAChB,CACE;YACN;gBACE,+EAAuD;gBACvD,oBAAC,WAAW,IACV,aAAa,EAAE,aAAa,EAC5B,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,iBAAiB,EACtB,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,GAChB,CACE;YACN;gBACE,oBAAC,OAAO,IAAC,KAAK,EAAC,0EAA0E;oBACvF,iDAAyB,CACjB;gBACV,oBAAC,WAAW,IACV,GAAG,EAAE,EAAE,EACP,GAAG,EAAE,iBAAiB,EACtB,aAAa,EAAE,aAAa,EAC5B,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,GAChB,CACE,CACF,CACF,CACP,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,gBAAgB,CAAA"}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { JBrowsePluginProteinViewModel } from '../model';
3
+ export default function ProteinAlignmentHelpButton({ model, }: {
4
+ model: JBrowsePluginProteinViewModel;
5
+ }): React.JSX.Element;
@@ -0,0 +1,14 @@
1
+ import React, { lazy } from 'react';
2
+ import { IconButton } from '@mui/material';
3
+ import { getSession } from '@jbrowse/core/util';
4
+ // icons
5
+ import Help from '@mui/icons-material/Help';
6
+ const ProteinAlignmentHelpDialog = lazy(() => import('./ProteinAlignmentHelpDialog'));
7
+ export default function ProteinAlignmentHelpButton({ model, }) {
8
+ return (React.createElement(IconButton, { style: { float: 'right' }, onClick: () => getSession(model).queueDialog(handleClose => [
9
+ ProteinAlignmentHelpDialog,
10
+ { handleClose },
11
+ ]) },
12
+ React.createElement(Help, null)));
13
+ }
14
+ //# sourceMappingURL=ProteinAlignmentHelpButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProteinAlignmentHelpButton.js","sourceRoot":"","sources":["../../../src/ProteinView/components/ProteinAlignmentHelpButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAK/C,QAAQ;AACR,OAAO,IAAI,MAAM,0BAA0B,CAAA;AAE3C,MAAM,0BAA0B,GAAG,IAAI,CACrC,GAAG,EAAE,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAC7C,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,0BAA0B,CAAC,EACjD,KAAK,GAGN;IACC,OAAO,CACL,oBAAC,UAAU,IACT,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EACzB,OAAO,EAAE,GAAG,EAAE,CACZ,UAAU,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3C,0BAA0B;YAC1B,EAAE,WAAW,EAAE;SAChB,CAAC;QAGJ,oBAAC,IAAI,OAAG,CACG,CACd,CAAA;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ export default function ProteinAlignmentHelpDialog({ handleClose, }: {
3
+ handleClose: () => void;
4
+ }): React.JSX.Element;
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import { Button, DialogActions, DialogContent, Divider, Typography, } from '@mui/material';
3
+ import { Dialog } from '@jbrowse/core/ui';
4
+ function Typography2({ children }) {
5
+ return (React.createElement(Typography, { style: {
6
+ margin: 4,
7
+ marginBottom: 12,
8
+ } }, children));
9
+ }
10
+ export default function ProteinAlignmentHelpDialog({ handleClose, }) {
11
+ return (React.createElement(Dialog, { open: true, maxWidth: "lg", onClose: handleClose, title: "Protein alignment" },
12
+ React.createElement(DialogContent, null,
13
+ React.createElement(Typography2, null, "This panel shows the computed alignment of the reference genome sequence to the structure sequence. The structure file (PDB file, mmCIF file, etc) has a stored representation of the e.g. amino acid sequence but the sequence in the structure file can differ from the sequence from the gene on the genome browser"),
14
+ React.createElement(Typography2, null, "In order to resolve this, we align the two sequences together (using EMBOSS needle) to get alignment of the genome's representation of the protein and the structure file's representation of the protein."),
15
+ React.createElement(Typography2, null, "If you need a 100% fidelity protein, you can do a folding with e.g. AlphaFold to make sure the structure you are using matches exactly the sequence of the transcript")),
16
+ React.createElement(Divider, null),
17
+ React.createElement(DialogActions, null,
18
+ React.createElement(Button, { onClick: () => handleClose(), color: "primary" }, "Close"))));
19
+ }
20
+ //# sourceMappingURL=ProteinAlignmentHelpDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProteinAlignmentHelpDialog.js","sourceRoot":"","sources":["../../../src/ProteinView/components/ProteinAlignmentHelpDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EACL,MAAM,EACN,aAAa,EACb,aAAa,EACb,OAAO,EACP,UAAU,GAEX,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAEzC,SAAS,WAAW,CAAC,EAAE,QAAQ,EAAmB;IAChD,OAAO,CACL,oBAAC,UAAU,IACT,KAAK,EAAE;YACL,MAAM,EAAE,CAAC;YACT,YAAY,EAAE,EAAE;SACjB,IAEA,QAAQ,CACE,CACd,CAAA;AACH,CAAC;AACD,MAAM,CAAC,OAAO,UAAU,0BAA0B,CAAC,EACjD,WAAW,GAGZ;IACC,OAAO,CACL,oBAAC,MAAM,IAAC,IAAI,QAAC,QAAQ,EAAC,IAAI,EAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAC,mBAAmB;QACxE,oBAAC,aAAa;YACZ,oBAAC,WAAW,iUAME;YACd,oBAAC,WAAW,qNAKE;YACd,oBAAC,WAAW,gLAIE,CACA;QAChB,oBAAC,OAAO,OAAG;QACX,oBAAC,aAAa;YACZ,oBAAC,MAAM,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAC,SAAS,YAE5C,CACK,CACT,CACV,CAAA;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import { JBrowsePluginProteinViewModel } from '../model';
3
+ declare const ProteinView: ({ model, }: {
4
+ model: JBrowsePluginProteinViewModel;
5
+ }) => React.JSX.Element;
6
+ export default ProteinView;
@@ -0,0 +1,79 @@
1
+ import React, { useEffect } from 'react';
2
+ import { observer } from 'mobx-react';
3
+ import { ErrorMessage } from '@jbrowse/core/ui';
4
+ import Header from './Header';
5
+ // hooks
6
+ import useProteinView from '../useProteinView';
7
+ import useProteinViewClickBehavior from '../useProteinViewClickBehavior';
8
+ import useProteinViewHoverBehavior from '../useProteinViewHoverBehavior';
9
+ // utils
10
+ import selectResidue from '../selectResidue';
11
+ import highlightResidue from '../highlightResidue';
12
+ import clearSelection from '../clearSelection';
13
+ // css
14
+ import css from '../css/molstar';
15
+ if (document?.head) {
16
+ const style = document.createElement('style');
17
+ style.append(css);
18
+ document.head?.append(style);
19
+ }
20
+ const ProteinView = observer(function ({ model, }) {
21
+ const { url, data, showControls } = model;
22
+ const { plugin, seq, parentRef, error } = useProteinView({
23
+ url,
24
+ data,
25
+ showControls,
26
+ });
27
+ return error ? (React.createElement(ErrorMessage, { error: error })) : (React.createElement(ProteinViewContainer, { model: model, plugin: plugin, seq: seq, parentRef: parentRef }));
28
+ });
29
+ const ProteinViewContainer = observer(function ({ model, plugin, seq, parentRef, }) {
30
+ const { width, height, structureSeqToTranscriptSeqPosition, seq2, structureSeqHoverPos, showHighlight, alignment, } = model;
31
+ const { error } = useProteinViewClickBehavior({ plugin, model });
32
+ useProteinViewHoverBehavior({ plugin, model });
33
+ const structure = plugin?.managers.structure.hierarchy.current.structures[0]?.cell.obj?.data;
34
+ useEffect(() => {
35
+ model.setSeqs(seq, seq2);
36
+ }, [seq, model, seq2]);
37
+ useEffect(() => {
38
+ if (!plugin || !structureSeqToTranscriptSeqPosition || !structure) {
39
+ return;
40
+ }
41
+ if (showHighlight) {
42
+ for (const coord of Object.keys(structureSeqToTranscriptSeqPosition)) {
43
+ selectResidue({
44
+ structure,
45
+ plugin,
46
+ selectedResidue: +coord + 1,
47
+ });
48
+ }
49
+ }
50
+ else {
51
+ clearSelection({ plugin });
52
+ }
53
+ }, [plugin, structure, showHighlight, structureSeqToTranscriptSeqPosition]);
54
+ useEffect(() => {
55
+ if (!plugin || !structure || structureSeqHoverPos === undefined) {
56
+ return;
57
+ }
58
+ if (structureSeqHoverPos !== undefined) {
59
+ highlightResidue({
60
+ structure,
61
+ plugin,
62
+ selectedResidue: structureSeqHoverPos,
63
+ });
64
+ }
65
+ else {
66
+ console.warn('not found');
67
+ }
68
+ }, [plugin, structure, structureSeqHoverPos]);
69
+ return (React.createElement("div", { style: { background: !alignment ? '#ccc' : undefined } },
70
+ error ? React.createElement(ErrorMessage, { error: error }) : null,
71
+ React.createElement(Header, { model: model }),
72
+ React.createElement("div", { ref: parentRef, style: {
73
+ position: 'relative',
74
+ width,
75
+ height,
76
+ } })));
77
+ });
78
+ export default ProteinView;
79
+ //# sourceMappingURL=ProteinView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProteinView.js","sourceRoot":"","sources":["../../../src/ProteinView/components/ProteinView.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ export default function SplitString({ str, col, set, onMouseOver, onClick, showHighlight, }: {
3
+ str: string;
4
+ col?: number;
5
+ set?: Set<number>;
6
+ onMouseOver?: (arg: number) => void;
7
+ onClick?: (arg: number) => void;
8
+ showHighlight: boolean;
9
+ }): React.JSX.Element[];
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ export default function SplitString({ str, col, set, onMouseOver, onClick, showHighlight, }) {
3
+ return str.split('').map((d, i) => (React.createElement("span", { key: `${d}-${i}`, onMouseOver: () => onMouseOver?.(i), onClick: () => onClick?.(i), style: {
4
+ background: col !== undefined && i === col
5
+ ? '#f69'
6
+ : set?.has(i) && showHighlight
7
+ ? '#33ff19'
8
+ : undefined,
9
+ } }, d === ' ' ? React.createElement(React.Fragment, null, "\u00A0") : d)));
10
+ }
11
+ //# sourceMappingURL=SplitString.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SplitString.js","sourceRoot":"","sources":["../../../src/ProteinView/components/SplitString.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,GAAG,EACH,GAAG,EACH,GAAG,EACH,WAAW,EACX,OAAO,EACP,aAAa,GAQd;IACC,OAAO,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACjC,8BACE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAChB,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EACnC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAC3B,KAAK,EAAE;YACL,UAAU,EACR,GAAG,KAAK,SAAS,IAAI,CAAC,KAAK,GAAG;gBAC5B,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,aAAa;oBAC5B,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,SAAS;SAClB,IAEA,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,mDAAW,CAAC,CAAC,CAAC,CAAC,CACvB,CACR,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const _default: "\n.msp-plugin {\n font-family: 'Helvetica Neue', 'Segoe UI', Helvetica, 'Source Sans Pro', Arial,\n sans-serif;\n font-size: 14px;\n line-height: 1.42857143;\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0; /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n background: #eeece7;\n}\n.msp-plugin * {\n box-sizing: border-box;\n}\n.msp-plugin [hidden],\n.msp-plugin template {\n display: none;\n}\n.msp-plugin a {\n background-color: rgba(0, 0, 0, 0);\n}\n.msp-plugin a:active,\n.msp-plugin a:hover {\n outline: 0;\n}\n.msp-plugin abbr[title] {\n border-bottom: 1px dotted;\n}\n.msp-plugin b,\n.msp-plugin strong {\n font-weight: bold;\n}\n.msp-plugin small {\n font-size: 80%;\n}\n.msp-plugin img {\n border: 0;\n}\n.msp-plugin svg:not(:root) {\n overflow: hidden;\n}\n.msp-plugin button,\n.msp-plugin input,\n.msp-plugin optgroup,\n.msp-plugin select,\n.msp-plugin textarea {\n color: inherit;\n font: inherit;\n margin: 0;\n}\n.msp-plugin button {\n overflow: visible;\n}\n.msp-plugin button,\n.msp-plugin select {\n text-transform: none;\n}\n.msp-plugin button,\n.msp-plugin html input[type='button'],\n.msp-plugin input[type='reset'],\n.msp-plugin input[type='submit'] {\n -webkit-appearance: button;\n cursor: pointer;\n}\n.msp-plugin button[disabled],\n.msp-plugin html input[disabled] {\n cursor: default;\n}\n.msp-plugin button::-moz-focus-inner,\n.msp-plugin input::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n.msp-plugin input {\n line-height: normal;\n}\n.msp-plugin input[type='checkbox'],\n.msp-plugin input[type='radio'] {\n box-sizing: border-box;\n padding: 0;\n}\n.msp-plugin input[type='number']::-webkit-inner-spin-button,\n.msp-plugin input[type='number']::-webkit-outer-spin-button {\n height: auto;\n}\n.msp-plugin textarea {\n overflow: auto;\n}\n.msp-plugin .msp-layout-expanded,\n.msp-plugin .msp-layout-standard {\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n}\n.msp-plugin .msp-layout-standard {\n border: 1px solid #cec9ba;\n}\n.msp-plugin .msp-layout-region {\n overflow: hidden;\n}\n.msp-plugin .msp-layout-static,\n.msp-plugin .msp-layout-scrollable {\n position: absolute;\n}\n.msp-plugin .msp-scrollable {\n overflow-y: auto;\n}\n.msp-plugin .msp-scrollable-container {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n overflow-y: auto;\n}\n.msp-plugin .msp-layout-static {\n overflow: hidden;\n}\n.msp-plugin .msp-layout-top .msp-layout-static,\n.msp-plugin .msp-layout-main .msp-layout-static,\n.msp-plugin .msp-layout-bottom .msp-layout-static {\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n}\n.msp-plugin .msp-layout-right .msp-layout-static {\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n}\n.msp-plugin .msp-layout-right .msp-layout-scrollable {\n left: 0;\n right: 0;\n top: 43px;\n bottom: 0;\n}\n.msp-plugin .msp-layout-left .msp-layout-static {\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n}\n.msp-plugin .msp-layout-standard-outside {\n position: absolute;\n}\n.msp-plugin .msp-layout-standard-outside .msp-layout-main {\n position: absolute;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n}\n.msp-plugin .msp-layout-standard-outside .msp-layout-top {\n position: absolute;\n right: 0;\n height: 97px;\n top: -97px;\n width: 50%;\n border-left: 1px solid #cec9ba;\n border-bottom: 1px solid #cec9ba;\n}\n.msp-plugin .msp-layout-standard-outside .msp-layout-bottom {\n position: absolute;\n left: 0;\n right: 0;\n height: 97px;\n top: -97px;\n width: 50%;\n border-bottom: 1px solid #cec9ba;\n}\n.msp-plugin .msp-layout-standard-outside .msp-layout-right {\n position: absolute;\n width: 50%;\n right: 0;\n bottom: -295px;\n height: 295px;\n border-left: 1px solid #cec9ba;\n border-top: 1px solid #cec9ba;\n}\n.msp-plugin .msp-layout-standard-outside .msp-layout-left {\n position: absolute;\n width: 50%;\n left: 0;\n bottom: 0;\n bottom: -295px;\n height: 295px;\n border-top: 1px solid #cec9ba;\n}\n.msp-plugin\n .msp-layout-standard-outside\n .msp-layout-hide-right\n .msp-layout-right {\n display: none;\n}\n.msp-plugin\n .msp-layout-standard-outside\n .msp-layout-hide-right\n .msp-layout-left {\n width: 100%;\n}\n.msp-plugin\n .msp-layout-standard-outside\n .msp-layout-hide-left\n .msp-layout-left {\n display: none;\n}\n.msp-plugin\n .msp-layout-standard-outside\n .msp-layout-hide-left\n .msp-layout-right {\n width: 100%;\n border-left: none;\n}\n.msp-plugin\n .msp-layout-standard-outside\n .msp-layout-collapse-left\n .msp-layout-left {\n width: 32px;\n}\n.msp-plugin\n .msp-layout-standard-outside\n .msp-layout-collapse-left\n .msp-layout-right {\n left: 32px;\n width: auto;\n}\n.msp-plugin .msp-layout-standard-outside .msp-layout-hide-top .msp-layout-top {\n display: none;\n}\n.msp-plugin\n .msp-layout-standard-outside\n .msp-layout-hide-top\n .msp-layout-bottom {\n width: 100%;\n border-left: none;\n}\n.msp-plugin\n .msp-layout-standard-outside\n .msp-layout-hide-bottom\n .msp-layout-bottom {\n display: none;\n}\n.msp-plugin\n .msp-layout-standard-outside\n .msp-layout-hide-bottom\n .msp-layout-top {\n width: 100%;\n border-left: none;\n}\n.msp-plugin .msp-layout-standard-landscape {\n position: absolute;\n}\n.msp-plugin .msp-layout-standard-landscape .msp-layout-main {\n position: absolute;\n left: 330px;\n right: 300px;\n bottom: 70px;\n top: 100px;\n}\n.msp-plugin .msp-layout-standard-landscape .msp-layout-top {\n position: absolute;\n left: 330px;\n right: 300px;\n height: 100px;\n top: 0;\n border-bottom: 1px solid #cec9ba;\n}\n.msp-plugin .msp-layout-standard-landscape .msp-layout-bottom {\n position: absolute;\n left: 330px;\n right: 300px;\n height: 70px;\n bottom: 0;\n border-top: 1px solid #cec9ba;\n}\n.msp-plugin .msp-layout-standard-landscape .msp-layout-right {\n position: absolute;\n width: 300px;\n right: 0;\n bottom: 0;\n top: 0;\n border-left: 1px solid #cec9ba;\n}\n.msp-plugin .msp-layout-standard-landscape .msp-layout-left {\n position: absolute;\n width: 330px;\n left: 0;\n bottom: 0;\n top: 0;\n border-right: 1px solid #cec9ba;\n}\n.msp-plugin\n .msp-layout-standard-landscape\n .msp-layout-hide-right\n .msp-layout-right {\n display: none;\n}\n.msp-plugin\n .msp-layout-standard-landscape\n .msp-layout-hide-right\n .msp-layout-main,\n.msp-plugin\n .msp-layout-standard-landscape\n .msp-layout-hide-right\n .msp-layout-top,\n.msp-plugin\n .msp-layout-standard-landscape\n .msp-layout-hide-right\n .msp-layout-bottom {\n right: 0;\n}\n.msp-plugin\n .msp-layout-standard-landscape\n .msp-layout-hide-left\n .msp-layout-left {\n display: none;\n}\n.msp-plugin\n .msp-layout-standard-landscape\n .msp-layout-hide-left\n .msp-layout-main,\n.msp-plugin\n .msp-layout-standard-landscape\n .msp-layout-hide-left\n .msp-layout-top,\n.msp-plugin\n .msp-layout-standard-landscape\n .msp-layout-hide-left\n .msp-layout-bottom {\n left: 0;\n}\n.msp-plugin\n .msp-layout-standard-landscape\n .msp-layout-collapse-left\n .msp-layout-left {\n width: 32px;\n}\n.msp-plugin\n .msp-layout-standard-landscape\n .msp-layout-collapse-left\n .msp-layout-main,\n.msp-plugin\n .msp-layout-standard-landscape\n .msp-layout-collapse-left\n .msp-layout-top,\n.msp-plugin\n .msp-layout-standard-landscape\n .msp-layout-collapse-left\n .msp-layout-bottom {\n left: 32px;\n}\n.msp-plugin\n .msp-layout-standard-landscape\n .msp-layout-hide-bottom\n .msp-layout-bottom {\n display: none;\n}\n.msp-plugin\n .msp-layout-standard-landscape\n .msp-layout-hide-bottom\n .msp-layout-main {\n bottom: 0;\n}\n.msp-plugin\n .msp-layout-standard-landscape\n .msp-layout-hide-top\n .msp-layout-top {\n display: none;\n}\n.msp-plugin\n .msp-layout-standard-landscape\n .msp-layout-hide-top\n .msp-layout-main {\n top: 0;\n}\n.msp-plugin .msp-layout-standard-portrait {\n position: absolute;\n}\n.msp-plugin .msp-layout-standard-portrait .msp-layout-main {\n position: absolute;\n left: 0;\n right: 0;\n bottom: 361px;\n top: 97px;\n}\n.msp-plugin .msp-layout-standard-portrait .msp-layout-top {\n position: absolute;\n right: 0;\n height: 97px;\n top: 0;\n width: 50%;\n border-left: 1px solid #cec9ba;\n border-bottom: 1px solid #cec9ba;\n}\n.msp-plugin .msp-layout-standard-portrait .msp-layout-bottom {\n position: absolute;\n left: 0;\n right: 0;\n height: 97px;\n width: 50%;\n border-bottom: 1px solid #cec9ba;\n}\n.msp-plugin .msp-layout-standard-portrait .msp-layout-right {\n position: absolute;\n width: 50%;\n right: 0;\n bottom: 0;\n height: 361px;\n border-left: 1px solid #cec9ba;\n border-top: 1px solid #cec9ba;\n}\n.msp-plugin .msp-layout-standard-portrait .msp-layout-left {\n position: absolute;\n width: 50%;\n left: 0;\n bottom: 0;\n height: 361px;\n border-top: 1px solid #cec9ba;\n}\n.msp-plugin\n .msp-layout-standard-portrait\n .msp-layout-hide-right\n .msp-layout-right {\n display: none;\n}\n.msp-plugin\n .msp-layout-standard-portrait\n .msp-layout-hide-right\n .msp-layout-left {\n width: 100%;\n}\n.msp-plugin\n .msp-layout-standard-portrait\n .msp-layout-hide-left\n .msp-layout-left {\n display: none;\n}\n.msp-plugin\n .msp-layout-standard-portrait\n .msp-layout-hide-left\n .msp-layout-right {\n width: 100%;\n border-left: none;\n}\n.msp-plugin\n .msp-layout-standard-portrait\n .msp-layout-hide-right.msp-layout-hide-left\n .msp-layout-main {\n bottom: 0;\n}\n.msp-plugin\n .msp-layout-standard-portrait\n .msp-layout-collapse-left\n .msp-layout-left {\n width: 32px;\n}\n.msp-plugin\n .msp-layout-standard-portrait\n .msp-layout-collapse-left\n .msp-layout-right {\n left: 32px;\n width: auto;\n}\n.msp-plugin .msp-layout-standard-portrait .msp-layout-hide-top .msp-layout-top {\n display: none;\n}\n.msp-plugin\n .msp-layout-standard-portrait\n .msp-layout-hide-top\n .msp-layout-bottom {\n width: 100%;\n border-left: none;\n}\n.msp-plugin\n .msp-layout-standard-portrait\n .msp-layout-hide-bottom\n .msp-layout-bottom {\n display: none;\n}\n.msp-plugin\n .msp-layout-standard-portrait\n .msp-layout-hide-bottom\n .msp-layout-top {\n width: 100%;\n border-left: none;\n}\n.msp-plugin\n .msp-layout-standard-portrait\n .msp-layout-hide-top.msp-layout-hide-bottom\n .msp-layout-main {\n top: 0;\n}\n.msp-plugin .msp-layout-standard-reactive {\n position: absolute;\n}\n@media (orientation: landscape), (min-width: 1000px) {\n .msp-plugin .msp-layout-standard-reactive .msp-layout-main {\n position: absolute;\n left: 330px;\n right: 300px;\n bottom: 70px;\n top: 100px;\n }\n .msp-plugin .msp-layout-standard-reactive .msp-layout-top {\n position: absolute;\n left: 330px;\n right: 300px;\n height: 100px;\n top: 0;\n border-bottom: 1px solid #cec9ba;\n }\n .msp-plugin .msp-layout-standard-reactive .msp-layout-bottom {\n position: absolute;\n left: 330px;\n right: 300px;\n height: 70px;\n bottom: 0;\n border-top: 1px solid #cec9ba;\n }\n .msp-plugin .msp-layout-standard-reactive .msp-layout-right {\n position: absolute;\n width: 300px;\n right: 0;\n bottom: 0;\n top: 0;\n border-left: 1px solid #cec9ba;\n }\n .msp-plugin .msp-layout-standard-reactive .msp-layout-left {\n position: absolute;\n width: 330px;\n left: 0;\n bottom: 0;\n top: 0;\n border-right: 1px solid #cec9ba;\n }\n .msp-plugin\n .msp-layout-standard-reactive\n .msp-layout-hide-right\n .msp-layout-right {\n display: none;\n }\n .msp-plugin\n .msp-layout-standard-reactive\n .msp-layout-hide-right\n .msp-layout-main,\n .msp-plugin\n .msp-layout-standard-reactive\n .msp-layout-hide-right\n .msp-layout-top,\n .msp-plugin\n .msp-layout-standard-reactive\n .msp-layout-hide-right\n .msp-layout-bottom {\n right: 0;\n }\n .msp-plugin\n .msp-layout-standard-reactive\n .msp-layout-hide-left\n .msp-layout-left {\n display: none;\n }\n .msp-plugin\n .msp-layout-standard-reactive\n .msp-layout-hide-left\n .msp-layout-main,\n .msp-plugin\n .msp-layout-standard-reactive\n .msp-layout-hide-left\n .msp-layout-top,\n .msp-plugin\n .msp-layout-standard-reactive\n .msp-layout-hide-left\n .msp-layout-bottom {\n left: 0;\n }\n .msp-plugin\n .msp-layout-standard-reactive\n .msp-layout-collapse-left\n .msp-layout-left {\n width: 32px;\n }\n .msp-plugin\n .msp-layout-standard-reactive\n .msp-layout-collapse-left\n .msp-layout-main,\n .msp-plugin\n .msp-layout-standard-reactive\n .msp-layout-collapse-left\n .msp-layout-top,\n .msp-plugin\n .msp-layout-standard-reactive\n .msp-layout-collapse-left\n .msp-layout-bottom {\n left: 32px;\n }\n .msp-plugin\n .msp-layout-standard-reactive\n .msp-layout-hide-bottom\n .msp-layout-bottom {\n display: none;\n }\n .msp-plugin\n .msp-layout-standard-reactive\n .msp-layout-hide-bottom\n .msp-layout-main {\n bottom: 0;\n }\n .msp-plugin\n .msp-layout-standard-reactive\n .msp-layout-hide-top\n .msp-layout-top {\n display: none;\n }\n .msp-plugin\n .msp-layout-standard-reactive\n .msp-layout-hide-top\n .msp-layout-main {\n top: 0;\n }\n}\n@media (orientation: portrait) and (max-width: 1000px) {\n .msp-plugin .msp-layout-standard-reactive .msp-layout-main {\n position: absolute;\n left: 0;\n right: 0;\n bottom: 361px;\n top: 97px;\n }\n .msp-plugin .msp-layout-standard-reactive .msp-layout-top {\n position: absolute;\n right: 0;\n height: 97px;\n top: 0;\n width: 50%;\n border-left: 1px solid #cec9ba;\n border-bottom: 1px solid #cec9ba;\n }\n .msp-plugin .msp-layout-standard-reactive .msp-layout-bottom {\n position: absolute;\n left: 0;\n right: 0;\n height: 97px;\n width: 50%;\n border-bottom: 1px solid #cec9ba;\n }\n .msp-plugin .msp-layout-standard-reactive .msp-layout-right {\n position: absolute;\n width: 50%;\n right: 0;\n bottom: 0;\n height: 361px;\n border-left: 1px solid #cec9ba;\n border-top: 1px solid #cec9ba;\n }\n .msp-plugin .msp-layout-standard-reactive .msp-layout-left {\n position: absolute;\n width: 50%;\n left: 0;\n bottom: 0;\n height: 361px;\n border-top: 1px solid #cec9ba;\n }\n .msp-plugin\n .msp-layout-standard-reactive\n .msp-layout-hide-right\n .msp-layout-right {\n display: none;\n }\n .msp-plugin\n .msp-layout-standard-reactive\n .msp-layout-hide-right\n .msp-layout-left {\n width: 100%;\n }\n .msp-plugin\n .msp-layout-standard-reactive\n .msp-layout-hide-left\n .msp-layout-left {\n display: none;\n }\n .msp-plugin\n .msp-layout-standard-reactive\n .msp-layout-hide-left\n .msp-layout-right {\n width: 100%;\n border-left: none;\n }\n .msp-plugin\n .msp-layout-standard-reactive\n .msp-layout-hide-right.msp-layout-hide-left\n .msp-layout-main {\n bottom: 0;\n }\n .msp-plugin\n .msp-layout-standard-reactive\n .msp-layout-collapse-left\n .msp-layout-left {\n width: 32px;\n }\n .msp-plugin\n .msp-layout-standard-reactive\n .msp-layout-collapse-left\n .msp-layout-right {\n left: 32px;\n width: auto;\n }\n .msp-plugin\n .msp-layout-standard-reactive\n .msp-layout-hide-top\n .msp-layout-top {\n display: none;\n }\n .msp-plugin\n .msp-layout-standard-reactive\n .msp-layout-hide-top\n .msp-layout-bottom {\n width: 100%;\n border-left: none;\n }\n .msp-plugin\n .msp-layout-standard-reactive\n .msp-layout-hide-bottom\n .msp-layout-bottom {\n display: none;\n }\n .msp-plugin\n .msp-layout-standard-reactive\n .msp-layout-hide-bottom\n .msp-layout-top {\n width: 100%;\n border-left: none;\n }\n .msp-plugin\n .msp-layout-standard-reactive\n .msp-layout-hide-top.msp-layout-hide-bottom\n .msp-layout-main {\n top: 0;\n }\n}\n.msp-plugin .msp-layout-expanded {\n position: fixed;\n}\n@media (orientation: landscape) {\n .msp-plugin .msp-layout-expanded .msp-layout-main {\n position: absolute;\n left: 330px;\n right: 300px;\n bottom: 70px;\n top: 100px;\n }\n .msp-plugin .msp-layout-expanded .msp-layout-top {\n position: absolute;\n left: 330px;\n right: 300px;\n height: 100px;\n top: 0;\n border-bottom: 1px solid #cec9ba;\n }\n .msp-plugin .msp-layout-expanded .msp-layout-bottom {\n position: absolute;\n left: 330px;\n right: 300px;\n height: 70px;\n bottom: 0;\n border-top: 1px solid #cec9ba;\n }\n .msp-plugin .msp-layout-expanded .msp-layout-right {\n position: absolute;\n width: 300px;\n right: 0;\n bottom: 0;\n top: 0;\n border-left: 1px solid #cec9ba;\n }\n .msp-plugin .msp-layout-expanded .msp-layout-left {\n position: absolute;\n width: 330px;\n left: 0;\n bottom: 0;\n top: 0;\n border-right: 1px solid #cec9ba;\n }\n .msp-plugin .msp-layout-expanded .msp-layout-hide-right .msp-layout-right {\n display: none;\n }\n .msp-plugin .msp-layout-expanded .msp-layout-hide-right .msp-layout-main,\n .msp-plugin .msp-layout-expanded .msp-layout-hide-right .msp-layout-top,\n .msp-plugin .msp-layout-expanded .msp-layout-hide-right .msp-layout-bottom {\n right: 0;\n }\n .msp-plugin .msp-layout-expanded .msp-layout-hide-left .msp-layout-left {\n display: none;\n }\n .msp-plugin .msp-layout-expanded .msp-layout-hide-left .msp-layout-main,\n .msp-plugin .msp-layout-expanded .msp-layout-hide-left .msp-layout-top,\n .msp-plugin .msp-layout-expanded .msp-layout-hide-left .msp-layout-bottom {\n left: 0;\n }\n .msp-plugin .msp-layout-expanded .msp-layout-collapse-left .msp-layout-left {\n width: 32px;\n }\n .msp-plugin .msp-layout-expanded .msp-layout-collapse-left .msp-layout-main,\n .msp-plugin .msp-layout-expanded .msp-layout-collapse-left .msp-layout-top,\n .msp-plugin\n .msp-layout-expanded\n .msp-layout-collapse-left\n .msp-layout-bottom {\n left: 32px;\n }\n .msp-plugin .msp-layout-expanded .msp-layout-hide-bottom .msp-layout-bottom {\n display: none;\n }\n .msp-plugin .msp-layout-expanded .msp-layout-hide-bottom .msp-layout-main {\n bottom: 0;\n }\n .msp-plugin .msp-layout-expanded .msp-layout-hide-top .msp-layout-top {\n display: none;\n }\n .msp-plugin .msp-layout-expanded .msp-layout-hide-top .msp-layout-main {\n top: 0;\n }\n}\n@media (orientation: portrait) {\n .msp-plugin .msp-layout-expanded .msp-layout-main {\n position: absolute;\n left: 0;\n right: 0;\n bottom: 361px;\n top: 97px;\n }\n .msp-plugin .msp-layout-expanded .msp-layout-top {\n position: absolute;\n right: 0;\n height: 97px;\n top: 0;\n width: 50%;\n border-left: 1px solid #cec9ba;\n border-bottom: 1px solid #cec9ba;\n }\n .msp-plugin .msp-layout-expanded .msp-layout-bottom {\n position: absolute;\n left: 0;\n right: 0;\n height: 97px;\n width: 50%;\n border-bottom: 1px solid #cec9ba;\n }\n .msp-plugin .msp-layout-expanded .msp-layout-right {\n position: absolute;\n width: 50%;\n right: 0;\n bottom: 0;\n height: 361px;\n border-left: 1px solid #cec9ba;\n border-top: 1px solid #cec9ba;\n }\n .msp-plugin .msp-layout-expanded .msp-layout-left {\n position: absolute;\n width: 50%;\n left: 0;\n bottom: 0;\n height: 361px;\n border-top: 1px solid #cec9ba;\n }\n .msp-plugin .msp-layout-expanded .msp-layout-hide-right .msp-layout-right {\n display: none;\n }\n .msp-plugin .msp-layout-expanded .msp-layout-hide-right .msp-layout-left {\n width: 100%;\n }\n .msp-plugin .msp-layout-expanded .msp-layout-hide-left .msp-layout-left {\n display: none;\n }\n .msp-plugin .msp-layout-expanded .msp-layout-hide-left .msp-layout-right {\n width: 100%;\n border-left: none;\n }\n .msp-plugin\n .msp-layout-expanded\n .msp-layout-hide-right.msp-layout-hide-left\n .msp-layout-main {\n bottom: 0;\n }\n .msp-plugin .msp-layout-expanded .msp-layout-collapse-left .msp-layout-left {\n width: 32px;\n }\n .msp-plugin .msp-layout-expanded .msp-layout-collapse-left .msp-layout-right {\n left: 32px;\n width: auto;\n }\n .msp-plugin .msp-layout-expanded .msp-layout-hide-top .msp-layout-top {\n display: none;\n }\n .msp-plugin .msp-layout-expanded .msp-layout-hide-top .msp-layout-bottom {\n width: 100%;\n border-left: none;\n }\n .msp-plugin .msp-layout-expanded .msp-layout-hide-bottom .msp-layout-bottom {\n display: none;\n }\n .msp-plugin .msp-layout-expanded .msp-layout-hide-bottom .msp-layout-top {\n width: 100%;\n border-left: none;\n }\n .msp-plugin\n .msp-layout-expanded\n .msp-layout-hide-top.msp-layout-hide-bottom\n .msp-layout-main {\n top: 0;\n }\n}\n.msp-plugin ::-webkit-scrollbar {\n width: 10px;\n height: 10px;\n}\n.msp-plugin ::-webkit-scrollbar-track {\n border-radius: 0;\n background-color: #e9e6e0;\n}\n.msp-plugin ::-webkit-scrollbar-thumb {\n border-radius: 0;\n background-color: #f1f0eb;\n}\n.msp-plugin .msp-form-control,\n.msp-plugin .msp-control-row select,\n.msp-plugin .msp-control-row button,\n.msp-plugin .msp-control-row input[type='text'],\n.msp-plugin .msp-btn {\n display: block;\n width: 100%;\n background: #f3f2ee;\n border: none;\n padding: 0 10px;\n line-height: 30px;\n height: 32px;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n -webkit-box-shadow: none;\n box-shadow: none;\n background-image: none;\n}\n.msp-plugin .msp-form-control::-moz-placeholder,\n.msp-plugin .msp-control-row select::-moz-placeholder,\n.msp-plugin .msp-control-row button::-moz-placeholder,\n.msp-plugin .msp-control-row input[type='text']::-moz-placeholder,\n.msp-plugin .msp-btn::-moz-placeholder {\n color: #9c835f;\n opacity: 1;\n}\n.msp-plugin .msp-form-control:-ms-input-placeholder,\n.msp-plugin .msp-control-row select:-ms-input-placeholder,\n.msp-plugin .msp-control-row button:-ms-input-placeholder,\n.msp-plugin .msp-control-row input[type='text']:-ms-input-placeholder,\n.msp-plugin .msp-btn:-ms-input-placeholder {\n color: #9c835f;\n}\n.msp-plugin .msp-form-control::-webkit-input-placeholder,\n.msp-plugin .msp-control-row select::-webkit-input-placeholder,\n.msp-plugin .msp-control-row button::-webkit-input-placeholder,\n.msp-plugin .msp-control-row input[type='text']::-webkit-input-placeholder,\n.msp-plugin .msp-btn::-webkit-input-placeholder {\n color: #9c835f;\n}\n.msp-plugin .msp-form-control:hover,\n.msp-plugin .msp-control-row select:hover,\n.msp-plugin .msp-control-row button:hover,\n.msp-plugin .msp-control-row input[type='text']:hover,\n.msp-plugin .msp-btn:hover {\n color: #ae5d04;\n background-color: #e9e6e0;\n border: none;\n outline-offset: -1px !important;\n outline: 1px solid #c9c3b3 !important;\n}\n.msp-plugin .msp-form-control:active,\n.msp-plugin .msp-control-row select:active,\n.msp-plugin .msp-control-row button:active,\n.msp-plugin .msp-control-row input[type='text']:active,\n.msp-plugin .msp-btn:active,\n.msp-plugin .msp-form-control:focus,\n.msp-plugin .msp-control-row select:focus,\n.msp-plugin .msp-control-row button:focus,\n.msp-plugin .msp-control-row input[type='text']:focus,\n.msp-plugin .msp-btn:focus {\n color: #332b1f;\n background-color: #f3f2ee;\n border: none;\n outline-offset: 0;\n outline: none;\n}\n.msp-plugin .msp-form-control[disabled],\n.msp-plugin .msp-control-row select[disabled],\n.msp-plugin .msp-control-row button[disabled],\n.msp-plugin .msp-control-row input[disabled][type='text'],\n.msp-plugin [disabled].msp-btn,\n.msp-plugin .msp-form-control[readonly],\n.msp-plugin .msp-control-row select[readonly],\n.msp-plugin .msp-control-row button[readonly],\n.msp-plugin .msp-control-row input[readonly][type='text'],\n.msp-plugin [readonly].msp-btn,\nfieldset[disabled] .msp-plugin .msp-form-control,\nfieldset[disabled] .msp-plugin .msp-control-row select,\nfieldset[disabled] .msp-plugin .msp-control-row button,\nfieldset[disabled] .msp-plugin .msp-control-row input[type='text'],\nfieldset[disabled] .msp-plugin .msp-btn {\n background: #eeece7;\n opacity: 0.35;\n}\n.msp-plugin .msp-btn,\n.msp-plugin .msp-control-row button {\n display: inline-block;\n margin-bottom: 0;\n text-align: center;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n white-space: nowrap;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n padding: 0 10px;\n line-height: 32px;\n border: none;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n.msp-plugin .msp-btn[disabled],\n.msp-plugin .msp-control-row button[disabled] {\n background: #eeece7;\n opacity: 0.35;\n}\n.msp-plugin .msp-btn-block,\n.msp-plugin .msp-control-row button {\n display: block;\n width: 100%;\n}\n.msp-plugin .msp-btn,\n.msp-plugin .msp-control-row button,\n.msp-plugin .msp-btn:active,\n.msp-plugin .msp-btn-link:focus,\n.msp-plugin .msp-btn:hover {\n outline: none;\n}\n.msp-plugin .msp-material-icon svg {\n display: inline-flex;\n vertical-align: middle;\n font-size: 1.2em;\n margin-bottom: 3px;\n fill: currentColor;\n width: 1em;\n height: 1em;\n flex-shrink: 0;\n user-select: none;\n}\n.msp-plugin .msp-btn-block > .msp-material-icon,\n.msp-plugin .msp-control-row button > .msp-material-icon {\n margin-left: 0;\n margin-right: 0.4em;\n}\n.msp-plugin .msp-btn-childless > .msp-material-icon {\n margin-left: 0;\n margin-right: 0;\n}\n.msp-plugin .msp-btn-icon {\n border: none;\n height: 32px;\n width: 32px;\n line-height: 32px;\n padding: 0;\n text-align: center;\n}\n.msp-plugin .msp-btn-icon:hover {\n color: #ae5d04;\n background-color: #e9e6e0;\n border: none;\n outline-offset: -1px !important;\n outline: 1px solid #c9c3b3 !important;\n}\n.msp-plugin .msp-btn-icon[disabled],\n.msp-plugin .msp-btn-icon[disabled]:hover,\n.msp-plugin .msp-btn-icon[disabled]:active {\n color: #9c835f;\n}\n.msp-plugin .msp-btn-icon-small {\n border: none;\n height: 32px;\n width: 20px;\n line-height: 32px;\n padding: 0;\n text-align: center;\n}\n.msp-plugin .msp-btn-icon-small:hover {\n color: #ae5d04;\n background-color: #e9e6e0;\n border: none;\n outline-offset: -1px !important;\n outline: 1px solid #c9c3b3 !important;\n}\n.msp-plugin .msp-btn-icon-small[disabled],\n.msp-plugin .msp-btn-icon-small[disabled]:hover,\n.msp-plugin .msp-btn-icon-small[disabled]:active {\n color: #9c835f;\n}\n.msp-plugin .msp-btn-link {\n font-weight: normal;\n border-radius: 0;\n}\n.msp-plugin .msp-btn-link,\n.msp-plugin .msp-btn-link:active,\n.msp-plugin .msp-btn-link.active,\n.msp-plugin .msp-btn-link[disabled],\nfieldset[disabled] .msp-plugin .msp-btn-link {\n background-color: rgba(0, 0, 0, 0);\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.msp-plugin .msp-btn-link,\n.msp-plugin .msp-btn-link:hover,\n.msp-plugin .msp-btn-link:focus,\n.msp-plugin .msp-btn-link:active {\n border-color: rgba(0, 0, 0, 0);\n}\n.msp-plugin .msp-btn-link:hover,\n.msp-plugin .msp-btn-link:focus {\n text-decoration: none;\n background-color: rgba(0, 0, 0, 0);\n}\n.msp-plugin .msp-btn-link[disabled]:hover,\n.msp-plugin .msp-btn-link[disabled]:focus,\nfieldset[disabled] .msp-plugin .msp-btn-link:hover,\nfieldset[disabled] .msp-plugin .msp-btn-link:focus {\n text-decoration: none;\n}\n.msp-plugin .msp-btn-link .msp-icon {\n font-size: 100%;\n}\n.msp-plugin .msp-btn-link,\n.msp-plugin .msp-btn-link:active,\n.msp-plugin .msp-btn-link:focus {\n color: #332b1f;\n text-decoration: none;\n}\n.msp-plugin .msp-btn-link:hover {\n color: #ae5d04;\n text-decoration: none;\n}\n.msp-plugin .msp-btn-link-toggle-on {\n color: #332b1f;\n}\n.msp-plugin .msp-btn-link-toggle-off,\n.msp-plugin .msp-btn-link-toggle-off:active,\n.msp-plugin .msp-btn-link-toggle-off:focus {\n color: #9c835f !important;\n}\n.msp-plugin .msp-btn-link-toggle-off:hover,\n.msp-plugin .msp-btn-link-toggle-on:hover {\n color: #ae5d04 !important;\n}\n.msp-plugin .msp-btn-action,\n.msp-plugin .msp-btn-action:active,\n.msp-plugin .msp-btn-action:focus {\n color: #332b1f;\n background: #f3f2ee;\n}\n.msp-plugin .msp-btn-action:hover {\n color: #ae5d04;\n background: #f9f8f6;\n}\n.msp-plugin .msp-btn-action[disabled],\n.msp-plugin .msp-btn-action[disabled]:hover,\n.msp-plugin .msp-btn-action[disabled]:active,\n.msp-plugin .msp-btn-action[disabled]:focus {\n color: #362e21;\n}\n.msp-plugin .msp-btn-commit-on,\n.msp-plugin .msp-btn-commit-on:active,\n.msp-plugin .msp-btn-commit-on:focus {\n color: #974102;\n background: #f2f1ed;\n}\n.msp-plugin .msp-btn-commit-on:hover {\n color: #ae5d04;\n background: #f8f7f4;\n}\n.msp-plugin .msp-btn-commit-on[disabled],\n.msp-plugin .msp-btn-commit-on[disabled]:hover,\n.msp-plugin .msp-btn-commit-on[disabled]:active,\n.msp-plugin .msp-btn-commit-on[disabled]:focus {\n color: #9c4302;\n}\n.msp-plugin .msp-btn-commit-off,\n.msp-plugin .msp-btn-commit-off:active,\n.msp-plugin .msp-btn-commit-off:focus {\n color: #332b1f;\n background: #f6f5f3;\n}\n.msp-plugin .msp-btn-commit-off:hover {\n color: #ae5d04;\n background: #fcfbfa;\n}\n.msp-plugin .msp-btn-commit-off[disabled],\n.msp-plugin .msp-btn-commit-off[disabled]:hover,\n.msp-plugin .msp-btn-commit-off[disabled]:active,\n.msp-plugin .msp-btn-commit-off[disabled]:focus {\n color: #362e21;\n}\n.msp-plugin .msp-btn-remove:hover {\n color: #f2f4f7;\n}\n.msp-plugin .msp-btn-commit-on:hover {\n color: #fc6c03;\n}\n.msp-plugin .msp-btn-action {\n height: 32px;\n line-height: 32px;\n}\n.msp-plugin input[type='file'] {\n display: block;\n}\n.msp-plugin input[type='range'] {\n display: block;\n width: 100%;\n}\n.msp-plugin select[multiple],\n.msp-plugin select[size] {\n height: auto;\n}\n.msp-plugin textarea.msp-form-control,\n.msp-plugin textarea.msp-btn {\n height: auto;\n}\n.msp-plugin .msp-control-top-offset {\n margin-top: 1px;\n}\n.msp-plugin .msp-btn-commit {\n text-align: right;\n padding-top: 0;\n padding-bottom: 0;\n padding-right: 10px;\n padding-left: 0;\n line-height: 32px;\n border: none;\n overflow: hidden;\n font-weight: bold;\n}\n.msp-plugin .msp-btn-commit .msp-icon {\n display: block-inline;\n line-height: 32px;\n width: 32px;\n text-align: center;\n}\n.msp-plugin select.msp-form-control,\n.msp-plugin .msp-control-row select,\n.msp-plugin select.msp-btn {\n background: none;\n background-color: #f3f2ee;\n background-size: 8px 12px;\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAUCAMAAACzvE1FAAAADFBMVEUzMzMzMzMzMzMzMzMKAG/3AAAAA3RSTlMAf4C/aSLHAAAAPElEQVR42q3NMQ4AIAgEQTn//2cLdRKppSGzBYwzVXvznNWs8C58CiussPJj8h6NwgorrKRdTvuV9v16Afn0AYFOB7aYAAAAAElFTkSuQmCC);\n background-repeat: no-repeat;\n background-position: right 10px center;\n padding-right: 24px;\n}\n.msp-plugin select.msp-form-control:-moz-focusring,\n.msp-plugin .msp-control-row select:-moz-focusring,\n.msp-plugin select.msp-btn:-moz-focusring {\n color: rgba(0, 0, 0, 0);\n text-shadow: 0 0 0 #332b1f;\n}\n.msp-plugin .msp-default-bg {\n background: #eeece7;\n}\n.msp-plugin .msp-transparent-bg {\n background: rgba(0, 0, 0, 0);\n}\n.msp-plugin .msp-no-hover-outline:hover {\n color: #ae5d04;\n background-color: inherit;\n border: none;\n outline-offset: 0 !important;\n outline: none !important;\n}\n.msp-plugin .msp-icon-inline {\n margin-right: 8px;\n}\n.msp-plugin .msp-control-row {\n position: relative;\n height: 32px;\n background: #eeece7;\n margin-top: 1px;\n}\n.msp-plugin .msp-control-row > span.msp-control-row-label,\n.msp-plugin .msp-control-row > button.msp-control-button-label {\n line-height: 32px;\n display: block;\n width: 120px;\n text-align: right;\n padding: 0 10px;\n color: #63533c;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n position: relative;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n -o-user-select: none;\n user-select: none;\n cursor: default;\n}\n.msp-plugin .msp-control-row > button.msp-control-button-label {\n background: #eeece7;\n cursor: pointer;\n}\n.msp-plugin .msp-control-row .msp-control-current {\n background: #eeece7;\n}\n.msp-plugin .msp-control-row > div.msp-control-row-ctrl {\n position: absolute;\n left: 120px;\n top: 0;\n right: 0;\n bottom: 0;\n}\n.msp-plugin .msp-control-row > div {\n background: #f3f2ee;\n}\n.msp-plugin .msp-control-row > .msp-flex-row,\n.msp-plugin .msp-control-row > .msp-state-image-row {\n background: #eeece7;\n}\n.msp-plugin .msp-control-label-short > span {\n width: 80px !important;\n}\n.msp-plugin .msp-control-label-short > div:nth-child(2) {\n left: 80px !important;\n}\n.msp-plugin .msp-control-col-2 {\n float: left;\n width: 50%;\n}\n.msp-plugin .msp-control-group {\n position: relative;\n}\n.msp-plugin .msp-toggle-button .msp-icon {\n display: inline-block;\n margin-right: 6px;\n}\n.msp-plugin .msp-toggle-button > div > button:hover {\n border-color: #e9e6e0 !important;\n border: none;\n outline-offset: -1px !important;\n outline: 1px solid #c9c3b3 !important;\n}\n.msp-plugin .msp-slider > div:first-child {\n position: absolute;\n top: 0;\n left: 18px;\n bottom: 0;\n right: 62px;\n display: flex;\n}\n.msp-plugin .msp-slider > div:last-child {\n position: absolute;\n height: 32px;\n line-height: 32px;\n text-align: center;\n right: 0;\n width: 50px;\n top: 0;\n bottom: 0;\n}\n.msp-plugin .msp-slider input[type='text'] {\n padding-right: 6px;\n padding-left: 4px;\n font-size: 80%;\n text-align: right;\n}\n.msp-plugin .msp-slider2 > div:first-child {\n position: absolute;\n height: 32px;\n line-height: 32px;\n text-align: center;\n left: 0;\n width: 25px;\n top: 0;\n bottom: 0;\n font-size: 80%;\n}\n.msp-plugin .msp-slider2 > div:nth-child(2) {\n position: absolute;\n top: 0;\n left: 35px;\n bottom: 0;\n right: 37px;\n display: flex;\n}\n.msp-plugin .msp-slider2 > div:last-child {\n position: absolute;\n height: 32px;\n line-height: 32px;\n text-align: center;\n right: 0;\n width: 25px;\n top: 0;\n bottom: 0;\n font-size: 80%;\n}\n.msp-plugin .msp-slider2 input[type='text'] {\n padding-right: 4px;\n padding-left: 4px;\n font-size: 80%;\n text-align: center;\n}\n.msp-plugin .msp-toggle-color-picker button {\n border: 10px solid #f3f2ee !important;\n margin: 0;\n text-align: center;\n padding-right: 10px;\n padding-left: 10px;\n}\n.msp-plugin .msp-toggle-color-picker button:hover {\n border-color: #e9e6e0 !important;\n border: none;\n outline-offset: -1px !important;\n outline: 1px solid #c9c3b3 !important;\n}\n.msp-plugin .msp-toggle-color-picker .msp-color-picker {\n position: absolute;\n z-index: 100000;\n background: #eeece7;\n border-top: 1px solid #eeece7;\n padding-bottom: 5px;\n width: 100%;\n}\n.msp-plugin .msp-toggle-color-picker-above .msp-color-picker {\n top: -85px;\n height: 85px;\n}\n.msp-plugin .msp-toggle-color-picker-below .msp-color-picker {\n top: 32px;\n height: 80px;\n}\n.msp-plugin .msp-control-offset {\n padding-left: 10px;\n}\n.msp-plugin .msp-accent-offset {\n padding-left: 1px;\n margin-left: 8px;\n border-left: 2px solid #e98b39;\n}\n.msp-plugin .msp-control-group-wrapper {\n margin-bottom: 0px;\n margin-top: 1px;\n}\n.msp-plugin .msp-control-group-header {\n background: #eeece7;\n}\n.msp-plugin .msp-control-group-header > button,\n.msp-plugin .msp-control-group-header div {\n padding-left: 4px;\n text-align: left;\n height: 24px !important;\n line-height: 24px !important;\n font-size: 85% !important;\n background: #eeece7 !important;\n color: #63533c;\n}\n.msp-plugin .msp-control-group-header .msp-icon {\n height: 24px !important;\n line-height: 24px !important;\n}\n.msp-plugin .msp-control-group-header > span {\n padding-left: 5px;\n line-height: 21.3333333333px;\n font-size: 70%;\n background: #eeece7;\n color: #63533c;\n}\n.msp-plugin .msp-control-current {\n background: #eeece7;\n}\n.msp-plugin .msp-control-group-footer {\n background: #e3e0d8;\n height: 5px;\n font-size: 1px;\n margin-top: 1px;\n}\n.msp-plugin .msp-control-group-expander {\n display: block;\n position: absolute;\n line-height: 32px;\n padding: 0;\n left: 0;\n top: 0;\n width: 120px;\n text-align: left;\n background: rgba(0, 0, 0, 0);\n}\n.msp-plugin .msp-control-group-expander .msp-icon {\n line-height: 29px;\n width: 31px;\n text-align: center;\n font-size: 100%;\n}\n.msp-plugin .msp-plugin-layout_controls {\n position: absolute;\n left: 10px;\n top: 10px;\n}\n.msp-plugin .msp-plugin-layout_controls > button:first-child {\n margin-right: 6px;\n}\n.msp-plugin .msp-empty-control {\n display: none;\n}\n.msp-plugin .msp-control .msp-btn-block,\n.msp-plugin .msp-control .msp-control-row button,\n.msp-plugin .msp-control-row .msp-control button {\n margin-bottom: 0px;\n margin-top: 0px;\n}\n.msp-plugin .msp-row-text {\n height: 32px;\n position: relative;\n background: #eeece7;\n margin-top: 1px;\n}\n.msp-plugin .msp-row-text > div {\n line-height: 32px;\n text-align: center;\n color: #63533c;\n}\n.msp-plugin .msp-help span {\n display: none;\n}\n.msp-plugin .msp-help:hover span {\n display: inline-block;\n background: linear-gradient(rgb(238, 236, 231), rgba(238, 236, 231, 0.8));\n}\n.msp-plugin .msp-help-text {\n position: relative;\n background: #eeece7;\n margin-top: 1px;\n}\n.msp-plugin .msp-help-text > div {\n padding: 5px 10px;\n text-align: left;\n color: #63533c;\n}\n.msp-plugin .msp-help-description {\n font-style: italic;\n}\n.msp-plugin .msp-help-legend {\n padding-top: 10px;\n}\n.msp-plugin .msp-scale-legend > div {\n width: 100%;\n height: 30px;\n}\n.msp-plugin .msp-scale-legend > div > span {\n padding: 5px;\n color: #fff;\n font-weight: bold;\n background-color: rgba(0, 0, 0, 0.2);\n}\n.msp-plugin .msp-table-legend > div {\n margin-right: 5px;\n display: inline-flex;\n}\n.msp-plugin .msp-table-legend > div .msp-table-legend-color {\n width: 30px;\n height: 20px;\n}\n.msp-plugin .msp-table-legend > div .msp-table-legend-text {\n margin: 0 5px;\n}\n.msp-plugin .msp-image-preview {\n position: relative;\n background: #eeece7;\n margin-top: 1px;\n padding: 10px;\n}\n.msp-plugin .msp-image-preview canvas {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.msp-plugin .msp-image-preview > span {\n margin-top: 6px;\n display: block;\n text-align: center;\n font-size: 80%;\n line-height: 15px;\n}\n.msp-plugin .msp-copy-image-wrapper {\n position: relative;\n}\n.msp-plugin .msp-copy-image-wrapper div {\n font-weight: bold;\n padding: 3px;\n margin: 1px 0;\n width: 100%;\n background: #f3f2ee;\n text-align: center;\n}\n.msp-plugin .msp-copy-image-wrapper img {\n margin-top: 1px;\n}\n.msp-plugin .msp-text-area-wrapper {\n position: relative;\n height: 96px !important;\n}\n.msp-plugin .msp-text-area-wrapper textarea {\n border: none;\n width: 100%;\n height: 100%;\n background: #f3f2ee;\n padding: 5px 10px;\n resize: none;\n font-size: 12px;\n line-height: 16px;\n}\n.msp-plugin .msp-slider-base {\n position: relative;\n height: 14px;\n padding: 5px 0;\n width: 100%;\n border-radius: 6px;\n align-self: center;\n box-sizing: border-box;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n.msp-plugin .msp-slider-base * {\n box-sizing: border-box;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n.msp-plugin .msp-slider-base-rail {\n position: absolute;\n width: 100%;\n background-color: #e0ddd4;\n height: 4px;\n border-radius: 2px;\n}\n.msp-plugin .msp-slider-base-track {\n position: absolute;\n left: 0;\n height: 4px;\n border-radius: 6px;\n background-color: tint(rgb(51, 43, 31), 60%);\n}\n.msp-plugin .msp-slider-base-handle {\n position: absolute;\n margin-left: -11px;\n margin-top: -9px;\n width: 22px;\n height: 22px;\n cursor: pointer;\n border-radius: 50%;\n background-color: #332b1f;\n border: 4px solid #e0ddd4;\n}\n.msp-plugin .msp-slider-base-handle:hover {\n background-color: #ae5d04;\n}\n.msp-plugin .msp-slider-base-mark {\n position: absolute;\n top: 18px;\n left: 0;\n width: 100%;\n font-size: 12px;\n}\n.msp-plugin .msp-slider-base-mark-text {\n position: absolute;\n display: inline-block;\n vertical-align: middle;\n text-align: center;\n cursor: pointer;\n color: #999;\n}\n.msp-plugin .msp-slider-base-mark-text-active {\n color: #666;\n}\n.msp-plugin .msp-slider-base-step {\n position: absolute;\n width: 100%;\n height: 4px;\n background: rgba(0, 0, 0, 0);\n}\n.msp-plugin .msp-slider-base-dot {\n position: absolute;\n bottom: -2px;\n margin-left: -4px;\n width: 8px;\n height: 8px;\n border: 2px solid #e9e9e9;\n background-color: #fff;\n cursor: pointer;\n border-radius: 50%;\n vertical-align: middle;\n}\n.msp-plugin .msp-slider-base-dot:first-child {\n margin-left: -4px;\n}\n.msp-plugin .msp-slider-base-dot:last-child {\n margin-left: -4px;\n}\n.msp-plugin .msp-slider-base-dot-active {\n border-color: tint(rgb(51, 43, 31), 50%);\n}\n.msp-plugin .msp-slider-base-disabled {\n background: #eeece7;\n opacity: 0.35;\n}\n.msp-plugin .msp-slider-base-disabled .msp-slider-base-handle,\n.msp-plugin .msp-slider-base-disabled .msp-slider-base-dot {\n cursor: not-allowed;\n}\n.msp-plugin .msp-slider-base-disabled .msp-slider-base-mark-text,\n.msp-plugin .msp-slider-base-disabled .msp-slider-base-dot {\n cursor: not-allowed !important;\n}\n.msp-plugin .msp-description {\n padding: 10px;\n font-size: 85%;\n background: #eeece7;\n text-align: center;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n -o-user-select: none;\n user-select: none;\n font-weight: light;\n cursor: default;\n}\n.msp-plugin .msp-description:not(:first-child) {\n border-top: 1px solid #e0ddd4;\n}\n.msp-plugin .msp-color-picker input {\n color: #000 !important;\n}\n.msp-plugin .msp-no-webgl {\n position: absolute;\n width: 100%;\n height: 100%;\n left: 0;\n top: 0;\n display: table;\n text-align: center;\n background: #eeece7;\n}\n.msp-plugin .msp-no-webgl > div {\n display: table-cell;\n vertical-align: middle;\n text-align: center;\n width: 100%;\n height: 100%;\n}\n.msp-plugin .msp-no-webgl > div b {\n font-size: 120%;\n}\n.msp-plugin .msp-loader-msp-btn-file {\n position: relative;\n overflow: hidden;\n}\n.msp-plugin .msp-loader-msp-btn-file input[type='file'] {\n position: absolute;\n top: 0;\n right: 0;\n min-width: 100%;\n min-height: 100%;\n font-size: 100px;\n text-align: right;\n filter: alpha(opacity=0);\n opacity: 0;\n outline: none;\n background: #fff;\n cursor: inherit;\n display: block;\n}\n.msp-plugin .msp-controls-section {\n margin-bottom: 10px;\n}\n.msp-plugin .msp-combined-color-button {\n border: 4px solid #f3f2ee !important;\n margin: 0;\n text-align: center;\n padding-right: 10px;\n padding-left: 10px;\n}\n.msp-plugin .msp-combined-color-button:hover {\n border-color: #e9e6e0 !important;\n border: none;\n outline-offset: -1px !important;\n outline: 1px solid #c9c3b3 !important;\n}\n.msp-plugin .msp-combined-color-swatch {\n width: 100%;\n display: grid;\n grid-gap: 1px;\n grid-template-columns: repeat(6, auto);\n}\n.msp-plugin .msp-combined-color-swatch .msp-btn:hover,\n.msp-plugin .msp-combined-color-swatch .msp-control-row button:hover,\n.msp-plugin .msp-control-row .msp-combined-color-swatch button:hover {\n outline-offset: -1px !important;\n outline: 1px solid #c9c3b3 !important;\n}\n.msp-plugin .msp-action-select {\n position: relative;\n}\n.msp-plugin .msp-action-select select {\n padding-left: 42px;\n}\n.msp-plugin .msp-action-select option:first-child {\n color: #63533c;\n}\n.msp-plugin .msp-action-select > .msp-icon {\n display: block;\n top: 0;\n left: 10px;\n position: absolute;\n line-height: 32px;\n}\n.msp-plugin .msp-simple-help-section {\n height: 28px;\n line-height: 28px;\n margin-top: 5px;\n margin-bottom: 5px;\n padding: 0 10px;\n font-weight: 500;\n background: #eeece7;\n color: #332b1f;\n}\n.msp-plugin .msp-left-panel-controls-buttons {\n position: absolute;\n width: 32px;\n top: 0;\n bottom: 0;\n padding-top: 10px;\n background: #eeece7;\n}\n.msp-plugin .msp-left-panel-controls-buttons-bottom {\n position: absolute;\n bottom: 0;\n}\n.msp-plugin .msp-left-panel-controls-button-data-dirty {\n position: absolute;\n width: 6px;\n height: 6px;\n background: #e98b39;\n border-radius: 3px;\n right: 6px;\n bottom: 6px;\n}\n.msp-plugin .msp-left-panel-controls .msp-scrollable-container {\n left: 33px;\n}\n.msp-plugin .msp-mapped-parameter-group {\n position: relative;\n}\n.msp-plugin\n .msp-mapped-parameter-group\n > .msp-control-row:first-child\n > div:nth-child(2) {\n right: 33px;\n}\n.msp-plugin .msp-mapped-parameter-group > button:first-child {\n right: 33px;\n}\n.msp-plugin .msp-mapped-parameter-group > .msp-btn-icon {\n position: absolute;\n right: 0;\n width: 32px;\n top: 0;\n padding: 0;\n}\n.msp-plugin .msp-shape-filled {\n fill: #332b1f;\n stroke: #332b1f;\n}\n.msp-plugin .msp-shape-empty {\n fill: none;\n stroke: #332b1f;\n}\n.msp-plugin .msp-no-overflow {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.msp-plugin .msp-25-lower-contrast-text {\n color: #826e4f;\n}\n.msp-plugin .msp-expandable-group-color-stripe {\n position: absolute;\n left: 0;\n top: 30px;\n width: 120px;\n height: 2px;\n}\n.msp-plugin .msp-section-header {\n height: 32px;\n line-height: 32px;\n margin-top: 10px;\n margin-bottom: 10px;\n text-align: right;\n padding: 0 10px;\n font-weight: bold;\n background: #eeece7;\n overflow: hidden;\n cursor: default;\n}\n.msp-plugin .msp-section-header > .msp-icon {\n display: block;\n float: left;\n}\n.msp-plugin .msp-section-header > small {\n font-weight: normal;\n}\n.msp-plugin .msp-current-header {\n height: 32px;\n line-height: 32px;\n margin-bottom: 10px;\n text-align: center;\n font-weight: bold;\n background: #eeece7;\n}\n.msp-plugin .msp-flex-row,\n.msp-plugin .msp-state-image-row {\n margin-top: 1px;\n background: #eeece7;\n display: flex;\n flex-direction: row;\n width: inherit;\n height: 32px;\n}\n.msp-plugin .msp-flex-row > .msp-flex-item,\n.msp-plugin .msp-state-image-row > .msp-flex-item {\n margin: 0;\n flex: 1 1 auto;\n margin-right: 1px;\n overflow: hidden;\n}\n.msp-plugin .msp-flex-row > .msp-flex-item:last-child,\n.msp-plugin .msp-state-image-row > .msp-flex-item:last-child {\n margin-right: 0;\n}\n.msp-plugin .msp-flex-row > select,\n.msp-plugin .msp-state-image-row > select,\n.msp-plugin .msp-flex-row > button,\n.msp-plugin .msp-state-image-row > button {\n margin: 0;\n flex: 1 1 auto;\n margin-right: 1px;\n height: 32px;\n overflow: hidden;\n}\n.msp-plugin .msp-flex-row .msp-btn-icon,\n.msp-plugin .msp-state-image-row .msp-btn-icon,\n.msp-plugin .msp-flex-row .msp-btn-icon-small,\n.msp-plugin .msp-state-image-row .msp-btn-icon-small {\n flex: 0 0 32px;\n max-width: 32px;\n}\n.msp-plugin .msp-flex-row > select,\n.msp-plugin .msp-state-image-row > select {\n background: none;\n}\n.msp-plugin .msp-flex-row > select > option[value='_'],\n.msp-plugin .msp-state-image-row > select > option[value='_'] {\n display: none;\n}\n.msp-plugin .msp-flex-row > select:last-child,\n.msp-plugin .msp-state-image-row > select:last-child,\n.msp-plugin .msp-flex-row > button:last-child,\n.msp-plugin .msp-state-image-row > button:last-child {\n margin-right: 0;\n}\n.msp-plugin .msp-flex-row > button.msp-control-button-label,\n.msp-plugin .msp-state-image-row > button.msp-control-button-label {\n background: #eeece7;\n}\n.msp-plugin .msp-state-list {\n list-style: none;\n}\n.msp-plugin .msp-state-list > li {\n position: relative;\n overflow: hidden;\n}\n.msp-plugin .msp-state-list > li > button:first-child {\n text-align: left;\n border-left: 10px solid #d5d0c3 !important;\n}\n.msp-plugin .msp-state-list > li > div {\n position: absolute;\n right: 0;\n top: 0;\n}\n.msp-plugin .msp-state-image-row {\n height: 96px;\n margin-top: 0px;\n}\n.msp-plugin .msp-state-image-row > button {\n height: 96px;\n padding: 0px;\n}\n.msp-plugin .msp-state-image-row > button > img {\n min-height: 96px;\n width: inherit;\n transform: translateY(-50%);\n top: 50%;\n position: relative;\n}\n.msp-plugin .msp-tree-row {\n position: relative;\n margin-top: 0;\n margin-bottom: 1px;\n background: rgba(0, 0, 0, 0);\n}\n.msp-plugin .msp-tree-row-current .msp-btn-tree-label {\n border-radius: 0 !important;\n}\n.msp-plugin .msp-tree-row-current .msp-btn-tree-label > span {\n font-weight: bold;\n}\n.msp-plugin .msp-tree-row .msp-btn-tree-label {\n text-align: left;\n border-radius: 0 0 0 8px;\n border-left-width: 4px;\n border-left-style: solid;\n}\n.msp-plugin .msp-tree-row .msp-btn-tree-label > small {\n color: #726046;\n}\n.msp-plugin .msp-tree-updates-wrapper .msp-control-group-header:last-child {\n margin-bottom: 1px;\n}\n.msp-plugin .msp-viewport-top-left-controls {\n position: absolute;\n left: 10px;\n top: 10px;\n}\n.msp-plugin .msp-viewport-top-left-controls .msp-traj-controls {\n line-height: 32px;\n float: left;\n margin-right: 10px;\n background-color: #f3f2ee;\n}\n.msp-plugin .msp-viewport-top-left-controls .msp-traj-controls > span {\n color: #332b1f;\n margin-left: 10px;\n margin-right: 10px;\n font-size: 85%;\n display: inline-block;\n}\n.msp-plugin\n .msp-viewport-top-left-controls\n .msp-state-snapshot-viewport-controls {\n line-height: 32px;\n float: left;\n margin-right: 10px;\n}\n.msp-plugin\n .msp-viewport-top-left-controls\n .msp-state-snapshot-viewport-controls\n > button {\n background-color: #f3f2ee;\n}\n.msp-plugin\n .msp-viewport-top-left-controls\n .msp-state-snapshot-viewport-controls\n > select {\n display: inline-block;\n width: 200px;\n margin-right: 10px;\n}\n.msp-plugin .msp-viewport-top-left-controls .msp-animation-viewport-controls {\n line-height: 32px;\n float: left;\n margin-right: 10px;\n position: relative;\n}\n.msp-plugin\n .msp-viewport-top-left-controls\n .msp-animation-viewport-controls\n > div:first-child {\n position: relative;\n display: inline-block;\n}\n.msp-plugin\n .msp-viewport-top-left-controls\n .msp-animation-viewport-controls\n > div:first-child\n > button {\n position: relative;\n}\n.msp-plugin\n .msp-viewport-top-left-controls\n .msp-animation-viewport-controls\n .msp-animation-viewport-controls-select {\n width: 290px;\n position: absolute;\n left: 0;\n margin-top: 10px;\n background: #e0ddd4;\n}\n.msp-plugin\n .msp-viewport-top-left-controls\n .msp-animation-viewport-controls\n .msp-animation-viewport-controls-select\n .msp-control-row:first-child {\n margin-top: 0;\n}\n.msp-plugin .msp-selection-viewport-controls {\n position: relative;\n margin: 10px auto 0 auto;\n width: 430px;\n}\n.msp-plugin .msp-selection-viewport-controls-actions {\n position: absolute;\n width: 100%;\n top: 32px;\n background: #e0ddd4;\n}\n.msp-plugin .msp-selection-viewport-controls > .msp-flex-row .msp-btn,\n.msp-plugin .msp-selection-viewport-controls > .msp-state-image-row .msp-btn,\n.msp-plugin\n .msp-selection-viewport-controls\n > .msp-flex-row\n .msp-control-row\n button,\n.msp-plugin\n .msp-control-row\n .msp-selection-viewport-controls\n > .msp-flex-row\n button,\n.msp-plugin\n .msp-selection-viewport-controls\n > .msp-state-image-row\n .msp-control-row\n button,\n.msp-plugin\n .msp-control-row\n .msp-selection-viewport-controls\n > .msp-state-image-row\n button {\n padding: 0 5px;\n}\n.msp-plugin .msp-selection-viewport-controls select.msp-form-control,\n.msp-plugin .msp-selection-viewport-controls select.msp-btn,\n.msp-plugin .msp-selection-viewport-controls .msp-control-row select,\n.msp-plugin .msp-control-row .msp-selection-viewport-controls select {\n padding: 0 5px;\n text-align: center;\n background: #f3f2ee;\n flex: 0 0 80px;\n text-overflow: ellipsis;\n}\n.msp-plugin .msp-param-object-list-item {\n margin-top: 1px;\n position: relative;\n}\n.msp-plugin .msp-param-object-list-item > button {\n text-align: left;\n}\n.msp-plugin .msp-param-object-list-item > button > span {\n font-weight: bold;\n}\n.msp-plugin .msp-param-object-list-item > div {\n position: absolute;\n right: 0;\n top: 0;\n}\n.msp-plugin .msp-state-actions .msp-transform-wrapper:last-child {\n margin-bottom: 10px;\n}\n.msp-plugin .msp-button-row {\n display: flex;\n flex-direction: row;\n height: 32px;\n width: inherit;\n}\n.msp-plugin .msp-button-row > button {\n margin: 0;\n flex: 1 1 auto;\n margin-right: 1px;\n height: 32px;\n text-align-last: center;\n background: none;\n padding: 0 10px;\n overflow: hidden;\n}\n.msp-plugin .msp-action-menu-options-no-header,\n.msp-plugin .msp-action-menu-options .msp-control-group-children {\n max-height: 300px;\n overflow: hidden;\n overflow-y: auto;\n}\n.msp-plugin .msp-action-menu-options .msp-control-row,\n.msp-plugin .msp-action-menu-options button,\n.msp-plugin .msp-action-menu-options .msp-icon,\n.msp-plugin .msp-action-menu-options .msp-flex-row,\n.msp-plugin .msp-action-menu-options .msp-state-image-row {\n height: 24px;\n line-height: 24px;\n}\n.msp-plugin .msp-action-menu-options button {\n text-align: left;\n}\n.msp-plugin .msp-action-menu-options .msp-action-menu-button {\n margin-top: 1px;\n display: flex;\n}\n.msp-plugin .msp-action-menu-options .msp-action-menu-button .msp-icon {\n margin-right: 6px;\n}\n.msp-plugin .msp-representation-entry {\n position: relative;\n}\n.msp-plugin .msp-representation-entry > .msp-control-group-header > .msp-btn,\n.msp-plugin\n .msp-control-row\n .msp-representation-entry\n > .msp-control-group-header\n > button {\n font-weight: bold;\n}\n.msp-plugin .msp-representation-entry > .msp-control-group-header > .msp-icon,\n.msp-plugin\n .msp-representation-entry\n > .msp-control-group-header\n > .msp-btn-link {\n line-height: 24px;\n height: 24px;\n}\n.msp-plugin .msp-control-group-presets-wrapper {\n position: absolute;\n right: 0;\n top: 0;\n}\n.msp-plugin .msp-control-group-presets-wrapper .msp-control-group-header {\n background: rgba(0, 0, 0, 0);\n}\n.msp-plugin .msp-control-group-presets-wrapper button {\n background: rgba(0, 0, 0, 0) !important;\n}\n.msp-plugin .msp-parameter-matrix input {\n flex: 1 1 auto;\n min-width: 0;\n}\n.msp-plugin .msp-btn-apply-simple {\n text-align: left;\n}\n.msp-plugin .msp-btn-apply-simple .msp-icon {\n margin-right: 10px;\n}\n.msp-plugin .msp-type-class-Root {\n border-left-color: #eeece7;\n}\n.msp-plugin .msp-type-class-Group {\n border-left-color: #e98b39;\n}\n.msp-plugin .msp-type-class-Data {\n border-left-color: #bfc8c9;\n}\n.msp-plugin .msp-type-class-Object {\n border-left-color: #54d98c;\n}\n.msp-plugin .msp-type-class-Representation3D {\n border-left-color: #4aa3df;\n}\n.msp-plugin .msp-type-class-Behavior {\n border-left-color: #b07cc6;\n}\n.msp-plugin .msp-accent-color-cyan {\n color: #bfc8c9;\n}\n.msp-plugin .msp-accent-bg-cyan {\n background: #bfc8c9;\n}\n.msp-plugin .msp-transform-header-brand-cyan {\n border-bottom: 1px solid #bfc8c9;\n}\n.msp-plugin .msp-transform-header-brand-cyan:active,\n.msp-plugin .msp-transform-header-brand-cyan:focus {\n border-bottom: 1px solid #bfc8c9;\n}\n.msp-plugin .msp-accent-color-red {\n color: #ef8b80;\n}\n.msp-plugin .msp-accent-bg-red {\n background: #ef8b80;\n}\n.msp-plugin .msp-transform-header-brand-red {\n border-bottom: 1px solid #ef8b80;\n}\n.msp-plugin .msp-transform-header-brand-red:active,\n.msp-plugin .msp-transform-header-brand-red:focus {\n border-bottom: 1px solid #ef8b80;\n}\n.msp-plugin .msp-accent-color-gray {\n color: #46637f;\n}\n.msp-plugin .msp-accent-bg-gray {\n background: #46637f;\n}\n.msp-plugin .msp-transform-header-brand-gray {\n border-bottom: 1px solid #46637f;\n}\n.msp-plugin .msp-transform-header-brand-gray:active,\n.msp-plugin .msp-transform-header-brand-gray:focus {\n border-bottom: 1px solid #46637f;\n}\n.msp-plugin .msp-accent-color-green {\n color: #54d98c;\n}\n.msp-plugin .msp-accent-bg-green {\n background: #54d98c;\n}\n.msp-plugin .msp-transform-header-brand-green {\n border-bottom: 1px solid #54d98c;\n}\n.msp-plugin .msp-transform-header-brand-green:active,\n.msp-plugin .msp-transform-header-brand-green:focus {\n border-bottom: 1px solid #54d98c;\n}\n.msp-plugin .msp-accent-color-purple {\n color: #b07cc6;\n}\n.msp-plugin .msp-accent-bg-purple {\n background: #b07cc6;\n}\n.msp-plugin .msp-transform-header-brand-purple {\n border-bottom: 1px solid #b07cc6;\n}\n.msp-plugin .msp-transform-header-brand-purple:active,\n.msp-plugin .msp-transform-header-brand-purple:focus {\n border-bottom: 1px solid #b07cc6;\n}\n.msp-plugin .msp-accent-color-blue {\n color: #4aa3df;\n}\n.msp-plugin .msp-accent-bg-blue {\n background: #4aa3df;\n}\n.msp-plugin .msp-transform-header-brand-blue {\n border-bottom: 1px solid #4aa3df;\n}\n.msp-plugin .msp-transform-header-brand-blue:active,\n.msp-plugin .msp-transform-header-brand-blue:focus {\n border-bottom: 1px solid #4aa3df;\n}\n.msp-plugin .msp-accent-color-orange {\n color: #e98b39;\n}\n.msp-plugin .msp-accent-bg-orange {\n background: #e98b39;\n}\n.msp-plugin .msp-transform-header-brand-orange {\n border-bottom: 1px solid #e98b39;\n}\n.msp-plugin .msp-transform-header-brand-orange:active,\n.msp-plugin .msp-transform-header-brand-orange:focus {\n border-bottom: 1px solid #e98b39;\n}\n.msp-plugin .msp-volume-channel-inline-controls > :first-child {\n position: absolute;\n left: 0;\n top: 0;\n height: 32px;\n right: 32px;\n}\n.msp-plugin .msp-volume-channel-inline-controls .msp-slider > div:first-child {\n right: 42px;\n}\n.msp-plugin .msp-volume-channel-inline-controls .msp-slider > div:last-child {\n width: 30px;\n}\n.msp-plugin .msp-volume-channel-inline-controls > button {\n position: absolute;\n right: 0;\n width: 32px;\n top: 0;\n padding: 0;\n}\n.msp-plugin .msp-volume-channel-inline-controls > button .msp-material-icon {\n margin-right: 0;\n}\n.msp-plugin .msp-list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n.msp-plugin .msp-drag-drop-overlay {\n border: 12px dashed #332b1f;\n background: rgba(0, 0, 0, 0.36);\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n font-size: 48px;\n font-weight: bold;\n}\n.msp-plugin .msp-task-state {\n line-height: 32px;\n}\n.msp-plugin .msp-task-state > span {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n -o-user-select: none;\n user-select: none;\n cursor: default;\n}\n.msp-plugin .msp-overlay-tasks {\n position: absolute;\n display: flex;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n height: 100%;\n width: 100%;\n z-index: 1000;\n justify-content: center;\n align-items: center;\n background: rgba(0, 0, 0, 0.25);\n}\n.msp-plugin .msp-overlay-tasks .msp-task-state > div {\n height: 32px;\n margin-top: 1px;\n position: relative;\n width: 100%;\n background: #eeece7;\n}\n.msp-plugin .msp-overlay-tasks .msp-task-state > div > div {\n height: 32px;\n line-height: 32px;\n display: inline-block;\n padding: 0 10px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n -o-user-select: none;\n user-select: none;\n cursor: default;\n white-space: nowrap;\n background: #eeece7;\n position: absolute;\n}\n.msp-plugin .msp-overlay-tasks .msp-task-state > div > button {\n display: inline-block;\n margin-top: -3px;\n}\n.msp-plugin .msp-background-tasks {\n position: absolute;\n left: 0;\n bottom: 0;\n z-index: 1000;\n}\n.msp-plugin .msp-background-tasks .msp-task-state > div {\n height: 32px;\n margin-top: 1px;\n position: relative;\n width: 100%;\n background: #eeece7;\n}\n.msp-plugin .msp-background-tasks .msp-task-state > div > div {\n height: 32px;\n line-height: 32px;\n display: inline-block;\n padding: 0 10px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n -o-user-select: none;\n user-select: none;\n cursor: default;\n white-space: nowrap;\n background: #eeece7;\n position: absolute;\n}\n.msp-plugin .msp-background-tasks .msp-task-state > div > button {\n display: inline-block;\n margin-top: -3px;\n}\n.msp-plugin .msp-viewport {\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n background: #eeece7;\n}\n.msp-plugin .msp-viewport .msp-btn-link {\n background: rgba(0, 0, 0, 0.2);\n}\n.msp-plugin .msp-viewport-expanded {\n position: fixed;\n z-index: 1000;\n}\n.msp-plugin .msp-viewport-host3d {\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n -webkit-user-select: none;\n user-select: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n -webkit-touch-callout: none;\n touch-action: manipulation;\n}\n.msp-plugin .msp-viewport-host3d > canvas {\n background-color: #eeece7;\n background-image: linear-gradient(\n 45deg,\n lightgrey 25%,\n transparent 25%,\n transparent 75%,\n lightgrey 75%,\n lightgrey\n ),\n linear-gradient(\n 45deg,\n lightgrey 25%,\n transparent 25%,\n transparent 75%,\n lightgrey 75%,\n lightgrey\n );\n background-size: 60px 60px;\n background-position:\n 0 0,\n 30px 30px;\n}\n.msp-plugin .msp-viewport-controls {\n position: absolute;\n right: 10px;\n top: 10px;\n width: 32px;\n}\n.msp-plugin .msp-viewport-controls-buttons {\n text-align: right;\n position: relative;\n}\n.msp-plugin .msp-viewport-controls-buttons > div {\n position: relative;\n margin-bottom: 4px;\n}\n.msp-plugin .msp-viewport-controls-buttons button {\n padding: 0;\n text-align: center;\n width: 32px;\n position: relative;\n}\n.msp-plugin .msp-viewport-controls-buttons .msp-btn-link-toggle-off {\n color: #9c835f;\n}\n.msp-plugin .msp-viewport-controls-buttons .msp-btn-link:hover {\n color: #ae5d04;\n}\n.msp-plugin .msp-semi-transparent-background {\n background: #eeece7;\n opacity: 0.5;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n.msp-plugin .msp-hover-box-wrapper {\n position: relative;\n}\n.msp-plugin .msp-hover-box-wrapper .msp-hover-box-body {\n visibility: hidden;\n position: absolute;\n right: 36px;\n top: 0;\n width: 100px;\n background-color: #eeece7;\n}\n.msp-plugin .msp-hover-box-wrapper .msp-hover-box-spacer {\n visibility: hidden;\n position: absolute;\n right: 32px;\n top: 0;\n width: 4px;\n height: 32px;\n}\n.msp-plugin .msp-hover-box-wrapper:hover .msp-hover-box-body,\n.msp-plugin .msp-hover-box-wrapper:hover .msp-hover-box-spacer {\n visibility: visible;\n}\n.msp-plugin .msp-viewport-controls-panel {\n width: 290px;\n top: 0;\n right: 36px;\n position: absolute;\n background: #e0ddd4;\n}\n.msp-plugin\n .msp-viewport-controls-panel\n .msp-control-group-wrapper:first-child {\n padding-top: 0;\n}\n.msp-plugin .msp-viewport-controls-panel .msp-viewport-controls-panel-controls {\n overflow-y: auto;\n max-height: 400px;\n}\n.msp-plugin .msp-highlight-toast-wrapper {\n position: absolute;\n right: 10px;\n bottom: 10px;\n max-width: 95%;\n z-index: 10000;\n}\n.msp-plugin .msp-highlight-info {\n color: #ae5d04;\n padding: 3px 10px;\n background: #eeece7;\n opacity: 90%;\n text-align: right;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n -o-user-select: none;\n user-select: none;\n cursor: default;\n}\n.msp-plugin .msp-highlight-info-hr {\n margin-inline: 0px;\n margin-block: 3px;\n border: none;\n height: 1px;\n background-color: #ae5d04;\n}\n.msp-plugin .msp-highlight-info-additional {\n font-size: 85%;\n display: inline-block;\n color: #fa911e;\n}\n.msp-plugin .msp-snapshot-description-wrapper {\n background: rgba(238, 236, 231, 0.5);\n position: absolute;\n left: 0;\n top: 42px;\n padding: 6.6px 10px;\n max-height: 224px;\n overflow: hidden;\n overflow-y: auto;\n max-width: 400px;\n}\n.msp-plugin .msp-snapshot-description-wrapper a {\n text-decoration: underline;\n cursor: pointer;\n color: #332b1f;\n}\n.msp-plugin .msp-snapshot-description-wrapper ul,\n.msp-plugin .msp-snapshot-description-wrapper ol {\n padding-left: 14px;\n}\n.msp-plugin .msp-log-wrap {\n position: absolute;\n right: 0;\n top: 0;\n left: 0;\n bottom: 0;\n overflow: hidden;\n}\n.msp-plugin .msp-log {\n position: absolute;\n right: -20px;\n top: 0;\n left: 0;\n bottom: 0;\n overflow-y: scroll;\n overflow-x: hidden;\n font-size: 90%;\n background: #e0ddd4;\n}\n.msp-plugin .msp-log {\n font-size: 90%;\n color: #433829;\n}\n.msp-plugin .msp-log ul {\n padding: 0;\n margin: 0;\n}\n.msp-plugin .msp-log li {\n clear: both;\n margin: 0;\n background: #eeece7;\n position: relative;\n}\n.msp-plugin .msp-log li:not(:last-child) {\n border-bottom: 1px solid #cec9ba;\n}\n.msp-plugin .msp-log .msp-log-entry {\n margin-left: 110px;\n background: #ebe8e3;\n padding: 3px 25px 3px 10px;\n}\n.msp-plugin .msp-log .msp-log-timestamp {\n padding: 3px 10px 3px 10px;\n float: left;\n text-align: right;\n width: 110px;\n color: #726046;\n font-size: 100%;\n}\n.msp-plugin .msp-log .msp-log-timestamp small {\n font-size: 100%;\n}\n.msp-plugin .msp-log .label {\n margin-top: -3px;\n font-size: 7pt;\n}\n.msp-plugin .msp-log-entry-badge {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 6px;\n}\n.msp-plugin .msp-log-entry-message {\n background: #0cca5d;\n}\n.msp-plugin .msp-log-entry-info {\n background: #5e3673;\n}\n.msp-plugin .msp-log-entry-error {\n background: #fd354b;\n}\n.msp-plugin .msp-log-entry-warning {\n background: #fcc937;\n}\n.msp-plugin .msp-sequence {\n position: absolute;\n right: 0;\n top: 0;\n left: 0;\n bottom: 0;\n background: #eeece7;\n}\n.msp-plugin .msp-sequence-select {\n position: relative;\n height: 24px;\n width: 100%;\n margin-bottom: 1px;\n background: #e0ddd4;\n text-align: left;\n}\n.msp-plugin .msp-sequence-select > span {\n display: inline-block;\n line-height: 24px;\n padding: 0 10px;\n font-size: 85%;\n font-weight: bold;\n cursor: default;\n}\n.msp-plugin .msp-sequence-select > select {\n display: inline-block;\n max-width: 120px;\n width: auto;\n text-overflow: ellipsis;\n font-size: 85%;\n height: 24px;\n line-height: 24px;\n background-size: 6px 8px;\n background-color: #e0ddd4;\n}\n.msp-plugin .msp-sequence-wrapper {\n word-break: break-word;\n padding: 10px 10px 3px 10px;\n user-select: none;\n}\n.msp-plugin .msp-sequence-wrapper-non-empty {\n font-size: 85%;\n line-height: 180%;\n font-family: 'Courier New', monospace;\n background: #f3f2ee;\n width: 100%;\n overflow-y: auto;\n overflow-x: hidden;\n position: absolute;\n top: 25px;\n left: 0;\n bottom: 0;\n right: 0;\n}\n.msp-plugin .msp-sequence-chain-label {\n margin-left: 10px;\n margin-top: 10px;\n user-select: none;\n color: #ae5d04;\n font-size: 90%;\n line-height: 90%;\n padding-left: 0.2em;\n}\n.msp-plugin .msp-sequence-wrapper span {\n cursor: pointer;\n}\n.msp-plugin .msp-sequence-wrapper .msp-sequence-residue-long {\n margin: 0em 0.2em 0em 0.2em;\n}\n.msp-plugin .msp-sequence-wrapper .msp-sequence-residue-long-begin {\n margin: 0em 0.2em 0em 0em;\n}\n.msp-plugin .msp-sequence-wrapper .msp-sequence-label {\n color: #ae5d04;\n font-size: 90%;\n line-height: 90%;\n padding-bottom: 1em;\n padding-left: 0.2em;\n}\n.msp-plugin .msp-sequence-wrapper .msp-sequence-number {\n color: #ae5d04;\n word-break: keep-all;\n cursor: default;\n position: relative;\n top: -1.1em;\n left: 3.1em;\n padding: 0px;\n margin-left: -3em;\n font-size: 80%;\n}\n.msp-plugin .msp-sequence-wrapper .msp-sequence-number-long {\n left: 3.3em;\n}\n.msp-plugin .msp-sequence-wrapper .msp-sequence-number-long-negative {\n left: 2.7em;\n}\n.msp-plugin .msp-sequence-wrapper .msp-sequence-number-negative {\n left: 2.5em;\n}\n.msp-plugin .msp-sequence-wrapper .msp-sequence-present {\n color: #332b1f;\n}\n.msp-plugin .msp-sequence-wrapper .msp-sequence-missing {\n color: #9c835f;\n}\n.msp-plugin .msp-transformer .msp-entity-badge {\n position: absolute;\n top: 0;\n right: 0;\n height: 32px;\n line-height: 32px;\n width: 32px;\n}\n.msp-plugin .msp-layout-right,\n.msp-plugin .msp-layout-left {\n background: #e0ddd4;\n}\n.msp-plugin .msp-transformer-wrapper {\n position: relative;\n}\n.msp-plugin .msp-transformer-wrapper .msp-entity-badge {\n left: 0;\n top: 0;\n}\n.msp-plugin\n .msp-transformer-wrapper:first-child\n .msp-panel-description-content {\n top: 33px;\n}\n.msp-plugin\n .msp-transformer-wrapper:not(:first-child)\n .msp-panel-description-content {\n bottom: 33px;\n}\n.msp-plugin .msp-transform-wrapper {\n margin-bottom: 10px;\n}\n.msp-plugin .msp-transform-wrapper-collapsed {\n margin-bottom: 1px;\n}\n.msp-plugin .msp-transform-update-wrapper {\n margin-bottom: 1px;\n}\n.msp-plugin .msp-transform-update-wrapper-collapsed {\n margin-bottom: 1px;\n}\n.msp-plugin .msp-transform-update-wrapper > .msp-transform-header > button,\n.msp-plugin\n .msp-transform-update-wrapper-collapsed\n > .msp-transform-header\n > button {\n text-align: left;\n padding-left: 32px;\n line-height: 24px;\n background: #e9e6e0;\n}\n.msp-plugin .msp-transform-wrapper > .msp-transform-header > button {\n text-align: left;\n background: #eeece7;\n font-weight: bold;\n padding-right: 5px;\n}\n.msp-plugin .msp-transform-header {\n position: relative;\n}\n.msp-plugin .msp-transform-header > button > small {\n font-weight: normal;\n float: right;\n}\n.msp-plugin .msp-transform-header > button > span:first-child {\n margin-right: 10px;\n}\n.msp-plugin .msp-transform-header > button:hover {\n color: #63533c;\n}\n.msp-plugin .msp-transform-header-brand {\n margin-bottom: -1px;\n}\n.msp-plugin .msp-transform-header-brand svg {\n fill: #332b1f;\n stroke: #332b1f;\n}\n.msp-plugin .msp-transform-default-params {\n background: #eeece7;\n position: absolute;\n left: 0;\n top: 0;\n width: 32px;\n padding: 0;\n}\n.msp-plugin .msp-transform-default-params:hover {\n background: #fff;\n}\n.msp-plugin .msp-transform-apply-wrap {\n position: relative;\n margin-top: 1px;\n width: 100%;\n height: 32px;\n}\n.msp-plugin .msp-transform-refresh {\n width: 87px;\n margin-left: 33px;\n background: #eeece7;\n text-align: right;\n}\n.msp-plugin .msp-transform-apply {\n display: block;\n position: absolute;\n left: 120px;\n right: 0;\n top: 0;\n}\n.msp-plugin .msp-transform-apply-wider {\n margin-left: 33px;\n}\n.msp-plugin .msp-data-beh {\n margin: 10px 0 !important;\n}\n.msp-plugin .msp-toast-container {\n position: relative;\n z-index: 1001;\n}\n.msp-plugin .msp-toast-container .msp-toast-entry {\n color: #332b1f;\n background: #e0ddd4;\n position: relative;\n float: right;\n min-height: 32px;\n margin-top: 10px;\n border: 1px solid #cec9ba;\n display: table;\n}\n.msp-plugin .msp-toast-container .msp-toast-entry .msp-toast-title {\n height: 100%;\n line-height: 32px;\n padding: 0 10px;\n background: #eeece7;\n font-weight: bold;\n display: table-cell;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n -o-user-select: none;\n user-select: none;\n font-weight: light;\n cursor: pointer;\n}\n.msp-plugin .msp-toast-container .msp-toast-entry .msp-toast-message {\n padding: 3px 42px 3px 10px;\n display: table-cell;\n}\n.msp-plugin .msp-toast-container .msp-toast-entry .msp-toast-message a {\n text-decoration: none;\n color: #974102;\n font-weight: bold;\n}\n.msp-plugin .msp-toast-container .msp-toast-entry .msp-toast-message a:hover {\n text-decoration: underline;\n color: #fc6c03;\n}\n.msp-plugin .msp-toast-container .msp-toast-entry .msp-toast-message a:active,\n.msp-plugin .msp-toast-container .msp-toast-entry .msp-toast-message a:focus {\n color: #974102;\n outline-offset: 0;\n outline: none;\n}\n.msp-plugin .msp-toast-container .msp-toast-entry .msp-toast-hide {\n position: absolute;\n width: 42px;\n right: 0;\n top: 0;\n bottom: 0;\n}\n.msp-plugin\n .msp-toast-container\n .msp-toast-entry\n .msp-toast-hide\n .msp-btn-icon {\n background: rgba(0, 0, 0, 0);\n position: absolute;\n top: 1px;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100%;\n text-align: right;\n padding-right: 5px;\n}\n.msp-plugin .msp-help-row {\n position: relative;\n height: 32px;\n background: #eeece7;\n margin-top: 1px;\n display: table;\n width: 100%;\n}\n.msp-plugin .msp-help-row > span {\n width: 120px;\n text-align: right;\n padding: 3px 10px;\n color: #63533c;\n display: table-cell;\n font-weight: bold;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n -o-user-select: none;\n user-select: none;\n cursor: default;\n}\n.msp-plugin .msp-help-row > div {\n background: #f3f2ee;\n position: relative;\n padding: 3px 10px;\n display: table-cell;\n}\n.msp-plugin .msp-canvas {\n width: 100%;\n height: 100%;\n background-color: #f3f2ee;\n}\n.msp-plugin .msp-canvas text {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.msp-plugin .msp-canvas circle {\n stroke: #000;\n stroke-width: 10;\n stroke-opacity: 0.3;\n}\n.msp-plugin .msp-canvas circle:hover {\n fill: #ae5d04;\n stroke: #000;\n stroke-width: 10px;\n}\n.msp-plugin .msp-canvas .info {\n fill: #fff;\n stroke: #000;\n stroke-width: 3;\n}\n.msp-plugin .msp-canvas .show {\n visibility: visible;\n}\n.msp-plugin .msp-canvas .hide {\n visibility: hidden;\n}\n.msp-plugin .msp-canvas .delete-button rect {\n fill: #ed4337;\n stroke: #000;\n}\n.msp-plugin .msp-canvas .delete-button text {\n stroke: #fff;\n fill: #fff;\n}\n.msp-plugin .msp-canvas .delete-button:hover {\n stroke: #000;\n stroke-width: 3;\n fill: #ff6961;\n}\n.msp-plugin .msp-canvas .infoCircle:hover {\n fill: #4c66b2;\n}\n.msp-plugin .msp-canvas:focus {\n outline: none;\n}\n.msp-plugin .msp-logo {\n display: block;\n position: absolute;\n bottom: 10px;\n right: 10px;\n height: 32px;\n width: 100px;\n background-repeat: no-repeat;\n background-position: bottom right;\n background-size: auto;\n background-image: url(data:image/png;base64,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);\n}\n.msp-plugin .msp-plugin-content {\n color: #332b1f;\n}\n.msp-plugin .msp-plugin-init-error {\n white-space: pre;\n margin: 10px;\n}";
2
+ export default _default;