/* page and headline attributes */

body {
  color:#000000;
  background-color:#ffffff;
  font-family:Helvetica,Arial,sans-serif;
}

h1, h2, h3 {
  border-width: 1px;
  border-style: solid;
  border-color: transparent;
  padding-left:0.3em;
  padding-right:0.3em;
  padding-top:0.3ex;
  padding-bottom:0.3ex;
}

h1:hover, h2:hover, h3:hover {
  color:#c80000;
  background-color:#f8fcc8;
  border-width:1px ;
  border-style:solid ;
  border-color:#c80000;
}

h1.title:hover {
  color:#000000;
  background-color:#ffffff;
  border-width:1px ;
  border-style:solid ;
  border-color:transparent;
}

em {
  color: #c80000 ;
  font-style: normal;
}

/* images */

img {
  border-width:0px ;
  border-style:solid ;
  border-color:red;
}

/* rulers */

hr {
  border-width:0px ;
  border-style:solid ;
  border-color:red;
  background-color:#bbbbbb;
  color:#bbbbbb;
  width:100%;
  height:2px;
}

hr.hr30 {
  width:30%;
  text-align:left;
  margin-left:0px;
  margin-right:70%;
}


/* hypertext links */

a {
  color:#c80000;
  text-decoration:none;
}
a:link {
  color:#c80000;
  text-decoration:none;
}
a:visited {
  color:#900000;
  text-decoration:none;
}
a:hover {
  color:#c80000;
  text-decoration:underline;
}
a:active {
  color:#ff0000;
  text-decoration:underline;
}

a.address {
  color:#1C2764;
  text-decoration:none;
}

/* navigaion links */

a.navigate {
  border-width:0px ;
  border-style:solid ;
  border-color:#ffffff;
  padding:0px;
  margin:0px;
  text-align:center;
  vertical-align:middle;
}

a.navigate img {
  border-width: 1px;
  border-style: solid;
  border-color: #ffffff;
}

a.navigate:hover img {
  border-width: 1px;
  border-style: solid;
  border-color: #c80000;
  background-color: #c80000;
}


/* general layout and alignment classes */

.fullwidth              { width:100%; }

.left                   { text-align:left; }
.right                  { text-align:right; }
.center                 { text-align:center; }

.left-top               { text-align:left;  vertical-align:top; }
.right-top              { text-align:right; vertical-align:top; }
.left-bottom            { text-align:left;  vertical-align:bottom; }
.right-bottom           { text-align:right; vertical-align:bottom; }

/* alignment of tables */

div.left table, div.left table caption {
  margin-left:0;
  margin-right:auto;
}

div.center table, div.center table caption {
  margin-left:auto;
  margin-right:auto;
}

div.right table, div.right table caption {
  margin-left:auto;
  margin-right:0;
}

/* general color classes */

