/* https://github.com/aahan/pygments-github-style */

/*
* White Syntax Colors
*/
$white-code-color: $gl-text-color;
$white-highlight: #fafe3d;
$white-pre-hll-bg: #f8eec7;
$white-hll-bg: #f8f8f8;
$white-over-bg: #ded7fc;
$white-expanded-border: #e0e0e0;
$white-expanded-bg: #f7f7f7;
$white-c: #998;
$white-err: #a61717;
$white-err-bg: #e3d2d2;
$white-cm: #998;
$white-cp: #999;
$white-c1: #998;
$white-cs: #999;
$white-gd: $black;
$white-gd-bg: #fdd;
$white-gd-x: $black;
$white-gd-x-bg: #faa;
$white-gr: #a00;
$white-gh: #999;
$white-gi: $black;
$white-gi-bg: #dfd;
$white-gi-x: $black;
$white-gi-x-bg: #afa;
$white-go: #888;
$white-gp: #555;
$white-gu: #800080;
$white-gt: #a00;
$white-kt: #458;
$white-m: #099;
$white-s: #d14;
$white-n: #333;
$white-na: teal;
$white-nb: #0086b3;
$white-nc: #458;
$white-no: teal;
$white-ni: purple;
$white-ne: #900;
$white-nf: #900;
$white-nn: #555;
$white-nt: navy;
$white-nv: teal;
$white-w: #bbb;
$white-mf: #099;
$white-mh: #099;
$white-mi: #099;
$white-mo: #099;
$white-sb: #d14;
$white-sc: #d14;
$white-sd: #d14;
$white-s2: #d14;
$white-se: #d14;
$white-sh: #d14;
$white-si: #d14;
$white-sx: #d14;
$white-sr: #009926;
$white-s1: #d14;
$white-ss: #990073;
$white-bp: #999;
$white-vc: teal;
$white-vg: teal;
$white-vi: teal;
$white-il: #099;
$white-gc-color: #999;
$white-gc-bg: #eaf2f5;


@mixin matchLine {
  color: $black-transparent;
  background-color: $gray-light;
}

