/* SPDX-License-Identifier: GPL-2.0 */
/*
 * CSS tweaks for the Alabaster theme
 */

/* Shrink the headers a bit */
div.body h1 { font-size: 180%; }
div.body h2 { font-size: 150%; }
div.body h3 { font-size: 130%; }
div.body h4 { font-size: 110%; }

/* toctree captions are styled like h2 */
div.toctree-wrapper p.caption[role=heading] { font-size: 150%; }

/* Tighten up the layout slightly */
div.body { padding: 0 15px 0 10px; }
div.sphinxsidebarwrapper { padding: 1em 0.4em; }
div.sphinxsidebar { font-size: inherit;
		    max-height: 100%;
		    overflow-y: auto; }
/* Tweak document margins and don't force width */
div.document {
    margin: 20px 10px 0 10px;
    width: auto;
}

/* Size the logo appropriately */
img.logo {
    width: 104px;
    margin-bottom: 20px;
}

/* The default is to use -1em, wich makes it override text */
li { text-indent: 0em; }

/*
 * Parameters for the display of function prototypes and such included
 * from C source files.
 */
dl.function, dl.struct, dl.enum { margin-top: 2em; background-color: #ecf0f3; }
/* indent lines 2+ of multi-line function prototypes */
dl.function dt { margin-left: 10em; text-indent: -10em; }
/*
 * Preserve C API signatures on one line and apply contained horizontal
 * scrolling to prevent them from exceeding their container width and
 * breaking page layout.
 */
dl.c { overflow-x: auto; overflow-y: hidden; }
dl.c > dt.sig.sig-object { white-space: nowrap; }
dt.sig-object { font-size: larger; }
div.kernelindent { margin-left: 2em; margin-right: 4em; }

/*
 * Parameters for the display of function prototypes and such included
 * from Python source files.
 */
dl.py { margin-top: 2em; background-color: #ecf0f3; }
dl.py.class { margin-left: 2em; text-indent: -2em; padding-left: 2em; }
dl.py.method, dl.py.attribute { margin-left: 2em; text-indent: -2em; }
dl.py li, pre { text-indent: 0em; padding-left: 0 !important; }

/*
 * Tweaks for our local TOC
 */
div.kerneltoc li.toctree-l1 { font-size: smaller;
		text-indent: -1em;
		margin-left: 1em; }
div.kerneltoc li.current > a {font-weight: bold; }
div.kerneltoc li.toctree-l2,li.toctree-l3 { font-size: small;
		text-indent: -1em;
		margin-left: 1em;
		list-style-type: none;
	      }
div.kerneltoc li.current ul { margin-left: 0; }
div.kerneltoc { background-color: #eeeeee; }
div.kerneltoc li.current ul { background-color: white; }

/*
 * The CSS magic to toggle the contents on small screens.
 */
label.kernel-toc-title { display: none; }
label.kernel-toc-title:after {
    content: "[Hide]";
}
input[type=checkbox]:checked ~ label.kernel-toc-title:after {
    content: "[Show]";
}
/* Hide the toggle on large screens */
input.kernel-toc-toggle { display: none; }

/*
 * Show and implement the toggle on small screens.
 * The 875px width seems to be wired into alabaster.
 */
@media screen and (max-width: 875px) {
    label.kernel-toc-title { display: inline;
			     font-weight: bold;
			     font-size: larger; }
    input[type=checkbox]:checked ~ div.kerneltoc {
	display: none;
    }
    h3.kernel-toc-contents { display: inline; }
    div.kerneltoc a { color: black; }
}

/* Language selection menu */

div.admonition {
    /*
     * Make sure we don't overlap notes and warnings at the top of the
     * document.
     */
    clear: both;
}

div.language-selection {
    background: #eeeeee;
    border: 1px solid #cccccc;
    margin-bottom: 1em;
    padding: .5em;

    position: relative;
    float: right;
}

div.language-selection a {
    display: block;
    padding: 0.5em;
    color: #333333;
    text-decoration: none;
}

div.language-selection ul {
    display: none;
    position: absolute;

    /* Align with the parent div */
    top: 100%;
    right: 0;
    margin: 0;

    list-style: none;

    background: #fafafa;
    border: 1px solid #cccccc;

    /* Never break menu item lines */
    white-space: nowrap;
}

div.language-selection:hover ul {
    display: block;
}

div.language-selection ul li:hover {
    background: #dddddd;
}

/*
 * Let long inline literals in paragraph text wrap as needed to prevent
 * overflow.
 */
code.docutils.literal span.pre {
    white-space: normal;
    overflow-wrap: anywhere;
}

/* Let rendered reference links in tables wrap when needed. */
div.body table.docutils a.reference {
    overflow-wrap: anywhere;
}

/* Let long link text wrap instead of forcing overflow. */
a {
    overflow-wrap: anywhere;
}

/* Make xrefs more universally visible */
a.reference, a.reference:hover {
    border-bottom: none;
    text-decoration: underline;
    text-underline-offset: 0.3em;
}

/* Slightly different style for sidebar links */
div.sphinxsidebar a { border-bottom: none; }
div.sphinxsidebar a:hover {
    border-bottom: none;
    text-decoration: underline;
    text-underline-offset: 0.3em;
}

a.manpage {
	font-style: normal;
	font-weight: bold;
	font-family: "Courier New", Courier, monospace;
}