.red                    { color: #ff0000; }
.red1                   { color: #c80000; }
.red2                   { color: #900000; }
.red3                   { color: #600000; }

.orange                 { color: #ffa500; }
.orange1                { color: #ff8c00; }
.orange2                { color: #a05000; }

.grey                   { color: #909090; }
.green2                 { color: #008800; }

.linenr {
  color: #909090;
  padding-right: 2em;
}

/* grey background boxes */

div.grey-background, span.grey-background, pre.grey-background, code.grey-background {
  background-color: #dddddd;
}

div.grey-background, span.grey-background, pre.grey-background {
  border-width: 3px;
  border-style: solid;
  border-color: #bbbbbb;
  padding: 1em;
}

div.grey-background {
  margin-top:1ex;
  margin-bottom:1ex;
  margin-right:7%;
}

div.grey-background:hover {
  background-color: #f8fcc8;
  border-width: 3px;
  border-style: solid;
  border-color: #c80000;
}

pre.grey-background {
  margin-right:10%;
}

code.grey-background {
  font-weight:bold;
}

/* code blocks */

div.codeblock, td.codeblock {
  background-color: #dddddd;
  border-width: 3px;
  border-style: solid;
  border-color: #bbbbbb;
  padding: 1em;
  margin-top:1ex;
  margin-bottom:1ex;
  margin-right:7%;
}

div.codeblock:hover, td.codeblock:hover {
  background-color: #f8fcc8;
  border-width: 3px;
  border-style: solid;
  border-color: #c80000;
}

/* merke sections */

div.wwwhint {
  margin-top:1ex;
  margin-bottom:1ex;
  color: #600000;
}

div.merke {
  margin-left:5%;
  width:95%;
  text-align:left;
}

div.merke table {
  width:100%;
}

div.merke table tr th {
  vertical-align: top;
  padding-top: 10px;
  padding-bottom: 10px;
  padding-right: 10px;
  padding-left: 0px;
}

div.merke table tr td {
  vertical-align: top;
  text-align: left;
  padding-left:   0.3em;
  padding-right:  0.3em;
  padding-top:    0.3ex;
  padding-bottom: 0.3ex;
  border-width: 1px;
  border-style: solid;
  border-color: transparent;
}

div.merke table tr td.highlight {
  border-width: 1px;
  border-style: solid;
  border-color: transparent;
}

div.merke table tr td.highlight:hover {
  color:            #c80000;
  background-color: #f8fcc8;
  border-width: 1px;
  border-style: solid;
  border-color: #c80000;
}

div.merke table tr td div {
  max-width: 50em;
}
/* topic and descrpar sections */

h3.topic, h3.descrpar {
  border-width: 1px;
  border-style: solid;
  border-color: transparent;
  padding-left:   0.3em;
  padding-right:  0.3em;
  padding-top:    0.3ex;
  padding-bottom: 0.3ex;
}

h3.topic:hover, h3.descrpar:hover {
  color:#c80000;
  background-color: #f8fcc8;
  border-width:1px ;
  border-style:solid ;
  border-color: #c80000;
}

table.topic, table.descrpar {
  margin-left: 5%;
  width: 95%;
}

p.descrpar {
  text-align:right;
}

/* description lists */

dt.dlist {
  color:#c80000;
  font-weight:bold;
}


table.descr {
  border-width: 0px;
  border-style: solid;
  border-color: blue;
  margin-left: auto;
  margin-right: 0;
  width: 100%;
  text-align:right;
}

table.descr tr th {
  border-width:0px ;
  border-style:solid ;
  border-color:red;
  text-align:left;
  vertical-align:top;
  width:30%;
  color:#c80000;
  font-weight:bold;
}

table.descr tr th div {
  border-width: 1px;
  border-style: solid;
  border-color: transparent;
  padding-left:0.3em;
  padding-right:0.3em;
  padding-top:0.3ex;
  padding-bottom:0.3ex;
}

table.descr tr th:hover div {
  border-width:1px ;
  border-style:solid ;
  border-color:#c80000;
  background-color:#f8fcc8;
}

table.descr tr td, p.highlight, div.highlight, object.highlight, img.highlight {
  border-width: 1px;
  border-style: solid;
  border-color: transparent;
  padding-left:0.3em;
  padding-right:0.3em;
  padding-top:0.3ex;
  padding-bottom:0.3ex;
  text-align:left;
  vertical-align:top;
}

object.highlight, img.highlight, span.highlight {
  border-width:1px ;
  border-style:solid ;
  border-color:#bbbbbb;
  padding-left:0.3em;
  padding-right:0.3em;
  padding-top:0.5ex;
  padding-bottom:0.5ex;
}

table.descr tr td[colspan="2"] {
  text-align:center;
  vertical-align:top;
}

/*
table.descr tr td.highlight, p.highlight {
  border-width:1px ;
  border-style:solid ;
  border-color:tansparent;
  padding-left:0.3em;
  padding-right:0.3em;
  padding-top:0.3ex;
  padding-bottom:0.3ex;
  text-align:left;
  vertical-align:top;
}
*/

table.descr tr td.highlight:hover, p.highlight:hover, div.highlight:hover, img.highlight:hover, object.highlight:hover {
  border-width:1px ;
  border-style:solid ;
  border-color:#c80000;
  color:#c80000;
  background-color:#f8fcc8;
}

table.descr tr td div.descr {
  max-width: 50em;
}

/* remember sections */

table.remember {
  margin:5px;
}
table.remember tr td    {
  border-width: 1px;
  border-style: solid;
  border-color: transparent;
  text-align:center;
  vertical-align:top;
  padding-right: 1em;
}

table.remember tr td.remember {
  text-align:left;
  padding-left:0.3em;
  padding-right:0.3em;
  padding-top:0.3ex;
  padding-bottom:0.3ex;
}

table.remember tr td.remember:hover {
  border-width:1px ;
  border-style:solid ;
  border-color:#c80000;
  color:#c80000;
  background-color:#f8fcc8;
}

/* grey tables */

table.ctable {
  width:80%;
  margin-left:0pt;
  margin-right:0pt;
  margin-top:1ex;
  margin-bottom:1ex;
  padding:0px;
  border-width: 3px;
  border-style: solid;
  border-color: #bbbbbb;
}

table.ctable:hover {
  background-color:#f8fcc8;
  border-width: 3px;
  border-style: solid;
  border-color: #c80000;
}

table.ctable tr th, th.ctable tr td {
  padding-left:0.5em;
  padding-right:0.5em;
  padding-top:0.5ex;
  padding-bottom:0.5ex;
  text-align:left;
}

table.ctable tr th {
  background-color:#bbbbbb;
}

table.ctable tr td {
  background-color:#dddddd;
}

table.ctable tr th:hover, table.ctable tr td:hover {
  background-color:#f8fcc8;
  color:#c80000;
}

table.ctable tr td code {
  font-weight:bold;
}

/* proof tables */

table.proof {
  background-color:#dddddd;
  border-width: 3px;
  border-style: solid;
  border-color: #bbbbbb;
  padding: 1em;
  margin-top:1ex;
  margin-bottom:1ex;
  margin-right:7%;
}

table.proof:hover {
  border-width: 3px;
  border-style: solid;
  border-color: #c80000;
}

table.proof tr td {
  padding-left:0.3em;
  padding-right:0.3em;
  padding-top:0.3ex;
  padding-bottom:0.3ex;
}

table.proof tr td.proof11 {
  color:#c80000;
  padding-left:1em;
  padding-right:1em;
}

table.proof tr td.proof12 {
  color:#404040;
  padding-left:3em;
  padding-right:1em;
}

table.proof tr td:hover {
  background-color:#f8fcc8;
  color:#c80000;
}

/* color highlighting for source code */

.typename               { color: #00008b; font-family:monospace; }
.varname                { color: #000000; font-family:monospace; }
.globalname             { color: #c80000; font-family:monospace; }
.instancename           { color: #c80000; font-family:monospace; }
.opname                 { color: #770000; font-family:monospace; }
.operator               { color: #770000; font-family:monospace; /* font-weight:bold; */ }
.keyglyph               { color: #3070A0; font-family:monospace; /* font-weight:bold; */ }
.par                    {  }

.keyword                { color: #800000; font-family:monospace; /* font-weight:bold; */ }
.typekeyword            { color: #3070A0; font-family:monospace; /* font-weight:bold; */ }
.strconst               { color: #227722; font-family:monospace; }
.charconst              { color: #227722; font-family:monospace; }
.labelname              { color: #FF00FF; font-family:monospace; font-weight:bold; }
.cppcommand             { color: #007000; font-family:monospace; }
.specialword            { color: #c80000; font-family:monospace; }
.classname              { color: #8B2323; font-family:monospace; }
.comment                { color: #775555; font-family:monospace; }
.bnfnt                  { color: #00008b; font-family:monospace; /* font-weight:bold; */ }
.bnfmeta                { color: #dd00dd; font-family:monospace; font-weight:bold; }
.bnfterminal            { color: #800000; font-family:monospace; /* font-weight:bold; */ }
.tclproc                { color: #FF6000; font-family:monospace; }
.tclvar                 { color: #0000CD; font-family:monospace; }
.tclcomment             { color: #c80000; font-family:monospace; }

.redcode                { color: #c80000; font-family:monospace; /* font-weight:bold; */ }
.bluecode               { color: #3070A0; font-family:monospace; /* font-weight:bold; */ }
.keycode                { color: #3070A0; font-family:monospace; /* font-weight:bold; */ }


/* navigation classes */

div.inhalt {
  margin-left:5%;
  width:95%;
  text-align:left;
}

table.inhalt {
  width:100%;
}

table.inhalt tr th {
  vertical-align:middle;
  padding:0px;
}

table.inhalt tr td {
  vertical-align:top;
  text-align:left;
  padding-left:0em;
  font-size:x-large;
  padding-left:0.3em;
  padding-right:0.3em;
  padding-top:0.3ex;
  padding-bottom:0.3ex;
  border-width: 1px;
  border-style: solid;
  border-color: transparent;
}

table.inhalt tr td:hover {
  border-width: 1px;
  border-style: solid;
  border-color: #c80000;
  background-color: #f8fcc8;
}

div.navigate {
  border-width: 0px;
  border-style: solid;
  border-color: red;
  width:           100%;
  padding:          0px;
  margin:           0px;
  text-align:     right;
}

table.navigate {
  border-width: 1px;
  border-style: solid;
  border-color: #ffffff;
  margin-left:         auto;
  margin-right:           0;
}

table.navigate:hover {
  border-width: 1px;
  border-style: solid;
  border-color: #c80000;
  background-color: #f8fcc8;
}

td.navigate {
  border-width:0px ;
  border-style:solid ;
  border-color:green;
  padding:0px;
  margin:0px;
}

/* konqueror does not understand float:none
   hack: align="right" and extra empty div with clear:all
   this would be better

table.navigate {
  border-width:1px ;
  border-style:solid ;
  border-color:blue;
  display:inline;
  float:none;
}
*/

/* haskell code */

span.haskell {
  font-family: monospace;
  margin-left:0.3em;
  margin-right:0.3em;
  padding-left:0.3em;
  padding-right:0.3em;
  padding-top:0.2ex;
  padding-bottom:0.2ex;
  border-width: 1px;
  border-style: solid;
  border-color: #bbbbbb;
  background-color:#dddddd;
}

span.bottom {
  font-family: monospace;
  text-decoration: underline;
  color:#c80000;
}

/* literatur */

dt.buch {
  border-width: 1px;
  border-style: solid;
  border-color: transparent;
  padding-left:0.3em;
  padding-right:0.3em;
  padding-top:0.3ex;
  padding-bottom:0.3ex;
}

dt.buch:hover {
  border-width: 1px;
  border-style: solid;
  border-color: #c80000;
  color:            #c80000;
  background-color: #f8fcc8;
}

img.cover {
  max-width:    200px;
  margin-left:   10px;
  margin-right:  30px;
  margin-top:    10px;
  margin-bottom: 30px;
}

p.buchkommentar {
  max-width: 50em;
}

/* unix */

table.re-table {
  border-width: 3px;
  border-style: solid;
  border-color: #bbbbbb;
}

table.re-table th, table.re-table td {
  text-align: center;
  margin:        3px;
  padding:      10px;
}

table.re-table th {
  background-color: #bbbbbb;
}

table.re-table td {
  background-color: #dddddd;
}

table.re-table tr th:hover, table.re-table tr td:hover {
  background-color:#f8fcc8;
  color:#c80000;
}

/* program listings */

div.pre, div.codeline, td.codeline{
  font-family: monospace;
  width: 100%;
  white-space: pre;
  border-width: 1px;
  border-style: solid;
  border-color: transparent;
  padding-left: 0.3em;
}

div.pre:hover, div.codeline:hover, td.codeline:hover {
  background-color:#ddddff;
  color:#c80000;
  border-width: 1px;
  border-style: solid;
  border-color: #c80000;
}

/* program listings */

div.lines {
  /* font-family: monospace; */
  width: 100%;
  white-space: pre;
  border-width: 1px;
  border-style: solid;
  border-color: transparent;
  padding-left: 0.3em;
}

div.lines:hover {
  background-color:#ddddff;
  color:#c80000;
  border-width: 1px;
  border-style: solid;
  border-color: #c80000;
}

/* compiler */

table.ctable tr th.state-transition     {
  text-align: left;
}

table.ctable tr td.state-transition     {
  text-align: center;
}

table.ctable tr th.state-transition2    {
  text-align: center;
  vertical-align: top
}

table.ctable tr td.state-transition2    {
  text-align: center;
  vertical-align: top
}

table.grammar, table.parsetable {
  border-width: 3px;
  border-style: solid;
  border-color: #ffffff;
  border-spacing: 2px;
}

table.grammar:hover, table.parsetable:hover {
  border-width: 3px;
  border-style: solid;
  border-color: #c80000;
  /* background-color:#f8fcc8; */
}

th.grammar, td.grammar {
  text-align: left;
  vertical-align: top;
  padding: 6px;
}

th.grammar {
  background-color: #bbbbbb;
}

td.grammar {
  background-color: #dddddd;
}

th.grammar:hover, td.grammar:hover, th.parsetable:hover, th.parsetable2:hover, td.parsetable:hover, td.parsetable2:hover, td.parsetable3:hover {
  background-color:#f8fcc8;
  color:#c80000;
}

th.parsetable, th.parsetable2, td.parsetable, td.parsetable2, td.parsetable3 {
  vertical-align: top;
  padding: 0.4ex;
}

th.parsetable {
  text-align: left;
  background-color: #bbbbbb;
}

th.parsetable2 {
  text-align: center;
  background-color: #bbbbbb;
}

td.parsetable {
  text-align: left;
  background-color: #dddddd;
}

td.parsetable2 {
  text-align: center;
  background-color: #dddddd;
}

td.parsetable3 {
  text-align: right;
  background-color: #dddddd;
}

div.roadmap {
  margin-left: 3em;
}
