/* global */

body {
  background-color: #FDFBFC;
  margin:38px;
  color:#333333;
}

a {
    font-weight:normal; 
    text-decoration:none;
}

form {
    display:inline;
}

/* hyperlinks */

a:link, a:visited, a:active {
    color:#0000FF;
}
a:hover {
    color:#700000;
    text-decoration:underline;
}

/* paragraph links after sections.
   These aren't visible until hovering
   over the <h> tag, then have a 
   "reverse video" effect over the actual
   link
 */

a.headerlink {
    font-size: 0.8em;
    padding: 0 4px 0 4px;
    text-decoration: none;
    visibility: hidden;
}

h1:hover > a.headerlink,
h2:hover > a.headerlink,
h3:hover > a.headerlink,
h4:hover > a.headerlink,
h5:hover > a.headerlink,
h6:hover > a.headerlink,
dt:hover > a.headerlink {
    visibility: visible;
}

a.headerlink:hover {
    background-color: #990000;
    color: white;
}


/* Container setup */

#docs-container {
  max-width:1000px;
}


/* header/footer elements */

#docs-header h1 {
    font-size:20px;
    color: #222222;
    margin: 0;
    padding: 0;
}

#docs-header {
  font-family:Tahoma, Geneva,sans-serif;

  font-size:.9em;

}

#docs-top-navigation,
#docs-bottom-navigation {
  font-family: Tahoma, Geneva, sans-serif;
  background-color: #EEE;
  border: solid 1px #CCC;
  padding:10px;
  font-size:.9em;
}

#docs-top-navigation {
  margin:10px 0px 10px 0px;
  line-height:1.2em;
}

.docs-navigation-links {
  font-family:Tahoma, Geneva,sans-serif;
}

#docs-bottom-navigation {
    float:right;
    margin: 1em 0 1em 5px;
}

#docs-copyright {
    font-size:.85em;
    padding:5px 0px;
}

#docs-header h1,
#docs-top-navigation h1,
#docs-top-navigation h2 {
  font-family:Tahoma,Geneva,sans-serif;
  font-weight:normal;
}

#docs-top-navigation h2 {
    margin:16px 4px 7px 5px;
    font-size:2em;
}

#docs-search {
    float:right;
}

#docs-top-page-control {
  float:right;
  width:350px;
}

#docs-top-page-control ul {
  padding:0;
  margin:0;
}

#docs-top-page-control li {
    list-style-type:none;
    padding:1px 8px;
}


#docs-container .version-num {
    font-weight: bold;
}


/* content container, sidebar */

#docs-body-container {
  background-color:#EFEFEF;
  border: solid 1px #CCC;

}

#docs-body,
#docs-sidebar
 {
  /*font-family: helvetica, arial, sans-serif;
  font-size:.9em;*/

  font-family: Tahoma, Geneva, sans-serif;
  /*font-size:.85em;*/
  line-height:1.5em;

}

#docs-sidebar > ul {
  font-size:.9em;
}

#docs-sidebar {
  float:left;
  width:212px;
  padding: 10px 0 0 15px;
  /*font-size:.85em;*/
}

#docs-sidebar h3, #docs-sidebar h4 {
    background-color: #DDDDDD;
    color: #222222;
    font-family: Tahoma, Geneva,sans-serif;
    font-size: 1.1em;
    font-weight: normal;
    margin: 10px 0 0 -15px;
    padding: 5px 10px 5px 10px;
    text-shadow: 1px 1px 0 white;
    width:210px;
}

#docs-sidebar h3 a, #docs-sidebar h4 a {
  color: #222222;
}
#docs-sidebar ul {
  margin: 10px 10px 10px 0px;
  padding: 0;
  list-style: none outside none;
}


#docs-sidebar ul ul {
    margin-bottom: 0;
    margin-top: 0;
    list-style: square outside none;
    margin-left: 20px;
}

#docs-body {
  background-color:#FFFFFF;
  padding:1px 10px 10px 10px;
}

#docs-body.withsidebar {
  margin: 0 0 0 230px;
  border-left:3px solid #DFDFDF;
}

#docs-body h1,
#docs-body h2,
#docs-body h3,
#docs-body h4 {
  font-family:Tahoma, Geneva, sans-serif;
}

