body {
/* nonlinear gradient */
background-image: url("images/subjectback1.gif");
background-repeat: repeat-y;
/* ensure image fills to edge of window (some browsers may use different margins) */
margin: 0;
}

/********************************** HEADER ***********************************/
div.title {
/* nonlinear gradient */
/*background-color: red;/* enable to help troubleshoot body structure */
padding: 0px;
/* center text elements in title bar */
text-align: center;
}

div.title hr{
/* ensure hr does not follow inline after menu bar */
clear: both;
/* collapse extra space under title bar */
margin: 0px 8px;
}

/* "Abstract State Machines" link to home page */
div.title h1 a{
/* remove color and underline from links in title */
color: black;
text-decoration: none;
}

.navbar {
/* clears bullets in firefox */
list-style-type: none;
/* auto left-right margins enable centering when a fixed width is provided*/
margin: 0 auto;
/* remove list indent for better centering */
padding: 0;
/* navbar width must be defined as tight as possible to enable accurate
 * centering. ems are used to allow proper width based on font size. width
 * is based on longest menu item width * number of first-level menu items */
width: 61em;
}

.menubutton {
/* menu button background pattern */
background-image: url("images/menubackflip.gif");
background-repeat: repeat-x;
border: 1px solid black;
/* turn off default block level list item rendering to achieve horiz. menu */
display: inline;
/* cause menu items to flow left - right  inline */
float: left;
/* height of button background image. change if image is changed */
height: 16px;
/* margin top and bottom. left -1px eliminates double border between buttons */
margin: 5px 0px 5px -1px;
/* define containing block for absolutely positioned popups */
position: relative;
/* center text in button */
line-height: 16px;
/* set common width for all buttons */
width: 7.5em;
}

html > body .menubutton {
height: 16px;
}

/* menu button inversion on hover */
.navbar > li:hover {
background-image: url('images/menuback.gif');
background-repeat: repeat-x;
}

.navbar a{
/* make all menu item links block boxes so they fill the width of their containers */
display: block;
/* remove all link decorations */
color: black;
text-decoration: none;
/* IE box model variation fix for proper display */
margin-top: -3px;
}

/* IE ignores child selector, so this rule is only interpreted by non-IE browsers */
.navbar li > a {
/* non-IE margin */
margin-top: 0px;
}

/* highlight selected menu item */
.navbar li li a:hover{
background-color: #e0e0e0;
}		

/* inset italic link descriptions in menu */
.navbar i{
padding-left: 0.5cm;
}

/* basic popup menu settings */
.popup {
background-color: white;
border: 1px solid #000;
/* initially undisplayed. javascript is used to set display: block since IE
 * does not support :hover class for non-link elements */
display: none;
/* no list bullets */
list-style-type: none;
/* absolutely position popup relative to its containing block (menu button) */
position: absolute;
/* IE has a riduculously large left margin even on absolutely positioned
 * elements. Explicitly set margin to 0 to accomodate IE */
margin: 0px;
/* move popup 1px to the left to align button and popup left borders */
left: -1px;
/* position popup from top of button (change if button height changes) */
top: 16px;
/* alignment is centered in the rest of the menu bar. Set align left for popups*/
text-align: left;
/* set padding for left and right sides of popup */
padding: 0px 5px;
/* ensure popups appear above the rest of the page */
z-index: 100;
}

.popup li {
/* remove IE newline display issues */
display: inline-block;
/* create menu item divider in popups with appropriate spacing */
border-top: 1px solid #888888;
margin: 4px 0px;
/* padding top is needed for even spacing since consecutive margins collapse */
padding-top: 4px;
}

/* IE ignores child selector, so this rule is only interpreted by non-IE browsers */
.popup > li {
/* return to normal display mode after implementing IE fix */
display: block;
}

.popup .first {
border-top: none;
}

/* set width for conference popup */
#confpopup {
width: 250px;
}

/* set width for paper index popup */
#paperpopup {
width: 125px;
}

/* set width for whatsnew popup */
#yearpopup {
width: 100px;
}

/*************************** SUBJECT NAVIGATOR ********************************/

div.subjects {
/* make subjects start a new row in the flow */
clear: left;
/* float list to left to make space for the content div */
float: left;
/* explicit borders for consistent behavior between browsers */
margin: 0px;
/* pad top and bottom to prevent running into header and footer */
padding: 0px 8px;
/* float isn't sufficient for IE; width must be set explicitly*/
width: 16.5em;
}

.subjects ul{
/* pad lists to space from edge of screen */
padding-left: 20px;
/* IE has a different default margin, so explicitly set it to 0 */
margin-left: 0px;
}

.subjects li{
/* set the background color to the color of the position of the background 
 * gradient corresponding to 1em from in left-most position of the list item */
background-color: #B7B7B7;
/* remove bullets from list items */
list-style-type: none;
margin-top: 2px;
margin-left: 1.5em;
}

.subjects a{
/* leave the left-most edge unbordered so that the gradient flow into the list*/
border-style: solid solid solid none;
border-width: 1px;
border-color: black;
/* color and text-decoration remove link formatting in subjects list */
color: black;
text-decoration: none;
/* display: block causes the link to expand to the width of the subject pane */
display: block;
margin-left: -1.5em;
line-height: 1.1em;
}

.subjects a:hover{
background-color: #8B8B8B;
}
/********************************* BODY ***************************************/

div.body {
/*background-color: blue;/* enable to help troubleshoot body structure */
/* margin reflects subjects column width */
margin-left: 18em;
/* padding provides space from subjects column */
padding: 0.5em 2em;
}

/******************************** FOOTER **************************************/
/* w3badge floats left, all other text aligns right */

/* author links */
address {
float: right;
}

div.footer {
/*background-color: green;/* enable to help troubleshoot body structure */
/* clear floats on both edges so footer displays in its own row */
clear: both;
/* pad left and right so words do not run into edges of window */
padding: 0px 8px;
text-align: right;
}

/* url and page information */
div.footer p {
clear: both;
}


#w3badge {
/* display badge as block to enable floating */
display: block;
float: left;
}

#alphanav {
background-color: white;
background-image: url("images/alphaback.gif");
background-repeat: repeat-x;
border: groove lightgray;
border-bottom: none;
position: fixed;
bottom: 0px;
left: 18em;
padding: 0px 8px;
text-align: center;
right: 8px;
}

#alphanav a{
color: #404040;
}
