/* A sample style sheet for displaying the Subversion directory listing
   that is generated by mod_dav_svn and "svnindex.xsl". */

body{
  margin: 0;
  padding: 0;
}

a {
  color: navy;
}

.header {
  padding-top: 5px;
  text-align: center;
}

.footer {
  margin-top: 8em;
  padding: 0.5em 1em 0.5em;
  border: 1px solid;
  border-width: 1px 0;
  clear: both;
  border-color: rgb(30%,30%,50%) navy rgb(75%,80%,85%) navy;
  background: rgb(88%,90%,92%);
  font-size: 80%;
}

.svn {
  margin: 3em;
}

.rev {
  margin-right: 3px;
  padding-left: 3px;
  text-align: left;
  font-size: 120%;
}

.dir a {
  text-decoration: none;
  color: black;
}

.file a {
  text-decoration: none;
  color: black;
}

.path {
  margin: 3px;
  padding: 3px;
  background: #FFCC66;
  font-size: 120%;
}

.updir {
  margin: 3px;
  padding: 3px;
  margin-left: 3em;
  background: #FFEEAA;
}

.file {
  margin: 3px;
  padding: 3px;
  margin-left: 3em;
  background: rgb(95%,95%,95%);
}

.file:hover {
  margin: 3px;
  padding: 3px;
  margin-left: 3em;
  background: rgb(100%,100%,90%);
/*  border: 1px black solid; */
}

.dir {
  margin: 3px;
  padding: 3px;
  margin-left: 3em;
  background: rgb(90%,90%,90%);
}

.dir:hover {
  margin: 3px;
  padding: 3px;
  margin-left: 3em;
  background: rgb(100%,100%,80%);
/*  border: 1px black solid; */
}