#docs-body h1 {
  /* hide the <h1> for each content section. */
  display:none;
  font-size:1.8em;
}

#docs-body h2 {
  font-size:1.6em;
}

#docs-body h3 {
  font-size:1.4em;
}

/* SQL popup, code styles */

.highlight {
  background:none;
}

#docs-container pre {
  font-size:1.2em;
}

#docs-container .pre {
  font-size:1.1em;
}

#docs-container pre {
  background-color: #f0f0f0;  
  border: solid 1px #ccc;
  box-shadow: 2px 2px 3px #DFDFDF;
  padding:10px;
  margin: 5px 0px 5px 0px;
  overflow:auto;
  line-height:1.3em;
}

.popup_sql, .show_sql
{
    background-color: #FBFBEE;
    padding:5px 10px;
    margin:10px -5px;
    border:1px dashed;
}

/* the [SQL] links used to display SQL */
#docs-container .sql_link
{
  font-weight:normal;
  font-family: arial, sans-serif;
  font-size:.9em;
  text-transform: uppercase;
  color:#990000;
  border:1px solid;
  padding:1px 2px 1px 2px;
  margin:0px 10px 0px 15px;
  float:right;
  line-height:1.2em;
}

#docs-container a.sql_link, 
#docs-container .sql_link
{
    text-decoration: none;
    padding:1px 2px;
}

#docs-container a.sql_link:hover {
    text-decoration: none;
    color:#fff;
    border:1px solid #900;
    background-color: #900;
}

/* docutils-specific elements */

th.field-name {
    text-align:right;
}

div.note, div.warning, p.deprecated, div.topic  {
    background-color:#EEFFEF;
}


div.admonition, div.topic, p.deprecated {
    border:1px solid #CCCCCC;
    padding:5px 10px;
    font-size:.9em;
    box-shadow: 2px 2px 3px #DFDFDF;
}

div.warning .admonition-title {
    color:#FF0000;
}

div.admonition .admonition-title, div.topic .topic-title {
    font-weight:bold;
}

.viewcode-back, .viewcode-link {
    float:right;
}

dl.function > dt,
dl.attribute > dt,
dl.classmethod > dt,
dl.method > dt,
dl.class > dt,
dl.exception > dt
{
    background-color:#F0F0F0;
    margin:25px -10px 10px 10px;
    padding: 0px 10px;
}


dt:target, span.highlight {
    background-color:#FBE54E;
}

a.headerlink {
    font-size: 0.8em;
    padding: 0 4px 0 4px;
    text-decoration: none;
    visibility: hidden;
}

h1:hover > a.headerlink,
h2:hover > a.headerlink,
h3:hover > a.headerlink,
h4:hover > a.headerlink,
h5:hover > a.headerlink,
h6:hover > a.headerlink,
dt:hover > a.headerlink {
    visibility: visible;
}

a.headerlink:hover {
    background-color: #00f;
    color: white;
}

.clearboth {
    clear:both;
}

tt.descname {
    background-color:transparent;
    font-size:1.2em;
    font-weight:bold;
}

tt.descclassname {
    background-color:transparent;
}

tt {
    background-color:#ECF0F3;
    padding:0 1px;
}

/* syntax highlighting overrides */
.k, .kn {color:#0908CE;}
.o {color:#BF0005;}
.go {color:#804049;}


/* special "index page" sections 
   with specific formatting
*/

div#sqlalchemy-documentation {
  font-size:.95em;
}
div#sqlalchemy-documentation em {
  font-style:normal;
}
div#sqlalchemy-documentation .rubric{
  font-size:14px;
  background-color:#EEFFEF;
  padding:5px;
  border:1px solid #BFBFBF;
}
div#sqlalchemy-documentation a, div#sqlalchemy-documentation li {
  padding:5px 0px;
}

div#getting-started {
  border-bottom:1px solid;
}

div#sqlalchemy-documentation div#sqlalchemy-orm {
  float:left;
  width:48%;
}

div#sqlalchemy-documentation div#sqlalchemy-core {
  float:left;
  width:48%;
  margin:0;
  padding-left:10px;
  border-left:1px solid;
}

div#dialect-documentation {
  border-top:1px solid;
  /*clear:left;*/
}
