/*  The base version of this file comes from org-mode; I hope I don't violate
    any licence with this (though I think I'm safe; as far as I know, all of
    Emacs is Free Software and thus this publishing of edited versions of their
    code should be okay) */

body {
  color: white;
  background-color: black;
  font-size: large;
  line-height: 1.4;
}
a:link {
  color: #6060FF;
}
a:visited {
  color: #FF60FF;
}
code {
  background-color: #1A1A1A;
  padding: 2px;
}
blockquote {
  background-color: #1A1A1A;
  padding-left: 15px;
  padding-right: 15px;
}
blockquote:before {
  content: '“';
  font-size: 300%;
}
blockquote:after {
  content: '”';
  font-size: 300%;
  /* Align closing quote to the right */
  display: block;
  text-align: right;
}
#favicon {
    height: 2em;
}

/* Base styling */
body {
  font-family: "Georgia", "Liberation Serif", serif;
}
#content {
    max-width: 60em;
    margin: auto;
}
.title  {
    text-align: center;
    margin-bottom: 2em;
}
.subtitle { text-align: center;
            font-size: medium;
            font-weight: bold;
            margin-top:0; }

/* More base styling */
#table-of-contents {
    display: inline-block;
    font-size: 80%;
    margin-bottom: 4em;
    border: 1px solid white;
    padding: 1em;
}

/* Specific org-mode constructs */
.todo   { font-family: monospace; color: red; }
.done   { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.tag    {
  background-color: #222;
  font-family: monospace;
  padding: 2px;
  font-size: 80%;
  font-weight: normal;
}
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }

/* Styling for footnotes */
#footnotes {
  font-size: 90%;
  margin-top: 6em;
  border-top: 1px solid white;
  margin-right: auto;
}
h2.footnotes {
  /* font-size: 70%; */
}

/* I don't know what these are, should look into it */
.org-right  { margin-left: auto; margin-right: 0px;  text-align: right; }
.org-left   { margin-left: 0px;  margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }

/* More standard styles */
.underline { text-decoration: underline; }
#postamble, #preamble {
    max-width: 70em;
}
#postamble {
    margin: 5em auto 0 auto;
}
#preamble {
    margin: 0.2em auto 5em auto;
}
#postamble p, #preamble p, #preamble a {
    font-size: 90%;
    margin: .2em;
}
#preamble nav {
    display: flex;
    align-items: center;
    justify-content: left;
}   
p.verse { margin-left: 3%; }
pre {
  border: 1px solid #191919;
  border-radius: 3px;
  background-color: #0E0E0E;
  padding: 8pt;
  font-family: monospace;
  overflow: auto;
  margin: 1.2em;
}
pre.src {
  position: relative;
  overflow: auto;
}
pre.src:before {
  display: none;
  position: absolute;
  top: -8px;
  right: 12px;
  padding: 3px;
  color: #555;
  background-color: #f2f2f299;
}
pre.src:hover:before { display: inline; margin-top: 14px;}

caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
table {
    border-collapse: collapse;
    border-width: 2px;
    border-style: solid none;
}
thead, tbody, tfoot {
    border: inherit;
}
td, th {
    vertical-align: top;
    padding: 6;
}
th.org-right  { text-align: center;  }
th.org-left   { text-align: center;   }
th.org-center { text-align: center; }
td.org-right  { text-align: right;  }
td.org-left   { text-align: left;   }
td.org-center { text-align: center; }
dt { font-weight: bold; }

.footpara { display: inline; }
.footdef  { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
.equation-container {
  display: table;
  text-align: center;
  width: 100%;
}
.equation {
  vertical-align: middle;
}
.equation-label {
  display: table-cell;
  text-align: right;
  vertical-align: middle;
}
.inlinetask {
  padding: 10px;
  border: 2px solid gray;
  margin: 10px;
  background: #ffffcc;
}
#org-div-home-and-up
 { text-align: right; font-size: 70%; white-space: nowrap; }
textarea { overflow-x: auto; }
.linenr { font-size: smaller }
.code-highlighted { background-color: #ffff00; }
.org-info-js_info-navigation { border-style: none; }
#org-info-js_console-label
  { font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
  { background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { }

/* Long list of language stuff */

/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-authinfo::before { content: 'Authinfo'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }

/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }

/* additional language identifiers per "defun org-babel-execute"
     in ob-*.el */
pre.src-cpp:before  { content: 'C++'; }
pre.src-abc:before  { content: 'ABC'; }
pre.src-coq:before  { content: 'Coq'; }
pre.src-groovy:before  { content: 'Groovy'; }

/* additional language identifiers from org-babel-shell-names in
   ob-shell.el: ob-shell is the only babel language using a lambda to put
   the execution function name together. */
pre.src-bash:before  { content: 'bash'; }
pre.src-csh:before  { content: 'csh'; }
pre.src-ash:before  { content: 'ash'; }
pre.src-dash:before  { content: 'dash'; }
pre.src-ksh:before  { content: 'ksh'; }
pre.src-mksh:before  { content: 'mksh'; }
pre.src-posh:before  { content: 'posh'; }

/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }

/* add a generic configuration mode; LaTeX export needs an additional
   (add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }


/* Styling overrides for light theme */
@media (prefers-color-scheme: light) {
    body {
	color: black;
	background-color: white;
    }
    a:link {
	color: #0000EE;
    }
    a:visited {
	color: #0b0080
    }
    code {
	background-color: #f2f2f2;
    }
    #table-of-contents {
	border: 1px solid black;
    }
    .tag {
	background-color: #eee;
    }
    pre {
	border: 1px solid #e6e6e6;
	background-color: #f2f2f2;
    }
}
