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

/* 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;
}

@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;
    }
}
