/*  The styles most likely to be used are:
	- Title: The title of the topic
	- h1, h2, h3: First, second, and third-level headings within the body of a topic
	- relatedTopics: Related Topics
	- procTitle: Within How Do I:... topics, for headings within the body of a topic that are followed by
	  bulleted procedures ("To do this").
	- pre: For code blocks
	- langinline: For code fragments within a (non-code) regular section.
	- notepara: Notes	 
*/
h1,
h2,
h3,
h4,
h5,
p,
proctitle,
relatedtopics {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	color: #000000;
}

/* Use h1 for all first-level headings within the body of a topic. 
   For the topic title, use the Title style. */
h1 {
	font-size: 135%;
	margin-top: .5em;
	margin-bottom: .5em;
}

/* Use h2 for all second-level headings. */
h2 {
	font-size: 125%;
	margin-top: 1em;
	margin-bottom: .6em;
}

/* Use h3 for all third-level headings. */
h3 {
	font-size: 110%;
	margin-top: 1em;
	margin-bottom: .6em;
}

/* Use h4 for all fourth-level headings. 
   Note: this style looks identical to the relatedtopics and proctitle styles. */
h4 {
	font-size: 105%;
	margin-top: 1em;
	margin-bottom: .6em;
}

/* Use h5 for all fifth-level heading.  
   Currently, there are no h5s in use in the document.*/
h5 {
	font-size: 100%;
	margin-top: 1em;
	margin-bottom: .6em;
}

/* Use the Title style for the title of a topic. */
p.Title {
	font-weight: bold;
	font-style: normal;
	font-family: Verdana, sans-serif;
	font-size: 142%;
}

/* This deprated tag creates a div that designates the title. */
#topictitle {
}

/* This deprecated tag creates a dive that designates all body text. */
#topictext {
}

/* Used for figure captions.*/
p.arttitle {
	font-weight: Bold;
}
  
/* The attribute style resembles the navtitle and partdesc styles in that it keeps the next paragraph 
   flush with it. Use it when you list the attributes of syntax in a reference topic.
   The argument style should always be followed by the partdesc style. */
p.attribute {
	margin-top: .6em;
	margin-bottom: 0px;
	font-weight: Bold;
	
}

/* Standard HTML tag. */
body {
	padding: 0px 0px 0px 15px;
	background: #ffffff;
	color: #00000;
	font-size: 80%;
	font-family: Verdana, Arial, Helvetica, sans-serif;
}

/* Standard HTML tag. */
span.bold {
	font-weight: Bold;
}

/* Standard HTML tag. */
blockquote {
	margin: 0em 0em 0em 2em;
	padding: 0px;
}

/* Use the filepath style to designate file paths. It is currently a monospace file. */
span.filepath {
	font: 100% Courier New Courier mono;
	font-family: "Courier New", monospace;
}

/* The langinline style, like userinput and filepath, also renders text monospace. Use this
   to denote any individual instance of code in the context of non-coded text. For example, 
   you would use this to denote the name of a class when you're describing it in the paragraph that
   precedes a code sample. To denote a code sample, however, use the <pre> tag. */
span.langinline {
	font: 100% Courier New Courier mono;
	font-family: "Courier New", monospace;
}

/* The listplain style narrows the margin between the formatted line and the one before it.
   It is to be used when creating a second paragraph in a list item, along with the indent and
   unindent buttons in Dreamweaver. */
p.listplain {
	margin-top: 0.7em;
	margin-bottom: 0;
	padding: 0em;
}

/* All text in the navtitle style should include a link to another topic.
   The navtitle style is used in navigational node topics, in Class reference
   topics, and in Method reference topics. For example, in the "Topics 
   Included in this Section" section of a navigation topic, you include the links to all of 
   the topics in that chapter, along with a brief description of what you'll find in each. Use the
   navtitle style for the linked text. It differs from a normal paragraph style in that it does not 
   include an extra paragraph break between the link and the descriptive text. */