.code.white {
  // Line numbers
  .line-numbers,
  .diff-line-num {
    background-color: $gray-light;
  }

  .diff-line-num,
  .diff-line-num a {
    color: $black-transparent;
  }

  // Code itself
  pre.code,
  .diff-line-num {
    border-color: $white-normal;
  }

  &,
  pre.code,
  .line_holder .line_content {
    background-color: $white-light;
    color: $white-code-color;
  }

  // Diff line
  .line_holder {

    &.match .line_content {
      @include matchLine;
    }

    .diff-line-num {
      &.old {
        background-color: $line-number-old;
        border-color: $line-removed-dark;

        a {
          color: scale-color($line-number-old, $red: -30%, $green: -30%, $blue: -30%);
        }
      }

      &.new {
        background-color: $line-number-new;
        border-color: $line-added-dark;

        a {
          color: scale-color($line-number-new, $red: -30%, $green: -30%, $blue: -30%);
        }
      }

      &.is-over,
      &.hll:not(.empty-cell).is-over {
        background-color: $white-over-bg;
        border-color: darken($white-over-bg, 5%);

        a {
          color: darken($white-over-bg, 15%);
        }
      }

      &.hll:not(.empty-cell) {
        background-color: $line-number-select;
        border-color: $line-select-yellow-dark;
      }
    }

    &:not(.diff-expanded) + .diff-expanded,
    &.diff-expanded + .line_holder:not(.diff-expanded) {
      > .diff-line-num,
      > .line_content {
        border-top: 1px solid $white-expanded-border;
      }
    }

    &.diff-expanded {
      > .diff-line-num,
      > .line_content {
        background: $white-expanded-bg;
        border-color: $white-expanded-bg;
      }
    }

    .line_content {
      &.old {
        background-color: $line-removed;

        &::before {
          color: scale-color($line-number-old, $red: -30%, $green: -30%, $blue: -30%);
        }

        span.idiff {
          background-color: $line-removed-dark;
        }
      }

      &.new {
        background-color: $line-added;

        &::before {
          color: scale-color($line-number-new, $red: -30%, $green: -30%, $blue: -30%);
        }

        span.idiff {
          background-color: $line-added-dark;
        }
      }

      &.match {
        @include matchLine;
      }

      &.hll:not(.empty-cell) {
        background-color: $line-select-yellow;
      }
    }
  }

  // highlight line via anchor
  pre .hll {
    background-color: $white-pre-hll-bg !important;
  }

  // Search result highlight
  span.highlight_word {
    background-color: $white-highlight !important;
  }

  // Links to URLs, emails, or dependencies
  .line a {
    color: $white-nb;
  }

  .hll { background-color: $white-hll-bg; }
  .c { color: $white-c; font-style: italic; }
  .err { color: $white-err; background-color: $white-err-bg; }
  .k { font-weight: $gl-font-weight-bold; }
  .o { font-weight: $gl-font-weight-bold; }
  .cm { color: $white-cm; font-style: italic; }
  .cp { color: $white-cp; font-weight: $gl-font-weight-bold; }
  .c1 { color: $white-c1; font-style: italic; }
  .cs { color: $white-cs; font-weight: $gl-font-weight-bold; font-style: italic; }

  .gd {
    color: $white-gd;
    background-color: $white-gd-bg;

    .x {
      color: $white-gd-x;
      background-color: $white-gd-x-bg;
    }
  }

  .ge { font-style: italic; }
  .gr { color: $white-gr; }
  .gh { color: $white-gh; }

  .gi {
    color: $white-gi;
    background-color: $white-gi-bg;

    .x {
      color: $white-gi-x;
      background-color: $white-gi-x-bg;
    }
  }

  .go { color: $white-go; }
  .gp { color: $white-gp; }
  .gs { font-weight: $gl-font-weight-bold; }
  .gu { color: $white-gu; font-weight: $gl-font-weight-bold; }
  .gt { color: $white-gt; }
  .kc { font-weight: $gl-font-weight-bold; }
  .kd { font-weight: $gl-font-weight-bold; }
  .kn { font-weight: $gl-font-weight-bold; }
  .kp { font-weight: $gl-font-weight-bold; }
  .kr { font-weight: $gl-font-weight-bold; }
  .kt { color: $white-kt; font-weight: $gl-font-weight-bold; }
  .m { color: $white-m; }
  .s { color: $white-s; }
  .n { color: $white-n; }
  .na { color: $white-na; }
  .nb { color: $white-nb; }
  .nc { color: $white-nc; font-weight: $gl-font-weight-bold; }
  .no { color: $white-no; }
  .ni { color: $white-ni; }
  .ne { color: $white-ne; font-weight: $gl-font-weight-bold; }
  .nf { color: $white-nf; font-weight: $gl-font-weight-bold; }
  .nn { color: $white-nn; }
  .nt { color: $white-nt; }
  .nv { color: $white-nv; }
  .ow { font-weight: $gl-font-weight-bold; }
  .w { color: $white-w; }
  .mf { color: $white-mf; }
  .mh { color: $white-mh; }
  .mi { color: $white-mi; }
  .mo { color: $white-mo; }
  .sb { color: $white-sb; }
  .sc { color: $white-sc; }
  .sd { color: $white-sd; }
  .s2 { color: $white-s2; }
  .se { color: $white-se; }
  .sh { color: $white-sh; }
  .si { color: $white-si; }
  .sx { color: $white-sx; }
  .sr { color: $white-sr; }
  .s1 { color: $white-s1; }
  .ss { color: $white-ss; }
  .bp { color: $white-bp; }
  .vc { color: $white-vc; }
  .vg { color: $white-vg; }
  .vi { color: $white-vi; }
  .il { color: $white-il; }
  .gc { color: $white-gc-color; background-color: $white-gc-bg; }
}
