/* Arc-Dark Wiki Style */
:root {
  --bg-color: #2f343f;
  --text-color: #d3dae3;
  --heading-color: #5294e2;
  --link-color: #5294e2;
  --link-hover: #8ab4f8;
  --border-color: #404552;
  --code-bg: #383c4a;
  --blockquote-bg: #353945;
  --highlight-color: #5294e2;
  --table-header-bg: #404552;
  --table-odd-row: #323642;
  --table-even-row: #2f343f;
}

body {
  font-family: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
  background-color: var(--bg-color);
  color: var(--text-color);
  margin: 2em auto;
  max-width: 50em;
  padding: 0 1.5em;
  font-size: 16px;
  line-height: 1.6;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: 600;
  line-height: 1.2;
  margin-top: 1.5em;
  margin-bottom: 0.5em;
  color: var(--heading-color);
}

h1 { font-size: 2em; }
h2 { font-size: 1.8em; }
h3 { font-size: 1.6em; }
h4 { font-size: 1.4em; }
h5 { font-size: 1.2em; }
h6 { font-size: 1em; }

p, pre, blockquote, table, ul, ol, dl {
  margin-top: 1em;
  margin-bottom: 1em;
}

ul ul, ul ol, ol ol, ol ul {
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}

li { margin: 0.3em auto; }

ul {
  margin-left: 2em;
  padding-left: 0;
}

dt { font-weight: bold; }

img {
  border: none;
  max-width: 100%;
}

pre {
  border-left: 3px solid var(--highlight-color);
  background-color: var(--code-bg);
  padding: 1em;
  font-family: "Monaco", "Courier New", monospace;
  font-size: 0.9em;
  border-radius: 3px;
  overflow-x: auto;
}

a {
  color: var(--link-color);
  text-decoration: none;
  transition: color 0.2s ease;
}

a:hover {
  color: var(--link-hover);
  text-decoration: underline;
}

p > a.wikilink {
  display: inline-block;
  padding: 0.2em 0.5em;
  border-radius: 3px;
  background-color: rgba(82, 148, 226, 0.15);
  font-weight: 500;
  transition: all 0.2s ease;
}

p > a.wikilink:hover {
  background-color: rgba(82, 148, 226, 0.3);
  text-decoration: none;
}

blockquote {
  color: #aeb8c5;
  padding: 0.8em 1em;
  border-left: 3px solid var(--border-color);
  background-color: var(--blockquote-bg);
  border-radius: 3px;
}

table {
  border-collapse: collapse;
  width: 100%;
  margin: 1em 0;
}

th, td {
  border: 1px solid var(--border-color);
  padding: 0.5em;
}

th {
  background-color: var(--table-header-bg);
  font-weight: 600;
}

tr:nth-child(odd) {
  background-color: var(--table-odd-row);
}

tr:nth-child(even) {
  background-color: var(--table-even-row);
}

hr {
  border: none;
  border-top: 1px solid var(--border-color);
  margin: 2em 0;
}

del {
  text-decoration: line-through;
  color: #768192;
}

.toc {
  background-color: var(--blockquote-bg);
  padding: 1em;
  border-radius: 3px;
  border-left: 3px solid var(--highlight-color);
  margin: 1.5em 0;
}

.toc-header {
  font-weight: 600;
  color: var(--heading-color);
  margin-bottom: 0.5em;
}

.toc li {
  list-style-type: none;
}

.todo {
  font-weight: bold;
  background-color: #e25252;
  color: white;
  padding: 3px 6px;
  border-radius: 3px;
  font-size: 0.8em;
}

.justleft { text-align: left; }
.justright { text-align: right; }
.justcenter { text-align: center; }

.center {
  margin-left: auto;
  margin-right: auto;
}

.tag {
  background-color: var(--code-bg);
  font-family: monospace;
  padding: 2px 4px;
  border-radius: 3px;
  font-size: 0.9em;
}

.header a {
  text-decoration: none;
  color: inherit;
}

