/* -*- coding: utf-8; mode: css -*-
 *
 * Sphinx HTML theme customization: read the doc
 *
 */

/* Improve contrast and increase size for easier reading. */

body {
	font-family: serif;
	color: black;
	font-size: 100%;
}

h1, h2, .rst-content .toctree-wrapper p.caption, h3, h4, h5, h6, legend {
	font-family: sans-serif;
}

.wy-menu-vertical li.current a {
	color: #505050;
}

.wy-menu-vertical li.on a, .wy-menu-vertical li.current > a {
	color: #303030;
}

div[class^="highlight"] pre {
	font-family: monospace;
	color: black;
	font-size: 100%;
}

.wy-menu-vertical {
	font-family: sans-serif;
}

.c {
	font-style: normal;
}

p {
	font-size: 100%;
}

/* Interim: Code-blocks with line nos - lines and line numbers don't line up.
 * see: https://github.com/rtfd/sphinx_rtd_theme/issues/419
 */

div[class^="highlight"] pre {
    line-height: normal;
}
.rst-content .highlight > pre {
    line-height: normal;
}

/* Keep fields from being strangely far apart due to inheirited table CSS. */
.rst-content table.field-list th.field-name {
    padding-top: 1px;
    padding-bottom: 1px;
}
.rst-content table.field-list td.field-body {
    padding-top: 1px;
    padding-bottom: 1px;
}

@media screen {

    /* content column
     *
     * RTD theme's default is 800px as max width for the content, but we have
     * tables with tons of columns, which need the full width of the view-port.
     */

    .wy-nav-content{max-width: none; }

    /* table:
     *
     *   - Sequences of whitespace should collapse into a single whitespace.
     *   - make the overflow auto (scrollbar if needed)
     *   - align caption "left" ("center" is unsuitable on vast tables)
     */

    .wy-table-responsive table td { white-space: normal; }
    .wy-table-responsive { overflow: auto; }
    .rst-content table.docutils caption { text-align: left; font-size: 100%; }

    /* captions:
     *
     *   - captions should have 100% (not 85%) font size
     *   - hide the permalink symbol as long as link is not hovered
     */

    .toc-title {
        font-size: 150%;
	font-weight: bold;
    }

    caption, .wy-table caption, .rst-content table.field-list caption {
        font-size: 100%;
    }
    caption a.headerlink { opacity: 0; }
    caption a.headerlink:hover { opacity: 1; }

    /* Menu selection and keystrokes */

    span.menuselection {
	color: blue;
	font-family: "Courier New", Courier, monospace
    }

    code.kbd, code.kbd span {
	color: white;
	background-color: darkblue;
	font-weight: bold;
	font-family: "Courier New", Courier, monospace
    }

    /* fix bottom margin of lists items */

    .rst-content .section ul li:last-child, .rst-content .section ul li p:last-child {
          margin-bottom: 12px;
    }

    /* inline literal: drop the borderbox, padding and red color */

    code, .rst-content tt, .rst-content code {
        color: inherit;
        border: none;
        padding: unset;
        background: inherit;
        font-size: 85%;
    }

    .rst-content tt.literal,.rst-content tt.literal,.rst-content code.literal {
        color: inherit;
    }
}