p.navtitle {
	margin-top: .6em;
	margin-bottom: 0em;
}

/* The navdesc style is used in navigational node topics, in Class reference
   topics, and in Method reference topics. For example, in the "Topics Included in this Section" 
   section of a navigation topic, you include the links to all of the topics in that chapter,
   along with a brief description of what you'll find in each. Use this style for the descriptive text. 
   It indents the text one tab stop and keeps the margin between this style and the navtitle style small.  */
p.navdesc {
	margin-bottom: 1em;
	margin-left: 1.9em;
	margin-top: 0em;
}

/* The notepara style indents your text to the tab stop for note
   text. You should always begin Note text with the word "Note:" in
   boldface. */
p.notepara {
	margin-left: 2em;
	margin-right: 2em;
	margin-bottom: 1.5em;
}

/* The partname style resembles the navtitle style in that it keeps the next paragraph flush with it. 
   You use it when you list the parameters in a reference topic. It is also used currently in the 
   glossary to designate glossary entries. It renders text italic.
   The partname style should always be followed by the partdesc style.*/
p.partname {
	margin-top: .6em;
	margin-bottom: 0px;
	font-style: italic;
}

/* Use the partdesc style when you describe the function of the properties, parameters, or exceptions 
   listed in a reference topic. It is also used currently in the glossary to designate glossary 
   definitions. The style indents the description slightly.
   The partdesc style should always follow the partname or attribute style.*/
p.partdesc {
	margin-bottom: 1em;
	margin-left: 1.9em;
	margin-top: 0em;

}

/* The point of the proctitle style is the same as the point of the relatedtopics style.  
   It applies to all headings that begin with "To [do something]". It looks identical to the h4 style.  */
p.proctitle {
	font-size: 110%;
	margin-top: 1em;
	margin-bottom: .6em;
	font-weight: Bold;

}

/* Use the relatedtopics style, for the words "Related Topics" at the end of a topic. 
   It looks identical to the h4 style. */
p.relatedtopics {
	font-size: 120%;
	margin-top: 1em;
	margin-bottom: .6em;
	font-weight: Bold;
}

/* The syntax style renders text bold. Use it to style all syntax lines under the
   Syntax heading of reference topics. */
p.syntax {
	font-family: monospace;
	line-height: normal;
	font-weight: Bold;
}

/* Use the syntaxindent style to indent sub-properties of syntax declarations. */
p.syntaxindent {
	font-family: monospace;
	line-height: normal;
	font-weight: Bold;
	margin-left: 1.5em;
	margin-top: 0em;
	margin-bottom: 0px;
}


p.fileurl {
	font-size: 8pt;
}

p.modifieddate {
	font-size: 8pt;
}

/* The syntaxpartname character style renders text italic. Use it to designate 
   syntax elements in reference topics.*/
span.syntaxpartname {
	font-style: italic;
	font-weight: normal;
}

/* These specifications dictate the margins and width of tables. */
table {
	width: 90%;
	margin-top: .6em;
	margin-bottom: .3em;
}

/* The background of header cells is grey, and the text is bottom-aligned. */
th {
	padding-left: 8px;
	padding-right: 8px;
	background: #cccccc;
	text-align: left;
	font-size: 80%;
	font-family: Verdana, Arial, Helvetica, sans-serif;
	vertical-align: bottom;
}

/* The text in normal table cells is top-aligned. */
td {
	padding-left: 8px;
	padding-right: 8px;
	background: #ffffff;
	vertical-align: top;
	font-size: 80%;
	font-family: Verdana, Arial, Helvetica, sans-serif;
}

/* This style creates space above and below table text between paragraph and the table borders. */
p.tabletext {
	margin-top: .6em;
	margin-bottom: .6em;
}

/* The editor uses this style when creating template guides to designate a style annotation. 
   You probably won't want to use it anywhere else in the guide. */
span.template {
	color: #FF00FF;	
}

