.container {
  height: 100%; }

.columns {
  height: 100%; }

html, body {
  height: 100%;
  margin: 0;
  font-size: 1rem; }

.book-container {
  height: 100%;
  font-family: 'Noto Sans TC', 'Noto Sans SC', 'Noto Sans', sans-serif; }
  @media all and (min-width: 960px) {
    .book-container {
      padding: 2rem 3rem; } }
  @media all and (max-width: 959px) {
    .book-container {
      padding: 0 1rem; } }

.book-content {
  margin-left: 0.4rem; }
  .book-content .book-post {
    max-width: 95%; }
    .book-content .book-post a:hover {
      text-decoration: underline; }
    .book-content .book-post h1,
    .book-content .book-post h2,
    .book-content .book-post h3,
    .book-content .book-post h4,
    .book-content .book-post h5,
    .book-content .book-post h6 {
      font-weight: bold;
      padding-bottom: 0.5rem;
      margin-bottom: 1rem;
      border-bottom: 1px solid #ddd; }
    .book-content .book-post h2,
    .book-content .book-post h3,
    .book-content .book-post h4,
    .book-content .book-post h5,
    .book-content .book-post h6 {
      margin-top: 1.6rem; }
    .book-content .book-post h1 {
      font-size: 1.75rem; }
    .book-content .book-post h2 {
      font-size: 1.5rem; }
    .book-content .book-post h3 {
      font-size: 1.25rem; }
    .book-content .book-post h4 {
      font-size: 1rem; }
    .book-content .book-post h5 {
      font-size: 0.875rem; }
    .book-content .book-post h6 {
      font-size: 0.8125rem; }
    .book-content .book-post p {
      margin-bottom: 1rem; }
    .book-content .book-post hr {
      border: 0.5px solid #ddd;
      background-color: #ddd;
      margin: 1rem 0; }
    .book-content .book-post .table-wrapper {
      max-width: 100%;
      margin: 1.25rem 0;
      overflow: auto; }
      .book-content .book-post .table-wrapper table {
        width: 100%; }
        .book-content .book-post .table-wrapper table th,
        .book-content .book-post .table-wrapper table td {
          padding: 0.75rem;
          border-top: 1px solid #ddd;
          text-align: left; }
    .book-content .book-post ul,
    .book-content .book-post ol {
      list-style-position: outside;
      margin: 0 0 1.4rem 2rem; }
      .book-content .book-post ul ol,
      .book-content .book-post ol ol {
        margin-top: 0;
        margin-bottom: 0; }
      .book-content .book-post ul ul,
      .book-content .book-post ol ul {
        margin-top: 0;
        margin-bottom: 0; }
    .book-content .book-post li {
      margin-top: 0.4rem;
      margin-bottom: 0.4rem; }
    .book-content .book-post blockquote {
      margin: 1.125rem 1.125rem 1.125rem 0;
      padding: 0.2rem 1rem; }
      .book-content .book-post blockquote p:last-child {
        margin-bottom: 0; }
    .book-content .book-post .video-container {
      position: relative;
      margin-bottom: 1.5rem;
      padding-bottom: 56.25%;
      height: 0;
      overflow: hidden; }
      .book-content .book-post .video-container iframe {
        position: absolute;
        width: 100%;
        height: 100%;
        top: 0;
        left: 0; }
    .book-content .book-post figcaption {
      text-align: center;
      font-size: 0.75rem; }
    .book-content .book-post img {
      display: block;
      margin-left: auto;
      margin-right: auto; }
    .book-content .book-post iframe {
      width: 100%; }

a {
  color: #004ed0; }

a:visited {
  color: #7170db; }

a:hover {
  color: #6d6d6d;
  text-decoration: none; }

img {
  max-width: 100%;
  max-height: 100%; }

.right {
  text-align: right; }

.left {
  text-align: left; }

.book-navbar {
  padding: 0.75rem 0; }
  @media all and (min-width: 960px) {
    .book-navbar {
      display: none; } }
  @media all and (max-width: 959px) {
    .book-navbar {
      display: block; } }
  .book-navbar ul {
    list-style: none;
    margin: 0; }
    .book-navbar ul ul {
      margin: 0 0 0 0.5rem; }
  .book-navbar .navbar-icon {
    width: 25px; }
  .book-navbar .accordion input:checked ~ .accordion-body {
    max-height: none; }
  .book-navbar .accordion-body {
    margin: 0.375rem 0; }

.book-toc {
  position: fixed;
  font-size: 0.875rem;
  width: 100%; }
  .book-toc .book-tocbot {
    max-height: 450px;
    max-width: 250px;
    overflow: auto;
    position: relative;
    padding-right: 0.875rem; }
    .book-toc .book-tocbot ul {
      list-style: none;
      position: inherit;
      overflow: hidden; }
      .book-toc .book-tocbot ul li {
        margin-left: 0.25rem; }
  .book-toc .toc-link::before {
    background-color: white !important; }
  .book-toc .is-active-link::before {
    background-color: #004ed0 !important; }
  .book-toc .book-tocbot-menu {
    margin: 1rem 0.75rem; }
    .book-toc .book-tocbot-menu a {
      display: block;
      margin: 0.375rem 0;
      color: #999;
      cursor: pointer; }
    .book-toc .book-tocbot-menu a:hover {
      color: gray; }

.book-sidebar .site-meta {
  font-size: 1.5rem;
  margin-bottom: 0.875rem; }
  .book-sidebar .site-meta a {
    color: #2f2f2f; }
  .book-sidebar .site-meta a:hover {
    color: #2f2f2f; }

.book-sidebar .sidebar-content {
  font-size: 0.875rem;
  padding-right: 1rem;
  display: none; }
  .book-sidebar .sidebar-content ul {
    list-style: none;
    margin-left: 0; }
    .book-sidebar .sidebar-content ul ul {
      margin: 0 0 0 0.5rem; }
  .book-sidebar .sidebar-content .icon {
    vertical-align: unset; }

.book-sidebar .collapse-li {
  display: flex;
  align-items: flex-start; }

.book-sidebar .collapse-span {
  word-break: break-all;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow-x: hidden;
  padding-right: 2px; }

.book-sidebar .show {
  white-space: normal;
  overflow-x: unset; }

.book-sidebar a {
  color: #2f2f2f; }

.book-sidebar a:hover {
  color: gray; }

.book-sidebar .book-sidebar-current {
  color: #004ed0; }

.book-comments {
  padding: 0 0 1.5rem 0; }

#disqus_thread {
  margin: 50px 0; }

.utterances {
  max-width: 95%;
  margin: 0; }

pre, .highlight {
  font-family: consolas, Menlo, monospace;
  background: #f7f7f7;
  color: #4d4d4c;
  line-height: 1.5rem;
  margin: 14px auto 14px; }

.gutter, pre .meta {
  -moz-user-select: none;
  -ms-user-select: none;
  -webkit-user-select: none;
  user-select: none; }

code {
  font-family: consolas, Menlo, monospace;
  border-radius: 3px;
  padding: 2px 4px;
  overflow-wrap: break-word;
  word-wrap: break-word; }

pre {
  overflow: auto;
  padding: 10px; }
  pre code {
    background: none;
    color: #4d4d4c;
    padding: 0;
    text-shadow: none; }

.highlight {
  font-size: 0.875rem;
  overflow: auto; }
  .highlight *::selection {
    background: #d6d6d6; }
  .highlight pre {
    border: 0;
    margin: 0;
    padding: 10px 0; }
  .highlight table {
    border: 0;
    margin: 0;
    width: auto; }
  .highlight td {
    border: 0;
    padding: 0; }
  .highlight figcaption {
    position: relative;
    background: #eff2f3;
    color: #869194;
    line-height: 1em;
    margin: 0;
    padding: 0.5em; }
    .highlight figcaption::before, .highlight figcaption::after {
      content: " ";
      display: table; }
    .highlight figcaption a {
      color: #4d4d4c;
      position: absolute;
      right: 6px; }
      .highlight figcaption a:hover {
        border-bottom-color: #4d4d4c; }
  .highlight .marked {
    background: #f8e9c0;
    border-bottom: 0.05rem solid #ffe7ab;
    border-radius: 0.1rem;
    color: #3b4351;
    padding: 0.05rem 0.1rem 0; }
  .highlight .gutter pre {
    background: #eff2f3;
    color: #869194;
    padding-left: 10px;
    padding-right: 10px;
    text-align: right; }
  .highlight .code pre {
    background: #f7f7f7;
    padding-left: 10px;
    width: 100%; }

.gist table {
  width: auto; }
  .gist table td {
    border: 0; }

pre .deletion {
  background: if true, #fdd, #800000; }

pre .addition {
  background: if true, #dfd, #008000; }

pre .meta {
  color: #eab700; }

pre .comment {
  color: #8e908c; }

pre .variable,
pre .attribute,
pre .tag,
pre .name,
pre .regexp,
pre .ruby .constant,
pre .xml .tag .title,
pre .xml .pi,
pre .xml .doctype,
pre .html .doctype,
pre .css .id,
pre .css .class,
pre .css .pseudo {
  color: #c82829; }

pre .number,
pre .preprocessor,
pre .built_in,
pre .builtin-name,
pre .literal,
pre .params,
pre .constant,
pre .command {
  color: #f5871f; }

pre .ruby .class .title,
pre .css .rules .attribute,
pre .string,
pre .symbol,
pre .value,
pre .inheritance,
pre .header,
pre .ruby .symbol,
pre .xml .cdata,
pre .special,
pre .formula {
  color: #718c00; }

pre .title,
pre .css .hexcolor {
  color: #3e999f; }

pre .function,
pre .python .decorator,
pre .python .title,
pre .ruby .function .title,
pre .ruby .title .keyword,
pre .perl .sub,
pre .javascript .title,
pre .coffeescript .title {
  color: #4271ae; }

pre .keyword,
pre .javascript .function {
  color: #8959a8; }