/* Task list items */
.rejected {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAMAAAAMCGV4AAAACXBIWXMAAADFAAAAxQEdzbqoAAAAB3RJTUUH4QgEFhAtuWgv9wAAAPZQTFRFmpqam5iYnJaWnJeXnpSUn5OTopCQpoqKpouLp4iIqIiIrYCAt3V1vW1tv2xsmZmZmpeXnpKS/x4e/x8f/yAg/yIi/yQk/yUl/yYm/ygo/ykp/yws/zAw/zIy/zMz/zQ0/zU1/zY2/zw8/0BA/0ZG/0pK/1FR/1JS/1NT/1RU/1VV/1ZW/1dX/1pa/15e/19f/2Zm/2lp/21t/25u/3R0/3p6/4CA/4GB/4SE/4iI/46O/4+P/52d/6am/6ur/66u/7Oz/7S0/7e3/87O/9fX/9zc/93d/+Dg/+vr/+3t/+/v//Dw//Ly//X1//f3//n5//z8////gzaKowAAAA90Uk5T/Pz8/Pz8/Pz8/Pz8/f39ppQKWQAAAAFiS0dEEnu8bAAAAACuSURBVAhbPY9ZF4FQFEZPSKbIMmWep4gMGTKLkIv6/3/GPbfF97b3w17rA0kQOPgvAeHW6uJ6+5h7HqLdwowgOzejXRXBdx6UdSru216xuOMBHHNU0clTzeSUA6EhF8V8kqroluMiU6HKcuf4phGPr1o2q9kYZWwNq1qfRRmTaXpqsyjj17KkWCxKBUBgXWueHIyiAIg18gsse4KHkLF5IKIY10WQgv7fOy4ST34BRiopZ8WLNrgAAAAASUVORK5CYII=);
  background-repeat: no-repeat;
  background-position: 0 .2em;
  padding-left: 1.5em;
}

.done0 {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAxQAAAMUBHc26qAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAA7SURBVCiR7dMxEgAgCANBI3yVRzF5KxNbW6wsuH7LQ2YKQK1mkswBVERYF5Os3UV3gwd/jF2SkXy66gAZkxS6BniubAAAAABJRU5ErkJggg==);
  background-repeat: no-repeat;
  background-position: 0 .2em;
  padding-left: 1.5em;
}

.done1 {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAxQAAAMUBHc26qAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABtSURBVCiR1ZO7DYAwDER9BDmTeZQMFXmUbGYpOjrEryA0wOvO8itOslFrJYAug5BMM4BeSkmjsrv3aVTa8p48Xw1JSkSsWVUFwD05IqS1tmYzk5zzae9jnVVVzGyXb8sALjse+euRkEzu/uirFomVIdDGOLjuAAAAAElFTkSuQmCC);
  background-repeat: no-repeat;
  background-position: 0 .15em;
  padding-left: 1.5em;
}

.done2 {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAxQAAAMUBHc26qAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAB1SURBVCiRzdO5DcAgDAVQGxjAYgTvxlDIu1FTIRYAp8qlFISkSH7l5kk+ZIwxKiI2mIyqWoeILYRgZ7GINDOLjnmF3VqklKCUMgTee2DmM661Qs55iI3Zm/1u5h9sm4ig9z4ERHTFzLyd4G4+nFlVrYg8+qoF/c0kdpeMsmcAAAAASUVORK5CYII=);
  background-repeat: no-repeat;
  background-position: 0 .15em;
  padding-left: 1.5em;
}

.done3 {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAxQAAAMUBHc26qAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABoSURBVCiR7dOxDcAgDATA/0DtUdiKoZC3YhLkHjkVKF3idJHiztKfvrHZWnOSE8Fx95RJzlprimJVnXktvXeY2S0SEZRSAAAbmxnGGKH2I5T+8VfxPhIReQSuuY3XyYWa3T2p6quvOgGrvSFGlewuUAAAAABJRU5ErkJggg==);
  background-repeat: no-repeat;
  background-position: 0 .15em;
  padding-left: 1.5em;
}

