/* 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 {
    max-width: none;
    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;
}

/*
 * Preserve native table layout while containing horizontal overflow, and
 * provide generated minimum widths for table columns based on their content.
 */
div.body div.table-overflow {
    display: block;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
}

/*
 * Let long identifiers, URLs, and other unbreakable cell content contribute a
 * smaller intrinsic minimum width so the viewport-capped column minimums can
 * take effect. Normal text still wraps at ordinary break opportunities; a
 * break inside a token is used only when needed to avoid overflow.
 */
div.body table.docutils th,
div.body table.docutils td {
    overflow-wrap: anywhere;
}

div.body table.docutils .table-column-width-2 {
    min-width: min(2ch, 60vw);
}

div.body table.docutils .table-column-width-3 {
    min-width: min(3ch, 60vw);
}

div.body table.docutils .table-column-width-4 {
    min-width: min(4ch, 60vw);
}

div.body table.docutils .table-column-width-5 {
    min-width: min(5ch, 60vw);
}

div.body table.docutils .table-column-width-6 {
    min-width: min(6ch, 60vw);
}

div.body table.docutils .table-column-width-7 {
    min-width: min(7ch, 60vw);
}

div.body table.docutils .table-column-width-8 {
    min-width: min(8ch, 60vw);
}

div.body table.docutils .table-column-width-9 {
    min-width: min(9ch, 60vw);
}

div.body table.docutils .table-column-width-10 {
    min-width: min(10ch, 60vw);
}

div.body table.docutils .table-column-width-11 {
    min-width: min(11ch, 60vw);
}

div.body table.docutils .table-column-width-12 {
    min-width: min(12ch, 60vw);
}

div.body table.docutils .table-column-width-13 {
    min-width: min(13ch, 60vw);
}

div.body table.docutils .table-column-width-14 {
    min-width: min(14ch, 60vw);
}

div.body table.docutils .table-column-width-15 {
    min-width: min(15ch, 60vw);
}

div.body table.docutils .table-column-width-16 {
    min-width: min(16ch, 60vw);
}

div.body table.docutils .table-column-width-17 {
    min-width: min(17ch, 60vw);
}

div.body table.docutils .table-column-width-18 {
    min-width: min(18ch, 60vw);
}

div.body table.docutils .table-column-width-19 {
    min-width: min(19ch, 60vw);
}

div.body table.docutils .table-column-width-20 {
    min-width: min(20ch, 60vw);
}

div.body table.docutils .table-column-width-21 {
    min-width: min(21ch, 60vw);
}

div.body table.docutils .table-column-width-22 {
    min-width: min(22ch, 60vw);
}

div.body table.docutils .table-column-width-23 {
    min-width: min(23ch, 60vw);
}

div.body table.docutils .table-column-width-24 {
    min-width: min(24ch, 60vw);
}

div.body table.docutils .table-column-width-25 {
    min-width: min(25ch, 60vw);
}

div.body table.docutils .table-column-width-26 {
    min-width: min(26ch, 60vw);
}

div.body table.docutils .table-column-width-27 {
    min-width: min(27ch, 60vw);
}

div.body table.docutils .table-column-width-28 {
    min-width: min(28ch, 60vw);
}

div.body table.docutils .table-column-width-29 {
    min-width: min(29ch, 60vw);
}

div.body table.docutils .table-column-width-30 {
    min-width: min(30ch, 60vw);
}

div.body table.docutils .table-column-width-31 {
    min-width: min(31ch, 60vw);
}

div.body table.docutils .table-column-width-32 {
    min-width: min(32ch, 60vw);
}

div.body table.docutils .table-column-width-33 {
    min-width: min(33ch, 60vw);
}

div.body table.docutils .table-column-width-34 {
    min-width: min(34ch, 60vw);
}

div.body table.docutils .table-column-width-35 {
    min-width: min(35ch, 60vw);
}

div.body table.docutils .table-column-width-36 {
    min-width: min(36ch, 60vw);
}

div.body table.docutils .table-column-width-37 {
    min-width: min(37ch, 60vw);
}

div.body table.docutils .table-column-width-38 {
    min-width: min(38ch, 60vw);
}

div.body table.docutils .table-column-width-39 {
    min-width: min(39ch, 60vw);
}

div.body table.docutils .table-column-width-40 {
    min-width: min(40ch, 60vw);
}

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

/* The default is to use -1em, which 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;
}
