@charset "UTF-8";

$black: #000000;
$white: #ffffff;
$light-grey: #eeeeee;
$med-grey: #5f5f5f;
$dark-grey: #202020;
$bg-grey: #FAFAFA;

$code-border: #c7c7c7;
$code-background: #f6f6f6;
$code-linebg: #dddddd;

$accent: #0e94ec;
$danger: red;

@import url(https://fonts.googleapis.com/css?family=Roboto|Roboto+Mono);
$sans: 'Roboto', sans-serif;
$mono: 'Roboto Mono';

$border_color: #c2c2c2;
$pag_label_size: 60px;
$logo_size: 150px;

$content_size: 640px;
$horiz_pad: 40px;

$main_font_size: 1rem;
$nav_font_size: 1rem;
$subtitle_font_size: 0.9rem;
$code_font_size: 0.9rem;
$article_meta_font_size: 0.8rem;
$pagination_font_size: 0.9rem;
$footer_font_size: 0.7rem;

//The minimum size the screen can be without scaling the main content
$min_screen: floor((($content_size + $horiz_pad * 2) * 1.33));

body {
  margin: 0;
  padding: 0;
  background-color: $bg-grey;
  color: $dark-grey;
  font-family: $sans;
  font-size: $main_font_size;
  min-width: 300px;
}

a {
  color: $black;
  text-decoration: none;
}

a[href]:not(.nohover) {
  &:hover{
    color: $accent;
  }
}

hr {
  background-color: $border_color;
  height: 1px;
  border: none;
}

img {
  max-width: 100%;
}

aside {
  div#user_meta {
    padding: $horiz_pad 20px $horiz_pad 20px;
    text-align: center;

    img#logo {
        width: $logo_size;
        height: $logo_size;
        border-radius: 50%;
        border: 5px solid $black;
        background-color: $black;
        box-shadow: 0px 0px 1px $black;
    }

    h2 {
      margin: 15px 0 5px 0;
    }

    p {
      margin: 0px;
      font-size: $subtitle_font_size;
    }

    i {
      width: 30px;
      text-align: center;
      vertical-align: middle;
    }

    div.social {
      margin-top:15px;

      a {
        display: inline-block;
        height: 30px;
      }
    }

    ul {
      margin: 0px;
      padding-left: 0px;
      list-style-type: none;

      li {
        line-height: 2em;

        a {
          i {
              padding-left: 5px;
          }
        }
      }
    }
  }
}

main {
  position: relative;
  width: 100%;
  margin: auto;

  header {
    padding: 0px $horiz_pad 0px $horiz_pad;
    border-top: $border_color 1px solid;
    border-bottom: $border_color 1px solid;
    text-align: center;
    color: $med-grey;

    p {
      font-weight: bold;
      font-size: $nav_font_size;
      text-transform: uppercase;
    }

    p#header {
      color: $black;
    }

    p:not(#header){
      a {
        color: $med-grey;
        &:hover{
          color: $accent;
        }
      }
    }
  }

  article {
    padding: 10px $horiz_pad 10px $horiz_pad;
    max-width: $content_size;
    margin: auto;

    div.article_title {
    }

    div.article_text {
      line-height: 1.375em;
      a {
        text-decoration: underline;
      }

      @mixin codeformat {
        color: black;
        font-size: $code_font_size;
        font-family: $mono;
      }

      code {
        @include codeformat;
        padding: 1px 3px;
        background: $light-grey;
      }

      pre {
        @include codeformat;
        line-height: 1.125em;
        margin-bottom: 0px;
        margin-top: 0px;
        padding-top: 5px;
        padding-bottom: 10px;
      }

      div.highlight pre {
        padding-left: 10px;
        overflow-x: auto;
        border: 1px solid $code-border;
        border-left: 3px solid $accent;
        background: $code-background;
      }

      /* Line numbers are enabled */
      table.highlighttable {
        table-layout: fixed;
        width: 100%;
        border: 1px solid $code-border;
        border-collapse: collapse;

        pre {
          border: none;
        }

        td {
          padding: 0px;
        }

        td.linenos {
          width: 30px;
          overflow: hidden;
          text-align: right;
          border-left: 3px solid $accent;
          border-right: 1px solid $code-border;
          background: $code-linebg;
          vertical-align:top;

          div.linenodiv pre {
            padding-right: 4px;
            float: right;
          }
        }
      }

      div.admonition {

        border-width: 1px 1px 1px 7px;
        border-radius: 10px;
        border-style: solid;
        border-color: $code-border;
        border-left-color: $dark-grey;
        background-color: $code-background;

        &.update, &.hint, &.important, &.note, &.tip {
          border-left-color: $accent;
        }

        &.warning, &.attention, &.caution, &.danger {
          border-left-color: $danger;
        }

        p {
          margin: 0px;
          padding: 10px 15px;
        }

        p.admonition-title{
          text-transform: uppercase;
          font-weight: bold;
          padding: 5px 15px;
          border-bottom: 1px solid $code-border;
        }
      }

      blockquote {
        margin: 22px 2px 22px 2px;
        padding-left: $horiz_pad;
        color: $med-grey;
        font-style: italic;
      }
    }

    div.article_meta {
      font-size: $article_meta_font_size;
      color: $med-grey;
    }

    div#article_comments{
      padding-top: 10px;
      padding-bottom: 10px;

      i {
        padding-right: 10px;
      }
    }
  }

  footer {
    border-top: $border_color 1px solid;
    padding: 30px $horiz_pad 30px $horiz_pad;

    div#paginator {
      font-weight: bold;
      font-size: $pagination_font_size;
      text-transform: uppercase;
      overflow: auto;
      text-align: center;

      div{
        display: inline-block;
      }

      span {
        width: $pag_label_size;
      }

      span#left {
        float: left;
        text-align: left;
      }

      span#right {
        float: right;
        text-align: right;
      }
    }
  }

  div#ending_message {
    border-top: $border_color 1px solid;
    padding: 0 $horiz_pad 0 $horiz_pad;
    color: $med-grey;
    font-size: $footer_font_size;
  }
}

@media screen and (min-width: $min_screen) {
  aside {
    width: 25%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;

    h2 {
      margin: 10px 0 0 0;
    }

    div#user_meta {
      max-width: 192px;
      text-align: right;
      margin: 0 20px 0 auto;
    }
  }

  main {
    position: absolute;
    top: 0;
    left: 25%;
    width: 75%;
    margin-left: -1px;
    border-left: $border_color 1px solid;
    overflow-x: hidden;
    overflow-y: hidden;

    header {
      padding: 10px $horiz_pad 10px $horiz_pad;
      border-top: 0;
      text-align: left;
    }

    article {
      width: $content_size;
      margin: 0;
    }

    footer{
      div#paginator {
        width: $content_size;
      }
    }
  }
}
