/* Copyright 1997-2003 W3C (MIT, ERCIM, Keio). All Rights Reserved.
   The following software licensing rules apply:
   http://www.w3.org/Consortium/Legal/copyright-software */

/* $Id: base.css,v 1.1 2007/05/15 02:42:24 david_williams Exp $ */

/* this style sheet defines the basic style for all W3C pages */
/* you can point to this by adding:

     <LINK rel="Stylesheet" href="/StyleSheets/base">


   in the HEAD of your HTML document */

body {
  font-family: sans-serif;
  color: black;
  background: white;
}

a:link, a:active {
  color: #00e;
  background: transparent;
}

a:visited {
  color: #529;
  background: transparent;
}

div.intro {
  margin-left: 5%;
  margin-right: 5%;
  font-style: italic
}

pre {
  font-family: monospace
}

a:link img, a:visited img {
   border-style: none
}

a img { color: white; }        /* hide the border in Netscape 4 */
@media all {                   /* hide from Netscape 4 */
  a img { color: inherit; }    /* undo the rule above */
}

ul.toc, ol.toc {
  list-style: disc;
  list-style: none;
}

div.issue {
  padding: 0.5em;
  border: none;
  margin-right: 5%;
}

.hideme { display: none }

@media print {

  table {
    page-break-inside: avoid
  }

}