/* Generic elements */
html,
body {
  margin: 0;
  padding: 0;
  font-size: 16px;
  height: 100%;
  font-family: sans-serif;
  line-height: 24px;
  word-wrap: break-word;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  /* Prevent font scaling in landscape */
  -webkit-text-size-adjust: none;
  -webkit-font-smoothing: antialiased;
}
[data-theme="dark"] body {
  background-color: #2b2d2f;
}
* {
  outline: none;
}
a {
  color: #375eab;
  text-decoration: none;
}
[data-theme="dark"] a {
  color: #53b4db;
}
[data-theme="dark"] a:hover {
  text-decoration: underline;
}
[data-theme="dark"] p {
  color: #f0f1f2;
}
.gopherlogo {
  height: 2rem;
  margin-right: 2.25rem;
  width: 5.125rem;
}
a.logo,
.toc a {
  color: inherit;
}
h1,
h2,
h3,
h4 {
  color: #333;
  line-height: 32px;
  margin: 0;
}
[data-theme="dark"] h1,
[data-theme="dark"] h2,
[data-theme="dark"] h3,
[data-theme="dark"] h4 {
  color: #f0f1f2;
}
pre,
code {
  font-family: "Inconsolata", monospace;
  border-radius: 4px;
  color: #333;
  background-color: #fafafa;
}
[data-theme="dark"] code,
[data-theme="dark"] .info {
  background-color: #2b2d2f !important;
  color: #bababa;
}
pre {
  padding: 10px;
}
code {
  padding: 2px;
}
.left {
  display: block;
  float: left;
  margin-right: 10px;
}
.right {
  display: flex;
  float: right;
  margin-left: 10px;
}
.right * {
  vertical-align: middle;
}
.bar {
  display: block;
  overflow: hidden;
  -moz-user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.wrapper {
  position: fixed;
  overflow: auto;
  top: 48px;
  bottom: 0;
  left: 0;
  right: 0;
}
[data-theme="dark"] .wrapper {
  background: #171717;
}
.container {
  max-width: 800px;
  width: 90%;
  margin: 0 auto 36px auto;
  padding: 16px 5%;
  background: #ffffff;
}
[data-theme="dark"] .container {
  background: #171717;
}
.container a {
  color: #375eab;
}
[data-theme="dark"] .container a {
  color: #53b4db;
}
[data-theme="dark"] .container p {
  color: #f0f1f2;
}
.relative-content {
  display: block;
  position: relative;
  height: 100%;
}
.highlight {
  background: #b5533b !important;
  color: yellow !important;
}
.hidden {
  display: none;
}
p {
  margin: 16px 0;
}
li {
  margin: 8px 0;
}
[data-theme="dark"] li {
  color: #f0f1f2;
}
ul {
  list-style: none;
  margin: 0;
  padding-left: 32px;
}
/* Navigation bars */
.top-bar {
  position: fixed;
  left: 0;
  right: 0;
  top: 0;
  z-index: 1000;
  font-size: 1.4em;
  padding: 8px 24px;
  text-align: center;
  color: #fff;
  background: #007d9c;
  height: 2rem;
}
.top-bar a {
  vertical-align: middle;
  font-weight: bold;
}
.nav {
  float: right;
  padding: 2px;
  height: 25px;
  width: 25px;
  margin-left: 10px;
  cursor: pointer;
  fill: #fff;
}
/* Module list */
.page-header {
  font-size: 1.2em;
  line-height: 32px;
  margin: 32px 0;
}
@media (max-width: 515px) {
  .page-header {
    font-size: 0.75em;
  }
}
.module {
  margin: 32px 0;
}
.module-title {
  font-size: 1.3em;
  font-weight: bold;
  color: #333;
  margin: 0;
}
.lesson {
  background: #e0ebf5;
  padding: 8px 16px;
  margin: 16px 0;
  position: relative;
}
[data-theme="dark"] .lesson {
  background: #202224;
}
.lesson-title {
  display: inline-block;
  font-size: 1.2em;
  font-weight: bold;
  margin: 16px 0 0 0;
  padding-right: 48px;
}
/* Lesson viewer */
.slide-content {
  padding: 16px;
  background: #fff;
}
[data-theme="dark"] .slide-content {
  background: #202224;
}
.module-bar {
  font-size: 1.5em;
  padding: 8px 0;
  text-align: center;
  line-height: 24px;
  font-size: 24px;
}
[data-theme="dark"] .module-bar {
  background: #202224;
  color: #f0f1f2;
}
.module-bar a {
  color: #375eab;
  position: relative;
  font-weight: bold;
  margin: 5px;
}
[data-theme="dark"] .module-bar a {
  color: #53b4db;
}
.menu-button {
  display: inline-block;
  text-decoration: none;
  cursor: pointer;
  font-size: 0.9em;
  border-radius: 2px;
  background-color: #e0ebf5;
  border: 1px solid rgba(0, 0, 0, 0.1);
  margin: 2px;
  height: 24px;
  padding: 1px 8px;
  line-height: 24px;
  color: #444;
  -moz-user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.menu-button:hover:not(.active) {
  border: 1px solid #c6c6c6;
  background-color: #fafafa;
}
[data-theme="dark"] .menu-button:hover {
  background-color: #d9d9d9;
  color: #53b4db;
  text-decoration: none;
}
[data-theme="dark"] .menu-button:active {
  background-color: #202224;
}
.menu-button.active {
  background: #fff;
}
[data-theme="dark"] .menu-button {
  background: #3d3d3e;
  color: #bababa;
}
.menu-button[imports-checkbox]:after {
  content: " off";
}
.menu-button[imports-checkbox].active:after {
  content: " on";
}
.menu-button[syntax-checkbox]:after {
  content: " off";
}
.menu-button[syntax-checkbox].active:after {
  content: " on";
}
#file-menu .menu-button {
  float: right;
}
[data-theme="dark"] #file-menu .menu-button {
  border: 1px solid #202224;
  color: #53b4db;
}
a#run,
a#kill {
  background-color: #375eab;
  color: #fff;
  width: 70px;
  text-align: center;
}
[data-theme="dark"] a#run,
[data-theme="dark"] a#kill {
  background-color: #007f9f;
}
[data-theme="dark"] a#run:hover,
[data-theme="dark"] a#kill:hover {
  background: #1a5d8359;
  border: 1px solid #53b4db;
  color: #53b4db;
}
[data-theme="dark"] a#run:active,
[data-theme="dark"] a#kill:active {
  background: #1a5d8326;
  border: 1px solid #007f9f;
  color: #007f9f;
}
#run:hover:not(:active),
#kill:hover:not(:active) {
  background-color: #fff;
  color: #375eab;
}
.output:not(.active) {
  display: none;
}
.output > pre {
  font-family: "Inconsolata", monospace;
  background: #fafafa;
  margin: 0;
}
.output .system {
  color: #888;
}
[data-theme="dark"] .output .system {
  color: #f0f1f2;
}
.output .stderr {
  color: #d00a0a;
}
.output-menu .menu-button {
  float: left;
}
.output-menu,
#file-menu {
  background: #fafafa;
}
#explorer {
  height: 32px;
  padding-left: 30px;
  background: #fafafa;
}
[data-theme="dark"] #explorer {
  background: #171717;
}
#explorer .imports-checkbox {
  float: right;
}
#explorer .menu-button.active {
  cursor: default;
}
#explorer .syntax-checkbox {
  float: right;
}
/* CodeMirror */
#file-editor {
  background: #ffffd8;
  overflow: auto;
}
#file-editor > textarea {
  display: none;
}
#file-editor .CodeMirror {
  height: 100%;
  background: #ffffd8;
}
#file-editor .CodeMirror-lines,
#file-editor .CodeMirror-gutters {
  background: #ffffd8;
  font-family: "Inconsolata", monospace;
  line-height: 1.2em;
}
[data-theme="dark"] #file-editor,
[data-theme="dark"] #file-editor .CodeMirror,
[data-theme="dark"] #file-editor .CodeMirror-lines,
[data-theme="dark"] #file-editor .CodeMirror-gutters {
  background: #253443;
  color: #bababa;
}
.CodeMirror-code > .line-error {
  background: #ff8080;
}
.CodeMirror-code > .line-error .CodeMirror-linenumber {
  color: #ff5555;
  font-weight: bolder;
}
#file-editor .CodeMirror-gutters {
  width: 32px;
}
[data-theme="dark"] .cm-s-default .cm-keyword {
  color: #b984ff;
}
[data-theme="dark"] .cm-s-default .cm-number {
  color: #63ec8c;
}
[data-theme="dark"] .cm-s-default .cm-string {
  color: #f585c0;
}
[data-theme="dark"] .cm-s-default .cm-atom {
  color: #7bf;
}
[data-theme="dark"] .cm-s-default .cm-comment {
  color: #fb6;
}

