/*
 * Basic HTML style information.
 */
html,
address,
blockquote,listing,
body, dd, div,
dl, dt, fieldset, legend,form,
frame, frameset,
h1, h2, h3, h4,
h5, h6, noframes,noscript,
ol, p, ul, center,
dir, hr, menu, pre, plaintext, xmp  { display: block }

ol				{counter-reset: _anonymous; list-style-type: decimal}
ul,dir,menu  	{counter-reset: _anonymous; list-style-type: disc}
li           	{display: list-item}
li				{counter-increment: _anonymous}

head            { display: none }
table           { display: table }
tr              { display: table-row }
thead           { display: table-header-group }
tbody           { display: table-row-group }
tfoot           { display: table-footer-group }
col             { display: table-column }
colgroup        { display: table-column-group }
td, th          { display: table-cell; }
caption         { display: table-caption }
th              { font-weight: bolder;}
caption         { text-align: center;horizontal-align:top }
button, textarea,
input, object, 
select, img { display:inline-block; }
pre,plaintext, xmp   { white-space: pre }
h1, h2, h3, h4,
h5, h6, b,
strong          { font-weight: bold }
i, cite, em,dfn,
var, address    { font-style: italic }
pre, tt, code,plaintext, xmp,
kbd, samp       { font-family: monospace }
ol              { list-style-type: decimal }
br:before       { content: "\A" }
center          { text-align: center }
sub             { vertical-align: sub }
sup             { vertical-align: super }
u, ins          { text-decoration: underline }
input			{ text-decoration: none }
button			{ white-space: nowrap }
a[href]			{ text-decoration: underline }

/*
 * styles that may be different for different user agent.
 * This part may need to move out and put into different css files.
 */
body            { line-height: 1.12em }
h1              { font-size: 2em; margin: .67em 0 }
h2              { font-size: 1.5em; margin: .75em 0 }
h3              { font-size: 1.17em; margin: .83em 0 }
h4, p,ul,
fieldset, form,
ol, dl, dir,
menu            { margin: 1.12em 0 }
blockquote      { margin: 1em 40px }
h5              { font-size: .83em; margin: 1.5em 0 }
h6              { font-size: .75em; margin: 1.67em 0 }
blockquote      { margin-left: 40px; margin-right: 40px }
big             { font-size: larger }
small, sub, sup { font-size: smaller }
s, strike, del  { text-decoration: line-through }
hr              { border: 1px inset }
ol, ul, dir,
menu, dd        { margin-left: 40px;border:0px }
ol ul, ul ol,
ul ul, ol ol    { margin-top: 0; margin-bottom: 0 }
abbr, acronym   { font-variant: small-caps; letter-spacing: 0.1em }
a[href]         { color:blue;}
select			{background-color: window;font-family:sans-serif;font-size:13px;font-weight: normal;}
textarea		{border: 2px inset;font-size:13px;font-family:monospace}
textarea,
input 			{background-color: window}
input,
input[type=text],
input[type=password] {border: 2px inset;font-size:13px;font-family:sans-serif;font-weight: normal;}
/* following upcased TYPE is for workaround the WTP M2 bug of not setting default content type */
input[TYPE=submit],input[TYPE=reset],input[TYPE=button],input[TYPE=cancel],
button,
input[type=button],
input[type=reset],
input[type=cancel],
input[type=submit] {background-color: ButtonFace; border: 2px outset; font-size:13px;
					font-family:sans-serif;text-align: center;font-weight: normal;}
input[type=image],
input[type=checkbox],
input[type=radio]  {border: none }
input[type=hidden]  {border: none }
img				{border: 0px none}
listing         {font-family:monospace;font-size: medium;white-space: pre; margin: 1em 0;}
tbody,thead,tfoot     {vertical-align: middle;}
blink 			{text-decoration: blink;}

hr 		{margin: 0.5em auto 0.5em auto;}
caption  {border: 0px none;margin: 0px; padding:0px 0px 4px 0px;}
td, th,
table    {border: 4px none;}
button   {padding: 3px 5px;text-align: center;vertical-align: middle;}
button,textarea,input   {vertical-align: text-bottom;color:black;font-style:none;}
select {vertical-align: text-bottom;}
input[type=image]  {vertical-align: baseline;}
li   {min-height:1.2em}
button {min-height:1.8em}
div,tr,form {min-height:1.2em}
table,td {min-width:1.2em;min-height:1.2em}

/* nested lists have no top/bottom margins */
ul ul,   ul ol,   ul dir,   ul menu,   ul dl,
ol ul,   ol ol,   ol dir,   ol menu,   ol dl,
dir ul,  dir ol,  dir dir,  dir menu,  dir dl,
menu ul, menu ol, menu dir, menu menu, menu dl,
dl ul,   dl ol,   dl dir,   dl menu,   dl dl 	{margin-top: 0; margin-bottom: 0;}

/* 2 deep unordered lists use a circle */
ol ul,   ul ul,   menu ul,   dir ul,
ol menu, ul menu, menu menu, dir menu,
ol dir,  ul dir,  menu dir,  dir dir 	{list-style-type: circle;}

/* 3 deep (or more) unordered lists use a square */
ol ol ul,     ol ul ul,     ol menu ul,     ol dir ul,
ol ol menu,   ol ul menu,   ol menu menu,   ol dir menu,
ol ol dir,    ol ul dir,    ol menu dir,    ol dir dir,
ul ol ul,     ul ul ul,     ul menu ul,     ul dir ul,
ul ol menu,   ul ul menu,   ul menu menu,   ul dir menu,
ul ol dir,    ul ul dir,    ul menu dir,    ul dir dir,
menu ol ul,   menu ul ul,   menu menu ul,   menu dir ul,
menu ol menu, menu ul menu, menu menu menu, menu dir menu,
menu ol dir,  menu ul dir,  menu menu dir,  menu dir dir,
dir ol ul,    dir ul ul,    dir menu ul,    dir dir ul,
dir ol menu,  dir ul menu,  dir menu menu,  dir dir menu,
dir ol dir,   dir ul dir,   dir menu dir,   dir dir dir { list-style-type: square;}

/**
 * We do not write codes to support some elements. This part defines properties for them 
 * to improve the look of these elements.
 */
applet {border: 1px solid;}
fieldset {border: 2px groove;}
applet,iframe {display:inline-block; border:3px inset; }
object {display:inline-block;border:0px none;}


/* 
 * Sets right margin to have gap between widgets.
 */
input,textarea,button	 { margin-right: 2px;}