/* Define default light theme colors */
:root {
  --bg-color: #f8f8f8;
  --text-color: #404040;
  --header-bg-color: #343A40;
  --header-text-color: #b3b3b3;
  --code-bg-color: #f8f8f8;
  --link-color: #005cc5;
  --link-hover-color: #003d99;
  --side-bar-bg-color: #343131:
}

/* Auto-toggle dark mode based on system preference */
@media (prefers-color-scheme: dark) {
  :root {
    --bg-color: #1a1a1a;
    --text-color: #d1d1d1;
    --header-bg-color: #262626;
    --header-text-color: #d1d1d1;
    --code-bg-color: #333333;
    --link-color: #4da6ff;
    --link-hover-color: #1a8cff;
    --side-bar-bg-color: #343131;
  }

	.method dt, .class dt, .data dt, .attribute dt, .function dt,
	.descclassname, .descname {
		background-color: #525252 !important;
		color: white !important;
	}

	.toc-backref {
		color: grey !important;
	}

	code.literal {
		background-color: #2d2d2d !important;
		border: 1px solid #6d6d6d !important;
	}

	.wy-nav-content-wrap {
		background-color: rgba(0, 0, 0, 0.6) !important;
	}

	.sidebar {
		background-color: #191919 !important;
	}

	.sidebar-title {
		background-color: #2b2b2b !important;
	}

	.xref, .py-meth {
		color: #7ec3e6 !important;
	}

	.admonition, .note {
		background-color: #2d2d2d !important;
	}

	.wy-side-nav-search {
		background-color: inherit;
	}

  .wy-table thead, .rst-content table.docutils thead, .rst-content table.field-list thead {
		background-color: var(--header-bg-color);
	}

	.wy-table thead th, .rst-content table.docutils thead th, .rst-content table.field-list thead th {
		border: solid 2px var(--text-color);
    color: var(--text-color);
	}

	.wy-table thead p, .rst-content table.docutils thead p, .rst-content table.field-list thead p {
		margin: 0;
	}

	.wy-table-odd td, .wy-table-striped tr:nth-child(2n-1) td, .rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td {
		background-color: #343131;
	}

	.highlight .m {
		color: inherit
	}

	/* Literal.Number */
	.highlight .nv {
		color: #3a7ca8
	}

	.wy-menu-vertical li code {
		color: #E74C3C;
	}

	.wy-menu-vertical .xref {
		color: #2980B9 !important;
	}
}

/* Main colors adapted from pytorch doc */
.wy-side-nav-search, .wy-nav-top {
  background-color: var(--header-bg-color);
}

.wy-body-for-nav, .wy-nav-content, .wy-nav-content-wrap  {
  background-color: var(--bg-color);
  background: var(--bg-color);
}

.caption[role="heading"] {
  background-color: var(--side-bar-bg-color);
}

a.icon.icon-home {
  color: var(--header-text-color);
}

/* Apply the colors */
body, h1, h2, .rst-content .toctree-wrapper p.caption, h3, h4, h5, h6, legend, p.caption, .field-list .xref.py.docutils, .field-list code.docutils, .field-list .docutils.literal.notranslate {
  background-color: var(--bg-color);
  color: var(--text-color);
  font-family: "Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;
}

/* Code blocks */
.codeblock, pre.literal-block, .rst-content .literal-block, .rst-content pre.literal-block, div[class^='highlight'] {
  background-color: var(--code-bg-color);
}

/* Justify and Center */
.justify {
  text-align: justify;
}

.center {
  text-align: center;
}

/* Docstring styles */
.field-list .xref.py.docutils, .field-list code.docutils, .field-list .docutils.literal.notranslate {
  border: None;
  padding-left: 0;
  padding-right: 0;
}