[data-theme="dark"] .CodeMirror-cursor {
  border-color: #bababa;
}
[data-theme="dark"] .CodeMirror-selected {
  background: #55483a;
}
[data-theme="dark"] .CodeMirror-focused .CodeMirror-selected {
  background: #433425;
}
[data-theme="dark"] .CodeMirror-line::selection,
.CodeMirror-line > span::selection,
.CodeMirror-line > span > span::selection {
  background: #433425;
}
[data-theme="dark"] .CodeMirror-line::-moz-selection,
.CodeMirror-line > span::-moz-selection,
.CodeMirror-line > span > span::-moz-selection {
  background: #433425;
}

@media (min-width: 601px) {
  #editor-container {
    position: fixed;
    top: 48px;
    left: 0px;
    right: 0px;
    bottom: 0px;
    overflow: hidden;
    background: #fff;
  }
  #left-side {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 50%;
    overflow: hidden;
  }
  .output {
    background-image: url(/tour/static/img/gopher.png);
    background-repeat: no-repeat;
    background-position: bottom;
    background-color: #fff;
  }
  [data-theme="dark"] .output {
    background-color: #202224;
  }
  div[vertical-slide] {
    position: absolute;
    top: 0px;
    bottom: 0px;
    width: 5px;
    background: #e0ebf5;
    left: 50%;
    right: 50%;
    z-index: 100;
    cursor: move;
  }
  [data-theme="dark"] div[vertical-slide] {
    background: #171717;
  }
  #right-side {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    left: 50%;
    background: #fff;
  }
  [data-theme="dark"] #right-side {
    background: #202224;
  }
  .slide-content {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 30px;
    overflow: auto;
  }
  .module-bar {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 4px 0;
    margin: 0;
  }
  #top-part {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 33%;
    background: #e0ebf5;
  }
  #file-editor {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
  }
  div[horizontal-slide] {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 33%;
    height: 5px;
    background: #e0ebf5;
    z-index: 100;
    cursor: move;
  }
  [data-theme="dark"] div[horizontal-slide] {
    background: #171717;
  }
  #bottom-part {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    top: 67%;
    min-height: 100px;
    z-index: 50;
  }
  #explorer {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
  }
  #explorer + div {
    top: 32px;
  }
  #file-menu {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    background: #fafafa;
  }
  [data-theme="dark"] #file-menu {
    background: #171717;
  }
  .output {
    position: absolute;
    top: 32px;
    bottom: 0;
    left: 0;
    right: 0;
    margin: 0;
    padding: 0;
    overflow: auto;
  }
}
@media (max-width: 600px) {
  #top-part {
    border: 1px solid #ccc;
  }
  #left-side {
    background: #e0ebf5;
  }
  #right-side {
    padding-top: 48px;
  }
  #file-menu {
    height: 32px;
  }
  .output {
    background: white;
    max-height: 300px;
    overflow: auto;
  }
  #editor-container {
    padding-bottom: 40px;
  }
  .module-bar {
    position: fixed;
    background: #e0ebf5;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 10;
    height: 42px;
    padding: 0;
    overflow: hidden;
    text-align: center;
  }
  .module-bar * {
    display: inline-block;
    width: 25%;
    font-size: 1.1em;
    padding: 8px 0;
  }
  div[horizontal-slide],
  div[vertical-slide] {
    display: none;
  }
}
/* Table of contents */
.toc {
  display: none;
  position: fixed;
  z-index: 200;
  font-size: 1.3em;
  top: 48px;
  bottom: 0;
  right: 0;
  width: 500px;
  background: #e0ebf5;
  color: black;
  overflow-y: auto;
  padding: 0;
  margin: 0;
  border-left: 4px solid #e0ebf5;
  border-bottom: 4px solid #e0ebf5;
  -moz-user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
[data-theme="dark"] .toc {
  background: #171717;
  border-left: 4px solid #171717;
  border-bottom: 4px solid #171717;
}
.click-catcher {
  position: fixed;
  z-index: -100;
  top: 0;
  bottom: 0;
  left: 0;
  right: 10px; /* avoid covering the TOC scroller */
  background: rgba(0, 0, 0, 0);
}
.toc * {
  margin: 0;
  padding: 0;
  font-size: 0.95em;
  display: block;
}
.toc span,
.toc a {
  padding: 4px;
}
.toc-module {
  color: #375eab;
  background: #e0ebf5;
}
[data-theme="dark"] .toc-module {
  color: #53b4db;
  background: #171717;
}
[data-theme="dark"] .toc-module li {
  color: #f0f1f2;
  background: #2b2d2f;
}
.toc-lesson {
  background: #fafafa;
  color: #333;
  margin: 1px 0;
  cursor: pointer;
}
.toc-page {
  background: #fff;
  color: #333;
  padding-left: 4px;
  display: list-item;
}
.toc-lesson.active .toc-page {
  display: list-item;
}
.toc-page.active {
  color: #375eab;
  font-weight: bold;
}
@media (max-width: 600px) {
  .toc {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    border: none;
  }
  .toc ul {
    width: 100%;
  }
  .click-catcher {
    display: none;
  }
}

.header-toggleTheme [data-value] {
  display: none;
}

[data-theme="auto"] .header-toggleTheme [data-value="auto"] {
  display: block;
}

[data-theme="dark"] .header-toggleTheme [data-value="dark"] {
  display: block;
}

[data-theme="light"] .header-toggleTheme [data-value="light"] {
  display: block;
}

.header-toggleTheme {
  background-color: transparent;
  border: none;
  cursor: pointer;
  font-size: 16px;
}

.go-Icon {
  height: 1.125em;
  vertical-align: text-bottom;
  width: auto;
}
.go-Icon--inverted {
  filter: brightness(0) saturate(100%) invert(100%) sepia(97%) saturate(13%)
    hue-rotate(245deg) brightness(103%) contrast(107%);
}