.done4 {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAQCAYAAAAbBi9cAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAzgAAAM4BlP6ToAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAIISURBVDiNnZQ9SFtRFMd/773kpTaGJoQk1im4VDpWQcTNODhkFBcVTCNCF0NWyeDiIIiCm82QoIMIUkHUxcFBg1SEQoZszSat6cdTn1qNue92CMbEr9Sey+XC/Z/zu+f8h6ukUil3sVg0+M+4cFxk42/jH2wAqqqKSCSiPQdwcHHAnDHH9s/tN1h8V28ETdP+eU8fT9Nt62ancYdIPvJNtsu87bmjrJlrTDVM4RROJs1JrHPrD4Bar7A6cpc54iKOaTdJXCUI2UMVrQZ0Js7YPN18ECKkYNQcJe/OE/4dZsw7VqNXQMvHy3QZXQypQ6ycrtwDjf8aJ+PNEDSCzLpn7+m2pD8ZKHlKarYhy6XjEoCYGcN95qansQeA3fNdki+SaJZGTMQIOoL3W/Z89rxv+tokubNajlvk/vm+LFpF2XnUKZHI0I+QrI7Dw0OZTqdzUkpsM7mZTyfy5OPGyw1tK7AFSvmB/Ks8w8YwbUYbe6/3QEKv0vugfxWPnMLJun+d/kI/WLdizpNjMbAIKrhMF4OuwadBALqqs+RfInwUvuNi+fBd+wjogfogAFVRmffO02q01mZZ0HHdgXIzdz0QQLPezIQygX6llxNKKgOFARYCC49CqhoHIUTlss/Vx2phlYwjw8j1CAlfAiwQiJpiy7o1VHnsG5FISkoJu7Q/2YmmaV+i0ei7v38L2CBguSi5AAAAAElFTkSuQmCC);
  background-repeat: no-repeat;
  background-position: 0 .15em;
  padding-left: 1.5em;
}

code {
  font-family: Monaco, "Courier New", monospace;
  border-radius: 3px;
  padding: 0 3px;
  display: inline-block;
  color: #d3dae3;
  background-color: var(--code-bg);
  border: 1px solid var(--border-color);
}

/* Dark theme scrollbar */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

::-webkit-scrollbar-track {
  background: #2b2e39;
}

::-webkit-scrollbar-thumb {
  background: #5294e2;
  border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
  background: var(--link-hover);
}

/* Print-friendly */
@media print {
  body {
    background-color: white;
    color: black;
    font-size: 12pt;
    max-width: 100%;
  }

  h1, h2, h3, h4, h5, h6 {
    color: #333;
    page-break-after: avoid;
  }

  pre, blockquote, table {
    page-break-inside: avoid;
  }

  a {
    color: #0066cc !important;
  }
}

/* Responsive adjustments */
@media (max-width: 768px) {
  body {
    margin: 1em;
    font-size: 15px;
  }

  pre {
    font-size: 0.8em;
  }
}

/* Set up font-face declarations for Open Sans */
@font-face {
  font-family: 'Open Sans';
  src: url('../fonts/OpenSans-Regular.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'Open Sans';
  src: url('../fonts/OpenSans-Bold.ttf') format('truetype');
  font-weight: bold;
  font-style: normal;
}

@font-face {
  font-family: 'Open Sans';
  src: url('../fonts/OpenSans-Italic.ttf') format('truetype');
  font-weight: normal;
  font-style: italic;
}

@font-face {
  font-family: 'Open Sans';
  src: url('../fonts/OpenSans-BoldItalic.ttf') format('truetype');
  font-weight: bold;
  font-style: italic;
}

@font-face {
  font-family: 'Open Sans';
  src: url('../fonts/OpenSans-Light.ttf') format('truetype');
  font-weight: 300;
  font-style: normal;
}

@font-face {
  font-family: 'Open Sans';
  src: url('../fonts/OpenSans-LightItalic.ttf') format('truetype');
  font-weight: 300;
  font-style: italic;
}

@font-face {
  font-family: 'Open Sans';
  src: url('../fonts/OpenSans-Semibold.ttf') format('truetype');
  font-weight: 600;
  font-style: normal;
}

@font-face {
  font-family: 'Open Sans';
  src: url('../fonts/OpenSans-SemiboldItalic.ttf') format('truetype');
  font-weight: 600;
  font-style: italic;
}

@font-face {
  font-family: 'Open Sans';
  src: url('../fonts/OpenSans-ExtraBold.ttf') format('truetype');
  font-weight: 800;
  font-style: normal;
}

@font-face {
  font-family: 'Open Sans';
  src: url('../fonts/OpenSans-ExtraBoldItalic.ttf') format('truetype');
  font-weight: 800;
  font-style: italic;
}
