:root {
  --background-color: #ffffff;
  --text-color: #000000;
  --border-color: #363636;
  --header-color: #000000;
  --date-color: #aaaaaa;
  --card-bg: #ffffff;
  --table-bg: #ffffff;
  --table-color: #000000;
  --table-hover-bg: #bfbfbf;
  --passed-bg: #eeeeee;
  --link-color: #3366bb;
  --box-bg: #f5f8fc;
  --toc-bg: #f9f9f9;
  --toc-border: #eeeeee;
  --button-bg: #ffffff;
}

[data-theme="dark"] {
  --background-color: #121212;
  --text-color: #e0e0e0;
  --border-color: #4a4a4a;
  --header-color: #ffffff;
  --date-color: #cccccc;
  --card-bg: #2d2d2d;
  --table-bg: #2d2d2d;
  --table-color: #e0e0e0;
  --table-hover-bg: #3d3d3d;
  --passed-bg: #3d3d3d;
  --link-color: #60a5fa;
  --box-bg: #2d2d2d;
  --toc-bg: #2d2d2d;
  --toc-border: #4a4a4a;
  --button-bg: #3d3d3d;
}

body {
  background-color: var(--background-color);
  color: var(--text-color);
}

.footer {
  border-top: 1px solid var(--border-color);
}

header {
  border-bottom: 1px solid var(--border-color);
}

footer.footer div.content p {
  margin: 0em;
}

h1.hero-title {
  color: var(--header-color) !important;
}

.date-item {
  color: var(--date-color);
}

.weekly-schedule {
  background-color: var(--table-bg);
  color: var(--table-color);
}

.weekly-schedule a {
  color: var(--link-color);
}

.weekly-schedule thead {
  background-color: var(--table-bg);
  color: var(--table-color);
}

.weekly-schedule tr:hover {
  background-color: var(--table-hover-bg);
  color: var(--table-color);
}

.weekly-schedule .is-passed {
  background-color: var(--passed-bg);
  color: var(--table-color);
}

.card {
  background-color: var(--card-bg);
  color: var(--text-color);
}

.card-header-title {
  color: var(--text-color);
}

.list-of-topics-box {
  background-color: var(--box-bg);
}

#toc_container {
  background: var(--toc-bg);
  border: 1px solid var(--toc-border);
  color: var(--text-color);
}

.button.is-light {
  background-color: var(--button-bg);
  color: var(--text-color);
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --background-color: #121212;
    --text-color: #e0e0e0;
    --border-color: #4a4a4a;
    --header-color: #ffffff;
    --date-color: #cccccc;
    --card-bg: #2d2d2d;
    --table-bg: #2d2d2d;
    --table-color: #e0e0e0;
    --table-hover-bg: #3d3d3d;
    --passed-bg: #3d3d3d;
    --link-color: #60a5fa;
    --box-bg: #2d2d2d;
    --toc-bg: #2d2d2d;
    --toc-border: #4a4a4a;
    --button-bg: #3d3d3d;
  }
}

@media only screen and (max-width: 480px) {
    .navbar .navbar-section {
        display: block;
    }
}

.theme-switch-wrapper {
    display: flex;
    align-items: center;
    margin-left: 10px;
}

.theme-switch {
    display: inline-block;
    height: 24px;
    position: relative;
    width: 48px;
}

.theme-switch input {
    display: none;
}

.slider {
    background-color: #ccc;
    bottom: 0;
    cursor: pointer;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    transition: .4s;
    border-radius: 34px;
}

.slider:before {
    background-color: white;
    bottom: 4px;
    content: "";
    height: 16px;
    left: 4px;
    position: absolute;
    transition: .4s;
    width: 16px;
    border-radius: 50%;
}

input:checked + .slider {
    background-color: #4a4a4a;
}

input:checked + .slider:before {
    transform: translateX(24px);
}
