@mixin styles {
  color-scheme: dark;

  /* Framework color */
  --main-bg: rgb(27 27 30);
  --mask-bg: rgb(68 69 70);
  --main-border-color: rgb(44 45 45);

  /* Common color */
  --text-color: rgb(175 176 177);
  --text-muted-color: #868686;
  --text-muted-highlight-color: #aeaeae;
  --heading-color: #cccccc;
  --label-color: #a7a7a7;
  --blockquote-border-color: rgb(66 66 66);
  --blockquote-text-color: #868686;
  --link-color: rgb(138 180 248);
  --link-underline-color: rgb(82 108 150);
  --button-bg: #1e1e1e;
  --btn-border-color: #2e2f31;
  --btn-backtotop-color: var(--text-color);
  --btn-backtotop-border-color: #212122;
  --card-header-bg: #292929;
  --checkbox-color: rgb(118 120 121);
  --checkbox-checked-color: var(--link-color);
  --img-bg: radial-gradient(circle, rgb(22 22 24) 0%, rgb(32 32 32) 100%);
  --shimmer-bg: linear-gradient(
    90deg,
    rgb(255 255 255 / 0%) 0%,
    rgb(58 55 55 / 40%) 50%,
    rgb(255 255 255 / 0%) 100%
  );

  /* Sidebar */
  --site-title-color: #717070;
  --site-subtitle-color: #868686;
  --sidebar-bg: #1e1e1e;
  --sidebar-border-color: #292929;
  --sidebar-muted-color: #868686;
  --sidebar-active-color: rgb(255 255 255 / 95%);
  --sidebar-hover-bg: #262626;
  --sidebar-btn-bg: #232328;
  --sidebar-btn-color: #787878;
  --avatar-border-color: rgb(206 206 206 / 90%);

  /* Topbar */
  --topbar-bg: rgb(27 27 30 / 64%);
  --topbar-text-color: var(--text-color);
  --search-border-color: rgb(55 55 55);
  --search-icon-color: rgb(100 102 105);
  --input-focus-border-color: rgb(112 114 115);

  /* Home page */
  --post-list-text-color: rgb(175 176 177);
  --btn-patinator-text-color: var(--text-color);
  --btn-paginator-hover-color: #2e2e2e;

  /* Posts */
  --toc-highlight: rgb(116 178 243);
  --toc-popup-border-color: #373737;
  --tag-hover: rgb(43 56 62);
  --tb-odd-bg: #252526; /* odd rows of the posts' table */
  --tb-even-bg: rgb(31 31 34); /* even rows of the posts' table */
  --tb-border-color: var(--tb-odd-bg);
  --footnote-target-bg: rgb(63 81 181);
  --btn-share-color: #6c757d;
  --btn-share-hover-color: #bfc1ca;
  --card-bg: #1e1e1e;
  --card-hover-bg: #464d51;
  --card-shadow: rgb(21 21 21 / 72%) 0 6px 18px 0,
    rgb(137 135 135 / 24%) 0 0 0 1px;
  --kbd-wrap-color: #6a6a6a;
  --kbd-text-color: #d3d3d3;
  --kbd-bg-color: #242424;
  --prompt-text-color: rgb(216 212 212 / 75%);
  --prompt-tip-bg: rgb(22 60 36 / 64%);
  --prompt-tip-icon-color: rgb(15 164 15 / 81%);
  --prompt-info-bg: rgb(7 59 104 / 80%);
  --prompt-info-icon-color: #0075d1;
  --prompt-warning-bg: rgb(90 69 3 / 88%);
  --prompt-warning-icon-color: rgb(255 165 0 / 80%);
  --prompt-danger-bg: rgb(86 28 8 / 80%);
  --prompt-danger-icon-color: #cd0202;

  /* Tags */
  --tag-border: rgb(59 79 88);
  --tag-shadow: rgb(32 33 33);
  --dash-color: rgb(63 65 68);
  --search-tag-bg: #292828;

  /* Categories */
  --categories-border: rgb(64 66 69 / 50%);
  --categories-hover-bg: rgb(73 75 76);
  --categories-icon-hover-color: white;

  /* Archive */
  --timeline-node-bg: rgb(150 152 156);
  --timeline-color: rgb(63 65 68);
  --timeline-year-dot-color: var(--timeline-color);

  /* Code highlight colors */
  --language-border-color: #2d2d2d;
  --highlight-bg-color: #151515;
  --highlighter-rouge-color: #c9def1;
  --highlight-lineno-color: #808080;
  --inline-code-bg: rgb(255 255 255 / 5%);
  --code-color: #b0b0b0;
  --code-header-text-color: #6a6a6a;
  --code-header-muted-color: #353535;
  --code-header-icon-color: #565656;
  --clipboard-checked-color: #2bcc2b;
  --filepath-text-color: #cacaca;

  .light {
    display: none;
  }

  /* Categories */
  .categories.card,
  .list-group-item {
    background-color: var(--card-bg);
  }

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

    .list-group-item {
      border-left: none;
      border-right: none;
      padding-left: 2rem;
      border-color: var(--categories-border);

      &:last-child {
        border-bottom-color: var(--card-bg);
      }
    }
  }

  #archives li:nth-child(odd) {
    background-image: linear-gradient(
      to left,
      rgb(26 26 30),
      rgb(39 39 45),
      rgb(39 39 45),
      rgb(39 39 45),
      rgb(26 26 30)
    );
  }

  /* stylelint-disable-next-line selector-id-pattern */
  #disqus_thread {
    color-scheme: none;
  }

  /* --- Syntax highlight theme from `rougify style base16.dark` --- */

  .highlight .gp {
    color: #87939d;
  }

  .highlight table td {
    padding: 5px;
  }

  .highlight table pre {
    margin: 0;
  }

  .highlight,
  .highlight .w {
    color: #d0d0d0;
    background-color: #151515;
  }

  .highlight .err {
    color: #151515;
    background-color: #ac4142;
  }

  .highlight .c,
  .highlight .ch,
  .highlight .cd,
  .highlight .cm,
  .highlight .cpf,
  .highlight .c1,
  .highlight .cs {
    color: #848484;
  }

  .highlight .cp {
    color: #f4bf75;
  }

  .highlight .nt {
    color: #f4bf75;
  }

  .highlight .o,
  .highlight .ow {
    color: #d0d0d0;
  }

  .highlight .p,
  .highlight .pi {
    color: #d0d0d0;
  }

  .highlight .gi {
    color: #90a959;
  }

  .highlight .gd {
    color: #f08a8b;
    background-color: #320000;
  }

  .highlight .gh {
    color: #6a9fb5;
    background-color: #151515;
    font-weight: bold;
  }

  .highlight .k,
  .highlight .kn,
  .highlight .kp,
  .highlight .kr,
  .highlight .kv {
    color: #aa759f;
  }

  .highlight .kc {
    color: #d28445;
  }

  .highlight .kt {
    color: #d28445;
  }

  .highlight .kd {
    color: #d28445;
  }

  .highlight .s,
  .highlight .sb,
  .highlight .sc,
  .highlight .dl,
  .highlight .sd,
  .highlight .s2,
  .highlight .sh,
  .highlight .sx,
  .highlight .s1 {
    color: #90a959;
  }

  .highlight .sa {
    color: #aa759f;
  }

  .highlight .sr {
    color: #75b5aa;
  }

  .highlight .si {
    color: #b76d45;
  }

  .highlight .se {
    color: #b76d45;
  }

  .highlight .nn {
    color: #f4bf75;
  }

  .highlight .nc {
    color: #f4bf75;
  }

  .highlight .no {
    color: #f4bf75;
  }

  .highlight .na {
    color: #6a9fb5;
  }

  .highlight .m,
  .highlight .mb,
  .highlight .mf,
  .highlight .mh,
  .highlight .mi,
  .highlight .il,
  .highlight .mo,
  .highlight .mx {
    color: #90a959;
  }

  .highlight .ss {
    color: #90a959;
  }
}