a.toc-node {
	font-size:11px;
	color:000000;
	margin-left: 0px;
	margin-top: 0px;
	margin-bottom: 0px;
    white-space: nowrap;
    font-family: Tahoma;
    background-color:#FFFFFF;
    text-decoration:none;        
}

/* The userinput style renders text monospace.Use this style to highlight text that a user 
   types into a text field.  */
span.userinput {
	font: 100% Courier New Courier mono;
	font-family: "Courier New", monospace;
}

/* Standard HTML tags. */
ul,
ol {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	list-style-position: outside;
	list-style-image: none;
	margin-top: 0em;
	margin-bottom: 0em;
}

/* Standard HTML tag. */
ol {
	list-style-type: 1;
	margin-left: 2em;
}

/* Standard HTML tag. */
ul {
	list-style-type: disc;
	margin-left: 1.5em;
}

/* Standard HTML tag. */
li {
	margin-top: 1.3em; 
	margin-bottom: 0em;
}

a:link {
	color: #3366CC;
}
a:hover {
	x-text-underline: normal;
	/*begin!kadov{{*/ text-decoration: underline; /*}}end!kadov*/ 
}

a:active {
	x-text-underline: normal;
	/*begin!kadov{{*/ text-decoration: underline; /*}}end!kadov*/ 
}

a:visited {
	color: #803380;
}

a {
	x-text-underline: off;
	x-text-overline: off;
	x-text-line-through: off;
	/*begin!kadov{{*/ text-decoration: none none none; /*}}end!kadov*/ 
}
a:link {
	color: #3366CC;
}

a:hover {
	x-text-underline: normal;
	/*begin!kadov{{*/ text-decoration: underline; /*}}end!kadov*/ 
}

a:active {
	x-text-underline: normal;
	/*begin!kadov{{*/ text-decoration: underline; /*}}end!kadov*/ 
}

a:visited {
	color: #000066;
}

div.footer {
}

.buttonclass
{
	font-size:10px;
	height:20px;
}

.formclass
{
	font-size:10px;
	height:17px;
}




/*DEPRECATED*/
p.codeblock {
	font-size: 100%;
	font-family: monospace;
	line-height: 1em;
	x-text-tab-stops: repeat 1in;
	white-space: nowrap;
	color: #000000;
	cursor: text;
	padding-right: 1em;
	padding-left: 1em;
	padding-top: 0em;
	padding-bottom: 0em;
	margin-bottom: 0em;
	margin-top: 0em;
	x-text-underline: Off;
	/*begin!kadov{{*/ text-decoration: none; /*}}end!kadov*/ 
}

/* DEPRECATED */
p.bulletindent1 {
	margin-left: 1.5em;
	margin-top: 0;
	margin-bottom: 0;
}

/* DEPRECATED */
p.bulletindent2 {
	margin-left: 5.1em;
	margin-top: 0;
	margin-bottom: 0;
}

/* DEPRECATED */
p.bulletindent3 {
	margin-left: 4.3em;
}

/* DEPRECATED */
p.indent1 {
	margin-left: 1.5em;
	margin-right: 1.9em;
}

/* DEPRECATED */
p.indent2 {
	margin-left: 2.9em;
	margin-right: 1.9em;
}

/* DEPRECATED */
p.indent3 {
	margin-left: 4.3em;
	margin-right: 1.9em;
}

/* DEPRECATED */
p.numberedindent1 {
	margin-left: 2.2em;
	margin-top: 0;
	margin-bottom: 0;
}

/* DEPRECATED */
p.numberedindent2 {
	margin-left: 6.3em;
	margin-top: 0;
	margin-bottom: 0;
}

/* DEPRECATED */
p.numberedindent3 {
	margin-left: 10.5em;
	margin-top: 0;
	margin-bottom: 0;
}	

/* DEPRECATED */
p.tabletitle {
	margin-left: 0;
	font-weight: Bold;
}


/* These styles are used by the search results page */

.search-node {
	font-size:10px;
	color:000000;
}

a.search-node {
	font-size:10px;
	color:000000;
}